lddp-cvs-commits Mailing List for LDraw Design Pad (Page 2)
Brought to you by:
billthefish,
c_schmitz
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(83) |
Jul
(118) |
Aug
(18) |
Sep
|
Oct
(10) |
Nov
(16) |
Dec
(11) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(8) |
Feb
(8) |
Mar
(41) |
Apr
(2) |
May
|
Jun
|
Jul
(28) |
Aug
(5) |
Sep
|
Oct
|
Nov
(14) |
Dec
(3) |
2005 |
Jan
(2) |
Feb
(4) |
Mar
(3) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(6) |
Sep
(1) |
Oct
|
Nov
|
Dec
(7) |
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2008 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(35) |
Sep
(11) |
Oct
|
Nov
|
Dec
|
2009 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
(5) |
Jun
(4) |
Jul
|
Aug
|
Sep
(2) |
Oct
(6) |
Nov
|
Dec
|
2010 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
From: <bil...@us...> - 2009-01-03 18:57:53
|
Revision: 363 http://lddp.svn.sourceforge.net/lddp/?rev=363&view=rev Author: billthefish Date: 2009-01-03 18:57:45 +0000 (Sat, 03 Jan 2009) Log Message: ----------- Removed mpd explorer (for now) Modified Paths: -------------- trunk/Current Build/LDDesignPad.exe trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas trunk/DAT Tools/DATBase.pas trunk/DAT Tools/DATUtils.pas trunk/lddp/LDDesignPad.dpr trunk/lddp/main.dfm trunk/lddp/main.pas trunk/lddp/mpdexplorer.dfm trunk/lddp/mpdexplorer.pas trunk/lddp/options.dfm Modified: trunk/Current Build/LDDesignPad.exe =================================================================== (Binary files differ) Modified: trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas =================================================================== --- trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas 2008-09-22 22:45:39 UTC (rev 362) +++ trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas 2009-01-03 18:57:45 UTC (rev 363) @@ -111,7 +111,7 @@ begin case DModel[i].LineType of 1,3: rows := 3; - 2: rows := 2; + 2: rows := 2; 4,5: rows := 4; else rows := 0; @@ -120,6 +120,12 @@ if rows > 0 then for j := 1 to rows do (DModel[i] as TDATElement).MatrixVals[j, Ord(axis)] := -(DModel[i] as TDATElement).MatrixVals[j, Ord(axis)]; + if DModel[i].LineType = 1 then + case axis of + axisX: (DModel[i] as TDATSubPart).X := -(DModel[i] as TDATSubPart).X; + axisY: (DModel[i] as TDATSubPart).Y := -(DModel[i] as TDATSubPart).Y; + axisZ: (DModel[i] as TDATSubPart).Z := -(DModel[i] as TDATSubPart).Z; + end; end; SelText := DModel.ModelText; SelectLines(startline, endline); Modified: trunk/DAT Tools/DATBase.pas =================================================================== --- trunk/DAT Tools/DATBase.pas 2008-09-22 22:45:39 UTC (rev 362) +++ trunk/DAT Tools/DATBase.pas 2009-01-03 18:57:45 UTC (rev 363) @@ -109,36 +109,6 @@ function GetDATString:string; override; end; - TDATFinish = (finNone, finChrome, finPearlescent, finRubber, finMatteMettalic, finMetal); - - (* Represents the !COLOUR Meta Command *) - TDATColour=record - Name: string; - Code: Integer; - MainColor, EdgeColor: TColor; - Alpha: Byte; - Luminance: Byte; - Finish: TDATFinish; - MaterialParams: string; - end; - - TDATColourList = class(TObject) - private - FColorCollection: array of TDATColour; - procedure SetColour(Idx: Integer; Value: TDATColour); - function GetColour(Idx: Integer): TDATColour; - function GetCount: Integer; - - public - function IndexOfColourCode(Code: Integer): Integer; - function IndexOfColourName(Name: string): Integer; - procedure Add(Colour: TDATColour); overload; - procedure Clear; - - property Colour[idx: Integer]: TDATColour read GetColour write SetColour; default; - property Count:Integer read GetCount; - end; - TDATElement=class(TDATType) private intColor: Integer; @@ -330,6 +300,36 @@ property z4: Extended index 12 read GetCoordinate write SetCoordinate; end; + TDATFinish = (finNone, finChrome, finPearlescent, finRubber, finMatteMettalic, finMetal); + + (* Represents the !COLOUR Meta Command *) + TDATColour=record + Name: string; + Code: Integer; + MainColor, EdgeColor: TColor; + Alpha: Byte; + Luminance: Byte; + Finish: TDATFinish; + MaterialParams: string; + end; + + TDATColourList = class(TObject) + private + FColorCollection: array of TDATColour; + procedure SetColour(Idx: Integer; Value: TDATColour); + function GetColour(Idx: Integer): TDATColour; + function GetCount: Integer; + + public + function IndexOfColourCode(Code: Integer): Integer; + function IndexOfColourName(Name: string): Integer; + procedure Add(Colour: TDATColour); overload; + procedure Clear; + + property Colour[idx: Integer]: TDATColour read GetColour write SetColour; default; + property Count:Integer read GetCount; + end; + var LDrawBasePath: string = 'C:\Lego\LDRAW\'; Modified: trunk/DAT Tools/DATUtils.pas =================================================================== --- trunk/DAT Tools/DATUtils.pas 2008-09-22 22:45:39 UTC (rev 362) +++ trunk/DAT Tools/DATUtils.pas 2009-01-03 18:57:45 UTC (rev 363) @@ -44,6 +44,7 @@ function CheckIdentPoints(const points1, points2: array of TDATPoint): Boolean; function BGRtoRGB(clr: TColor): TColor; function MakeStandardDATColourList: TDATColourList; +function CombineGeometrics(const line1, line2: TDATGeometric): TDATQuad; implementation @@ -321,4 +322,55 @@ Result := false; end; +function CombineGeometrics(const line1, line2: TDATGeometric): TDATQuad; + +var + QuadPoints: array of TDATPoint; + j, k: Integer; + flag: Boolean; + +begin + for j := 1 to 3 do + begin + if Length(QuadPoints) > 0 then + begin + flag := false; + for k := 0 to Length(QuadPoints) - 1 do + if CheckSamePoint(line1.Point[j],QuadPoints[k]) then + flag := true; + if not flag then + begin + SetLength(QuadPoints, Length(QuadPoints) + 1); + QuadPoints[Length(QuadPoints) - 1] := line1.Point[j]; + end; + end + else + begin + SetLength(QuadPoints,1); + QuadPoints[0] := line1.Point[j]; + end; + flag := false; + for k := 0 to Length(QuadPoints) - 1 do + if CheckSamePoint(line2.Point[j],QuadPoints[k]) then + flag := true; + if not flag then + begin + SetLength(QuadPoints, Length(QuadPoints) + 1); + QuadPoints[Length(QuadPoints) - 1] := line2.Point[j]; + end; + end; + + if Length(QuadPoints) = 4 then + begin + Result := TDATQuad.Create; + Result.Point[1] := QuadPoints[0]; + Result.Point[2] := QuadPoints[1]; + Result.Point[3] := QuadPoints[2]; + Result.Point[4] := QuadPoints[3]; + Result.Color := line1.Color; + end + else + Result := nil; +end; + end. Modified: trunk/lddp/LDDesignPad.dpr =================================================================== --- trunk/lddp/LDDesignPad.dpr 2008-09-22 22:45:39 UTC (rev 362) +++ trunk/lddp/LDDesignPad.dpr 2009-01-03 18:57:45 UTC (rev 363) @@ -28,7 +28,6 @@ splash in 'splash.pas' {frSplash}, colordialog in 'colordialog.pas' {frColorDialog}, BMP2LDraw in 'BMP2LDraw.pas' {frBMP2LDrawMain}, - mpdexplorer in 'mpdexplorer.pas' {frModelTreeView}, windowsspecific in 'windowsspecific.pas', BezWindow in 'BezWindow.pas' {frmDATCurve}, dlgSubpart in 'dlgSubpart.pas' {frSubFile}, @@ -55,7 +54,6 @@ Application.CreateForm(TfrOptions, frOptions); Application.CreateForm(TfrColorDialog, frColorDialog); Application.CreateForm(TfrBMP2LDrawMain, frBMP2LDrawMain); - Application.CreateForm(TfrModelTreeView, frModelTreeView); Application.CreateForm(TfrmDATCurve, frmDATCurve); Application.CreateForm(TfrSubFile, frSubFile); Application.CreateForm(TfmSort, fmSort); Modified: trunk/lddp/main.dfm =================================================================== (Binary files differ) Modified: trunk/lddp/main.pas =================================================================== --- trunk/lddp/main.pas 2008-09-22 22:45:39 UTC (rev 362) +++ trunk/lddp/main.pas 2009-01-03 18:57:45 UTC (rev 363) @@ -171,8 +171,6 @@ acCheckforUpdate: TAction; acBMP2LDraw: TAction; ConvertBitmaptoLDraw1: TMenuItem; - acMPDExplorer: TAction; - mnuModelTree: TMenuItem; N7: TMenuItem; View1: TMenuItem; MarkAll1: TMenuItem; @@ -435,7 +433,6 @@ procedure acFileCloseAllExecute(Sender: TObject); procedure acReverseWindingExecute(Sender: TObject); procedure acCheckforUpdateExecute(Sender: TObject); - procedure acMPDExplorerExecute(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure acBMP2LDrawExecute(Sender: TObject); procedure acFindNextUpdate(Sender: TObject); @@ -536,7 +533,7 @@ uses about, options, colordialog, BezWindow, sorting, splash, - BMP2LDraw, mpdexplorer, dlgSubpart, windowsspecific, + BMP2LDraw, dlgSubpart, windowsspecific, DATModel, DATUtils, DATCheck, DATErrorFix, SciStreamDefault, StrUtils, Registry, IniFiles, SciResLang, Contnrs; @@ -1568,18 +1565,6 @@ end; end; -procedure TfrMain.acMPDExplorerExecute(Sender: TObject); -// Shows the model tree dialog -begin - if (Sender as TAction).Checked then - frMPDExplorer.Show - else - frMPDExplorer.Close; - - if frMPDExplorer.Visible then - frMPDExplorer.RestorePosition; -end; - // Other procedures procedure TfrMain.FileIsDropped(var Msg: TMessage); @@ -1715,7 +1700,7 @@ end; end; - // Check plugin type an enable as appropriate + // Check plugin type and enable as appropriate for i := 0 to PluginActionList.ActionCount - 1 do begin case (PluginActionList.Actions[i] as TAction).Tag of @@ -1729,10 +1714,6 @@ AutoComplete.Disabled := (editor.GetStyleAt(editor.GetCurrentPos) <> 16) and (editor.GetStyleAt(editor.GetCurrentPos) <> 17); - // Update the model tree view - if frMPDExplorer.Visible then - frMPDExplorer.FormActivate(nil); - // Check external changes if (not DocumentTabs.ActiveDocument.IsUntitled) and FileExists(DocumentTabs.ActiveDocument.FileName) then @@ -1769,8 +1750,6 @@ // Inits the app and shows model tree if needed begin AppInitialize; - frMPDExplorer.RestorePosition; - acMPDExplorer.Checked := frMPDExplorer.Visible; end; Procedure TfrMain.AppInitialize; Modified: trunk/lddp/mpdexplorer.dfm =================================================================== --- trunk/lddp/mpdexplorer.dfm 2008-09-22 22:45:39 UTC (rev 362) +++ trunk/lddp/mpdexplorer.dfm 2009-01-03 18:57:45 UTC (rev 363) @@ -1,4 +1,4 @@ -object frModelTreeView: TfrModelTreeView +object frMPDExplorer: TfrMPDExplorer Left = 688 Top = 149 BorderStyle = bsSizeToolWin Modified: trunk/lddp/mpdexplorer.pas =================================================================== --- trunk/lddp/mpdexplorer.pas 2008-09-22 22:45:39 UTC (rev 362) +++ trunk/lddp/mpdexplorer.pas 2009-01-03 18:57:45 UTC (rev 363) @@ -103,7 +103,7 @@ procedure TfrMPDExplorer.FormClose(Sender: TObject; var Action: TCloseAction); begin SaveFormValues; - frMain.acMPDExplorer.Checked := False; +// frMain.acMPDExplorer.Checked := False; end; procedure TfrMPDExplorer.FormCreate(Sender: TObject); Modified: trunk/lddp/options.dfm =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-09-22 22:45:55
|
Revision: 362 http://lddp.svn.sourceforge.net/lddp/?rev=362&view=rev Author: billthefish Date: 2008-09-22 22:45:39 +0000 (Mon, 22 Sep 2008) Log Message: ----------- More bugfixes Retool modeltreeview into mpdexplorer Modified Paths: -------------- trunk/lddp/LDDesignPad.dpr trunk/lddp/about.dfm trunk/lddp/about.pas trunk/lddp/dlgSubpart.pas trunk/lddp/errorbar.dfm trunk/lddp/errorbar.pas trunk/lddp/main.dfm trunk/lddp/main.pas Added Paths: ----------- trunk/lddp/mpdexplorer.dfm trunk/lddp/mpdexplorer.pas Removed Paths: ------------- trunk/lddp/modeltreeview.dfm trunk/lddp/modeltreeview.pas Modified: trunk/lddp/LDDesignPad.dpr =================================================================== --- trunk/lddp/LDDesignPad.dpr 2008-09-17 02:54:51 UTC (rev 361) +++ trunk/lddp/LDDesignPad.dpr 2008-09-22 22:45:39 UTC (rev 362) @@ -28,7 +28,7 @@ splash in 'splash.pas' {frSplash}, colordialog in 'colordialog.pas' {frColorDialog}, BMP2LDraw in 'BMP2LDraw.pas' {frBMP2LDrawMain}, - modeltreeview in 'modeltreeview.pas' {frModelTreeView}, + mpdexplorer in 'mpdexplorer.pas' {frModelTreeView}, windowsspecific in 'windowsspecific.pas', BezWindow in 'BezWindow.pas' {frmDATCurve}, dlgSubpart in 'dlgSubpart.pas' {frSubFile}, Modified: trunk/lddp/about.pas =================================================================== --- trunk/lddp/about.pas 2008-09-17 02:54:51 UTC (rev 361) +++ trunk/lddp/about.pas 2008-09-22 22:45:39 UTC (rev 362) @@ -61,7 +61,7 @@ Version.Caption := Version.Caption + ': ' + GetAppVersion(Application.ExeName) else Version.Caption := _('Version information not available'); - PageControl1.ActivePageIndex := 0; + PageControl1.ActivePageIndex := 0; end; procedure TfrAboutBox.FormCreate(Sender: TObject); Modified: trunk/lddp/dlgSubpart.pas =================================================================== --- trunk/lddp/dlgSubpart.pas 2008-09-17 02:54:51 UTC (rev 361) +++ trunk/lddp/dlgSubpart.pas 2008-09-22 22:45:39 UTC (rev 362) @@ -68,11 +68,12 @@ var SubFile: TStringList; FileType, subfilename: string; - i: Integer; + i, startline, endline: Integer; begin if ModalResult = mrOK then begin + frMain.editor.ExpandSelection(startline, endline); case rgType.ItemIndex of 1: FileType := 'Submodel'; 2: FileType := 'Part'; Modified: trunk/lddp/errorbar.dfm =================================================================== --- trunk/lddp/errorbar.dfm 2008-09-17 02:54:51 UTC (rev 361) +++ trunk/lddp/errorbar.dfm 2008-09-22 22:45:39 UTC (rev 362) @@ -57,7 +57,8 @@ OnSelectItem = ErrorListViewSelectItem end object JvDockClient1: TJvDockClient - DirectDrag = False + DirectDrag = True + DockStyle = frMain.JvDockDelphiStyle1 CustomDock = False Left = 8 Top = 16 Modified: trunk/lddp/errorbar.pas =================================================================== --- trunk/lddp/errorbar.pas 2008-09-17 02:54:51 UTC (rev 361) +++ trunk/lddp/errorbar.pas 2008-09-22 22:45:39 UTC (rev 362) @@ -147,6 +147,7 @@ procedure TfrErrorWindow.FormClose(Sender: TObject; var Action: TCloseAction); begin SaveFormValues; + frMain.acErrorList.Checked := False; end; procedure TfrErrorWindow.FormCreate(Sender: TObject); @@ -169,6 +170,7 @@ procedure TfrErrorWindow.FormShow(Sender: TObject); begin LoadFormValues; + frMain.acErrorList.Checked := True; end; // Error check actions Modified: trunk/lddp/main.pas =================================================================== --- trunk/lddp/main.pas 2008-09-17 02:54:51 UTC (rev 361) +++ trunk/lddp/main.pas 2008-09-22 22:45:39 UTC (rev 362) @@ -171,7 +171,7 @@ acCheckforUpdate: TAction; acBMP2LDraw: TAction; ConvertBitmaptoLDraw1: TMenuItem; - acModelTreeView: TAction; + acMPDExplorer: TAction; mnuModelTree: TMenuItem; N7: TMenuItem; View1: TMenuItem; @@ -384,6 +384,15 @@ acPoll5Seconds: TAction; acPollOnDemand: TAction; acPollCustom: TAction; + Polling1: TMenuItem; + EnablePolling1: TMenuItem; + PollToSelectedLine1: TMenuItem; + N6: TMenuItem; + N1SecondPollInterval1: TMenuItem; + N2SecondsPollInterval1: TMenuItem; + N5SecondsPollInterval1: TMenuItem; + CustomPollInterval1: TMenuItem; + CustomPollInterval2: TMenuItem; procedure acHomepageExecute(Sender: TObject); procedure acL3LabExecute(Sender: TObject); @@ -426,7 +435,7 @@ procedure acFileCloseAllExecute(Sender: TObject); procedure acReverseWindingExecute(Sender: TObject); procedure acCheckforUpdateExecute(Sender: TObject); - procedure acModelTreeViewExecute(Sender: TObject); + procedure acMPDExplorerExecute(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure acBMP2LDrawExecute(Sender: TObject); procedure acFindNextUpdate(Sender: TObject); @@ -487,6 +496,10 @@ procedure acPollEnablePollingExecute(Sender: TObject); procedure acPollToSelectedLineExecute(Sender: TObject); procedure acPollOnDemandExecute(Sender: TObject); + procedure acMoveSnapToGridExecute(Sender: TObject); + procedure editorModified(Sender: TObject; const position, + modificationType: Integer; text: PAnsiChar; const len, linesAdded, line, + foldLevelNow, foldLevelPrev: Integer); private TabRightClickIndex: Integer; @@ -500,7 +513,6 @@ procedure BuildMetaMenu; function tempFileName: string; procedure SetKeyWordList; - function CombineGeometrics(const line1, line2: TDATGeometric): TDATQuad; public PluginActionList: TActionList; @@ -524,7 +536,7 @@ uses about, options, colordialog, BezWindow, sorting, splash, - BMP2LDraw, modeltreeview, dlgSubpart, windowsspecific, + BMP2LDraw, mpdexplorer, dlgSubpart, windowsspecific, DATModel, DATUtils, DATCheck, DATErrorFix, SciStreamDefault, StrUtils, Registry, IniFiles, SciResLang, Contnrs; @@ -828,66 +840,9 @@ line2.Free; end; - -function tfrMain.CombineGeometrics(const line1, line2: TDATGeometric): TDATQuad; - -var - QuadPoints: array of TDATPoint; - j, k: Integer; - flag: Boolean; - -begin - for j := 1 to 3 do - begin - if Length(QuadPoints) > 0 then - begin - flag := false; - for k := 0 to Length(QuadPoints) - 1 do - if CheckSamePoint(line1.Point[j],QuadPoints[k]) then - flag := true; - if not flag then - begin - SetLength(QuadPoints, Length(QuadPoints) + 1); - QuadPoints[Length(QuadPoints) - 1] := line1.Point[j]; - end; - end - else - begin - SetLength(QuadPoints,1); - QuadPoints[0] := line1.Point[j]; - end; - flag := false; - for k := 0 to Length(QuadPoints) - 1 do - if CheckSamePoint(line2.Point[j],QuadPoints[k]) then - flag := true; - if not flag then - begin - SetLength(QuadPoints, Length(QuadPoints) + 1); - QuadPoints[Length(QuadPoints) - 1] := line2.Point[j]; - end; - end; - - if Length(QuadPoints) = 4 then - begin - Result := TDATQuad.Create; - Result.Point[1] := QuadPoints[0]; - Result.Point[2] := QuadPoints[1]; - Result.Point[3] := QuadPoints[2]; - Result.Point[4] := QuadPoints[3]; - Result.Color := line1.Color; - end - else - Result := nil; -end; - - procedure TfrMain.acSubFileExecute(Sender: TObject); // Save a block of text as a separate file and add the appropriate subfile line -var - startline, endline: Integer; - begin - editor.ExpandSelection(startline, endline); frSubfile.ShowModal; end; @@ -910,8 +865,8 @@ begin if editor.Modified then if MessageDlg(_('File has been modified. ' + #13#10 + - 'Do you want to save and then view the file in MLCad ' + #13#10 + - 'or cancel the operation?'), mtWarning, [mbOK, mbCancel], 0) =mrcancel then exit; + 'Do you want to save and then view the file in MLCad ' + #13#10 + + 'or cancel the operation?'), mtWarning, [mbOK, mbCancel], 0) =mrcancel then exit; acFileSaveExecute(Sender); if (not FileExists(frOptions.edMLCADDir.text+'\MLCAD.exe')) then begin MessageDlg(_('You have to specify a valid path to MLCad.exe first!'), mtError, [mbOK], 0); @@ -1225,7 +1180,7 @@ OutputFile := GetShortFileName(tempFileName); TempFile := TstringList.create; CommandLine := GetShortFileName(frOptions.edLSynthDir.text) + '\lsynthcp.exe '; - InputFile := GetShortFileName(ExtractFilePath(TempFileName)) + ExtractFileName(TempFileName); + InputFile := GetShortFileName(ExtractFilePath(tempFileName)) + ExtractFileName(tempFileName); editor.lines.SaveToFile(InputFile); TempFile.Add(CommandLine + ' ' + InputFile + ' ' + OutputFile); CommandFile := GetShortFileName(WinTempDir) + GetTmpFIleName + '.bat'; @@ -1408,6 +1363,59 @@ editor.RotateSelection(GridSetting.Angle, 0, 0, 1); end; +procedure TfrMain.acMoveSnapToGridExecute(Sender: TObject); + +var + DModel: TDATModel; + i, startline, endline: integer; + diffx, diffy, diffz: Extended; + +begin + editor.ExpandSelection(startline, endline); + + DModel := LDDPCreateDATModel; + DModel.ModelText := editor.SelText; + + for i := 0 to DModel.Count - 1 do + if DModel[i] is TDATElement then + begin + diffx := 0; + diffy := 0; + diffz := 0; + if DModel[i] is TDATGeometric then + with DModel[i] as TDATGeometric do + begin + diffx := MaxX - Trunc(MaxX / GridSetting.XStep) * GridSetting.XStep; + diffy := MaxY - Trunc(MaxY / GridSetting.YStep) * GridSetting.YStep; + diffz := MaxZ - Trunc(MaxZ / GridSetting.ZStep) * GridSetting.ZStep; + end + else if DModel[i] is TDATSubPart then + with DModel[i] as TDATSubPart do + begin + diffx := X - Trunc(X / GridSetting.XStep) * GridSetting.XStep; + diffy := Y - Trunc(Y / GridSetting.YStep) * GridSetting.YStep; + diffz := Z - Trunc(Z / GridSetting.ZStep) * GridSetting.ZStep; + end; + if diffx >= (GridSetting.XStep / 2) then + diffx := GridSetting.XStep - diffx + else + diffx := -diffx; + if diffy >= (GridSetting.YStep / 2) then + diffy := GridSetting.YStep - diffy + else + diffy := -diffy; + if diffz >= (GridSetting.ZStep / 2) then + diffz := GridSetting.ZStep - diffz + else + diffz := -diffz; + (DModel[i] as TDATElement).Translate(diffx, diffy, diffz); + end; + + editor.SelText := DModel.ModelText; + editor.SelectLines(startline, endline); + DModel.Free; +end; + procedure TfrMain.acMoveXNegExecute(Sender: TObject); begin editor.TranslateSelection(-GridSetting.XStep, 0, 0); @@ -1548,7 +1556,11 @@ procedure TfrMain.acErrorListExecute(Sender: TObject); begin - frErrorWindow.Visible := (Sender as TAction).Checked; + if (Sender as TAction).Checked then + frErrorWindow.Show + else + frErrorWindow.Close; + if frErrorWindow.Visible then begin frErrorWindow.RestorePosition; @@ -1556,12 +1568,16 @@ end; end; -procedure TfrMain.acModelTreeViewExecute(Sender: TObject); +procedure TfrMain.acMPDExplorerExecute(Sender: TObject); // Shows the model tree dialog begin - frModelTreeView.Visible := (Sender as TAction).Checked; - if frModelTreeView.Visible then - frModelTreeView.RestorePosition; + if (Sender as TAction).Checked then + frMPDExplorer.Show + else + frMPDExplorer.Close; + + if frMPDExplorer.Visible then + frMPDExplorer.RestorePosition; end; // Other procedures @@ -1635,17 +1651,12 @@ end; end; -procedure TfrMain.editorUpdateUI(Sender: TObject); -var - i: Integer; - DLine: TDATType; - fileage: TDateTime; - +procedure TfrMain.editorModified(Sender: TObject; const position, + modificationType: Integer; text: PAnsiChar; const len, linesAdded, line, + foldLevelNow, foldLevelPrev: Integer); begin DocumentTabs.ActiveDocument.Modified := editor.Modified; - - // Update panel values - if editor.Modified then + if DocumentTabs.ActiveDocument.Modified then begin if DocumentTabs.ActiveDocument.IsUntitled then DocumentTabs.ActiveDocument.TabName := @@ -1665,7 +1676,16 @@ ExtractFileName(DocumentTabs.ActiveDocument.FileName); Statusbar.Panels[2].Text:=''; end; +end; +procedure TfrMain.editorUpdateUI(Sender: TObject); +var + i: Integer; + DLine: TDATType; + fileage: TDateTime; + +begin + // Update panel values StatusBar.Panels[1].text := IntToStr(editor.CaretY) + ':' + IntToStr(editor.CaretX); // Set undo and redo state @@ -1710,8 +1730,8 @@ (editor.GetStyleAt(editor.GetCurrentPos) <> 17); // Update the model tree view - if frModelTreeView.Visible then - frModelTreeView.FormActivate(nil); + if frMPDExplorer.Visible then + frMPDExplorer.FormActivate(nil); // Check external changes if (not DocumentTabs.ActiveDocument.IsUntitled) and @@ -1749,8 +1769,8 @@ // Inits the app and shows model tree if needed begin AppInitialize; - frModelTreeView.RestorePosition; - acModelTreeView.Checked := frModelTreeView.Visible; + frMPDExplorer.RestorePosition; + acMPDExplorer.Checked := frMPDExplorer.Visible; end; Procedure TfrMain.AppInitialize; @@ -1799,8 +1819,8 @@ //Set editor properties filename and load properties EditorPropertyLoader.FileName := GetShellFolderPath('AppData') + '\LDDP\' + EditorPropertyLoader.FileName; -// if FileExists(EditorPropertyLoader.FileName) then -// EditorPropertyLoader.Load; + if FileExists(EditorPropertyLoader.FileName) then + EditorPropertyLoader.Load; DocumentTabs.ActiveDocument.Highlighter := 'LDraw'; //Set InstallDir in registry for legacy plugin support @@ -1838,6 +1858,7 @@ finally Screen.Cursor := crDefault; SplashScreen.Release; + Initialized := True; end; end; @@ -1897,6 +1918,7 @@ sc: TSearchRec; begin + // Set official part autocomplete with LanguageManager.LanguageList.Find('LDraw').Keywords[0].Keywords do begin Clear; @@ -1918,6 +1940,7 @@ until FindNext(sc) <> 0; FindClose(sc); end; + // Set Meta command auto complete with LanguageManager.LanguageList.Find('LDraw').Keywords[1].Keywords do CommaText := ReadUIConfigValue('MetaCommands'); end; @@ -2018,7 +2041,7 @@ if not Initialized then begin - splashscreen.lbState.Caption:=_('Initializing plugin:') + ' ' + sr.Name; + splashscreen.lbState.Caption := _('Initializing plugin:') + ' ' + sr.Name; splashscreen.Update; end; Deleted: trunk/lddp/modeltreeview.pas =================================================================== --- trunk/lddp/modeltreeview.pas 2008-09-17 02:54:51 UTC (rev 361) +++ trunk/lddp/modeltreeview.pas 2008-09-22 22:45:39 UTC (rev 362) @@ -1,174 +0,0 @@ -{These sources are copyright (C) 2003-2008 the LDDP project contributors. - -This source is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This source is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - --------------------------------------------------------------------------------} -unit modeltreeview; - -interface - -uses - gnugettext, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, JvComponentBase, - JvDockControlForm; - -type - TfrModelTreeView = class(TForm) - tvModel: TTreeView; - JvDockClient1: TJvDockClient; - procedure tvModelDblClick(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure FormDestroy(Sender: TObject); - procedure FormActivate(Sender: TObject); - private - public - procedure AddNodes(ANode: TTreeNode; AString: string); - procedure LoadFormValues; - procedure SaveFormValues; - procedure RestorePosition; - end; - -var - frModelTreeView: TfrModelTreeView; - -implementation - -{$R *.dfm} - -uses - IniFiles, main, windowsspecific, DATModel, DATBase; - - -procedure TfrModelTreeView.AddNodes(ANode: TTreeNode; AString: string); - -var - I: Integer; - CurrentNode: TTreeNode; - DModel: TDATModel; - -begin - if FileExists(ExtractFilePath(frMain.DocumentTabs.ActiveDocument.FileName) + AString) then - begin - DModel := TDATModel.Create; - DModel.LoadModel(ExtractFilePath(frMain.DocumentTabs.ActiveDocument.FileName) + AString); - CurrentNode := tvModel.Items.AddChild(ANode, AString); - for i := 0 to DModel.Count - 1 do - if DModel[i] is TDATSubPart then - AddNodes(CurrentNode, (DModel[i] as TDATSubPart).FileName); - DModel.Free - end; -end; - -procedure TfrModelTreeView.tvModelDblClick(Sender: TObject); -begin - frMain.OpenFile(ExtractFilePath(frMain.DocumentTabs.ActiveDocument.FileName) + tvModel.Selected.Text); -end; - -procedure TfrModelTreeView.FormActivate(Sender: TObject); - -var - RootNode: TTreeNode; - i: Integer; - DModel: TDATModel; - -begin - tvModel.Items.Clear; - DModel := TDATModel.Create; - DModel.ModelText := frMain.editor.Lines.Text; - with tvModel.Items do - begin - RootNode := Add(nil, ExtractFileName(frMain.DocumentTabs.ActiveDocument.FileName)); - for i := 0 to DModel.Count - 1 do - if DModel[i] is TDATSubPart then - AddNodes(RootNode, (DModel[i] as TDATSubPart).FileName); - RootNode.Expanded := True; - end; - DModel.Free; -end; - -procedure TfrModelTreeView.FormCreate(Sender: TObject); -begin - TranslateComponent(self); - LoadFormValues; -end; - -procedure TfrModelTreeView.FormDestroy(Sender: TObject); -begin - SaveFormValues; -end; - -procedure TfrModelTreeView.LoadFormValues; -// Loads form values from the LDDP.ini file -var - LDDPini: TIniFile; - IniSection: string; - -begin - LDDPini := TIniFile.Create(IniFilePath + '\LDDP.ini'); - - Inisection := 'LDDP ModelView'; - - Left := LDDPini.ReadInteger(IniSection, 'frModelTreeView_Left', Left); - Top := LDDPini.ReadInteger(IniSection, 'frModelTreeView_Top', Top); - Width := LDDPini.ReadInteger(IniSection, 'frModelTreeView_Width', Width); - Height := LDDPini.ReadInteger(IniSection, 'frModelTreeView_Height', Height); - - LDDPini.Free; -end; - -procedure TfrModelTreeView.SaveFormValues; -// Saves form values to the LDDP.ini file -var - LDDPini: TIniFile; - IniSection: string; - -begin - LDDPini := TIniFile.Create(IniFilePath + '\LDDP.ini'); - - // Save Main position, size, and toolbar visibility - Inisection := 'LDDP ModelView'; - LDDPini.EraseSection(IniSection); - - LDDPini.WriteInteger(IniSection, 'frModelTreeView_Left', Left); - LDDPini.WriteInteger(IniSection, 'frModelTreeView_Top', Top); - LDDPini.WriteInteger(IniSection, 'frModelTreeView_Width', Width); - LDDPini.WriteInteger(IniSection, 'frModelTreeView_Height', Height); - LDDPini.WriteBool(IniSection, 'frModelTreeView_Floating', Floating); - - LDDPini.UpdateFile; - LDDPini.Free; -end; - -procedure TfrModelTreeView.RestorePosition; - -var - LDDPini: TIniFile; - IniSection: string; - floating: Boolean; - -begin - LDDPini := TIniFile.Create(IniFilePath + '\LDDP.ini'); - - Inisection := 'LDDP ModelView'; - - floating := LDDPini.ReadBool(IniSection, 'frModelTreeView_Floating', False); - - if Visible and not floating then - ManualDock(frMain.JvDockServer1.LeftDockPanel, nil, alLeft); - - LDDPini.Free; -end; - -end. Added: trunk/lddp/mpdexplorer.dfm =================================================================== --- trunk/lddp/mpdexplorer.dfm (rev 0) +++ trunk/lddp/mpdexplorer.dfm 2008-09-22 22:45:39 UTC (rev 362) @@ -0,0 +1,42 @@ +object frModelTreeView: TfrModelTreeView + Left = 688 + Top = 149 + BorderStyle = bsSizeToolWin + Caption = 'Model Tree View' + ClientHeight = 348 + ClientWidth = 344 + Color = clBtnFace + DockSite = True + DragKind = dkDock + DragMode = dmAutomatic + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + OnActivate = FormActivate + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object tvModel: TTreeView + Left = 0 + Top = 0 + Width = 344 + Height = 348 + Align = alClient + Indent = 19 + TabOrder = 0 + OnDblClick = tvModelDblClick + end + object JvDockClient1: TJvDockClient + DirectDrag = False + DockStyle = frMain.JvDockDelphiStyle1 + CustomDock = False + Left = 8 + Top = 8 + end +end Added: trunk/lddp/mpdexplorer.pas =================================================================== --- trunk/lddp/mpdexplorer.pas (rev 0) +++ trunk/lddp/mpdexplorer.pas 2008-09-22 22:45:39 UTC (rev 362) @@ -0,0 +1,187 @@ +{These sources are copyright (C) 2003-2008 the LDDP project contributors. + +This source is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This source is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +-------------------------------------------------------------------------------} +unit mpdexplorer; + +interface + +uses + gnugettext, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, JvComponentBase, + JvDockControlForm; + +type + TfrMPDExplorer = class(TForm) + tvModel: TTreeView; + JvDockClient1: TJvDockClient; + procedure tvModelDblClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure FormActivate(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + private + public + procedure AddNodes(ANode: TTreeNode; AString: string); + procedure LoadFormValues; + procedure SaveFormValues; + procedure RestorePosition; + end; + +var + frMPDExplorer: TfrMPDExplorer; + +implementation + +{$R *.dfm} + +uses + IniFiles, main, windowsspecific, DATModel, DATBase; + + +procedure TfrMPDExplorer.AddNodes(ANode: TTreeNode; AString: string); + +var + I: Integer; + CurrentNode: TTreeNode; + DModel: TDATModel; + +begin + if FileExists(ExtractFilePath(frMain.DocumentTabs.ActiveDocument.FileName) + AString) then + begin + DModel := TDATModel.Create; + DModel.LoadModel(ExtractFilePath(frMain.DocumentTabs.ActiveDocument.FileName) + AString); + CurrentNode := tvModel.Items.AddChild(ANode, AString); + for i := 0 to DModel.Count - 1 do + if DModel[i] is TDATSubPart then + AddNodes(CurrentNode, (DModel[i] as TDATSubPart).FileName); + DModel.Free + end; +end; + +procedure TfrMPDExplorer.tvModelDblClick(Sender: TObject); +begin + frMain.OpenFile(ExtractFilePath(frMain.DocumentTabs.ActiveDocument.FileName) + tvModel.Selected.Text); +end; + +procedure TfrMPDExplorer.FormActivate(Sender: TObject); + +var + RootNode: TTreeNode; + i: Integer; + DModel: TDATModel; + +begin + tvModel.Items.Clear; + DModel := TDATModel.Create; + DModel.ModelText := frMain.editor.Lines.Text; + with tvModel.Items do + begin + RootNode := Add(nil, ExtractFileName(frMain.DocumentTabs.ActiveDocument.FileName)); + for i := 0 to DModel.Count - 1 do + if DModel[i] is TDATSubPart then + AddNodes(RootNode, (DModel[i] as TDATSubPart).FileName); + RootNode.Expanded := True; + end; + DModel.Free; +end; + +procedure TfrMPDExplorer.FormClose(Sender: TObject; var Action: TCloseAction); +begin + SaveFormValues; + frMain.acMPDExplorer.Checked := False; +end; + +procedure TfrMPDExplorer.FormCreate(Sender: TObject); +begin + TranslateComponent(self); +end; + +procedure TfrMPDExplorer.FormDestroy(Sender: TObject); +begin + SaveFormValues; +end; + +procedure TfrMPDExplorer.FormShow(Sender: TObject); +begin + LoadFormValues; + frMain.acMPDExplorer.Checked := True; +end; + +procedure TfrMPDExplorer.LoadFormValues; +// Loads form values from the LDDP.ini file +var + LDDPini: TIniFile; + IniSection: string; + +begin + LDDPini := TIniFile.Create(IniFilePath + '\LDDP.ini'); + + Inisection := 'LDDP MPDExplorer'; + + Left := LDDPini.ReadInteger(IniSection, 'frMPDExplorer_Left', Left); + Top := LDDPini.ReadInteger(IniSection, 'frMPDExplorer_Top', Top); + Width := LDDPini.ReadInteger(IniSection, 'frMPDExplorer_Width', Width); + Height := LDDPini.ReadInteger(IniSection, 'frMPDExplorer_Height', Height); + + LDDPini.Free; +end; + +procedure TfrMPDExplorer.SaveFormValues; +// Saves form values to the LDDP.ini file +var + LDDPini: TIniFile; + IniSection: string; + +begin + LDDPini := TIniFile.Create(IniFilePath + '\LDDP.ini'); + + // Save Main position, size, and toolbar visibility + Inisection := 'LDDP MPDExplorer'; + LDDPini.EraseSection(IniSection); + + LDDPini.WriteInteger(IniSection, 'frMPDExplorer_Left', Left); + LDDPini.WriteInteger(IniSection, 'frMPDExplorer_Top', Top); + LDDPini.WriteInteger(IniSection, 'frMPDExplorer_Width', Width); + LDDPini.WriteInteger(IniSection, 'frMPDExplorer_Height', Height); + LDDPini.WriteBool(IniSection, 'frMPDExplorer_Floating', Floating); + + LDDPini.UpdateFile; + LDDPini.Free; +end; + +procedure TfrMPDExplorer.RestorePosition; + +var + LDDPini: TIniFile; + IniSection: string; + floating: Boolean; + +begin + LDDPini := TIniFile.Create(IniFilePath + '\LDDP.ini'); + + Inisection := 'LDDP ModelView'; + + floating := LDDPini.ReadBool(IniSection, 'frMPDExplorer_Floating', False); + + if Visible and not floating then + ManualDock(frMain.JvDockServer1.LeftDockPanel, nil, alLeft); + + LDDPini.Free; +end; + +end. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-09-16 19:54:53
|
Revision: 361 http://lddp.svn.sourceforge.net/lddp/?rev=361&view=rev Author: billthefish Date: 2008-09-17 02:54:51 +0000 (Wed, 17 Sep 2008) Log Message: ----------- Added Paths: ----------- trunk/gfx/gridcourse.bmp trunk/gfx/gridfine.bmp trunk/gfx/gridmed.bmp Property changes on: trunk/gfx/gridcourse.bmp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/gridfine.bmp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/gridmed.bmp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-09-16 19:51:45
|
Revision: 360 http://lddp.svn.sourceforge.net/lddp/?rev=360&view=rev Author: billthefish Date: 2008-09-17 02:51:40 +0000 (Wed, 17 Sep 2008) Log Message: ----------- Modified Paths: -------------- trunk/Current Build/LDDesignPad.exe trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.dpk trunk/DAT Tools/DATCheck.pas trunk/lddp/commonprocs.pas trunk/lddp/main.dfm trunk/lddp/main.pas trunk/lddp/options.dfm trunk/lddp/options.pas trunk/lddp/windowsspecific.pas Modified: trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas =================================================================== --- trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas 2008-09-12 10:45:47 UTC (rev 359) +++ trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas 2008-09-17 02:51:40 UTC (rev 360) @@ -24,6 +24,9 @@ procedure AutoRound; procedure SetLineColor(line, color: Integer); function GetLineColor(line: Integer): Integer; + procedure RotateSelection(w, x, y, z: Extended); + procedure TranslateSelection(x, y, z: Extended); + procedure ReverseWinding; published property PositionDecimalPlaces: Byte read FPntAcc write FPntAcc default 15; property RotationDecimalPlaces: Byte read FRotAcc write FRotAcc default 15; @@ -123,6 +126,57 @@ DModel.Free; end; +procedure TScintillaLDDP.ReverseWinding; +var + startline, endline, i : Integer; + DModel: TDATModel; + +begin + if FOnlyRoundDuringAutoRound then + DModel := TDATModel.Create + else + DModel := CreateDATModel(PositionDecimalPlaces, RotationDecimalPlaces); + + ExpandSelection(startline, endline); + + if SelLength <> 0 then + begin + DModel.ModelText := SelText; + + for i := 0 to DModel.Count-1 do + if DModel[i] is TDATPolygon then + (DModel[i] as TDATPolygon).ReverseWinding; + + SelText := DModel.ModelText; + + SelectLines(startline, endline); + + DModel.Free; + end; +end; + +procedure TScintillaLDDP.RotateSelection(w, x, y, z: Extended); +var + DModel: TDATModel; + startline,endline: Integer; + +begin + ExpandSelection(startline, endline); + + if FOnlyRoundDuringAutoRound then + DModel := TDATModel.Create + else + DModel := CreateDATModel(PositionDecimalPlaces, RotationDecimalPlaces); + + DModel.ModelText := SelText; + + DModel.Rotate(w, x, y, z); + + SelText := DModel.ModelText; + SelectLines(startline, endline); + DModel.Free; +end; + procedure TScintillaLDDP.AutoRound; var DModel: TDATModel; @@ -156,6 +210,28 @@ end; end; +procedure TScintillaLDDP.TranslateSelection(x, y, z: Extended); +var + DModel: TDATModel; + startline,endline: Integer; + +begin + ExpandSelection(startline, endline); + + if FOnlyRoundDuringAutoRound then + DModel := TDATModel.Create + else + DModel := CreateDATModel(PositionDecimalPlaces, RotationDecimalPlaces); + + DModel.ModelText := SelText; + + DModel.Translate(x, y, z); + + SelText := DModel.ModelText; + SelectLines(startline, endline); + DModel.Free; +end; + function TScintillaLDDP.GetLineColor(line: Integer): Integer; var Modified: trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.dpk =================================================================== --- trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.dpk 2008-09-12 10:45:47 UTC (rev 359) +++ trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.dpk 2008-09-17 02:51:40 UTC (rev 360) @@ -30,6 +30,9 @@ vcl; contains - SciScintillaLDDP in 'SciScintillaLDDP.pas'; + SciScintillaLDDP in 'SciScintillaLDDP.pas', + DATBase in '..\..\DAT Tools\DATBase.pas', + DATUtils in '..\..\DAT Tools\DATUtils.pas', + DATModel in '..\..\DAT Tools\DATModel.pas'; end. Modified: trunk/DAT Tools/DATCheck.pas =================================================================== --- trunk/DAT Tools/DATCheck.pas 2008-09-12 10:45:47 UTC (rev 359) +++ trunk/DAT Tools/DATCheck.pas 2008-09-17 02:51:40 UTC (rev 360) @@ -37,12 +37,13 @@ deColor24Illegal, deNil); TDATCoplanerType = (ctDet, ctDist, ctNormalAngle); + TDATCollinearType = (clPoints123, clPoints124, clPoints134, clPoints234, clPointsAll); TDATError = class(TObject) ErrorType: TDATErrorType; Row: Byte; CollinearValue: Extended; - CollinearVertices: array[1..3] of Integer; + CollinearType: TDATCollinearType; IsBowtieType1423: Boolean; CoplanerValue: Extended; CoplanerType: TDATCoplanerType; @@ -86,7 +87,7 @@ ErrorType := AError.ErrorType; Row := AError.Row; CollinearValue := AError.CollinearValue; - CollinearVertices := AError.CollinearVertices; + CollinearType := AError.CollinearType; IsBowtieType1423 := AError.IsBowtieType1423; CoplanerValue := AError.CoplanerValue; CoplanerType := AError.CoplanerType; @@ -317,6 +318,7 @@ error := TDATError.Create; error.ErrorType := deCollinearVertices; error.CollinearValue := dp; + error.CollinearType := clPointsAll; Result.Add(error); end; end; @@ -353,9 +355,7 @@ error := TDATError.Create;; error.ErrorType := deCollinearVertices; error.CollinearValue := cp; - error.CollinearVertices[1] := 1; - error.CollinearVertices[2] := 2; - error.CollinearVertices[3] := 3; + error.CollinearType := clPoints123; Result.Add(error); Exit; end; @@ -366,9 +366,7 @@ error := TDATError.Create;; error.ErrorType := deCollinearVertices; error.CollinearValue := cp; - error.CollinearVertices[1] := 1; - error.CollinearVertices[2] := 2; - error.CollinearVertices[3] := 4; + error.CollinearType := clPoints124; Result.Add(error); Exit; end; @@ -379,9 +377,7 @@ error := TDATError.Create;; error.ErrorType := deCollinearVertices; error.CollinearValue := cp; - error.CollinearVertices[1] := 1; - error.CollinearVertices[2] := 3; - error.CollinearVertices[3] := 4; + error.CollinearType := clPoints134; Result.Add(error); Exit; end; @@ -392,9 +388,7 @@ error := TDATError.Create;; error.ErrorType := deCollinearVertices; error.CollinearValue := cp; - error.CollinearVertices[1] := 2; - error.CollinearVertices[2] := 3; - error.CollinearVertices[3] := 4; + error.CollinearType := clPoints234; Result.Add(error); Exit; end; @@ -544,17 +538,17 @@ deSigularMatrix: Result := strSingularMatrix; deIdenticalVertices: Result := strIdenticalVertices; deCollinearVertices: - if (error.CollinearVertices[1] > 0) and - (error.CollinearVertices[2] > 0) and - (error.CollinearVertices[3] > 0) then - Result := 'Points ' + IntToStr(error.CollinearVertices[1]) + ', ' + - IntToStr(error.CollinearVertices[2]) + ', and ' + - IntToStr(error.CollinearVertices[3]) + ' have ' + - strCollinearVertices + ' (' + - FloatToStr(error.CollinearValue) + ')' - else - Result := strCollinearVertices + ' (' + - FloatToStr(error.CollinearValue) + ')'; + begin + case error.CollinearType of + clPoints123: Result := 'Points 1, 2, and 3 have '; + clPoints124: Result := 'Points 1, 2, and 4 have '; + clPoints134: Result := 'Points 1, 3, and 4 have '; + clPoints234: Result := 'Points 2, 3, and 4 have '; + clPointsAll: Result := ''; + end; + Result := Result + strCollinearVertices + ' (' + + FloatToStr(error.CollinearValue) + ')' + end; deConcaveQuad: if error.SplitOn24 then Result := strConcaveSplit24 Modified: trunk/lddp/commonprocs.pas =================================================================== --- trunk/lddp/commonprocs.pas 2008-09-12 10:45:47 UTC (rev 359) +++ trunk/lddp/commonprocs.pas 2008-09-17 02:51:40 UTC (rev 360) @@ -20,8 +20,16 @@ interface uses - DATModel, Menus; + DATModel, Menus, Classes; +type + TGridSettings = record + XStep, YStep, ZStep: Extended; + Angle: Extended; + end; + + TGridType = (gtCoarse, gtMedium, gtFine); + function CreateMenuItem(const Caption, Hint: string; ParentMenuItem: TMenuItem): TMenuItem; function StripEndingCRLF(const str: string): string; function IsBlankLine(line: string): Boolean; Modified: trunk/lddp/main.pas =================================================================== --- trunk/lddp/main.pas 2008-09-12 10:45:47 UTC (rev 359) +++ trunk/lddp/main.pas 2008-09-17 02:51:40 UTC (rev 360) @@ -28,7 +28,7 @@ SciScintillaBase, SciScintillaMemo, SciScintilla, SciScintillaLDDP, SciDocTabCtrl, Windows, Graphics, Forms, Messages, SysUtils, Types, StdCtrls, ShellAPI, sciPrint, SciScintillaOptionsFrm, SciAutoComplete, - SciCallTips, DATBase, AppEvnts; + SciCallTips, DATBase, AppEvnts, commonprocs; type TfrMain = class(TForm) @@ -48,7 +48,7 @@ acincIndent: TAction; acInline: TAction; acInsertPartHeader: TAction; - acInsertUpdateLine: TAction; + acInsertHistoryStatement: TAction; acL3Lab: TAction; acLDView: TAction; acMLCad: TAction; @@ -138,8 +138,6 @@ CopyItem: TMenuItem; PasteItem: TMenuItem; SelectAll1: TMenuItem; - Comment1: TMenuItem; - Uncomment1: TMenuItem; Toolbars: TMenuItem; mnuFile: TMenuItem; mnuEditing: TMenuItem; @@ -161,8 +159,6 @@ acMLCad1: TMenuItem; acL3Lab1: TMenuItem; mnuUserDefined: TMenuItem; - N6: TMenuItem; - TrimLines1: TMenuItem; InlinePart2: TMenuItem; Help1: TMenuItem; HelpAboutItem: TMenuItem; @@ -212,11 +208,9 @@ CombineTrianglesIntoQuad2: TMenuItem; SortByPosition1: TMenuItem; acRandomizeColors: TAction; - Processing1: TMenuItem; RandomizeColorsinSelection1: TMenuItem; RandomizeColorsinSelection2: TMenuItem; mnuPollOnRequest: TMenuItem; - N24: TMenuItem; acMirrorX: TAction; acMirrorY: TAction; acMirrorZ: TAction; @@ -248,13 +242,10 @@ tbnColor13: TToolButton; tbnColor14: TToolButton; tbnColor15: TToolButton; - UnIndent1: TMenuItem; - acincIdent1: TMenuItem; pmExternal: TPopupMenu; pmuColorReplace: TMenuItem; acSubFile: TAction; SubfileSelection1: TMenuItem; - N25: TMenuItem; SubfileSelection2: TMenuItem; Sort1: TMenuItem; http: TIdHTTP; @@ -348,6 +339,51 @@ acViewMovementToolbar: TAction; acViewEditToolbar: TAction; acViewColorReplaceToolbar: TAction; + IncreaseIndent1: TMenuItem; + DecreaseIndent1: TMenuItem; + Comment2: TMenuItem; + Uncomment2: TMenuItem; + rimBlankLines1: TMenuItem; + tbrGrid: TToolBar; + ToolButton6: TToolButton; + ToolButton24: TToolButton; + ToolButton33: TToolButton; + acMoveGridFine: TAction; + acMoveGridMedium: TAction; + acMoveGridCoarse: TAction; + acViewGridToolbar: TAction; + N11: TMenuItem; + Move1: TMenuItem; + Rotate1: TMenuItem; + RotateX1: TMenuItem; + X1: TMenuItem; + Y1: TMenuItem; + Y2: TMenuItem; + Z1: TMenuItem; + Z2: TMenuItem; + RotateX2: TMenuItem; + RotateX3: TMenuItem; + RotateY1: TMenuItem; + RotateY2: TMenuItem; + RotateZ1: TMenuItem; + RotaeZ1: TMenuItem; + GridGranularity1: TMenuItem; + ModelTree1: TMenuItem; + MediumGrid1: TMenuItem; + FineGrid1: TMenuItem; + N12: TMenuItem; + acMoveSnapToGrid: TAction; + SnaptoGrid1: TMenuItem; + Movement1: TMenuItem; + N9: TMenuItem; + N15: TMenuItem; + acPollEnablePolling: TAction; + acPollToSelectedLine: TAction; + acPoll1Second: TAction; + acPoll2Seconds: TAction; + acPoll5Seconds: TAction; + acPollOnDemand: TAction; + acPollCustom: TAction; procedure acHomepageExecute(Sender: TObject); procedure acL3LabExecute(Sender: TObject); @@ -370,7 +406,7 @@ procedure acFindNextExecute(Sender: TObject); procedure acincIndentExecute(Sender: TObject); procedure acInsertPartHeaderExecute(Sender: TObject); - procedure acInsertUpdateLineExecute(Sender: TObject); + procedure acInsertHistoryStatementExecute(Sender: TObject); procedure acMRUListExecute(Sender: TObject); procedure acRedoExecute(Sender: TObject); procedure acReplaceColorExecute(Sender: TObject); @@ -384,11 +420,6 @@ procedure FormDblClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure HelpAboutExecute(Sender: TObject); - procedure mnuEnablePollingClick(Sender: TObject); - procedure mnuPollToSelectedClick(Sender: TObject); - procedure mnuPollEvery5secClick(Sender: TObject); - procedure mnuPollEvery1secClick(Sender: TObject); - procedure mnuPollevery2secClick(Sender: TObject); procedure tmPollTimer(Sender: TObject); procedure acFileSaveAsExecute(Sender: TObject); procedure acFileOpenExecute(Sender: TObject); @@ -405,7 +436,6 @@ procedure MetaMenuClick(Sender: TObject); procedure acTriangleCombineExecute(Sender: TObject); procedure acRandomizeColorsExecute(Sender: TObject); - procedure mnuPollOnRequestClick(Sender: TObject); procedure acMirrorExecute(Sender: TObject); procedure acColorReplaceShortcutExecute(Sender: TObject); procedure tbUserDefinedClick(Sender: TObject); @@ -423,7 +453,6 @@ procedure DocumentTabsChange(Sender: TObject); procedure AppInstCmdLineReceived(Sender: TObject; CmdLine: TStrings); - procedure mnuPollOnCustomIntervalClick(Sender: TObject); procedure CloseFile1Click(Sender: TObject); procedure editorDwellStart(Sender: TObject; const position: Integer; x, y: Integer); @@ -439,10 +468,33 @@ procedure acViewEditToolbarExecute(Sender: TObject); procedure acViewColorReplaceToolbarExecute(Sender: TObject); procedure acMoveXPosExecute(Sender: TObject); + procedure acMoveXNegExecute(Sender: TObject); + procedure acMoveYPosExecute(Sender: TObject); + procedure acMoveYNegExecute(Sender: TObject); + procedure acMoveZPosExecute(Sender: TObject); + procedure acMoveZNegExecute(Sender: TObject); + procedure acMoveRotXPosExecute(Sender: TObject); + procedure acMoveRotXNegExecute(Sender: TObject); + procedure acMoveRotYPosExecute(Sender: TObject); + procedure acMoveRotYNegExecute(Sender: TObject); + procedure acMoveRotZPosExecute(Sender: TObject); + procedure acMoveRotZNegExecute(Sender: TObject); + procedure acViewGridToolbarExecute(Sender: TObject); + procedure acMoveGridCoarseExecute(Sender: TObject); + procedure acMoveGridMediumExecute(Sender: TObject); + procedure acMoveGridFineExecute(Sender: TObject); + procedure SetPollTime(Sender: TObject); + procedure acPollEnablePollingExecute(Sender: TObject); + procedure acPollToSelectedLineExecute(Sender: TObject); + procedure acPollOnDemandExecute(Sender: TObject); - protected + private TabRightClickIndex: Integer; Initialized: Boolean; + GridSetting: TGridSettings; + GridType: TGridType; + + protected procedure AppInitialize; procedure FileIsDropped(var Msg : TMessage); message WM_DropFiles ; procedure BuildMetaMenu; @@ -457,7 +509,7 @@ procedure OpenFile(filename: string); procedure CloseFile(DocNumber: Integer); procedure SaveFile(DocNumber: Integer); - procedure UpdateMRU(NewFileName: TFileName= ''); + procedure UpdateMRU(NewFileName: TFileName = ''); procedure LoadFormValues; procedure SaveFormValues; end; @@ -472,12 +524,13 @@ uses about, options, colordialog, BezWindow, sorting, splash, - BMP2LDraw, modeltreeview, dlgSubpart, commonprocs, windowsspecific, + BMP2LDraw, modeltreeview, dlgSubpart, windowsspecific, DATModel, DATUtils, DATCheck, DATErrorFix, SciStreamDefault, - STRUtils, Registry, IniFiles, SciResLang, Contnrs; + StrUtils, Registry, IniFiles, SciResLang, Contnrs; var splashscreen: TfrSplash; + // General Editor Actions procedure TfrMain.acEditCutExecute(Sender: TObject); @@ -563,7 +616,7 @@ editor.Modified := true; end; -procedure TfrMain.acInsertUpdateLineExecute(Sender: TObject); +procedure TfrMain.acInsertHistoryStatementExecute(Sender: TObject); // Insert standard update line begin editor.Lines.Insert(editor.LineFromPosition(editor.GetCurrentPos), @@ -681,33 +734,12 @@ procedure TfrMain.acReverseWindingExecute(Sender: TObject); // Reverse the winding of a block of text -var - startline, endline, i : Integer; - DATModel1: TDATModel; - begin - DATModel1 := LDDPCreateDATModel; - - editor.ExpandSelection(startline, endline); - - if editor.SelLength <> 0 then - begin - DATModel1.ModelText := editor.SelText; - - for i := 0 to DATModel1.Count-1 do - if DATModel1[i] is TDATPolygon then - (DATModel1[i] as TDATPolygon).ReverseWinding; - - editor.SelText := DATModel1.ModelText; - - editor.SelectLines(startline, endline); - - DATModel1.Free; - end; + editor.ReverseWinding; end; procedure TfrMain.acTriangleCombineExecute(Sender: TObject); -// Combine 2 triangle commnds into a quad command +// Combine 2 triangle commands into a quad command // Also checks for non coplanarity and issues a warning var DModel: TDATModel; @@ -1105,9 +1137,35 @@ frOptions.ShowModal; editor.OnlyRoundDuringAutoRound := frOptions.cboAutoRoundOnly.Checked; + editor.PositionDecimalPlaces := frOptions.sePntAcc.Value; + editor.RotationDecimalPlaces := frOptions.seRotAcc.Value; mnuUserDefined.Enabled := frOptions.ExternalProgramList.Count > 0; tbUserDefined.Enabled := frOptions.ExternalProgramList.Count > 0; + acPollCustom.Tag := frOptions.seCustomPollInterval.Value * 1000; + case GridType of + gtCoarse: + begin + GridSetting.XStep := frOptions.seGridCoarseX.Value; + GridSetting.YStep := frOptions.seGridCoarseY.Value; + GridSetting.ZStep := frOptions.seGridCoarseZ.Value; + GridSetting.Angle := frOptions.seGridCoarseAngle.Value; + end; + gtMedium: + begin + GridSetting.XStep := frOptions.seGridMediumX.Value; + GridSetting.YStep := frOptions.seGridMediumY.Value; + GridSetting.ZStep := frOptions.seGridMediumZ.Value; + GridSetting.Angle := frOptions.seGridMediumAngle.Value; + end; + gtFine: + begin + GridSetting.XStep := frOptions.seGridFineX.Value; + GridSetting.YStep := frOptions.seGridFineY.Value; + GridSetting.ZStep := frOptions.seGridFineZ.Value; + GridSetting.Angle := frOptions.seGridFineAngle.Value; + end; + end; editorUpdateUI(Sender); end; @@ -1154,17 +1212,17 @@ // Execues LSynth and replaces current text with the output var TempFile: TStringList; - CommandFile, CommandLine, InputFile, OutputFile:string; + CommandFile, CommandLine, InputFile, OutputFile: string; begin - if (not FileExists(frOptions.edLSynthDir.text+'\lsynthcp.exe')) then + if (not FileExists(frOptions.edLSynthDir.text + '\lsynthcp.exe')) then begin MessageDlg(_('You have to specify a valid path to lsynthcp.exe first!'), mtError, [mbOK], 0); acOptionsExecute(Sender); end else begin - OutputFile := GetShortFileName(WinTempDir + GetTmpFileName); + OutputFile := GetShortFileName(tempFileName); TempFile := TstringList.create; CommandLine := GetShortFileName(frOptions.edLSynthDir.text) + '\lsynthcp.exe '; InputFile := GetShortFileName(ExtractFilePath(TempFileName)) + ExtractFileName(TempFileName); @@ -1275,12 +1333,138 @@ // Movement actions +procedure TfrMain.acMoveGridCoarseExecute(Sender: TObject); +begin + if acMoveGridCoarse.Checked then + begin + GridType := gtCoarse; + GridSetting.XStep := frOptions.seGridCoarseX.Value; + GridSetting.YStep := frOptions.seGridCoarseY.Value; + GridSetting.ZStep := frOptions.seGridCoarseZ.Value; + GridSetting.Angle := frOptions.seGridCoarseAngle.Value; + end + else + if (not acMoveGridFine.Checked) and (acMoveGridMedium.Checked) then + acMoveGridCoarse.Checked := True; +end; + +procedure TfrMain.acMoveGridMediumExecute(Sender: TObject); +begin + if acMoveGridMedium.Checked then + begin + GridType := gtMedium; + GridSetting.XStep := frOptions.seGridMediumX.Value; + GridSetting.YStep := frOptions.seGridMediumY.Value; + GridSetting.ZStep := frOptions.seGridMediumZ.Value; + GridSetting.Angle := frOptions.seGridMediumAngle.Value; + end + else + if (not acMoveGridCoarse.Checked) and (acMoveGridFine.Checked) then + acMoveGridMedium.Checked := True; +end; + +procedure TfrMain.acMoveGridFineExecute(Sender: TObject); +begin + if acMoveGridFine.Checked then + begin + GridType := gtFine; + GridSetting.XStep := frOptions.seGridFineX.Value; + GridSetting.YStep := frOptions.seGridFineY.Value; + GridSetting.ZStep := frOptions.seGridFineZ.Value; + GridSetting.Angle := frOptions.seGridFineAngle.Value; + end + else + if (not acMoveGridCoarse.Checked) and (acMoveGridMedium.Checked) then + acMoveGridFine.Checked := True; +end; + +procedure TfrMain.acMoveRotXNegExecute(Sender: TObject); +begin + editor.RotateSelection(GridSetting.Angle, -1, 0, 0); +end; + +procedure TfrMain.acMoveRotXPosExecute(Sender: TObject); +begin + editor.RotateSelection(GridSetting.Angle, 1, 0, 0); +end; + +procedure TfrMain.acMoveRotYNegExecute(Sender: TObject); +begin + editor.RotateSelection(GridSetting.Angle, 0, -1, 0); +end; + +procedure TfrMain.acMoveRotYPosExecute(Sender: TObject); +begin + editor.RotateSelection(GridSetting.Angle, 0, 1, 0); +end; + +procedure TfrMain.acMoveRotZNegExecute(Sender: TObject); +begin + editor.RotateSelection(GridSetting.Angle, 0, 0, -1); +end; + +procedure TfrMain.acMoveRotZPosExecute(Sender: TObject); +begin + editor.RotateSelection(GridSetting.Angle, 0, 0, 1); +end; + +procedure TfrMain.acMoveXNegExecute(Sender: TObject); +begin + editor.TranslateSelection(-GridSetting.XStep, 0, 0); +end; + procedure TfrMain.acMoveXPosExecute(Sender: TObject); begin + editor.TranslateSelection(GridSetting.XStep, 0, 0); +end; +procedure TfrMain.acMoveYNegExecute(Sender: TObject); +begin + editor.TranslateSelection(0, -GridSetting.YStep, 0); end; +procedure TfrMain.acMoveYPosExecute(Sender: TObject); +begin + editor.TranslateSelection(0, GridSetting.YStep, 0); +end; +procedure TfrMain.acMoveZNegExecute(Sender: TObject); +begin + editor.TranslateSelection(0, 0, -GridSetting.ZStep); +end; + +procedure TfrMain.acMoveZPosExecute(Sender: TObject); +begin + editor.TranslateSelection(0, 0, GridSetting.ZStep); +end; + +// Polling Actions + +procedure TfrMain.acPollEnablePollingExecute(Sender: TObject); +begin + tmPoll.Enabled := acPollEnablePolling.Checked; +end; + +procedure TfrMain.acPollOnDemandExecute(Sender: TObject); +begin + acPollOnDemand.ShortCut := TextToShortCut('F11'); + tmPoll.Enabled := False; + tmPollTimer(nil); +end; + +procedure TfrMain.acPollToSelectedLineExecute(Sender: TObject); +begin + // Do nothing; +end; + +procedure TfrMain.SetPollTime(Sender: TObject); +begin + tmPoll.Enabled := False; + tmPoll.Interval := (Sender as TAction).Tag; + tmPoll.Enabled := True; + acPollOnDemand.ShortCut := TextToShortCut('') +end; + // Search actions procedure TfrMain.acFindExecute(Sender: TObject); @@ -1342,6 +1526,11 @@ tbrFile.Visible := (Sender as TAction).Checked; end; +procedure TfrMain.acViewGridToolbarExecute(Sender: TObject); +begin + tbrGrid.Visible := (Sender as TAction).Checked; +end; + procedure TfrMain.acViewMovementToolbarExecute(Sender: TObject); begin tbrMovement.Visible := (Sender as TAction).Checked; @@ -1387,17 +1576,17 @@ begin hDrop := Msg.WParam ; - NumberOfFiles := DragQueryFile(hDrop,$FFFFFFFF, nil, 0); + NumberOfFiles := DragQueryFile(hDrop, $FFFFFFFF, nil, 0); for fCounter := 1 to NumberOfFiles do begin - SetLength(fname, MAX_PATH); // Anticipate largest string size - SetLength(fname, DragQueryFile(HDrop, fCounter-1, PChar(fname),MAX_PATH)); - if (lowercase(extractFIleExt(fname)) = '.dat') or - (lowercase(extractFIleExt(fname)) = '.mpd') or - (lowercase(extractFIleExt(fname)) = '.ldr') then + SetLength(fName, MAX_PATH); // Anticipate largest string size + SetLength(fName, DragQueryFile(HDrop, fCounter - 1, PChar(fname), MAX_PATH)); + if (LowerCase(ExtractFileExt(fName)) = '.dat') or + (LowerCase(ExtractFileExt(fName)) = '.mpd') or + (LowerCase(ExtractFileExt(fName)) = '.ldr') then OpenFile(fName); end; - DragFinish (hDrop); + DragFinish(hDrop); end; procedure TfrMain.AppInstCmdLineReceived(Sender: TObject; @@ -1587,6 +1776,7 @@ CopyFile(PAnsiChar(ExtractFilePath(Application.ExeName) + '\uiconfig.ini'), PAnsiChar(GetShellFolderPath('AppData') + '\LDDP\uiconfig.ini'), false); //Load form parameters from INI file + acMoveGridCoarse.Execute; LoadFormValues; // View menu settings; @@ -1599,6 +1789,8 @@ acViewColorReplaceToolbar.Checked := tbrColorReplace.Visible; //Set defaults based on options + acPollCustom.Tag := frOptions.seCustomPollInterval.Value * 1000; + editor.PositionDecimalPlaces := frOptions.sePntAcc.Value; editor.RotationDecimalPlaces := frOptions.seRotAcc.Value; editor.OnlyRoundDuringAutoRound := frOptions.cboAutoRoundOnly.Checked; @@ -1919,70 +2111,14 @@ // do nothing end; -procedure TfrMain.mnuPollEvery1secClick(Sender: TObject); -// Set polling interval to 1 sec -begin - mnuPollEvery1sec.Checked := true; - mnuPollOnRequest.ShortCut := 0; - tmPoll.Enabled := false; - tmPoll.Interval := 1000; - tmPoll.Enabled := true; -end; - - -procedure TfrMain.mnuPollevery2secClick(Sender: TObject); -// Set polling interval to 2 secs -begin - mnuPollEvery2sec.Checked := true; - mnuPollOnRequest.ShortCut := 0; - tmPoll.Enabled := false; - tmPoll.Interval := 2000; - tmPoll.Enabled := true; - -end; - -procedure TfrMain.mnuPollEvery5secClick(Sender: TObject); -// Set polling interval to 5 secs -begin - mnuPollEvery5sec.Checked := true; - mnuPollOnRequest.ShortCut := 0; - tmPoll.Enabled := false; - tmPoll.Interval := 5000; - tmPoll.Enabled := true; -end; - -procedure TfrMain.mnuPollOnCustomIntervalClick(Sender: TObject); -begin - mnuPollOnCustomInterval.Checked := true; - mnuPollOnRequest.ShortCut := 0; - tmPoll.Enabled := false; - tmPoll.Interval := frOptions.seCustomPollInterval.Value * 1000; - tmPoll.Enabled := true; -end; - -procedure TfrMain.mnuPollOnRequestClick(Sender: TObject); -// Poll on request -begin - mnuPollOnRequest.Checked := true; - mnuPollOnRequest.ShortCut := TextToShortcut('F11'); - tmPoll.Enabled := false; - tmPollTimer(Sender); -end; - -procedure TfrMain.mnuPollToSelectedClick(Sender: TObject); -// Switch polling to selected line -begin - mnuPollToSelected.Checked := not mnuPollToSelected.Checked; -end; - procedure TfrMain.tmPollTimer(Sender: TObject); // if polling time triggers the actual editor window is written to its firm assigned temp filename var st: TStringList; begin - if mnuEnablePolling.Checked and (DocumentTabs.Count > 0) then - if mnuPollToSelected.checked then + if acPollEnablePolling.Checked and (DocumentTabs.Count > 0) then + if acPollToSelectedLine.Checked then begin st := TStringList.Create; st.Text := editor.Lines.Text; @@ -1993,15 +2129,6 @@ else editor.lines.SaveToFile(tempFileName); end; - -procedure TfrMain.mnuEnablePollingClick(Sender: TObject); -// Activate Polling for L3Lab -begin - mnuEnablePolling.Checked := not mnuEnablePolling.Checked; - if (mnuPollOnRequest.Checked) and (not mnuEnablePolling.Checked) then - mnuPollOnRequest.ShortCut := 0; -end; - procedure TfrMain.UpdateMRU(NewFileName: TFileName = ''); // Update the Most Recently Used list var @@ -2068,20 +2195,27 @@ Left := LDDPini.ReadInteger(IniSection, Name + '_Left', Left); end; - if LDDPini.ReadBool(IniSection, 'mnuEnablePolling_Checked', mnuEnablePolling.Checked) then - mnuEnablePollingClick(nil); - if LDDPini.ReadBool(IniSection, 'mnuPollToSelected_Checked', mnuPollToSelected.Checked) then - mnuPollToSelectedClick(nil); - if LDDPini.ReadBool(IniSection, 'mnuPollEvery1Sec_Checked', mnuPollEvery1Sec.Checked) then - mnuPollEvery1SecClick(nil); - if LDDPini.ReadBool(IniSection, 'mnuPollEvery2Sec_Checked', mnuPollEvery2Sec.Checked) then - mnuPollEvery2SecClick(nil); - if LDDPini.ReadBool(IniSection, 'mnuPollEvery5Sec_Checked', mnuPollEvery5Sec.Checked) then - mnuPollEvery5SecClick(nil); - if LDDPini.ReadBool(IniSection, 'mnuPollOnCustomInterval_Checked', mnuPollOnCustomInterval.Checked) then - mnuPollOnCustomIntervalClick(nil); - if LDDPini.ReadBool(IniSection, 'mnuPollOnRequest_Checked', mnuPollOnRequest.Checked) then - mnuPollOnRequestClick(nil); + if LDDPini.ReadBool(IniSection, 'acMoveGridFine_Checked', acMoveGridFine.Checked) then + acMoveGridFine.Execute; + if LDDPini.ReadBool(IniSection, 'acMoveGridMedium_Checked', acMoveGridMedium.Checked) then + acMoveGridMedium.Execute; + if LDDPini.ReadBool(IniSection, 'acMoveGridCoarse_Checked', acMoveGridCoarse.Checked) then + acMoveGridCoarse.Execute; + + if LDDPini.ReadBool(IniSection, 'acPollEnablePolling_Checked', acPollEnablePolling.Checked) then + acPollEnablePolling.Execute; + if LDDPini.ReadBool(IniSection, 'acPollToSelectedLine_Checked', acPollToSelectedLine.Checked) then + acPollToSelectedLine.Execute; + if LDDPini.ReadBool(IniSection, 'acPoll1Second_Checked', acPoll1Second.Checked) then + acPoll1Second.Execute; + if LDDPini.ReadBool(IniSection, 'acPoll2Seconds_Checked', acPoll2Seconds.Checked) then + acPoll2Seconds.Execute; + if LDDPini.ReadBool(IniSection, 'acPoll5Seconds_Checked', acPoll5Seconds.Checked) then + acPoll5Seconds.Execute; + if LDDPini.ReadBool(IniSection, 'acPollCustom_Checked', acPollCustom.Checked) then + acPollCustom.Execute; + if LDDPini.ReadBool(IniSection, 'acPollOnDemand_Checked', acPollOnDemand.Checked) then + acPollOnDemand.Execute; SearchReplaceDlg.ReplaceTextHistory := LDDPini.ReadString(IniSection, 'SearchReplaceDlg_ReplaceTextHistory', SearchReplaceDlg.ReplaceTextHistory); SearchReplaceDlg.SearchTextHistory := LDDPini.ReadString(IniSection, 'SearchReplaceDlg_SearchTextHistory', SearchReplaceDlg.SearchTextHistory); LDDPini.Free; @@ -2117,14 +2251,19 @@ LDDPini.WriteInteger(IniSection, Name + '_Left', Left); end; - LDDPini.WriteBool(IniSection, 'mnuEnablePolling_Checked', mnuEnablePolling.Checked); - LDDPini.WriteBool(IniSection, 'mnuPollToSelected_Checked', mnuPollToSelected.Checked); - LDDPini.WriteBool(IniSection, 'mnuPollEvery1Sec_Checked', mnuPollEvery1Sec.Checked); - LDDPini.WriteBool(IniSection, 'mnuPollEvery2Sec_Checked', mnuPollEvery2Sec.Checked); - LDDPini.WriteBool(IniSection, 'mnuPollEvery5Sec_Checked', mnuPollEvery5Sec.Checked); - LDDPini.WriteBool(IniSection, 'mnuPollOnCustomInterval_Checked', mnuPollOnCustomInterval.Checked); - LDDPini.WriteBool(IniSection, 'mnuPollOnRequest_Checked', mnuPollOnRequest.Checked); - LDDPini.WriteString(IniSection, 'SearchReplaceDlg_ReplaceTextHistory', SearchReplaceDlg.ReplaceTextHistory); + LDDPini.WriteBool(IniSection, 'acMoveGridFine_Checked', acMoveGridFine.Checked); + LDDPini.WriteBool(IniSection, 'acMoveGridMedium_Checked', acMoveGridMedium.Checked); + LDDPini.WriteBool(IniSection, 'acMoveGridCoarse_Checked', acMoveGridCoarse.Checked); + + LDDPini.WriteBool(IniSection, 'acPollEnablePolling_Checked', acPollEnablePolling.Checked); + LDDPini.WriteBool(IniSection, 'acPollToSelectedLine_Checked', acPollToSelectedLine.Checked); + LDDPini.WriteBool(IniSection, 'acPoll1Second_Checked', acPoll1Second.Checked); + LDDPini.WriteBool(IniSection, 'acPoll2Seconds_Checked', acPoll2Seconds.Checked); + LDDPini.WriteBool(IniSection, 'acPoll5Seconds_Checked', acPoll5Seconds.Checked); + LDDPini.WriteBool(IniSection, 'acPollCustom_Checked', acPollCustom.Checked); + LDDPini.WriteBool(IniSection, 'acPollOnDemand_Checked', acPollOnDemand.Checked); + + LDDPini.WriteString(IniSection, 'SearchReplaceDlg_ReplaceTextHistory', SearchReplaceDlg.ReplaceTextHistory); LDDPini.WriteString(IniSection, 'SearchReplaceDlg_SearchTextHistory', SearchReplaceDlg.SearchTextHistory); LDDPini.UpdateFile; Modified: trunk/lddp/options.pas =================================================================== --- trunk/lddp/options.pas 2008-09-12 10:45:47 UTC (rev 359) +++ trunk/lddp/options.pas 2008-09-17 02:51:40 UTC (rev 360) @@ -32,7 +32,7 @@ BitBtn1: TBitBtn; btnCancel: TBitBtn; OpenDialog: TOpenDialog; - PageControl1: TPageControl; + MainPages: TPageControl; tsExternal: TTabSheet; GroupBox1: TGroupBox; c: TBitBtn; @@ -52,34 +52,18 @@ Label4: TLabel; lbLdraw: TLabel; TabSheet1: TTabSheet; - TabSheet2: TTabSheet; - GroupBox2: TGroupBox; - cboDet: TCheckBox; - cboDist: TCheckBox; - Memo1: TMemo; - Memo2: TMemo; TabSheet3: TTabSheet; GroupBox4: TGroupBox; btnRescanPlugins: TBitBtn; cblPlugins: TCheckListBox; Label9: TLabel; rgStyle: TRadioGroup; - GroupBox5: TGroupBox; - lbPntAcc: TLabel; - lbRotAcc: TLabel; ColorDialog1: TColorDialog; - Label6: TLabel; - Memo3: TMemo; GroupBox7: TGroupBox; Label12: TLabel; edLSynthDir: TEdit; btLSynth: TBitBtn; lbLSynth: TLabel; - seDist: TJvValidateEdit; - seDet: TJvValidateEdit; - seCollinear: TJvValidateEdit; - sePntAcc: TJvValidateEdit; - seRotAcc: TJvValidateEdit; ColorBarSheet: TTabSheet; GroupBox9: TGroupBox; lbxColors: TListBox; @@ -91,9 +75,6 @@ lbColorNumber: TLabel; btnColorRestore: TBitBtn; lbxExternal: TListBox; - cboNormalAngle: TCheckBox; - Memo4: TMemo; - seNormalAngle: TJvValidateEdit; Panel2: TPanel; Memo5: TMemo; Panel3: TPanel; @@ -110,18 +91,8 @@ Panel4: TPanel; btnAddExternal: TButton; btnDelExternal: TButton; - cboAutoRoundOnly: TCheckBox; ColorBarCombo: TJvColorComboBox; TabSheet5: TTabSheet; - GroupBox6: TGroupBox; - Label1: TLabel; - seCustomPollInterval: TJvValidateEdit; - Label3: TLabel; - edUserName: TEdit; - edEmail: TEdit; - Label7: TLabel; - Label8: TLabel; - edName: TEdit; SearchPathsList: TListView; Panel5: TPanel; btnPathUp: TBitBtn; @@ -134,7 +105,65 @@ edSearchPath: TEdit; btnPathOpen: TBitBtn; OptionImages: TImageList; - procedure PageControl1Change(Sender: TObject); + TabSheet4: TTabSheet; + ConfigPages: TPageControl; + TabSheet6: TTabSheet; + TabSheet7: TTabSheet; + TabSheet8: TTabSheet; + cboDist: TCheckBox; + cboDet: TCheckBox; + cboNormalAngle: TCheckBox; + Label6: TLabel; + seDist: TJvValidateEdit; + seDet: TJvValidateEdit; + seNormalAngle: TJvValidateEdit; + seCollinear: TJvValidateEdit; + Memo3: TMemo; + Memo4: TMemo; + Memo2: TMemo; + Memo1: TMemo; + lbPntAcc: TLabel; + sePntAcc: TJvValidateEdit; + seRotAcc: TJvValidateEdit; + lbRotAcc: TLabel; + cboAutoRoundOnly: TCheckBox; + edName: TEdit; + Label3: TLabel; + Label7: TLabel; + edUserName: TEdit; + edEmail: TEdit; + Label8: TLabel; + Label1: TLabel; + seCustomPollInterval: TJvValidateEdit; + TabSheet2: TTabSheet; + GroupBox2: TGroupBox; + Label13: TLabel; + seGridFineX: TJvValidateEdit; + Label14: TLabel; + seGridFineY: TJvValidateEdit; + Label16: TLabel; + seGridFineZ: TJvValidateEdit; + Label18: TLabel; + seGridFineAngle: TJvValidateEdit; + GroupBox3: TGroupBox; + Label20: TLabel; + Label21: TLabel; + Label22: TLabel; + Label23: TLabel; + seGridMediumX: TJvValidateEdit; + seGridMediumY: TJvValidateEdit; + seGridMediumZ: TJvValidateEdit; + seGridMediumAngle: TJvValidateEdit; + GroupBox5: TGroupBox; + Label24: TLabel; + Label25: TLabel; + Label26: TLabel; + Label27: TLabel; + seGridCoarseX: TJvValidateEdit; + seGridCoarseY: TJvValidateEdit; + seGridCoarseZ: TJvValidateEdit; + seGridCoarseAngle: TJvValidateEdit; + procedure MainPagesChange(Sender: TObject); procedure btnRescanPluginsClick(Sender: TObject); procedure cblPluginsClickCheck(Sender: TObject); procedure btLDrawClick(Sender: TObject); @@ -261,7 +290,7 @@ end; -procedure TfrOptions.PageControl1Change(Sender: TObject); +procedure TfrOptions.MainPagesChange(Sender: TObject); begin UpdateControls; end; @@ -353,30 +382,19 @@ IniSection := 'LDDP Options'; LDDPini.EraseSection(IniSection); - if frOptions.edLDrawDir.Text <> '' then - LDDPini.WriteString('LDraw','BaseDirectory',frOptions.edLDrawDir.Text); - LDDPini.WriteString(IniSection, 'edLDViewDir_Text', edLDViewDir.Text); - LDDPini.WriteString(IniSection, 'edMLCadDir_Text', edMLCadDir.Text); - LDDPini.WriteString(IniSection, 'edL3LabDir_Text', edL3LabDir.Text); - LDDPini.WriteString(IniSection, 'edL3LabDir_Text', edL3LabDir.Text); - LDDPini.WriteString(IniSection, 'edLSynthDir_Text', edLSynthDir.Text); - LDDPini.WriteString(IniSection, 'edExternal_Text', edExternal.Text); - LDDPini.WriteString(IniSection, 'edParameters_Text', edParameters.Text); - LDDPini.WriteString(IniSection, 'edEmail_Text', edEMail.Text); - LDDPini.WriteString(IniSection, 'edName_Text', edName.Text); - LDDPini.WriteString(IniSection, 'edUsername_Text', edUsername.Text); - LDDPini.WriteFloat(IniSection, 'seDet_Value', seDet.Value); - LDDPini.WriteFloat(IniSection, 'seDist_Value', seDist.Value); - LDDPini.WriteFloat(IniSection, 'seNormalAngle_Value', seNormalAngle.Value); - LDDPini.WriteFloat(IniSection, 'seCollinear_Value', seCollinear.Value); - LDDPini.WriteFloat(IniSection, 'seCustomPollInterval_Value', seCustomPollInterval.Value); - LDDPini.WriteInteger(IniSection, 'sePntAcc_Value', sePntAcc.Value); - LDDPini.WriteInteger(IniSection, 'seRotAcc_Value', seRotAcc.Value); - LDDPini.WriteBool(IniSection, 'cboDist_Checked', cboDist.Checked); - LDDPini.WriteBool(IniSection, 'cboDet_Checked', cboDet.Checked); - LDDPini.WriteBool(IniSection, 'cboNormalAngle_Checked', cboNormalAngle.Checked); - LDDPini.WriteBool(IniSection, 'cboAutoRoundOnly_Checked', cboAutoRoundOnly.Checked); - LDDPini.WriteInteger(IniSection, 'rgStyle_ItemIndex', rgStyle.ItemIndex); + for i := 0 to ComponentCount - 1 do + if Components[i] is TJvValidateEdit then + begin + case (Components[i] as TJvValidateEdit).DisplayFormat of + dfFloat: LDDPini.WriteFloat(IniSection, Components[i].Name + '_Value', (Components[i] as TJvValidateEdit).Value); + dfInteger: LDDPini.WriteInteger(IniSection, Components[i].Name + '_Value', (Components[i] as TJvValidateEdit).Value); + end; + end + else if Components[i] is TEdit then + LDDPini.WriteString(IniSection, Components[i].Name + '_Text', (Components[i] as TEdit).Text) + else if Components[i] is TCheckBox then + LDDPini.WriteBool(IniSection, Components[i].Name + '_Checked', (Components[i] as TCheckbox).Checked); + LDDPini.WriteString('LDraw','BaseDirectory',frOptions.edLDrawDir.Text); for i := 0 to 15 do LDDPini.WriteString(IniSection, 'lbxColors_Item' + IntToStr(i), ColorBarList[i]); @@ -408,32 +426,20 @@ IniSection := 'LDDP Options'; //Restore various option parameters - edLDrawDir.Text := LDDPini.ReadString('LDraw','BaseDirectory', ''); - edLDViewDir.Text := LDDPini.ReadString(IniSection, 'edLDViewDir_Text', ''); - edMLCadDir.Text := LDDPini.ReadString(IniSection, 'edMLCadDir_Text', ''); - edL3LabDir.Text := LDDPini.ReadString(IniSection, 'edL3LabDir_Text', ''); - edL3LabDir.Text := LDDPini.ReadString(IniSection, 'edL3LabDir_Text', ''); - edLSynthDir.Text := LDDPini.ReadString(IniSection, 'edLSynthDir_Text', ''); - edEMail.Text := LDDPini.ReadString(IniSection, 'edEmail_Text', ''); - edName.Text := LDDPini.ReadString(IniSection, 'edName_Text', ''); - edUsername.Text := LDDPini.ReadString(IniSection, 'edUsername_Text', ''); - seDet.Value := LDDPini.ReadFloat(IniSection, 'seDet_Value', 0.01); - if seDet.Value = 0 then seDet.Value := 0.01; - seDist.Value := LDDPini.ReadFloat(IniSection, 'seDist_Value', 0.1); - if seDist.Value = 0 then seDist.Value := 0.1; - seNormalAngle.Value := LDDPini.ReadFloat(IniSection, 'seNormalAngle_Value', 1); - if seNormalAngle.Value = 0 then seNormalAngle.Value := 1; - seCollinear.Value := LDDPini.ReadFloat(IniSection, 'seCollinear_Value', 0.0001); - if seCollinear.Value = 0 then seCollinear.Value := 0.0001; - seCustomPollInterval.Value := LDDPini.ReadFloat(IniSection, 'seCustomPollInterval_Value', 0.1); - sePntAcc.Value := LDDPini.ReadInteger(IniSection, 'sePntAcc_Value', 4); - if sePntAcc.Value = 0 then sePntAcc.Value := 4; - seRotAcc.Value := LDDPini.ReadInteger(IniSection, 'seRotAcc_Value', 4); - if seRotAcc.Value = 0 then seRotAcc.Value := 4; - cboDist.Checked := LDDPini.ReadBool(IniSection, 'cboDist_Checked', false); - cboDet.Checked := LDDPini.ReadBool(IniSection, 'cboDet_Checked', false); - cboNormalAngle.Checked := LDDPini.ReadBool(IniSection, 'cboNormalAngle_Checked', false); - cboAutoRoundOnly.Checked := LDDPini.ReadBool(IniSection, 'cboAutoRoundOnly_Checked', false); + for i := 0 to ComponentCount - 1 do + if Components[i] is TJvValidateEdit then + begin + case (Components[i] as TJvValidateEdit).DisplayFormat of + dfFloat: (Components[i] as TJvValidateEdit).Value := + LDDPini.ReadFloat(IniSection, Components[i].Name + '_Value', (Components[i] as TJvValidateEdit).Value); + dfInteger: (Components[i] as TJvValidateEdit).Value := + LDDPini.ReadInteger(IniSection, Components[i].Name + '_Value', (Components[i] as TJvValidateEdit).Value); + end; + end + else if Components[i] is TEdit then + (Components[i] as TEdit).Text := LDDPini.ReadString(IniSection, Components[i].Name + '_Text', (Components[i] as TEdit).Text) + else if Components[i] is TCheckBox then + (Components[i] as TCheckbox).Checked := LDDPini.ReadBool(IniSection, Components[i].Name + '_Checked', (Components[i] as TCheckbox).Checked); //Read and set up color bar settings if LDDPini.ReadString(IniSection, 'lbxColors_Item0', 'none') = 'none' then @@ -935,7 +941,7 @@ UpdateControls; SetConfigurationConstants; UpdateSearchPathList; - PageControl1.ActivePage:=tsExternal; + MainPages.ActivePage:=tsExternal; end; procedure TfrOptions.SearchPathsListSelectItem(Sender: TObject; Item: TListItem; Modified: trunk/lddp/windowsspecific.pas =================================================================== --- trunk/lddp/windowsspecific.pas 2008-09-12 10:45:47 UTC (rev 359) +++ trunk/lddp/windowsspecific.pas 2008-09-17 02:51:40 UTC (rev 360) @@ -59,7 +59,7 @@ function DoCommand(Command: string; Flg: byte; Wait: Boolean): Boolean; function GetShortFileName(Const FileName : string): string; -function WindowsDir:string; +// function WindowsDir:string; function GetShellFolderPath(folder: string): string; function IniFilePath: string; function WinTempDir: string; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-09-12 10:45:50
|
Revision: 359 http://lddp.svn.sourceforge.net/lddp/?rev=359&view=rev Author: billthefish Date: 2008-09-12 10:45:47 +0000 (Fri, 12 Sep 2008) Log Message: ----------- Modified Paths: -------------- trunk/DAT Tools/DATCheck.pas trunk/lddp/errorbar.dfm trunk/lddp/errorbar.pas trunk/lddp/main.dfm trunk/lddp/main.pas trunk/lddp/options.dfm Property Changed: ---------------- trunk/Custom Controls/ScintillaLDDP/ Property changes on: trunk/Custom Controls/ScintillaLDDP ___________________________________________________________________ Modified: svn:ignore - *.identcache *.local *.cfg + *.identcache *.local *.cfg __history Modified: trunk/DAT Tools/DATCheck.pas =================================================================== --- trunk/DAT Tools/DATCheck.pas 2008-09-12 10:43:49 UTC (rev 358) +++ trunk/DAT Tools/DATCheck.pas 2008-09-12 10:45:47 UTC (rev 359) @@ -27,28 +27,30 @@ interface +uses + Contnrs; + type TDATErrorType = (deRowAllZeros, deYColumnAllZeros, deSigularMatrix, deCollinearVertices, deIdenticalVertices, deConcaveQuad, deBowtieQuad, deNonCoplanerVertices, deIdenticalLine, - deColor24Illegal); + deColor24Illegal, deNil); TDATCoplanerType = (ctDet, ctDist, ctNormalAngle); - TDATError = record - case ErrorType: TDATErrorType of - deRowAllZeros: (Row: Byte); - deCollinearVertices: (CollinearValue: Extended; - CollinearVertices: array[1..3] of Integer); - deBowtieQuad: (IsBowtieType1423: Boolean); - deNonCoplanerVertices: (CoplanerValue: Extended; - CoplanerType: TDATCoplanerType); - deConcaveQuad: (SplitOn24: Boolean); - deIdenticalLine: (Line: Integer); + TDATError = class(TObject) + ErrorType: TDATErrorType; + Row: Byte; + CollinearValue: Extended; + CollinearVertices: array[1..3] of Integer; + IsBowtieType1423: Boolean; + CoplanerValue: Extended; + CoplanerType: TDATCoplanerType; + SplitOn24: Boolean; + Line: Integer; + procedure Assign(AError: TDATError); end; - TDATErrorList = array of TDATError; - const strRow1AllZeros = 'Row 1 all zeros'; strRow2AllZeros = 'Row 2 all zeros'; @@ -71,14 +73,27 @@ PlaneNormalAngleLimit: Extended = 0; CollinearPointsThreshold: Extended = 0.0001; -function L3CheckLine(const Line: string): TDATErrorList; +function L3CheckLine(const Line: string): TObjectList; function GetErrorString(error: TDATError): string; implementation uses DATModel, DATBase, DATMath, DATUtils, SysUtils, Math; - + +procedure TDATError.Assign(AError: TDATError); +begin + ErrorType := AError.ErrorType; + Row := AError.Row; + CollinearValue := AError.CollinearValue; + CollinearVertices := AError.CollinearVertices; + IsBowtieType1423 := AError.IsBowtieType1423; + CoplanerValue := AError.CoplanerValue; + CoplanerType := AError.CoplanerType; + SplitOn24 := AError.SplitOn24; + Line := AError.Line; +end; + function SubPartIsXZPrimitive(const Subp: string): Boolean; begin Result := (Pos('disc', Subp) > 0) or @@ -191,14 +206,16 @@ Result := Angle2; end; -function CheckSubPart(datsubpart: TDATSubPart): TDATErrorList; +function CheckSubPart(datsubpart: TDATSubPart): TObjectList; var det, tempval: Extended; i: Integer; + error: TDATError; begin - SetLength(Result, 0); + Result := TObjectList.Create; + Result.Clear; with datsubpart do begin det := MatrixDet(Matrix); @@ -212,9 +229,10 @@ det := MatrixDet(Matrix); if det <> 0 then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deRowAllZeros; - Result[Length(Result) - 1].Row := i; + error := TDATError.Create; + error.ErrorType := deRowAllZeros; + error.Row := i; + Result.Add(error); Break; end; end; @@ -226,8 +244,9 @@ det := MatrixDet(Matrix); if det <> 0 then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deYColumnAllZeros; + error := TDATError.Create; + error.ErrorType := deYColumnAllZeros; + Result.Add(error); Break; end else @@ -235,70 +254,84 @@ end; if det = 0 then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deSigularMatrix; + error := TDATError.Create; + error.ErrorType := deSigularMatrix; + Result.Add(error); end; end else begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deSigularMatrix; + error := TDATError.Create; + error.ErrorType := deSigularMatrix; + Result.Add(error); end; if Color = 24 then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deColor24Illegal; + error := TDATError.Create; + error.ErrorType := deColor24Illegal; + Result.Add(error); end; end; end; -function CheckLine2(const line: TDATLine): TDATErrorList; +function CheckLine2(const line: TDATLine): TObjectList; + +var + error: TDATError; + begin - SetLength(Result, 0); + Result := TObjectList.Create; + Result.Clear; with line do if CheckSamePoint(Point[1],Point[2]) then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deIdenticalVertices; + error := TDATError.Create; + error.ErrorType := deIdenticalVertices; + Result.Add(error); end; end; -function CheckTri(const tri: TDATTriangle): TDATErrorList; +function CheckTri(const tri: TDATTriangle): TObjectList; var dp: Extended; + error: TDATError; begin - SetLength(Result, 0); + Result := TObjectList.Create; + Result.Clear; with tri do begin if CheckSamePoint(Point[1],Point[2]) or CheckSamePoint(Point[2],Point[3]) or CheckSamePoint(Point[3],Point[1]) then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deIdenticalVertices; + error := TDATError.Create; + error.ErrorType := deIdenticalVertices; + Result.Add(error); end; dp := CheckLinearPoints(Point[1],Point[2],Point[3]); if dp < CollinearPointsThreshold then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deCollinearVertices; - Result[Length(Result) - 1].CollinearValue := dp; + error := TDATError.Create; + error.ErrorType := deCollinearVertices; + error.CollinearValue := dp; + Result.Add(error); end; end; end; -function CheckQuad(const quad: TDATQuad): TDATErrorList; +function CheckQuad(const quad: TDATQuad): TObjectList; var det, maxdist, maxangle, cp: Extended; A,B,C: Boolean; v01, v02, v03, v12, v13, v23: TDATPoint; - + error: TDATError; begin - SetLength(Result, 0); + Result := TObjectList.Create; + Result.Clear; with quad do begin if CheckSamePoint(Point[1],Point[2]) or @@ -308,56 +341,61 @@ CheckSamePoint(Point[1],Point[3]) or CheckSamePoint(Point[4],Point[2]) then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deIdenticalVertices; + error := TDATError.Create;; + error.ErrorType := deIdenticalVertices; + Result.Add(error); Exit; end; cp := CheckLinearPoints(Point[1],Point[2],Point[3]); if cp < CollinearPointsThreshold then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deCollinearVertices; - Result[Length(Result) - 1].CollinearValue := cp; - Result[Length(Result) - 1].CollinearVertices[1] := 1; - Result[Length(Result) - 1].CollinearVertices[2] := 2; - Result[Length(Result) - 1].CollinearVertices[3] := 3; + error := TDATError.Create;; + error.ErrorType := deCollinearVertices; + error.CollinearValue := cp; + error.CollinearVertices[1] := 1; + error.CollinearVertices[2] := 2; + error.CollinearVertices[3] := 3; + Result.Add(error); Exit; end; cp := CheckLinearPoints(Point[1],Point[2],Point[4]); if cp < CollinearPointsThreshold then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deCollinearVertices; - Result[Length(Result) - 1].CollinearValue := cp; - Result[Length(Result) - 1].CollinearVertices[1] := 1; - Result[Length(Result) - 1].CollinearVertices[2] := 2; - Result[Length(Result) - 1].CollinearVertices[3] := 4; + error := TDATError.Create;; + error.ErrorType := deCollinearVertices; + error.CollinearValue := cp; + error.CollinearVertices[1] := 1; + error.CollinearVertices[2] := 2; + error.CollinearVertices[3] := 4; + Result.Add(error); Exit; end; cp := CheckLinearPoints(Point[1],Point[3],Point[4]); if cp < CollinearPointsThreshold then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deCollinearVertices; - Result[Length(Result) - 1].CollinearValue := cp; - Result[Length(Result) - 1].CollinearVertices[1] := 1; - Result[Length(Result) - 1].CollinearVertices[2] := 3; - Result[Length(Result) - 1].CollinearVertices[3] := 4; + error := TDATError.Create;; + error.ErrorType := deCollinearVertices; + error.CollinearValue := cp; + error.CollinearVertices[1] := 1; + error.CollinearVertices[2] := 3; + error.CollinearVertices[3] := 4; + Result.Add(error); Exit; end; cp := CheckLinearPoints(Point[2],Point[3],Point[4]); if cp < CollinearPointsThreshold then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deCollinearVertices; - Result[Length(Result) - 1].CollinearValue := cp; - Result[Length(Result) - 1].CollinearVertices[1] := 2; - Result[Length(Result) - 1].CollinearVertices[2] := 3; - Result[Length(Result) - 1].CollinearVertices[3] := 4; + error := TDATError.Create;; + error.ErrorType := deCollinearVertices; + error.CollinearValue := cp; + error.CollinearVertices[1] := 2; + error.CollinearVertices[2] := 3; + error.CollinearVertices[3] := 4; + Result.Add(error); Exit; end; @@ -376,37 +414,42 @@ begin if (B and (not C)) or (C and (not B)) then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deConcaveQuad; - Result[Length(Result) - 1].SplitOn24 := False; + error := TDATError.Create;; + error.ErrorType := deConcaveQuad; + error.SplitOn24 := False; + Result.Add(error); end; end else if B then if C then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deConcaveQuad; - Result[Length(Result) - 1].SplitOn24 := True; + error := TDATError.Create;; + error.ErrorType := deConcaveQuad; + error.SplitOn24 := True; + Result.Add(error); end else begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deBowtieQuad; - Result[Length(Result) - 1].IsBowtieType1423 := True; + error := TDATError.Create;; + error.ErrorType := deBowtieQuad; + error.IsBowtieType1423 := True; + Result.Add(error); end else if C then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deBowtieQuad; - Result[Length(Result) - 1].IsBowtieType1423 := False; + error := TDATError.Create;; + error.ErrorType := deBowtieQuad; + error.IsBowtieType1423 := False; + Result.Add(error); end else begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deConcaveQuad; - Result[Length(Result) - 1].SplitOn24 := True; + error := TDATError.Create;; + error.ErrorType := deConcaveQuad; + error.SplitOn24 := True; + Result.Add(error); end; if (DetThreshold > 0) then @@ -414,10 +457,11 @@ det := CoPlanarCheckDet(Matrix); if det > DetThreshold then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deNonCoplanerVertices; - Result[Length(Result) - 1].CoplanerType := ctDet; - Result[Length(Result) - 1].CoplanerValue := det; + error := TDATError.Create;; + error.ErrorType := deNonCoplanerVertices; + error.CoplanerType := ctDet; + error.CoplanerValue := det; + Result.Add(error); end; end; @@ -426,10 +470,11 @@ maxdist := CoPlanerCheckDist(Matrix); if maxdist > DistThreshold then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deNonCoplanerVertices; - Result[Length(Result) - 1].CoplanerType := ctDist; - Result[Length(Result) - 1].CoplanerValue := maxdist; + error := TDATError.Create;; + error.ErrorType := deNonCoplanerVertices; + error.CoplanerType := ctDist; + error.CoplanerValue := maxdist; + Result.Add(error); end; end; @@ -438,34 +483,40 @@ maxangle := CoPlanerCheckNormalAngle(Matrix); if maxangle > PlaneNormalAngleLimit then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deNonCoplanerVertices; - Result[Length(Result) - 1].CoplanerType := ctNormalAngle; - Result[Length(Result) - 1].CoplanerValue := maxangle; + error := TDATError.Create;; + error.ErrorType := deNonCoplanerVertices; + error.CoplanerType := ctNormalAngle; + error.CoplanerValue := maxangle; + Result.Add(error); end; end; end; end; -function CheckOpLine(const opline: TDATOpline): TDATErrorList; +function CheckOpLine(const opline: TDATOpline): TObjectList; + +var + error: TDATError; + begin - SetLength(Result, 0); + Result := TObjectList.Create; + Result.Clear; with opline do if CheckSamePoint(Point[1],Point[2]) or CheckSamePoint(Point[3],Point[4]) then begin - SetLength(Result, Length(Result) + 1); - Result[Length(Result) - 1].ErrorType := deIdenticalVertices; + error := TDATError.Create;; + error.ErrorType := deIdenticalVertices; + Result.Add(error); end; end; -function L3CheckLine(const Line: string): TDATErrorList; +function L3CheckLine(const Line: string): TObjectList; var DLine: TDATType; begin - SetLength(Result, 0); DLine := StrToDAT(Line); case DLine.LineType of 1: Result := CheckSubPart(DLine as TDATSubPart); @@ -473,6 +524,7 @@ 3: Result := CheckTri(DLine as TDATTriangle); 4: Result := CheckQuad(DLine as TDATQuad); 5: Result := CheckOpLine(DLine as TDATOpline); + else Result := nil; end; DLine.Free; Modified: trunk/lddp/errorbar.dfm =================================================================== --- trunk/lddp/errorbar.dfm 2008-09-12 10:43:49 UTC (rev 358) +++ trunk/lddp/errorbar.dfm 2008-09-12 10:45:47 UTC (rev 359) @@ -58,7 +58,6 @@ end object JvDockClient1: TJvDockClient DirectDrag = False - DockStyle = frMain.JvDockDelphiStyle1 CustomDock = False Left = 8 Top = 16 @@ -121,55 +120,55 @@ end object acECFixError: TAction Category = 'Error Check' - Caption = 'Autofix Selected Error' + Caption = 'Fix Selected Error' Enabled = False OnExecute = acECFixErrorExecute end object acECFixAllErrors: TAction Category = 'Error Check' - Caption = 'Autofix All Errors' + Caption = 'Fix All Errors' Enabled = False OnExecute = acECFixAllErrorsExecute end object acECMarkAll: TAction Category = 'Error Check' - Caption = 'Mark All' + Caption = 'Mark All Errors' Enabled = False OnExecute = acECMarkAllExecute end object acECUnMarkAll: TAction Category = 'Error Check' - Caption = 'Unmark All' + Caption = 'Unmark All Errors' Enabled = False OnExecute = acECUnMarkAllExecute end object acECFixAllMarkedErrors: TAction Category = 'Error Check' - Caption = 'Autofix All Marked Errors' + Caption = 'Fix All Marked Errors' Enabled = False OnExecute = acECFixAllMarkedErrorsExecute end object acECFixAllMarkedErrorsTyped: TAction Category = 'Error Check' - Caption = 'Autofix All Marked Errors of Selected Type' + Caption = 'Fix All Marked Errors of Selected Type' Enabled = False OnExecute = acECFixAllMarkedErrorsTypedExecute end object acECFixAllErrorsTyped: TAction Category = 'Error Check' - Caption = 'Autofix All Errors of Selected Type' + Caption = 'Fix All Errors of Selected Type' Enabled = False OnExecute = acECFixAllErrorsTypedExecute end object acECMarkAllTyped: TAction Category = 'Error Check' - Caption = 'Mark All of Selected Type' + Caption = 'Mark All Errors of the Selected Type' Enabled = False OnExecute = acECMarkAllTypedExecute end object acECUnMarkAllTyped: TAction Category = 'Error Check' - Caption = 'Unmark All of Selected Type' + Caption = 'Unmark All Errors of the Selected Type' Enabled = False OnExecute = acECUnMarkAllTypedExecute end Modified: trunk/lddp/errorbar.pas =================================================================== --- trunk/lddp/errorbar.pas 2008-09-12 10:43:49 UTC (rev 358) +++ trunk/lddp/errorbar.pas 2008-09-12 10:45:47 UTC (rev 359) @@ -74,10 +74,10 @@ procedure FormDestroy(Sender: TObject); procedure FormShow(Sender: TObject); private - procedure ErrorCheckErrorFix(OnlyMarked: Boolean; ErrorType: string); - procedure SetErrorCheckMarks(State: Boolean; ErrorType: string); + procedure ErrorCheckErrorFix(OnlyMarked: Boolean; ErrorType: TDATErrorType); + procedure SetErrorCheckMarks(State: Boolean; ErrorType: TDATErrorType); public - procedure AddError(LineNumber: string; ErrorRec: TDATError); + procedure AddError(LineNumber: string; const ErrorRec: TDATError); procedure LoadFormValues; procedure SaveFormValues; procedure RestorePosition; @@ -92,17 +92,20 @@ uses IniFiles, DATBase, DATModel, DATErrorFix, DATUtils, main, options, - commonprocs, windowsspecific; + commonprocs, windowsspecific, Contnrs; -procedure TfrErrorWindow.AddError(LineNumber: string; ErrorRec: TDATError); +procedure TfrErrorWindow.AddError(LineNumber: string; const ErrorRec: TDATError); var error: TListItem; + PError: TDATError; begin + PError := TDATError.Create; + PError.Assign(ErrorRec); error := ErrorListView.Items.Add; error.Checked := True; -// PDATError(error.Data) := @ErrorRec; + error.Data := Pointer(PError); error.SubItems.Add(LineNumber); error.SubItems.Add(GetErrorString(ErrorRec)); end; @@ -127,12 +130,15 @@ Item: TListItem; Selected: Boolean); var UnFixableError: Boolean; + error: TDATError; begin - UnFixableError := (Item.SubItems[1] = 'Identical vertices') or - (pos('Singular matrix',Item.SubItems[1]) > 0) or - (pos('Collinear vertices',Item.SubItems[1]) > 0) or - (pos('Vertices not coplaner',Item.SubItems[1]) > 0); + error := TDATError(Item.Data); + UnFixableError := (error.ErrorType = deIdenticalVertices) or + (error.ErrorType = deSigularMatrix) or + (error.ErrorType = deCollinearVertices) or + (error.ErrorType = deNonCoplanerVertices) or + (error.ErrorType = deColor24Illegal); acECFixError.Enabled := not UnFixableError; acECFixAllErrorsTyped.Enabled := not UnFixableError; acECFixAllMarkedErrorsTyped.Enabled := not UnFixableError; @@ -141,16 +147,22 @@ procedure TfrErrorWindow.FormClose(Sender: TObject; var Action: TCloseAction); begin SaveFormValues; - frMain.UpdateViewMenu; end; procedure TfrErrorWindow.FormCreate(Sender: TObject); + begin TranslateComponent(self); end; procedure TfrErrorWindow.FormDestroy(Sender: TObject); + +var + i: Integer; + begin + for i := 0 to ErrorListView.Items.Count - 1 do + TDATError(ErrorListView.Items[i].Data).Free; SaveFormValues; end; @@ -167,12 +179,15 @@ i, j, iline: Integer; identline: Boolean; DATModel1: TDATModel; - errorlist: TDATErrorList; + errorlist: TObjectList; error: TDATError; begin Screen.Cursor := crHourGlass; + for i := 0 to ErrorListView.Items.Count - 1 do + TDATError(ErrorListView.Items[i].Data).Free; + ErrorListView.Items.Clear; DATModel1 := TDATModel.Create; @@ -233,6 +248,7 @@ // Do not continue if line is identical if identline then begin + error := TDATError.Create; error.ErrorType := deIdenticalLine; error.Line := iline + 1; AddError(IntToStr(i + 1), error) @@ -241,13 +257,15 @@ begin // Check for All Other Errors errorlist := L3CheckLine(DATModel1[i].DATString); - if Length(errorlist) > 0 then - for j := 0 to Length(errorlist) - 1 do - AddError(IntToStr(i + 1), errorlist[j]); + if errorlist.Count > 0 then + for j := 0 to errorlist.Count - 1 do + AddError(IntToStr(i + 1), (errorlist[j] as TDATError)); + if Assigned(errorlist) then + errorlist.Free; end; end; - DATModel1.Free; + DATModel1.Free; if ErrorListView.Items.Count > 0 then begin @@ -283,62 +301,37 @@ Screen.Cursor := crDefault; end; -procedure TfrErrorWindow.ErrorCheckErrorFix(OnlyMarked: Boolean; ErrorType: string); +procedure TfrErrorWindow.ErrorCheckErrorFix(OnlyMarked: Boolean; ErrorType: TDATErrorType); // Route appropriate error to the error fixing procedure // OnlyMarked set will only fix checked errors -// Errortype set will ony fix those types of errors +// Errortype set will only fix those types of errors var i: Integer; - currenterror: string; + CurrentErrorType: TDATErrorType; begin - if pos('Identical to line', ErrorType) > 0 then - ErrorType := 'Identical to line'; - - if ErrorListView.Items.Count > 0 then - for i := ErrorListView.Items.Count - 1 downto 0 do - begin - ErrorListView.ItemIndex := i; - currenterror := ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1]; - if pos('Identical to line', currenterror) > 0 then - currenterror := 'Identical to line'; - if ((not OnlyMarked) and (ErrorType = '')) or - ((not OnlyMarked) and (currenterror = ErrorType)) or - ((OnlyMarked and ErrorListView.Items[ErrorListView.ItemIndex].Checked) and (ErrorType = '')) or - ((OnlyMarked and ErrorListView.Items[ErrorListView.ItemIndex].Checked) and (currenterror = ErrorType)) then - acECFixErrorExecute(nil); - end; + for i := ErrorListView.Items.Count - 1 downto 0 do + begin + ErrorListView.ItemIndex := i; + CurrentErrorType := TDATError(ErrorListView.Items[i].Data).ErrorType; + if ((not OnlyMarked) and (ErrorType = deNil)) or + ((not OnlyMarked) and (CurrentErrorType = ErrorType)) or + ((OnlyMarked and ErrorListView.Items[i].Checked) and (ErrorType = deNil)) or + ((OnlyMarked and ErrorListView.Items[i].Checked) and (CurrentErrorType = ErrorType)) then + acECFixErrorExecute(nil); + end; end; -procedure TfrErrorWindow.SetErrorCheckMarks(State: Boolean; ErrorType: string); +procedure TfrErrorWindow.SetErrorCheckMarks(State: Boolean; ErrorType: TDATErrorType); var i: Integer; - errorstring: string; begin - if pos('Identical to line', ErrorType) > 0 then - ErrorType := 'Identical to line' - else if pos('Vertices not coplaner', ErrorType) > 0 then - ErrorType := 'Vertices not coplaner' - else if pos('Collinear vertices', ErrorType) > 0 then - ErrorType := 'Collinear vertices'; - - if ErrorListView.Items.Count > 0 then - for i := 0 to ErrorListView.Items.Count - 1 do - begin - if pos('Identical to line', ErrorListView.Items[i].SubItems[1]) > 0 then - errorstring := 'Identical to line' - else if pos('Vertices not coplaner', ErrorListView.Items[i].SubItems[1]) > 0 then - errorstring := 'Vertices not coplaner' - else if pos('Collinear vertices', ErrorListView.Items[i].SubItems[1]) > 0 then - errorstring := 'Collinear vertices' - else - errorstring := ErrorListView.Items[i].SubItems[1]; - - if (ErrorType = '') or (ErrorType = errorstring) then - ErrorListView.Items[i].Checked := State; - end; + for i := 0 to ErrorListView.Items.Count - 1 do + if (ErrorType = deNil) or + (ErrorType = TDATError(ErrorListView.Items[i].Data).ErrorType) then + ErrorListView.Items[i].Checked := State; end; procedure TfrErrorWindow.acECFixErrorExecute(Sender: TObject); @@ -347,119 +340,81 @@ DATElem: TDATElement; tri1, tri2: TDATTriangle; i: Integer; + errorfixed: Boolean; + PError: TDATError; begin if ErrorListView.ItemIndex >= 0 then // Set postion to line with error ErrorListViewDblClick(Sender); + PError := TDATError(ErrorListView.Items[ErrorListView.ItemIndex].Data); // Fix the error - if pos('Bad vertex sequence, 0132',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then - begin - DATElem := TDATQuad.Create; - with DATElem as TDATQuad do - begin - DATString := frMain.editor.lines[frMain.editor.CaretY-1]; - FixBowtieQuad1243(DATElem as TDATQuad); - frMain.editor.lines[frMain.editor.CaretY-1] := DATString; + with ErrorListView.Items[ErrorListView.ItemIndex] do + case PError.ErrorType of + deRowAllZeros, deYColumnAllZeros: + begin + DATElem := TDATSubPart.Create; + (DATElem as TDATSubPart).DATString := + frMain.editor.Lines[frMain.editor.CaretY - 1]; + if PError.ErrorType = deRowAllZeros then + FixRowAllZeros(DATElem as TDATSubPart, PError.Row) + else + FixYColumnAllZeros(DATElem as TDATSubPart); + frMain.editor.lines[frMain.editor.CaretY - 1] := + (DATElem as TDATSubPart).DATString; + DATElem.Free; + errorfixed := True; + end; + deConcaveQuad: + begin + DATElem := TDATQuad.Create; + with DATElem as TDATQuad do + begin + DATString := frMain.editor.lines[frMain.editor.CaretY - 1]; + if PError.SplitOn24 then + SplitConcaveQuad24((DATElem as TDATQuad), tri1, tri2) + else + SplitConcaveQuad13((DATElem as TDATQuad), tri1, tri2); + frMain.editor.Lines[frMain.editor.CaretY-1] := tri1.DATString; + frMain.editor.Lines.Insert(frMain.editor.CaretY, tri2.DATString); + Free; + end; + tri1.Free; + tri2.Free; + for i := ErrorListView.ItemIndex + 1 to ErrorListView.Items.Count - 1 do + ErrorListView.Items[i].SubItems[0] := + IntToStr(StrToInt(ErrorListView.Items[i].SubItems[0]) + 1); + errorfixed := True; + end; + deBowtieQuad: + begin + DATElem := TDATQuad.Create; + with DATElem as TDATQuad do + begin + DATString := frMain.editor.lines[frMain.editor.CaretY - 1]; + if PError.IsBowtieType1423 then + FixBowtieQuad1423(DATElem as TDATQuad) + else + FixBowtieQuad1423(DATElem as TDATQuad); + frMain.editor.lines[frMain.editor.CaretY-1] := DATString; + Free; + end; + errorfixed := True; + end; + deIdenticalLine: + begin + frMain.editor.lines[frMain.editor.CaretY-1]:=''; + errorfixed := True; + end; + else errorfixed := false; end; - DATElem.Free; - ErrorListView.items.delete(ErrorListView.ItemIndex); - end - else if pos('Bad vertex sequence, 0312',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then + // Delete list entry if error fixed + if errorfixed then begin - DATElem := TDATQuad.Create; - with DATElem as TDATQuad do - begin - DATString := frMain.editor.lines[frMain.editor.CaretY-1]; - FixBowtieQuad1423(DATElem as TDATQuad); - frMain.editor.lines[frMain.editor.CaretY-1] := DATString; - end; - DATElem.Free; - ErrorListView.items.delete(ErrorListView.ItemIndex); - end - - else if pos('Concave Quad, split on 13',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then - begin - DATElem := TDATQuad.Create; - with DATElem as TDATQuad do - begin - DATString := frMain.editor.lines[frMain.editor.CaretY-1]; - SplitConcaveQuad24((DATElem as TDATQuad), tri1, tri2); - frMain.editor.Lines[frMain.editor.CaretY-1] := tri1.DATString; - frMain.editor.Lines.Insert(frMain.editor.CaretY, tri2.DATString); - end; - DATElem.Free; - tri1.Free; - tri2.Free; - for i := ErrorListView.ItemIndex + 1 to ErrorListView.Items.Count - 1 do - ErrorListView.Items[i].SubItems[0] := IntToStr(StrToInt(ErrorListView.Items[i].SubItems[0]) + 1); - ErrorListView.items.delete(ErrorListView.ItemIndex); - end - - else if pos('Concave Quad, split on 02',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then - begin - DATElem := TDATQuad.Create; - with DATElem as TDATQuad do - begin - DATString := frMain.editor.lines[frMain.editor.CaretY-1]; - SplitConcaveQuad13((DATElem as TDATQuad), tri1, tri2); - frMain.editor.Lines[frMain.editor.CaretY-1] := tri1.DATString; - frMain.editor.Lines.Insert(frMain.editor.CaretY, tri2.DATString); - end; - DATElem.Free; - tri1.Free; - tri2.Free; - for i := ErrorListView.ItemIndex + 1 to ErrorListView.Items.Count - 1 do - ErrorListView.Items[i].SubItems[0] := IntToStr(StrToInt(ErrorListView.Items[i].SubItems[0]) + 1); - ErrorListView.items.delete(ErrorListView.ItemIndex); - end - - else if pos('Identical to line',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then - begin - frMain.editor.lines[frMain.editor.CaretY-1]:=''; - ErrorListView.items.delete(ErrorListView.ItemIndex); - end - - else if pos('Row 0 all zeros',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then - begin - DATElem := TDATSubPart.Create; - (DATElem as TDATSubPart).DATString := frMain.editor.Lines[frMain.editor.CaretY-1]; - FixRowAllZeros(DATElem as TDATSubPart, 1); - frMain.editor.lines[frMain.editor.CaretY-1] := (DATElem as TDATSubPart).DATString; - DATElem.Free; - ErrorListView.items.delete(ErrorListView.ItemIndex); - end - - else if pos('Row 1 all zeros',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then - begin - DATElem := TDATSubPart.Create; - (DATElem as TDATSubPart).DATString := frMain.editor.lines[frMain.editor.CaretY-1]; - FixRowAllZeros(DATElem as TDATSubPart, 2); - frMain.editor.lines[frMain.editor.CaretY-1] := (DATElem as TDATSubPart).DATString; - DATElem.Free; - ErrorListView.items.delete(ErrorListView.ItemIndex); - end - - else if pos('Row 2 all zeros',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then - begin - DATElem := TDATSubPart.Create; - (DATElem as TDATSubPart).DATString := frMain.editor.lines[frMain.editor.CaretY-1]; - FixRowAllZeros(DATElem as TDATSubPart, 3); - frMain.editor.lines[frMain.editor.CaretY-1] := (DATElem as TDATSubPart).DATString; - DATElem.Free; - ErrorListView.items.delete(ErrorListView.ItemIndex); - end - - else if pos('Y column all zeros',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then - begin - DATElem := TDATSubPart.Create; - (DATElem as TDATSubPart).DATString := frMain.editor.lines[frMain.editor.CaretY-1]; - FixYColumnAllZeros(DATElem as TDATSubPart); - frMain.editor.lines[frMain.editor.CaretY-1] := (DATElem as TDATSubPart).DATString; - DATElem.Free; - ErrorListView.items.delete(ErrorListView.ItemIndex); + TDATError(ErrorListView.Items[ErrorListView.ItemIndex].Data).Free;; + ErrorListView.Items.Delete(ErrorListView.ItemIndex); end; if ErrorListView.Items.Count < 1 then @@ -480,49 +435,49 @@ procedure TfrErrorWindow.acECFixAllErrorsExecute(Sender: TObject); // Fix all errors in the error list begin - ErrorCheckErrorFix(False,''); + ErrorCheckErrorFix(False, deNil); end; procedure TfrErrorWindow.acECMarkAllExecute(Sender: TObject); // Check the checkbox for all errors begin - SetErrorCheckMarks(True, ''); + SetErrorCheckMarks(True, deNil); end; procedure TfrErrorWindow.acECUnMarkAllExecute(Sender: TObject); // Uncheck the checkbox for all errors begin - SetErrorCheckMarks(False, ''); + SetErrorCheckMarks(False, deNil); end; procedure TfrErrorWindow.acECMarkAllTypedExecute(Sender: TObject); // Check the checkbox for all errors of the currently selected type begin - SetErrorCheckMarks(True, ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1]); + SetErrorCheckMarks(True, TDATError(ErrorListView.Items[ErrorListView.ItemIndex].Data).ErrorType); end; procedure TfrErrorWindow.acECUnMarkAllTypedExecute(Sender: TObject); // Uncheck the checkbox for all errors of the currently selected type begin - SetErrorCheckMarks(False, ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1]); + SetErrorCheckMarks(False, TDATError(ErrorListView.Items[ErrorListView.ItemIndex].Data).ErrorType); end; procedure TfrErrorWindow.acECFixAllMarkedErrorsExecute(Sender: TObject); // Fix all marked errors begin - ErrorCheckErrorFix(True,''); + ErrorCheckErrorFix(True, deNil); end; procedure TfrErrorWindow.acECFixAllMarkedErrorsTypedExecute(Sender: TObject); // Fix all marked errors of the currently selected type begin - ErrorCheckErrorFix(True,ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1]); + ErrorCheckErrorFix(True, TDATError(ErrorListView.Items[ErrorListView.ItemIndex].Data).ErrorType); end; procedure TfrErrorWindow.acECFixAllErrorsTypedExecute(Sender: TObject); // Fix all marked errors of the currently selected type begin - ErrorCheckErrorFix(False,ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1]); + ErrorCheckErrorFix(False, TDATError(ErrorListView.Items[ErrorListView.ItemIndex].Data).ErrorType); end; procedure TfrErrorWindow.acECCopyExecute(Sender: TObject); Modified: trunk/lddp/main.pas =================================================================== --- trunk/lddp/main.pas 2008-09-12 10:43:49 UTC (rev 358) +++ trunk/lddp/main.pas 2008-09-12 10:45:47 UTC (rev 359) @@ -260,7 +260,6 @@ http: TIdHTTP; EditorOptions1: TMenuItem; acEditorOptions: TAction; - acToolbarVisibility: TAction; DocumentTabs: TSciDocumentTabControl; editor: TScintillaLDDP; EditorPropertyLoader: TSciPropertyLoader; @@ -275,18 +274,10 @@ AppInst: TJvAppInstances; SearchReplaceDlg: TSciSearchReplace; tbrTools: TToolBar; - ToolButton5: TToolButton; - ToolButton6: TToolButton; - ToolButton24: TToolButton; - ToolButton33: TToolButton; - ToolButton34: TToolButton; ToolButton35: TToolButton; ToolButton36: TToolButton; ToolButton37: TToolButton; ToolButton38: TToolButton; - ToolButton39: TToolButton; - ToolButton40: TToolButton; - ToolButton41: TToolButton; ToolButton43: TToolButton; ToolButton9: TToolButton; ToolButton12: TToolButton; @@ -295,12 +286,6 @@ ToolButton17: TToolButton; ToolButton18: TToolButton; ToolButton19: TToolButton; - ToolButton20: TToolButton; - ToolButton21: TToolButton; - ToolButton22: TToolButton; - ToolButton23: TToolButton; - ToolButton25: TToolButton; - ToolButton26: TToolButton; ToolButton2: TToolButton; pmMirror: TPopupMenu; XAxis3: TMenuItem; @@ -309,6 +294,60 @@ mnuPollOnCustomInterval: TMenuItem; AutoComplete: TSciAutoComplete; ApplicationEvents1: TApplicationEvents; + printer: TSciPrinter; + Search1: TMenuItem; + acMoveXPos: TAction; + acMoveXNeg: TAction; + acMoveYPos: TAction; + acMoveYNeg: TAction; + acMoveZPos: TAction; + acMoveZNeg: TAction; + acMoveRotXPos: TAction; + acMoveRotXNeg: TAction; + acMoveRotYPos: TAction; + acMoveRotYNeg: TAction; + acMoveRotZPos: TAction; + acMoveRotZNeg: TAction; + acSaveAll: TAction; + tbrMovement: TToolBar; + ToolButton7: TToolButton; + ToolButton29: TToolButton; + ToolButton42: TToolButton; + ToolButton45: TToolButton; + ToolButton46: TToolButton; + ToolButton47: TToolButton; + ToolButton48: TToolButton; + ToolButton49: TToolButton; + ToolButton50: TToolButton; + ToolButton51: TToolButton; + ToolButton52: TToolButton; + ToolButton53: TToolButton; + tbrSearch: TToolBar; + ToolButton3: TToolButton; + ToolButton27: TToolButton; + ToolButton31: TToolButton; + ToolButton44: TToolButton; + ToolButton54: TToolButton; + ToolButton20: TToolButton; + ToolButton21: TToolButton; + ToolButton22: TToolButton; + ToolButton23: TToolButton; + ToolButton25: TToolButton; + ToolButton26: TToolButton; + ToolButton55: TToolButton; + ToolButton56: TToolButton; + ToolButton5: TToolButton; + mnuSearch: TMenuItem; + mnuMovement: TMenuItem; + pmuSearch: TMenuItem; + pmuMovement: TMenuItem; + acViewFileToolbar: TAction; + acViewSearchToolbar: TAction; + acViewToolsToolbar: TAction; + acViewExternalProgramToolbar: TAction; + acViewMovementToolbar: TAction; + acViewEditToolbar: TAction; + acViewColorReplaceToolbar: TAction; procedure acHomepageExecute(Sender: TObject); procedure acL3LabExecute(Sender: TObject); @@ -374,7 +413,6 @@ procedure acSortSelectionExecute(Sender: TObject); procedure acEditorOptionsExecute(Sender: TObject); procedure SearchReplaceDlgTextNotFound(Sender: TObject); - procedure acToolbarVisibilityExecute(Sender: TObject); procedure acErrorListExecute(Sender: TObject); procedure editorUpdateUI(Sender: TObject); procedure acFileCloseExecute(Sender: TObject); @@ -391,6 +429,16 @@ y: Integer); procedure editorDwellEnd(Sender: TObject; const position: Integer; x, y: Integer); + procedure acFilePrintExecute(Sender: TObject); + procedure acSaveAllExecute(Sender: TObject); + procedure acViewFileToolbarExecute(Sender: TObject); + procedure acViewSearchToolbarExecute(Sender: TObject); + procedure acViewToolsToolbarExecute(Sender: TObject); + procedure acViewExternalProgramToolbarExecute(Sender: TObject); + procedure acViewMovementToolbarExecute(Sender: TObject); + procedure acViewEditToolbarExecute(Sender: TObject); + procedure acViewColorReplaceToolbarExecute(Sender: TObject); + procedure acMoveXPosExecute(Sender: TObject); protected TabRightClickIndex: Integer; @@ -408,8 +456,8 @@ procedure LoadPlugins; procedure OpenFile(filename: string); procedure CloseFile(DocNumber: Integer); + procedure SaveFile(DocNumber: Integer); procedure UpdateMRU(NewFileName: TFileName= ''); - procedure UpdateViewMenu; procedure LoadFormValues; procedure SaveFormValues; end; @@ -426,7 +474,7 @@ about, options, colordialog, BezWindow, sorting, splash, BMP2LDraw, modeltreeview, dlgSubpart, commonprocs, windowsspecific, DATModel, DATUtils, DATCheck, DATErrorFix, SciStreamDefault, - STRUtils, Registry, IniFiles, SciResLang; + STRUtils, Registry, IniFiles, SciResLang, Contnrs; var splashscreen: TfrSplash; @@ -666,7 +714,7 @@ i, j, startline, endline: Integer; quad: TDATQuad; line1, line2: TDATGeometric; - errorlist: TDATErrorList; + errorlist: TObjectList; DoNotCombine: Boolean; begin @@ -692,19 +740,19 @@ begin errorlist := L3CheckLine(quad.DATString); DoNotCombine := False; - if Length(errorlist) > 0 then + if errorlist.Count > 0 then begin - for j := 0 to Length(errorlist) - 1 do - if errorlist[j].ErrorType = deBowtieQuad then - if errorlist[j].IsBowtieType1423 then + for j := 0 to errorlist.Count - 1 do + if (errorlist[j] as TDATError).ErrorType = deBowtieQuad then + if (errorlist[j] as TDATError).IsBowtieType1423 then FixBowtieQuad1423(quad) else FixBowtieQuad1243(quad); errorlist := L3CheckLine(quad.DATString); - for j := 0 to Length(errorlist) - 1 do - if (errorlist[j].ErrorType = deCollinearVertices) or - (errorlist[j].ErrorType = deNonCoplanerVertices) or - (errorlist[j].ErrorType = deConcaveQuad) then + for j := 0 to errorlist.Count - 1 do + if ((errorlist[j] as TDATError).ErrorType = deCollinearVertices) or + ((errorlist[j] as TDATError).ErrorType = deNonCoplanerVertices) or + ((errorlist[j] as TDATError).ErrorType = deConcaveQuad) then case MessageDlg(_('Combining these triangles:') + #13#10 + line1.DATString + ' (Line: ' + IntToStr(editor.LineFromPosition(editor.SelStart) + i) + ')' + #13#10 + line2.DATString + ' (Line: ' + IntToStr(editor.LineFromPosition(editor.SelStart) + i + 1) + ')' + #13#10 + @@ -722,10 +770,14 @@ DModel.Free; line1.Free; line2.Free; + if Assigned(errorlist) then + errorlist.Free; Exit; end; else DoNotCombine := True; end; + if Assigned(errorlist) then + errorlist.Free; end; if not DoNotCombine then @@ -923,6 +975,12 @@ OpenFile(OpenDialog1.Files[i]); end; +procedure TfrMain.acFilePrintExecute(Sender: TObject); +begin + printer.Title := DocumentTabs.ActiveDocument.FileName; + printer.Print; +end; + procedure TfrMain.OpenFile(filename: string); // Open the specified file and set initial data begin @@ -938,19 +996,8 @@ procedure TfrMain.acFileSaveExecute(Sender: TObject); // Save file to disk if it already exists otherwise run Save As -var - fileage: TDateTime; - begin - if DocumentTabs.ActiveDocument.IsUntitled then - acFileSaveAs.Execute - else - begin - editor.Lines.SaveToFile(DocumentTabs.ActiveDocument.Filename); - editor.Modified := false; - SysUtils.FileAge(DocumentTabs.ActiveDocument.FileName, fileage); - DocumentTabs.ActiveDocument.LastChanged := fileage; - end; + SaveFile(DocumentTabs.ActiveDocument.Index); end; procedure TfrMain.acFileSaveAsExecute(Sender: TObject); @@ -964,10 +1011,37 @@ UpdateMRU(SaveDialog1.FileName); DocumentTabs.ActiveDocument.FileName := SaveDialog1.FileName; DocumentTabs.ActiveDocument.TabName := ExtractFileName(DocumentTabs.ActiveDocument.FileName); - acFileSaveExecute(Sender); + SaveFile(DocumentTabs.ActiveDocument.Index); end; end; +procedure TfrMain.acSaveAllExecute(Sender: TObject); +// Save all open documents +var + i: Integer; + +begin + for i:= DocumentTabs.Count - 1 downto 0 do + SaveFile(i); +end; + +procedure TfrMain.SaveFile(DocNumber: Integer); +// Save the file of the specified tab +var + fileage: TDateTime; + +begin + if DocumentTabs.ActiveDocument.IsUntitled then + acFileSaveAs.Execute + else + begin + editor.SaveToFile(DocumentTabs.ActiveDocument.Filename); + DocumentTabs.ActiveDocument.Modified := editor.Modified; + SysUtils.FileAge(DocumentTabs.ActiveDocument.FileName, fileage); + DocumentTabs.ActiveDocument.LastChanged := fileage; + end; +end; + procedure TfrMain.acFileExitExecute(Sender: TObject); // Close application begin @@ -977,8 +1051,8 @@ procedure TfrMain.acFileRevertExecute(Sender: TObject); // Reloads active document losing any changes begin - if MessageDlg(_('Reload last saved version?') + #13#10 + - _('All changes will be lost!'), mtConfirmation, [mbYes, mbNo], 0)=mrYes then + if MessageDlg(_('Reload last saved version?' + #13#10 + + 'All changes will be lost!'), mtConfirmation, [mbYes, mbNo], 0)=mrYes then OpenFile(DocumentTabs.ActiveDocument.FileName); end; @@ -1199,6 +1273,14 @@ end; end; +// Movement actions + +procedure TfrMain.acMoveXPosExecute(Sender: TObject); +begin + +end; + + // Search actions procedure TfrMain.acFindExecute(Sender: TObject); @@ -1240,55 +1322,59 @@ end; // View Menu actions +procedure TfrMain.acViewColorReplaceToolbarExecute(Sender: TObject); +begin + tbrColorReplace.Visible := (Sender as TAction).Checked; +end; -procedure TfrMain.acToolbarVisibilityExecute(Sender: TObject); -// Toggle the toolbars on and off -var - toolbarname: string; - toolbar : TComponent; +procedure TfrMain.acViewEditToolbarExecute(Sender: TObject); begin + tbrEditing.Visible := (Sender as TAction).Checked; +end; - toolbarname := 'tbr' + Copy( (Sender as TAction).ActionComponent.Name, 4, Length((Sender as TAction).ActionComponent.Name) - 2); - toolbar := frMain.FindComponent(toolbarname); - if toolbar is TToolbar then - (toolbar as TToolbar).Visible := not (toolbar as TToolbar).Visible; - UpdateViewMenu; +procedure TfrMain.acViewExternalProgramToolbarExecute(Sender: TObject); +begin + tbrExternalPrograms.Visible := (Sender as TAction).Checked; end; -procedure TfrMain.acErrorListExecute(Sender: TObject); +procedure TfrMain.acViewFileToolbarExecute(Sender: TObject); begin - frErrorWindow.Visible := not frErrorWindow.Visible; - frErrorWindow.RestorePosition;; - UpdateViewMenu; + tbrFile.Visible := (Sender as TAction).Checked; end; -procedure TfrMain.acModelTreeViewExecute(Sender: TObject); -// Shows the model tree dialog +procedure TfrMain.acViewMovementToolbarExecute(Sender: TObject); begin - frModelTreeView.Visible := not frModelTreeView.Visible; - frModelTreeView.RestorePosition;; - UpdateViewMenu; + tbrMovement.Visible := (Sender as TAction).Checked; end; -procedure TfrMain.UpdateViewMenu; +procedure TfrMain.acViewSearchToolbarExecute(Sender: TObject); begin - //Main menu items - mnuFile.Checked := tbrFile.Visible; - mnuEditing.Checked := tbrEditing.Visible; - mnuTools.Checked := tbrTools.Visible; - mnuExternalPrograms.Checked := tbrExternalPrograms.Visible; - mnuColorReplace.Checked := tbrColorReplace.Visible; - mnuErrorList.Checked := frErrorWindow.Visible; - mnuModelTree.Checked := frModelTreeView.Visible; + tbrSearch.Visible := (Sender as TAction).Checked; +end; - //Popup menu items - pmuFile.Checked := tbrFile.Visible; - pmuEditing.Checked := tbrEditing.Visible; - pmuTools.Checked := tbrTools.Visible; - pmuExternalPrograms.Checked := tbrExternalPrograms.Visible; - pmuColorReplace.Checked := tbrColorReplace.Visible; +procedure TfrMain.acViewToolsToolbarExecute(Sender: TObject); +begin + tbrTools.Visible := (Sender as TAction).Checked; end; +procedure TfrMain.acErrorListExecute(Sender: TObject); +begin + frErrorWindow.Visible := (Sender as TAction).Checked; + if frErrorWindow.Visible then + begin + frErrorWindow.RestorePosition; + frErrorWindow.acErrorCheck.Execute; + end; +end; + +procedure TfrMain.acModelTreeViewExecute(Sender: TObject); +// Shows the model tree dialog +begin + frModelTreeView.Visible := (Sender as TAction).Checked; + if frModelTreeView.Visible then + frModelTreeView.RestorePosition; +end; + // Other procedures procedure TfrMain.FileIsDropped(var Msg: TMessage); @@ -1453,7 +1539,6 @@ DocumentTabs.ActiveDocument.LastChanged := fileage; end; end; - end; procedure TfrMain.FormDblClick(Sender: TObject); @@ -1472,21 +1557,15 @@ end; procedure TfrMain.FormShow(Sender: TObject); -// if app starts for first time this initializes application and updates controls +// Inits the app and shows model tree if needed begin AppInitialize; frModelTreeView.RestorePosition; + acModelTreeView.Checked := frModelTreeView.Visible; end; Procedure TfrMain.AppInitialize; -(* -Description: Initializes Application: - 1.) Show Splash - 2.) Save Installdir (for plugins) - 3.) Save no. of items in empty plugin list in pmmemo.tag - 4.) Loads plugins - 5.) assumes any params are files to load and loads them -*) +// Initializes Application var i: Integer; regT: TRegistry; @@ -1509,8 +1588,16 @@ //Load form parameters from INI file LoadFormValues; - UpdateViewMenu; - + + // View menu settings; + acViewFileToolbar.Checked := tbrFile.Visible; + acViewSearchToolbar.Checked := tbrSearch.Visible; + acViewExternalProgramToolbar.Checked := tbrExternalPrograms.Visible; + acViewMovementToolbar.Checked := tbrMovement.Visible; + acViewToolsToolbar.Checked := tbrTools.Visible; + acViewEditToolbar.Checked := tbrEditing.Visible; + acViewColorReplaceToolbar.Checked := tbrColorReplace.Visible; + //Set defaults based on options editor.PositionDecimalPlaces := frOptions.sePntAcc.Value; editor.RotationDecimalPlaces := frOptions.seRotAcc.Value; @@ -1959,6 +2046,7 @@ var LDDPini: TMemIniFile; IniSection: string; + i: Integer; begin LDDPini := TMemIniFile.Create(IniFilePath + '\LDDP.ini'); @@ -1969,21 +2057,17 @@ Top := LDDPini.ReadInteger(IniSection, 'frMain_Top', Top); Width := LDDPini.ReadInteger(IniSection, 'frMain_Width', Width); Height := LDDPini.ReadInteger(IniSection, 'frMain_Height', Height); - tbrFile.Visible := LDDPini.ReadBool(IniSection, 'tbrFile_Visible', tbrFile.Visible); - tbrFile.Top := LDDPini.ReadInteger(IniSection, 'tbrFile_Top', tbrFile.Top); - tbrFile.Left := LDDPini.ReadInteger(IniSection, 'tbrFile_Left', tbrFile.Left); - tbrExternalPrograms.Visible := LDDPini.ReadBool(IniSection, 'tbrExternalPrograms_Visible', tbrExternalPrograms.Visible); - tbrExternalPrograms.Top := LDDPini.ReadInteger(IniSection, 'tbrExternalPrograms_Top', tbrExternalPrograms.Top); - tbrExternalPrograms.Left := LDDPini.ReadInteger(IniSection, 'tbrExternalPrograms_Left', tbrExternalPrograms.Left); - tbrTools.Visible := LDDPini.ReadBool(IniSection, 'tbrTools_Visible', tbrTools.Visible); - tbrTools.Top := LDDPini.ReadInteger(IniSection, 'tbrTools_Top', tbrTools.Top); - tbrTools.Left := LDDPini.ReadInteger(IniSection, 'tbrTools_Left', tbrTools.Left); - tbrEditing.Visible := LDDPini.ReadBool(IniSection, 'tbrEditing_Visible', tbrEditing.Visible); - tbrEditing.Top := LDDPini.ReadInteger(IniSection, 'tbrEditing_Top', tbrEditing.Top); - tbrEditing.Left := LDDPini.ReadInteger(IniSection, 'tbrEditing_Left', tbrEditing.Left); - tbrColorReplace.Visible := LDDPini.ReadBool(IniSection, 'tbrColorReplace_Visible', tbrColorReplace.Visible); - tbrColorReplace.Top := LDDPini.ReadInteger(IniSection, 'tbrColorReplace_Top', tbrColorReplace.Top); - tbrColorReplace.Left := LDDPini.ReadInteger(IniSection, 'tbrColorReplace_Left', tbrColorReplace.Left); + + // Load toolbar settings + for i := 0 to ComponentCount - 1 do + if Components[i] is TToolbar then + with Components[i] as TToolbar do + begin + Visible := LDDPini.ReadBool(IniSection, Name + '_Visible', True); + Top := LDDPini.ReadInteger(IniSection, Name + '_Top', Top); + Left := LDDPini.ReadInteger(IniSection, Name + '_Left', Left); + end; + if LDDPini.ReadBool(IniSection, 'mnuEnablePolling_Checked', mnuEnablePolling.Checked) then mnuEnablePollingClick(nil); if LDDPini.ReadBool(IniSection, 'mnuPollToSelected_Checked', mnuPollToSelected.Checked) then @@ -2008,6 +2092,7 @@ var LDDPini: TMemIniFile; IniSection: string; + i: Integer; begin LDDPini := TMemIniFile.Create(IniFilePath + '\LDDP.ini'); @@ -2021,21 +2106,17 @@ LDDPini.WriteInteger(IniSection, 'frMain_Top', Top); LDDPini.WriteInteger(IniSection, 'frMain_Width', Width); LDDPini.WriteInteger(IniSection, 'frMain_Height', Height); - LDDPini.WriteBool(IniSection, 'tbrFile_Visible', tbrFile.Visible); - LDDPini.WriteInteger(IniSection, 'tbrFile_Top', tbrFile.Top); - LDDPini.WriteInteger(IniSection, 'tbrFile_Left', tbrFile.Left); - LDDPini.WriteBool(IniSection, 'tbrExternalPrograms_Visible', tbrExternalPrograms.Visible); - LDDPini.WriteInteger(IniSection, 'tbrExternalPrograms_Top', tbrExternalPrograms.Top); - LDDPini.WriteInteger(IniSection, 'tbrExternalPrograms_Left', tbrExternalPrograms.Left); - LDDPini.WriteBool(IniSection, 'tbrTools_Visible', tbrTools.Visible); - LDDPini.WriteInteger(IniSection, 'tbrTools_Top', tbrTools.Top); - LDDPini.WriteInteger(IniSection, 'tbrTools_Left', tbrTools.Left); - LDDPini.WriteBool(IniSection, 'tbrEditing_Visible', tbrEditing.Visible); - LDDPini.WriteInteger(IniSection, 'tbrEditing_Top', tbrEditing.Top); - LDDPini.WriteInteger(IniSection, 'tbrEditing_Left', tbrEditing.Left); - LDDPini.WriteBool(IniSection, 'tbrColorReplace_Visible', tbrColorReplace.Visible); - LDDPini.WriteInteger(IniSection, 'tbrColorReplace_Top', tbrColorReplace.Top); - LDDPini.WriteInteger(IniSection, 'tbrColorReplace_Left', tbrColorReplace.Left); + + // Save toolbar settings + for i := 0 to ComponentCount - 1 do + if Components[i] is TToolbar then + with Components[i] as TToolbar do + begin + LDDPini.WriteBool(IniSection, Name + '_Visible', Visible); + LDDPini.WriteInteger(IniSection, Name + '_Top', Top); + LDDPini.WriteInteger(IniSection, Name + '_Left', Left); + end; + LDDPini.WriteBool(IniSection, 'mnuEnablePolling_Checked', mnuEnablePolling.Checked); LDDPini.WriteBool(IniSection, 'mnuPollToSelected_Checked', mnuPollToSelected.Checked); LDDPini.WriteBool(IniSection, 'mnuPollEvery1Sec_Checked', mnuPollEvery1Sec.Checked); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-09-12 10:43:51
|
Revision: 358 http://lddp.svn.sourceforge.net/lddp/?rev=358&view=rev Author: billthefish Date: 2008-09-12 10:43:49 +0000 (Fri, 12 Sep 2008) Log Message: ----------- Added Paths: ----------- trunk/gfx/bend.ico trunk/gfx/colrandom.ico trunk/gfx/savemult.ico trunk/gfx/x+.ico trunk/gfx/x-.ico trunk/gfx/xrot+.ico trunk/gfx/xrot-.ico trunk/gfx/y+.ico trunk/gfx/y-.ico trunk/gfx/yrot+.ico trunk/gfx/yrot-.ico trunk/gfx/z+.ico trunk/gfx/z-.ico trunk/gfx/zrot+.ico trunk/gfx/zrot-.ico Property changes on: trunk/gfx/bend.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/colrandom.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/savemult.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/x+.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/x-.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/xrot+.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/xrot-.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/y+.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/y-.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/yrot+.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/yrot-.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/z+.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/z-.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/zrot+.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/zrot-.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-09-12 10:42:27
|
Revision: 357 http://lddp.svn.sourceforge.net/lddp/?rev=357&view=rev Author: billthefish Date: 2008-09-12 10:42:24 +0000 (Fri, 12 Sep 2008) Log Message: ----------- Modified Paths: -------------- trunk/Current Build/LDDesignPad.exe Property Changed: ---------------- trunk/Current Build/ Property changes on: trunk/Current Build ___________________________________________________________________ Modified: svn:ignore - DCU + DCU *.bpl *.~bpl This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-09-06 00:43:17
|
Revision: 356 http://lddp.svn.sourceforge.net/lddp/?rev=356&view=rev Author: billthefish Date: 2008-09-06 00:43:15 +0000 (Sat, 06 Sep 2008) Log Message: ----------- Modified Paths: -------------- trunk/Current Build/LDDesignPad.exe trunk/lddp/main.dfm trunk/lddp/main.pas trunk/lddp/modeltreeview.dfm trunk/lddp/modeltreeview.pas Modified: trunk/lddp/main.pas =================================================================== --- trunk/lddp/main.pas 2008-09-05 22:23:04 UTC (rev 355) +++ trunk/lddp/main.pas 2008-09-06 00:43:15 UTC (rev 356) @@ -28,7 +28,7 @@ SciScintillaBase, SciScintillaMemo, SciScintilla, SciScintillaLDDP, SciDocTabCtrl, Windows, Graphics, Forms, Messages, SysUtils, Types, StdCtrls, ShellAPI, sciPrint, SciScintillaOptionsFrm, SciAutoComplete, - SciCallTips, DATBase; + SciCallTips, DATBase, AppEvnts; type TfrMain = class(TForm) @@ -308,6 +308,7 @@ ZAxis3: TMenuItem; mnuPollOnCustomInterval: TMenuItem; AutoComplete: TSciAutoComplete; + ApplicationEvents1: TApplicationEvents; procedure acHomepageExecute(Sender: TObject); procedure acL3LabExecute(Sender: TObject); @@ -390,7 +391,6 @@ y: Integer); procedure editorDwellEnd(Sender: TObject; const position: Integer; x, y: Integer); - procedure FormActivate(Sender: TObject); protected TabRightClickIndex: Integer; @@ -1364,6 +1364,7 @@ var i: Integer; DLine: TDATType; + fileage: TDateTime; begin DocumentTabs.ActiveDocument.Modified := editor.Modified; @@ -1371,14 +1372,22 @@ // Update panel values if editor.Modified then begin - DocumentTabs.ActiveDocument.TabName := - ExtractFileName(DocumentTabs.ActiveDocument.FileName) + ' *'; + if DocumentTabs.ActiveDocument.IsUntitled then + DocumentTabs.ActiveDocument.TabName := + '<' + ExtractFileName(DocumentTabs.ActiveDocument.FileName) + '> *' + else + DocumentTabs.ActiveDocument.TabName := + ExtractFileName(DocumentTabs.ActiveDocument.FileName) + ' *'; Statusbar.Panels[2].Text:=_('Modified') end else begin - DocumentTabs.ActiveDocument.TabName := - ExtractFileName(DocumentTabs.ActiveDocument.FileName); + if DocumentTabs.ActiveDocument.IsUntitled then + DocumentTabs.ActiveDocument.TabName := + '<' + ExtractFileName(DocumentTabs.ActiveDocument.FileName) + '>' + else + DocumentTabs.ActiveDocument.TabName := + ExtractFileName(DocumentTabs.ActiveDocument.FileName); Statusbar.Panels[2].Text:=''; end; @@ -1424,6 +1433,27 @@ // Check style state and enable auto complete and call tips for linetype 1 file AutoComplete.Disabled := (editor.GetStyleAt(editor.GetCurrentPos) <> 16) and (editor.GetStyleAt(editor.GetCurrentPos) <> 17); + + // Update the model tree view + if frModelTreeView.Visible then + frModelTreeView.FormActivate(nil); + + // Check external changes + if (not DocumentTabs.ActiveDocument.IsUntitled) and + FileExists(DocumentTabs.ActiveDocument.FileName) then + begin + SysUtils.FileAge(DocumentTabs.ActiveDocument.FileName, fileage); + if fileage <> DocumentTabs.ActiveDocument.LastChanged then + begin + if MessageDlg(_('File has been externally changed.' + #13#10 + + 'Reload last saved version?' + #13#10 + + 'All changes will be lost!'), + mtConfirmation, [mbYes, mbNo], 0, mbNo) = mrYes then + OpenFile(DocumentTabs.ActiveDocument.FileName); + DocumentTabs.ActiveDocument.LastChanged := fileage; + end; + end; + end; procedure TfrMain.FormDblClick(Sender: TObject); @@ -1434,6 +1464,7 @@ procedure TfrMain.FormCreate(Sender: TObject); begin +// frMain.OnActivate := DocumentTabsChange; TranslateComponent(Self); DragAcceptFiles(Handle,True); Initialized := False; @@ -1613,18 +1644,7 @@ end; procedure TfrMain.DocumentTabsChange(Sender: TObject); - -var - fileage: TDateTime; - begin - if not DocumentTabs.ActiveDocument.IsUntitled then - begin - SysUtils.FileAge(DocumentTabs.ActiveDocument.FileName, fileage); - if fileage <> DocumentTabs.ActiveDocument.LastChanged then - acFileRevert.Execute; - DocumentTabs.ActiveDocument.LastChanged := fileage; - end; if frErrorWindow.Visible then frErrorWindow.acErrorCheck.Execute; end; @@ -2037,11 +2057,6 @@ ChangeFileExt(ExtractFileName(DocumentTabs.ActiveDocument.FileName), '.lddptmp'); end; -procedure TfrMain.FormActivate(Sender: TObject); -begin - DocumentTabsChange(Sender); -end; - procedure TfrMain.FormClose(Sender: TObject; var Action: TCloseAction); var i: Integer; Modified: trunk/lddp/modeltreeview.pas =================================================================== --- trunk/lddp/modeltreeview.pas 2008-09-05 22:23:04 UTC (rev 355) +++ trunk/lddp/modeltreeview.pas 2008-09-06 00:43:15 UTC (rev 356) @@ -28,10 +28,10 @@ TfrModelTreeView = class(TForm) tvModel: TTreeView; JvDockClient1: TJvDockClient; - procedure FormShow(Sender: TObject); procedure tvModelDblClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); + procedure FormActivate(Sender: TObject); private public procedure AddNodes(ANode: TTreeNode; AString: string); @@ -51,29 +51,6 @@ IniFiles, main, windowsspecific, DATModel, DATBase; -procedure TfrModelTreeView.FormShow(Sender: TObject); - -var - RootNode: TTreeNode; - i: Integer; - DModel: TDATModel; - -begin - LoadFormValues; - tvModel.Items.Clear; - DModel := TDATModel.Create; - DModel.ModelText := frMain.editor.Lines.Text; - with tvModel.Items do - begin - RootNode := Add(nil, ExtractFileName(frMain.DocumentTabs.ActiveDocument.FileName)); - for i := 0 to DModel.Count - 1 do - if DModel[i] is TDATSubPart then - AddNodes(RootNode, (DModel[i] as TDATSubPart).FileName); - RootNode.Expanded := True; - end; - DModel.Free; -end; - procedure TfrModelTreeView.AddNodes(ANode: TTreeNode; AString: string); var @@ -87,7 +64,7 @@ DModel := TDATModel.Create; DModel.LoadModel(ExtractFilePath(frMain.DocumentTabs.ActiveDocument.FileName) + AString); CurrentNode := tvModel.Items.AddChild(ANode, AString); - for I:=0 to DModel.Count - 1 do + for i := 0 to DModel.Count - 1 do if DModel[i] is TDATSubPart then AddNodes(CurrentNode, (DModel[i] as TDATSubPart).FileName); DModel.Free @@ -99,9 +76,32 @@ frMain.OpenFile(ExtractFilePath(frMain.DocumentTabs.ActiveDocument.FileName) + tvModel.Selected.Text); end; +procedure TfrModelTreeView.FormActivate(Sender: TObject); + +var + RootNode: TTreeNode; + i: Integer; + DModel: TDATModel; + +begin + tvModel.Items.Clear; + DModel := TDATModel.Create; + DModel.ModelText := frMain.editor.Lines.Text; + with tvModel.Items do + begin + RootNode := Add(nil, ExtractFileName(frMain.DocumentTabs.ActiveDocument.FileName)); + for i := 0 to DModel.Count - 1 do + if DModel[i] is TDATSubPart then + AddNodes(RootNode, (DModel[i] as TDATSubPart).FileName); + RootNode.Expanded := True; + end; + DModel.Free; +end; + procedure TfrModelTreeView.FormCreate(Sender: TObject); begin - TranslateComponent (self); + TranslateComponent(self); + LoadFormValues; end; procedure TfrModelTreeView.FormDestroy(Sender: TObject); @@ -112,18 +112,18 @@ procedure TfrModelTreeView.LoadFormValues; // Loads form values from the LDDP.ini file var - LDDPini: TMemIniFile; + LDDPini: TIniFile; IniSection: string; begin - LDDPini := TMemIniFile.Create(IniFilePath + '\LDDP.ini'); + LDDPini := TIniFile.Create(IniFilePath + '\LDDP.ini'); Inisection := 'LDDP ModelView'; - Left := LDDPini.ReadInteger(IniSection, 'frErrorWindow_Left', Left); - Top := LDDPini.ReadInteger(IniSection, 'frErrorWindow_Top', Top); - Width := LDDPini.ReadInteger(IniSection, 'frErrorWindow_Width', Width); - Height := LDDPini.ReadInteger(IniSection, 'frErrorWindow_Height', Height); + Left := LDDPini.ReadInteger(IniSection, 'frModelTreeView_Left', Left); + Top := LDDPini.ReadInteger(IniSection, 'frModelTreeView_Top', Top); + Width := LDDPini.ReadInteger(IniSection, 'frModelTreeView_Width', Width); + Height := LDDPini.ReadInteger(IniSection, 'frModelTreeView_Height', Height); LDDPini.Free; end; @@ -131,21 +131,21 @@ procedure TfrModelTreeView.SaveFormValues; // Saves form values to the LDDP.ini file var - LDDPini: TMemIniFile; + LDDPini: TIniFile; IniSection: string; begin - LDDPini := TMemIniFile.Create(IniFilePath + '\LDDP.ini'); + LDDPini := TIniFile.Create(IniFilePath + '\LDDP.ini'); // Save Main position, size, and toolbar visibility Inisection := 'LDDP ModelView'; LDDPini.EraseSection(IniSection); - LDDPini.WriteInteger(IniSection, 'frErrorWindow_Left', Left); - LDDPini.WriteInteger(IniSection, 'frErrorWindow_Top', Top); - LDDPini.WriteInteger(IniSection, 'frErrorWindow_Width', Width); - LDDPini.WriteInteger(IniSection, 'frErrorWindow_Height', Height); - LDDPini.WriteBool(IniSection, 'frErrorWindow_Floating', Floating); + LDDPini.WriteInteger(IniSection, 'frModelTreeView_Left', Left); + LDDPini.WriteInteger(IniSection, 'frModelTreeView_Top', Top); + LDDPini.WriteInteger(IniSection, 'frModelTreeView_Width', Width); + LDDPini.WriteInteger(IniSection, 'frModelTreeView_Height', Height); + LDDPini.WriteBool(IniSection, 'frModelTreeView_Floating', Floating); LDDPini.UpdateFile; LDDPini.Free; @@ -154,16 +154,16 @@ procedure TfrModelTreeView.RestorePosition; var - LDDPini: TMemIniFile; + LDDPini: TIniFile; IniSection: string; floating: Boolean; begin - LDDPini := TMemIniFile.Create(IniFilePath + '\LDDP.ini'); + LDDPini := TIniFile.Create(IniFilePath + '\LDDP.ini'); - Inisection := 'LDDP ErrorWindow'; + Inisection := 'LDDP ModelView'; - floating := LDDPini.ReadBool(IniSection, 'frErrorWindow_Floating', False); + floating := LDDPini.ReadBool(IniSection, 'frModelTreeView_Floating', False); if Visible and not floating then ManualDock(frMain.JvDockServer1.LeftDockPanel, nil, alLeft); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-09-05 22:23:07
|
Revision: 355 http://lddp.svn.sourceforge.net/lddp/?rev=355&view=rev Author: billthefish Date: 2008-09-05 22:23:04 +0000 (Fri, 05 Sep 2008) Log Message: ----------- A few more bug fixes Modified Paths: -------------- trunk/Current Build/LDDesignPad.exe trunk/DAT Tools/DATCheck.pas trunk/lddp/main.dfm trunk/lddp/main.pas Modified: trunk/DAT Tools/DATCheck.pas =================================================================== --- trunk/DAT Tools/DATCheck.pas 2008-09-05 19:44:20 UTC (rev 354) +++ trunk/DAT Tools/DATCheck.pas 2008-09-05 22:23:04 UTC (rev 355) @@ -516,11 +516,11 @@ deNonCoplanerVertices: case error.CoplanerType of ctDet: Result := strNonCoplanerVertices + - ' (det = ' + FloatToStr(error.CoplanerValue); + ' (det = ' + FloatToStr(error.CoplanerValue) + ')'; ctDist: Result := strNonCoplanerVertices + - ' (dist = ' + FloatToStr(error.CoplanerValue); + ' (dist = ' + FloatToStr(error.CoplanerValue) + ')'; ctNormalAngle: Result := strNonCoplanerVertices + - ' (angle = ' + FloatToStr(error.CoplanerValue); + ' (angle = ' + FloatToStr(error.CoplanerValue) + ')'; else Result := ''; end; deIdenticalLine: Result := strIdenticalLine + ' ' + IntToStr(error.Line); Modified: trunk/lddp/main.pas =================================================================== --- trunk/lddp/main.pas 2008-09-05 19:44:20 UTC (rev 354) +++ trunk/lddp/main.pas 2008-09-05 22:23:04 UTC (rev 355) @@ -390,6 +390,7 @@ y: Integer); procedure editorDwellEnd(Sender: TObject; const position: Integer; x, y: Integer); + procedure FormActivate(Sender: TObject); protected TabRightClickIndex: Integer; @@ -988,7 +989,7 @@ begin for i:= DocumentTabs.Count - 1 downto 0 do - DocumentTabs.Close(i, False); + CloseFile(i); end; procedure TfrMain.acFileCloseExecute(Sender: TObject); @@ -1365,11 +1366,21 @@ DLine: TDATType; begin + DocumentTabs.ActiveDocument.Modified := editor.Modified; + // Update panel values - if editor.modified then + if editor.Modified then + begin + DocumentTabs.ActiveDocument.TabName := + ExtractFileName(DocumentTabs.ActiveDocument.FileName) + ' *'; Statusbar.Panels[2].Text:=_('Modified') + end else + begin + DocumentTabs.ActiveDocument.TabName := + ExtractFileName(DocumentTabs.ActiveDocument.FileName); Statusbar.Panels[2].Text:=''; + end; StatusBar.Panels[1].text := IntToStr(editor.CaretY) + ':' + IntToStr(editor.CaretX); @@ -1611,10 +1622,8 @@ begin SysUtils.FileAge(DocumentTabs.ActiveDocument.FileName, fileage); if fileage <> DocumentTabs.ActiveDocument.LastChanged then - begin acFileRevert.Execute; - DocumentTabs.ActiveDocument.LastChanged := fileage; - end; + DocumentTabs.ActiveDocument.LastChanged := fileage; end; if frErrorWindow.Visible then frErrorWindow.acErrorCheck.Execute; @@ -1624,15 +1633,21 @@ var AllowClose: Boolean); begin - if editor.modified then + if DocumentTabs.Document[TabIndex].Modified then begin - case MessageDlg('Save changes to ' + DocumentTabs.Document[TabIndex].TabName + '?'+#13+#10+''+#13+#10+'Yes: Saves the changes and closes this document.'+#13+#10+'No: Closes the document without saving any changes.'+#13+#10+'Cancel: Keeps the document open', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of - mrYes: begin - acFileSave.Execute; - AllowClose := true; - end; - mrNo : AllowClose := true; - mrCancel: AllowClose := false; + case MessageDlg('Save changes to ' + DocumentTabs.Document[TabIndex].FileName + '?' + + #13#10 + #13#10 + + 'Yes: Saves the changes and closes this document.' + #13#10 + + 'No: Closes the document without saving any changes.'+ #13#10 + + 'Cancel: Keeps the document open', + mtConfirmation, [mbYes, mbNo, mbCancel], 0) of + mrYes: + begin + acFileSave.Execute; + AllowClose := True; + end; + mrNo : AllowClose := True; + mrCancel: AllowClose := False; end; end else @@ -2016,15 +2031,17 @@ end; function TfrMain.tempFileName:string; -{--------------------------------------------------------------------- -Description: Creates and returns a unique temporary filename for this editor window -Parameter: None -Return value: Path & Filename of the temporary filename ----------------------------------------------------------------------} +// Creates and returns a unique temporary filename begin - Result := WinTempDir + ExtractFileName(DocumentTabs.ActiveDocument.FileName); + Result := ExtractFilePath(DocumentTabs.ActiveDocument.FileName) + PathDelim + + ChangeFileExt(ExtractFileName(DocumentTabs.ActiveDocument.FileName), '.lddptmp'); end; +procedure TfrMain.FormActivate(Sender: TObject); +begin + DocumentTabsChange(Sender); +end; + procedure TfrMain.FormClose(Sender: TObject; var Action: TCloseAction); var i: Integer; @@ -2032,18 +2049,23 @@ begin for i := DocumentTabs.Count - 1 downto 0 do begin - DocumentTabs.Activate(i); - if editor.Modified then - case MessageDlg('Save changes to ' + DocumentTabs.ActiveDocument.TabName + '?'+#13+#10+''+#13+#10+'Yes: Saves the changes and closes this document.'+#13+#10+'No: Closes the document without saving any changes.'+#13+#10+'Cancel: Keeps the document open', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of - mrYes: begin - acFileSave.Execute; - DeleteFile(tempFilename); - end; - mrCancel: begin - Action := caNone; - Exit; - end; + if DocumentTabs.Document[i].Modified then + case MessageDlg(_('Save changes to ' + DocumentTabs.Document[i].FileName + '?' + + #13#10 + #13#10 + + 'Yes: Saves the changes and closes this document.' + #13#10 + + 'No: Closes the document without saving any changes.' + #13#10 + + 'Cancel: Keeps the document open'), + mtConfirmation, [mbYes, mbNo, mbCancel], 0) of + mrYes: acFileSave.Execute; + mrCancel: + begin + DocumentTabs.Activate(i); + Action := caNone; + Exit; + end; end; + if FileExists(tempFilename) then + DeleteFile(tempFilename); end; SaveFormValues; EditorPropertyLoader.Save; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-09-05 19:44:24
|
Revision: 354 http://lddp.svn.sourceforge.net/lddp/?rev=354&view=rev Author: billthefish Date: 2008-09-05 19:44:20 +0000 (Fri, 05 Sep 2008) Log Message: ----------- Fixed a few bugs Changed the way errors are handled (again) Modified Paths: -------------- trunk/Current Build/LDDesignPad.exe trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas trunk/DAT Tools/DATCheck.pas trunk/DAT Tools/DATErrorFix.pas trunk/DAT Tools/DATUtils.pas trunk/lddp/errorbar.pas trunk/lddp/main.pas Modified: trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas =================================================================== --- trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas 2008-09-03 02:05:40 UTC (rev 353) +++ trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas 2008-09-05 19:44:20 UTC (rev 354) @@ -97,9 +97,9 @@ ExpandSelection(startline, endline); if FOnlyRoundDuringAutoRound then - DModel := CreateDATModel(PositionDecimalPlaces, RotationDecimalPlaces) + DModel := TDATModel.Create else - DModel := CreateDATModel(15, 15); + DModel := CreateDATModel(PositionDecimalPlaces, RotationDecimalPlaces); DModel.ModelText := SelText; Modified: trunk/DAT Tools/DATCheck.pas =================================================================== --- trunk/DAT Tools/DATCheck.pas 2008-09-03 02:05:40 UTC (rev 353) +++ trunk/DAT Tools/DATCheck.pas 2008-09-05 19:44:20 UTC (rev 354) @@ -27,17 +27,53 @@ interface -uses - Classes; +type + TDATErrorType = (deRowAllZeros, deYColumnAllZeros, deSigularMatrix, + deCollinearVertices, deIdenticalVertices, deConcaveQuad, + deBowtieQuad, deNonCoplanerVertices, deIdenticalLine, + deColor24Illegal); -function L3CheckLine(const Line: string): TStringList; + TDATCoplanerType = (ctDet, ctDist, ctNormalAngle); + TDATError = record + case ErrorType: TDATErrorType of + deRowAllZeros: (Row: Byte); + deCollinearVertices: (CollinearValue: Extended; + CollinearVertices: array[1..3] of Integer); + deBowtieQuad: (IsBowtieType1423: Boolean); + deNonCoplanerVertices: (CoplanerValue: Extended; + CoplanerType: TDATCoplanerType); + deConcaveQuad: (SplitOn24: Boolean); + deIdenticalLine: (Line: Integer); + end; + + TDATErrorList = array of TDATError; + +const + strRow1AllZeros = 'Row 1 all zeros'; + strRow2AllZeros = 'Row 2 all zeros'; + strRow3AllZeros = 'Row 3 all zeros'; + strYColumnAllZeros = 'Y column all zeros'; + strSingularMatrix = 'Singular Matrix'; + strCollinearVertices = 'Collinear Vertices'; + strIdenticalVertices = 'Identical Vertices'; + strConcaveSplit13 = 'Concave quad, split on diagonal of points 1 and 3'; + strConcaveSplit24 = 'Concave quad, split on diagonal of points 2 and 4'; + strBowtie1423 = 'Bowtie quad, reorder points to sequence 1, 4, 2, 3'; + strBowtie1243 = 'Bowtie quad, reorder points to sequence 1, 2, 4, 3'; + strNonCoplanerVertices = 'Quad points not coplaner'; + strIdenticalLine = 'Identical to line'; + strColor24Illegal = 'Color 24 illegal for this linetype'; + var DetThreshold: Extended = 0; DistThreshold: Extended = 0; PlaneNormalAngleLimit: Extended = 0; CollinearPointsThreshold: Extended = 0.0001; +function L3CheckLine(const Line: string): TDATErrorList; +function GetErrorString(error: TDATError): string; + implementation uses @@ -155,14 +191,14 @@ Result := Angle2; end; -function CheckSubPart(datsubpart: TDATSubPart): TStringList; +function CheckSubPart(datsubpart: TDATSubPart): TDATErrorList; var det, tempval: Extended; i: Integer; begin - Result := TStringList.Create;; + SetLength(Result, 0); with datsubpart do begin det := MatrixDet(Matrix); @@ -176,7 +212,9 @@ det := MatrixDet(Matrix); if det <> 0 then begin - Result.Add('Row ' + IntToStr(i-1) + ' all zeros'); + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deRowAllZeros; + Result[Length(Result) - 1].Row := i; Break; end; end; @@ -188,56 +226,79 @@ det := MatrixDet(Matrix); if det <> 0 then begin - Result.Add('Y column all zeros'); + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deYColumnAllZeros; Break; end else MatrixVals[i,2] := tempval; end; - if det = 0 then Result.Add('Singular matrix (unfixable)'); + if det = 0 then + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deSigularMatrix; + end; end else - Result.Add('Singular matrix'); + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deSigularMatrix; + end; + if Color = 24 then + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deColor24Illegal; + end; end; end; -function CheckLine2(const line: TDATLine): TStringList; +function CheckLine2(const line: TDATLine): TDATErrorList; begin - Result := TStringList.Create;; + SetLength(Result, 0); with line do if CheckSamePoint(Point[1],Point[2]) then - Result.Add('Identical vertices'); + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deIdenticalVertices; + end; end; -function CheckTri(const tri: TDATTriangle): TStringList; +function CheckTri(const tri: TDATTriangle): TDATErrorList; var dp: Extended; begin - Result := TStringList.Create; + SetLength(Result, 0); with tri do begin if CheckSamePoint(Point[1],Point[2]) or CheckSamePoint(Point[2],Point[3]) or CheckSamePoint(Point[3],Point[1]) then - Result.Add('Identical vertices'); + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deIdenticalVertices; + end; dp := CheckLinearPoints(Point[1],Point[2],Point[3]); if dp < CollinearPointsThreshold then - Result.Add('Collinear vertices (' + FloatToStr(dp) + ')'); + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deCollinearVertices; + Result[Length(Result) - 1].CollinearValue := dp; + end; end; end; -function CheckQuad(const quad: TDATQuad): TStringList; +function CheckQuad(const quad: TDATQuad): TDATErrorList; var - det, maxdist, maxangle: Extended; + det, maxdist, maxangle, cp: Extended; A,B,C: Boolean; v01, v02, v03, v12, v13, v23: TDATPoint; begin - Result := TStringList.Create;; + SetLength(Result, 0); with quad do begin if CheckSamePoint(Point[1],Point[2]) or @@ -246,19 +307,59 @@ CheckSamePoint(Point[4],Point[1]) or CheckSamePoint(Point[1],Point[3]) or CheckSamePoint(Point[4],Point[2]) then - Result.Add('Identical vertices'); + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deIdenticalVertices; + Exit; + end; - if CheckLinearPoints(Point[1],Point[2],Point[3]) < CollinearPointsThreshold then - Result.Add('Collinear vertices 012 (' + FloatToStr(CheckLinearPoints(Point[1],Point[2],Point[3])) + ')'); + cp := CheckLinearPoints(Point[1],Point[2],Point[3]); + if cp < CollinearPointsThreshold then + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deCollinearVertices; + Result[Length(Result) - 1].CollinearValue := cp; + Result[Length(Result) - 1].CollinearVertices[1] := 1; + Result[Length(Result) - 1].CollinearVertices[2] := 2; + Result[Length(Result) - 1].CollinearVertices[3] := 3; + Exit; + end; - if CheckLinearPoints(Point[1],Point[2],Point[4]) < CollinearPointsThreshold then - Result.Add('Collinear vertices 013 (' + FloatToStr(CheckLinearPoints(Point[1],Point[2],Point[4])) + ')'); + cp := CheckLinearPoints(Point[1],Point[2],Point[4]); + if cp < CollinearPointsThreshold then + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deCollinearVertices; + Result[Length(Result) - 1].CollinearValue := cp; + Result[Length(Result) - 1].CollinearVertices[1] := 1; + Result[Length(Result) - 1].CollinearVertices[2] := 2; + Result[Length(Result) - 1].CollinearVertices[3] := 4; + Exit; + end; - if CheckLinearPoints(Point[1],Point[3],Point[4]) < CollinearPointsThreshold then - Result.Add('Collinear vertices 023 (' + FloatToStr(CheckLinearPoints(Point[1],Point[3],Point[4])) + ')'); + cp := CheckLinearPoints(Point[1],Point[3],Point[4]); + if cp < CollinearPointsThreshold then + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deCollinearVertices; + Result[Length(Result) - 1].CollinearValue := cp; + Result[Length(Result) - 1].CollinearVertices[1] := 1; + Result[Length(Result) - 1].CollinearVertices[2] := 3; + Result[Length(Result) - 1].CollinearVertices[3] := 4; + Exit; + end; - if CheckLinearPoints(Point[2],Point[3],Point[4]) < CollinearPointsThreshold then - Result.Add('Collinear vertices 123(' + FloatToStr(CheckLinearPoints(Point[2],Point[3],Point[4])) + ')'); + cp := CheckLinearPoints(Point[2],Point[3],Point[4]); + if cp < CollinearPointsThreshold then + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deCollinearVertices; + Result[Length(Result) - 1].CollinearValue := cp; + Result[Length(Result) - 1].CollinearVertices[1] := 2; + Result[Length(Result) - 1].CollinearVertices[2] := 3; + Result[Length(Result) - 1].CollinearVertices[3] := 4; + Exit; + end; v01 := PointSubtract(Point[2], Point[1]); v02 := PointSubtract(Point[3], Point[1]); @@ -274,60 +375,98 @@ if A then begin if (B and (not C)) or (C and (not B)) then - Result.Add('Concave Quad, split on 02') + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deConcaveQuad; + Result[Length(Result) - 1].SplitOn24 := False; + end; end else if B then if C then - Result.Add('Concave Quad, split on 13') + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deConcaveQuad; + Result[Length(Result) - 1].SplitOn24 := True; + end else - Result.Add('Bad vertex sequence, 0312 used') + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deBowtieQuad; + Result[Length(Result) - 1].IsBowtieType1423 := True; + end else if C then - Result.Add('Bad vertex sequence, 0132 used') + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deBowtieQuad; + Result[Length(Result) - 1].IsBowtieType1423 := False; + end else - Result.Add('Concave Quad, split on 13'); + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deConcaveQuad; + Result[Length(Result) - 1].SplitOn24 := True; + end; if (DetThreshold > 0) then begin det := CoPlanarCheckDet(Matrix); if det > DetThreshold then - Result.Add('Vertices not coplaner (' + FloatToStr(det) + ')'); + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deNonCoplanerVertices; + Result[Length(Result) - 1].CoplanerType := ctDet; + Result[Length(Result) - 1].CoplanerValue := det; + end; end; if (DistThreshold > 0) then begin maxdist := CoPlanerCheckDist(Matrix); if maxdist > DistThreshold then - Result.Add('Vertices not coplaner (' + FloatToStr(maxdist) + ')'); + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deNonCoplanerVertices; + Result[Length(Result) - 1].CoplanerType := ctDist; + Result[Length(Result) - 1].CoplanerValue := maxdist; + end; end; if (PlaneNormalAngleLimit > 0) then begin maxangle := CoPlanerCheckNormalAngle(Matrix); if maxangle > PlaneNormalAngleLimit then - Result.Add('Vertices not coplaner (angle ' + FloatToStr(maxangle) + ')'); + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deNonCoplanerVertices; + Result[Length(Result) - 1].CoplanerType := ctNormalAngle; + Result[Length(Result) - 1].CoplanerValue := maxangle; + end; end; end; end; -function CheckOpLine(const opline: TDATOpline): TStringList; +function CheckOpLine(const opline: TDATOpline): TDATErrorList; begin - Result := TStringList.Create;; + SetLength(Result, 0); with opline do if CheckSamePoint(Point[1],Point[2]) or CheckSamePoint(Point[3],Point[4]) then - Result.Add('Identical vertices'); + begin + SetLength(Result, Length(Result) + 1); + Result[Length(Result) - 1].ErrorType := deIdenticalVertices; + end; end; -function L3CheckLine(const Line: string): TStringList; +function L3CheckLine(const Line: string): TDATErrorList; var DLine: TDATType; begin + SetLength(Result, 0); DLine := StrToDAT(Line); - Result := TStringList.Create; case DLine.LineType of 1: Result := CheckSubPart(DLine as TDATSubPart); 2: Result := CheckLine2(DLine as TDATLine); @@ -339,4 +478,55 @@ DLine.Free; end; +function GetErrorString(error: TDATError): string; +begin + case error.ErrorType of + deRowAllZeros: + case error.Row of + 1: Result := strRow1AllZeros; + 2: Result := strRow2AllZeros; + 3: Result := strRow3AllZeros; + else Result := ''; + end; + deYColumnAllZeros: Result := strYColumnAllZeros; + deSigularMatrix: Result := strSingularMatrix; + deIdenticalVertices: Result := strIdenticalVertices; + deCollinearVertices: + if (error.CollinearVertices[1] > 0) and + (error.CollinearVertices[2] > 0) and + (error.CollinearVertices[3] > 0) then + Result := 'Points ' + IntToStr(error.CollinearVertices[1]) + ', ' + + IntToStr(error.CollinearVertices[2]) + ', and ' + + IntToStr(error.CollinearVertices[3]) + ' have ' + + strCollinearVertices + ' (' + + FloatToStr(error.CollinearValue) + ')' + else + Result := strCollinearVertices + ' (' + + FloatToStr(error.CollinearValue) + ')'; + deConcaveQuad: + if error.SplitOn24 then + Result := strConcaveSplit24 + else + Result := strConcaveSplit13; + deBowtieQuad: + if error.IsBowtieType1423 then + Result := strBowtie1423 + else + Result := strBowtie1243; + deNonCoplanerVertices: + case error.CoplanerType of + ctDet: Result := strNonCoplanerVertices + + ' (det = ' + FloatToStr(error.CoplanerValue); + ctDist: Result := strNonCoplanerVertices + + ' (dist = ' + FloatToStr(error.CoplanerValue); + ctNormalAngle: Result := strNonCoplanerVertices + + ' (angle = ' + FloatToStr(error.CoplanerValue); + else Result := ''; + end; + deIdenticalLine: Result := strIdenticalLine + ' ' + IntToStr(error.Line); + deColor24Illegal: Result := strColor24Illegal; + else Result := ''; + end; +end; + end. Modified: trunk/DAT Tools/DATErrorFix.pas =================================================================== --- trunk/DAT Tools/DATErrorFix.pas 2008-09-03 02:05:40 UTC (rev 353) +++ trunk/DAT Tools/DATErrorFix.pas 2008-09-05 19:44:20 UTC (rev 354) @@ -22,16 +22,16 @@ uses DATBase; -procedure FixBowtieQuad0132(quad: TDATQuad); -procedure FixBowtieQuad0312(quad: TDATQuad); -procedure SplitConcaveQuad02(quad: TDATQuad; out tri1, tri2: TDATTriangle); +procedure FixBowtieQuad1243(quad: TDATQuad); +procedure FixBowtieQuad1423(quad: TDATQuad); procedure SplitConcaveQuad13(quad: TDATQuad; out tri1, tri2: TDATTriangle); +procedure SplitConcaveQuad24(quad: TDATQuad; out tri1, tri2: TDATTriangle); procedure FixRowAllZeros(subp: TDATSubPart; const Row: Integer); procedure FixYColumnAllZeros(subp: TDATSubPart); implementation -procedure FixBowtieQuad0132(quad: TDATQuad); +procedure FixBowtieQuad1243(quad: TDATQuad); var tx,ty,tz: Extended; @@ -51,7 +51,7 @@ end; end; -procedure FixBowtieQuad0312(quad: TDATQuad); +procedure FixBowtieQuad1423(quad: TDATQuad); var tx,ty,tz: Extended; @@ -84,7 +84,7 @@ subp.MatrixVals[2,2] := 1; end; -procedure SplitConcaveQuad02(quad: TDATQuad; out tri1, tri2: TDATTriangle); +procedure SplitConcaveQuad13(quad: TDATQuad; out tri1, tri2: TDATTriangle); begin tri1 := TDATTriangle.Create; tri2 := TDATTriangle.Create; @@ -98,7 +98,7 @@ tri2.Point[3] := quad.Point[4]; end; -procedure SplitConcaveQuad13(quad: TDATQuad; out tri1, tri2: TDATTriangle); +procedure SplitConcaveQuad24(quad: TDATQuad; out tri1, tri2: TDATTriangle); begin tri1 := TDATTriangle.Create; tri2 := TDATTriangle.Create; Modified: trunk/DAT Tools/DATUtils.pas =================================================================== --- trunk/DAT Tools/DATUtils.pas 2008-09-03 02:05:40 UTC (rev 353) +++ trunk/DAT Tools/DATUtils.pas 2008-09-05 19:44:20 UTC (rev 354) @@ -184,7 +184,17 @@ end; end; - + // Add color 16 and 24 + TempColor.Name := 'Main Color'; + TempColor.Code := 16; + TempColor.MainColor := $000001; + TempColor.EdgeColor := $000002; + Result[Result.IndexOfColourCode(16)] := TempColor; + TempColor.Name := 'Edge Color'; + TempColor.Code := 24; + TempColor.MainColor := $000002; + TempColor.EdgeColor := $000001; + Result[Result.IndexOfColourCode(24)] := TempColor; finally TempList.Free; LDConfig.Free; Modified: trunk/lddp/errorbar.pas =================================================================== --- trunk/lddp/errorbar.pas 2008-09-03 02:05:40 UTC (rev 353) +++ trunk/lddp/errorbar.pas 2008-09-05 19:44:20 UTC (rev 354) @@ -22,7 +22,7 @@ uses gnugettext, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, Menus, JvDockTree, JvDockControlForm, - JvDockDelphiStyle, JvComponentBase, ActnList; + JvDockDelphiStyle, JvComponentBase, ActnList, DATCheck; type TfrErrorWindow = class(TForm) @@ -77,7 +77,7 @@ procedure ErrorCheckErrorFix(OnlyMarked: Boolean; ErrorType: string); procedure SetErrorCheckMarks(State: Boolean; ErrorType: string); public - function AddError(LineNumber, ErrorType: string): Boolean; + procedure AddError(LineNumber: string; ErrorRec: TDATError); procedure LoadFormValues; procedure SaveFormValues; procedure RestorePosition; @@ -91,10 +91,10 @@ {$R *.dfm} uses - IniFiles, DATBase, DATModel, DATCheck, DATErrorFix, DATUtils, main, options, + IniFiles, DATBase, DATModel, DATErrorFix, DATUtils, main, options, commonprocs, windowsspecific; -function TfrErrorWindow.AddError(LineNumber, ErrorType: string): Boolean; +procedure TfrErrorWindow.AddError(LineNumber: string; ErrorRec: TDATError); var error: TListItem; @@ -102,9 +102,9 @@ begin error := ErrorListView.Items.Add; error.Checked := True; +// PDATError(error.Data) := @ErrorRec; error.SubItems.Add(LineNumber); - error.SubItems.Add(ErrorType); - Result := True; + error.SubItems.Add(GetErrorString(ErrorRec)); end; procedure TfrErrorWindow.ErrorListViewDblClick(Sender: TObject); @@ -164,63 +164,86 @@ procedure TfrErrorWindow.acErrorCheckExecute(Sender: TObject); // Perform an error check based on L3P error check var - strid: string; - i, j: Integer; - errorfound: Boolean; + i, j, iline: Integer; + identline: Boolean; DATModel1: TDATModel; - s: TStringList; + errorlist: TDATErrorList; + error: TDATError; begin Screen.Cursor := crHourGlass; ErrorListView.Items.Clear; - DATModel1 := CreateDATModel(frOptions.sePntAcc.Value, frOptions.seRotAcc.Value); + DATModel1 := TDATModel.Create; DATModel1.ModelText := frMain.editor.Lines.Text; - - strid := 'Identical to line'; + iline := -1; + for i := 0 to DATModel1.Count - 1 do if DATModel1[i] is TDATElement then begin // Check for Identical Lines - errorfound := False; + identline := False; if i > 0 then begin for j := 0 to i - 1 do + begin if DATModel1[j].LineType = DATModel1[i].LineType then case DATModel1[j].LineType of 1: if DATModel1[i].DATString = DATModel1[j].DATString then - errorfound := AddError(IntToStr(i+1),strid + ' ' + IntToStr(j+1)); - 2: if CheckIdentPoints([(DATModel1[i] as TDATLine).Point[1], (DATModel1[i] as TDATLine).Point[2]], - [(DATModel1[j] as TDATLine).Point[1], (DATModel1[j] as TDATLine).Point[2]]) then - errorfound := AddError(IntToStr(i+1),strid + ' ' + IntToStr(j+1)); - 3: if CheckIdentPoints([(DATModel1[i] as TDATTriangle).Point[1], (DATModel1[i] as TDATTriangle).Point[2], (DATModel1[i] as TDATTriangle).Point[3]], - [(DATModel1[j] as TDATTriangle).Point[1], (DATModel1[j] as TDATTriangle).Point[2], (DATModel1[j] as TDATTriangle).Point[3]]) then - errorfound := AddError(IntToStr(i+1),strid + ' ' + IntToStr(j+1)); - 4: if CheckIdentPoints([(DATModel1[i] as TDATQuad).Point[1], (DATModel1[i] as TDATQuad).Point[2], (DATModel1[i] as TDATQuad).Point[3], (DATModel1[i] as TDATQuad).Point[4]], - [(DATModel1[j] as TDATQuad).Point[1], (DATModel1[j] as TDATQuad).Point[2], (DATModel1[j] as TDATQuad).Point[3], (DATModel1[j] as TDATQuad).Point[4]]) then - errorfound := AddError(IntToStr(i+1),strid + ' ' + IntToStr(j+1)); - 5: if (CheckIdentPoints([(DATModel1[i] as TDATOpLine).Point[1], (DATModel1[i] as TDATOpLine).Point[2]], - [(DATModel1[j] as TDATOpLine).Point[1], (DATModel1[j] as TDATOpLine).Point[2]])) and - (CheckIdentPoints([(DATModel1[i] as TDATOpLine).Point[3], (DATModel1[i] as TDATOpLine).Point[4]], - [(DATModel1[j] as TDATOpLine).Point[3], (DATModel1[j] as TDATOpLine).Point[4]])) then - errorfound := AddError(IntToStr(i+1),strid + ' ' + IntToStr(j+1)); + identline := True; + 2: if CheckIdentPoints([(DATModel1[i] as TDATLine).Point[1], + (DATModel1[i] as TDATLine).Point[2]], + [(DATModel1[j] as TDATLine).Point[1], + (DATModel1[j] as TDATLine).Point[2]]) then + identline := True; + 3: if CheckIdentPoints([(DATModel1[i] as TDATTriangle).Point[1], + (DATModel1[i] as TDATTriangle).Point[2], + (DATModel1[i] as TDATTriangle).Point[3]], + [(DATModel1[j] as TDATTriangle).Point[1], + (DATModel1[j] as TDATTriangle).Point[2], + (DATModel1[j] as TDATTriangle).Point[3]]) then + identline := True; + 4: if CheckIdentPoints([(DATModel1[i] as TDATQuad).Point[1], + (DATModel1[i] as TDATQuad).Point[2], + (DATModel1[i] as TDATQuad).Point[3], + (DATModel1[i] as TDATQuad).Point[4]], + [(DATModel1[j] as TDATQuad).Point[1], + (DATModel1[j] as TDATQuad).Point[2], + (DATModel1[j] as TDATQuad).Point[3], + (DATModel1[j] as TDATQuad).Point[4]]) then + identline := True; + 5: if (CheckIdentPoints([(DATModel1[i] as TDATOpLine).Point[1], + (DATModel1[i] as TDATOpLine).Point[2]], + [(DATModel1[j] as TDATOpLine).Point[1], + (DATModel1[j] as TDATOpLine).Point[2]])) and + (CheckIdentPoints([(DATModel1[i] as TDATOpLine).Point[3], + (DATModel1[i] as TDATOpLine).Point[4]], + [(DATModel1[j] as TDATOpLine).Point[3], + (DATModel1[j] as TDATOpLine).Point[4]])) then + identline := True; end; + if identline then + begin + iline := j; + Break; + end; + end; end; // Do not continue if line is identical - if (not errorfound) then + if identline then begin - // Check For Illegal Color Number - if (DATModel1[i] is TDATSubPart) and - ((DATModel1[i] as TDATElement).Color = 24) then - AddError(IntToStr(i+1),'Color 24 Illegal for this linetype'); - - // Check for All Other L3P Errors - s := L3CheckLine(DATModel1[i].DATString); - if s.Count > 0 then - for j := 0 to s.Count - 1 do - AddError(IntToStr(i+1),s[j]); - s.Free; + error.ErrorType := deIdenticalLine; + error.Line := iline + 1; + AddError(IntToStr(i + 1), error) + end + else + begin + // Check for All Other Errors + errorlist := L3CheckLine(DATModel1[i].DATString); + if Length(errorlist) > 0 then + for j := 0 to Length(errorlist) - 1 do + AddError(IntToStr(i + 1), errorlist[j]); end; end; @@ -337,7 +360,7 @@ with DATElem as TDATQuad do begin DATString := frMain.editor.lines[frMain.editor.CaretY-1]; - FixBowtieQuad0132(DATElem as TDATQuad); + FixBowtieQuad1243(DATElem as TDATQuad); frMain.editor.lines[frMain.editor.CaretY-1] := DATString; end; DATElem.Free; @@ -350,7 +373,7 @@ with DATElem as TDATQuad do begin DATString := frMain.editor.lines[frMain.editor.CaretY-1]; - FixBowtieQuad0312(DATElem as TDATQuad); + FixBowtieQuad1423(DATElem as TDATQuad); frMain.editor.lines[frMain.editor.CaretY-1] := DATString; end; DATElem.Free; @@ -363,7 +386,7 @@ with DATElem as TDATQuad do begin DATString := frMain.editor.lines[frMain.editor.CaretY-1]; - SplitConcaveQuad13((DATElem as TDATQuad), tri1, tri2); + SplitConcaveQuad24((DATElem as TDATQuad), tri1, tri2); frMain.editor.Lines[frMain.editor.CaretY-1] := tri1.DATString; frMain.editor.Lines.Insert(frMain.editor.CaretY, tri2.DATString); end; @@ -381,7 +404,7 @@ with DATElem as TDATQuad do begin DATString := frMain.editor.lines[frMain.editor.CaretY-1]; - SplitConcaveQuad02((DATElem as TDATQuad), tri1, tri2); + SplitConcaveQuad13((DATElem as TDATQuad), tri1, tri2); frMain.editor.Lines[frMain.editor.CaretY-1] := tri1.DATString; frMain.editor.Lines.Insert(frMain.editor.CaretY, tri2.DATString); end; Modified: trunk/lddp/main.pas =================================================================== --- trunk/lddp/main.pas 2008-09-03 02:05:40 UTC (rev 353) +++ trunk/lddp/main.pas 2008-09-05 19:44:20 UTC (rev 354) @@ -662,11 +662,11 @@ // Also checks for non coplanarity and issues a warning var DModel: TDATModel; - i, j, index, startline, endline: Integer; + i, j, startline, endline: Integer; quad: TDATQuad; line1, line2: TDATGeometric; - errorlist: TStringList; - DoNotCombine, quaderror: Boolean; + errorlist: TDATErrorList; + DoNotCombine: Boolean; begin DModel := LDDPCreateDATModel; @@ -690,39 +690,42 @@ if Assigned(quad) then begin errorlist := L3CheckLine(quad.DATString); - - if errorlist.Find('Bad vertex sequence, 0132', index) then - FixBowtieQuad0132(quad) - else if errorlist.Find('Bad vertex sequence, 0312', index) then - FixBowtieQuad0312(quad); - - quaderror := False; - for j := 0 to errorlist.Count - 1 do - if (Pos('Collinear vertices', errorlist[j]) >= 0) or - (Pos('Vertices not coplaner', errorlist[j]) >= 0) or - (Pos('Vertices not coplaner', errorlist[j]) >= 0) then - begin - quaderror := True; - Break; - end; DoNotCombine := False; - if quaderror then - case MessageDlg(_('Combining these triangles:') + #13#10 + - line1.DATString + ' (Line: ' + IntToStr(editor.LineFromPosition(editor.SelStart) + i) + ')' + #13#10 + - line2.DATString + ' (Line: ' + IntToStr(editor.LineFromPosition(editor.SelStart) + i + 1) + ')' + #13#10 + - _('will result in a concave quad or a quad with' + #13#10 + - 'collinear or not coplaner vertices' + #13#10 + - 'Combine anyway?'), mtWarning, [mbYes, mbNo, mbAbort], 0, mbNo) of - mrNo: DoNotCombine := True; - mrYes: DoNotCombine := False; - mrAbort: begin - DModel.Free; - line1.Free; - line2.Free; - Exit; - end; - else DoNotCombine := True; - end; + if Length(errorlist) > 0 then + begin + for j := 0 to Length(errorlist) - 1 do + if errorlist[j].ErrorType = deBowtieQuad then + if errorlist[j].IsBowtieType1423 then + FixBowtieQuad1423(quad) + else + FixBowtieQuad1243(quad); + errorlist := L3CheckLine(quad.DATString); + for j := 0 to Length(errorlist) - 1 do + if (errorlist[j].ErrorType = deCollinearVertices) or + (errorlist[j].ErrorType = deNonCoplanerVertices) or + (errorlist[j].ErrorType = deConcaveQuad) then + case MessageDlg(_('Combining these triangles:') + #13#10 + + line1.DATString + ' (Line: ' + IntToStr(editor.LineFromPosition(editor.SelStart) + i) + ')' + #13#10 + + line2.DATString + ' (Line: ' + IntToStr(editor.LineFromPosition(editor.SelStart) + i + 1) + ')' + #13#10 + + _('will result in a concave quad or a quad with' + #13#10 + + 'collinear or not coplaner vertices' + #13#10 + + 'Combine anyway?'), mtWarning, [mbYes, mbNo, mbAbort], 0, mbNo) of + mrNo: + begin + DoNotCombine := True; + Break; + end; + mrYes: DoNotCombine := False; + mrAbort: + begin + DModel.Free; + line1.Free; + line2.Free; + Exit; + end; + else DoNotCombine := True; + end; + end; if not DoNotCombine then begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-09-03 02:05:43
|
Revision: 353 http://lddp.svn.sourceforge.net/lddp/?rev=353&view=rev Author: billthefish Date: 2008-09-03 02:05:40 +0000 (Wed, 03 Sep 2008) Log Message: ----------- Added search path capability for inlineing Modified Paths: -------------- trunk/Current Build/LDDesignPad.exe trunk/DAT Tools/DATModel.pas trunk/lddp/main.dfm trunk/lddp/main.pas trunk/lddp/options.dfm trunk/lddp/options.pas Modified: trunk/DAT Tools/DATModel.pas =================================================================== --- trunk/DAT Tools/DATModel.pas 2008-09-03 00:55:04 UTC (rev 352) +++ trunk/DAT Tools/DATModel.pas 2008-09-03 02:05:40 UTC (rev 353) @@ -114,7 +114,7 @@ procedure Delete(Index: Integer); {Inline part at index} - procedure InlinePart(Index: Integer); + procedure InlinePart(Index: Integer; SearchPaths: TStringList = nil); {Inline all parts (linetype 1) in the model} procedure InlineAll; @@ -889,7 +889,7 @@ inherited Clear; end; -procedure TDATModel.InlinePart(Index: Integer); +procedure TDATModel.InlinePart(Index: Integer; SearchPaths: TStringList = nil); var InlineFile: TDATModel; @@ -906,12 +906,27 @@ begin with (Lines[Index] as TDATSubPart) do begin - if FileExists(strFilePath + FileName) then - InlineFile.LoadModel(strFilePath + FileName) - else if FileExists(LDrawBasePath + 'PARTS' + PathDelim + FileName) then - InlineFile.LoadModel(LDrawBasePath + 'PARTS' + PathDelim + FileName) - else if FileExists(LDrawBasePath + 'P' + PathDelim + FileName) then - InlineFile.LoadModel(LDrawBasePath + 'P' + PathDelim + FileName); + if (not Assigned(SearchPaths)) or (SearchPaths.Count = 0) then + begin + if FileExists(strFilePath + FileName) then + InlineFile.LoadModel(strFilePath + FileName) + else if FileExists(LDrawBasePath + 'PARTS' + PathDelim + FileName) then + InlineFile.LoadModel(LDrawBasePath + 'PARTS' + PathDelim + FileName) + else if FileExists(LDrawBasePath + 'P' + PathDelim + FileName) then + InlineFile.LoadModel(LDrawBasePath + 'P' + PathDelim + FileName) + end + else + begin + if FileExists(strFilePath + FileName) then + InlineFile.LoadModel(strFilePath + FileName) + else + for i := 0 to SearchPaths.Count - 1 do + if FileExists(SearchPaths[i] + PathDelim + FileName) then + begin + InlineFile.LoadModel(SearchPaths[i] + PathDelim + FileName); + Break; + end; + end; end; Modified: trunk/lddp/main.pas =================================================================== --- trunk/lddp/main.pas 2008-09-03 00:55:04 UTC (rev 352) +++ trunk/lddp/main.pas 2008-09-03 02:05:40 UTC (rev 353) @@ -615,8 +615,8 @@ DATModel1.Insert(i,'0 Original Line: ' + DATModel1[i+2].DATString ); DATModel1.Insert(i+4, '0 End of Inlined Part'); DATModel1.Insert(i+5, ''); - DATModel1.InlinePart(i+3); - end; + DATModel1.InlinePart(i+3, frOptions.SearchPaths); + end; editor.SelText := DATModel1.ModelText; editor.Modified := true; Modified: trunk/lddp/options.pas =================================================================== --- trunk/lddp/options.pas 2008-09-03 00:55:04 UTC (rev 352) +++ trunk/lddp/options.pas 2008-09-03 02:05:40 UTC (rev 353) @@ -166,6 +166,7 @@ procedure btnDeleteInvalidPathsClick(Sender: TObject); procedure btnPathDownClick(Sender: TObject); procedure btnPathUpClick(Sender: TObject); + procedure edLdrawDirChange(Sender: TObject); protected ColorBarList: TStringList; @@ -173,9 +174,11 @@ procedure MakeExternalMenuItem(ProgIndex:Integer); procedure SetColorListToDefault; procedure SetDirectory(DCaption: string; EditControl: TEdit); + procedure UpdateSearchPathList; public ExternalProgramList: TStringList; + SearchPaths: TStringList; procedure UpdateControls; procedure LoadFormValues; procedure SaveFormValues; @@ -266,7 +269,8 @@ procedure TfrOptions.btnReplacePathClick(Sender: TObject); begin if Assigned(SearchPathsList.Selected) then - SearchPathsList.Selected.Caption := edSearchPath.Text + SearchPathsList.Selected.Caption := edSearchPath.Text; + UpdateControls; end; procedure TfrOptions.btnRescanPluginsClick(Sender: TObject); @@ -719,6 +723,31 @@ end; end; +procedure TfrOptions.edLdrawDirChange(Sender: TObject); + +var + SearchPath: TListItem; + +begin + SearchPath := SearchPathsList.FindCaption(0, edLDrawDir.Text + '\p', False, True, True); + if not Assigned(SearchPath) and + DirectoryExists(edLDrawDir.Text + '\p') then + begin + SearchPath := TListItem.Create(SearchPathsList.Items); + SearchPathsList.Items.AddItem(SearchPath, 0); + SearchPath.Caption := edLDrawDir.Text + '\p'; + end; + SearchPath := SearchPathsList.FindCaption(0, edLDrawDir.Text + '\parts', False, True, True); + if not Assigned(SearchPath) and + DirectoryExists(edLDrawDir.Text + '\parts') then + begin + SearchPath := TListItem.Create(SearchPathsList.Items); + SearchPathsList.Items.AddItem(SearchPath, 0); + SearchPath.Caption := edLDrawDir.Text + '\parts'; + end; + UpdateControls; +end; + procedure TfrOptions.edSearchPathChange(Sender: TObject); var SearchPath: TListItem; @@ -893,6 +922,7 @@ else LoadFormValues; SetConfigurationConstants; + UpdateSearchPathList; end; procedure TfrOptions.FormCreate(Sender: TObject); @@ -904,6 +934,7 @@ SearchPathsList.Selected := SearchPathsList.Items[0]; UpdateControls; SetConfigurationConstants; + UpdateSearchPathList; PageControl1.ActivePage:=tsExternal; end; @@ -945,6 +976,21 @@ IntToStr(ColorList[ColorList.IndexOfColourCode(i)].MainColor); end; +procedure TfrOptions.UpdateSearchPathList; + +var + i: Integer; + +begin + if not Assigned(SearchPaths) then + SearchPaths := TStringList.Create + else + SearchPaths.Text := ''; + + for i := 0 to SearchPathsList.Items.Count - 1 do + SearchPaths.Add(SearchPathsList.Items[i].Caption); +end; + procedure TfrOptions.SetConfigurationConstants; begin LDrawBasePath := edLdrawDir.Text + PathDelim; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-09-03 00:55:11
|
Revision: 352 http://lddp.svn.sourceforge.net/lddp/?rev=352&view=rev Author: billthefish Date: 2008-09-03 00:55:04 +0000 (Wed, 03 Sep 2008) Log Message: ----------- Added search paths Fixed several error check bugs Modified Paths: -------------- trunk/Current Build/LDDesignPad.exe trunk/Current Build/uiconfig.ini trunk/DAT Tools/DATCheck.pas trunk/lddp/colordialog.pas trunk/lddp/dlgSubpart.dfm trunk/lddp/dlgSubpart.pas trunk/lddp/errorbar.pas trunk/lddp/main.dfm trunk/lddp/main.pas trunk/lddp/options.dfm trunk/lddp/options.pas Added Paths: ----------- trunk/gfx/cancel.bmp trunk/gfx/downarrow.bmp trunk/gfx/uparrow.bmp Modified: trunk/Current Build/uiconfig.ini =================================================================== --- trunk/Current Build/uiconfig.ini 2008-08-30 01:40:56 UTC (rev 351) +++ trunk/Current Build/uiconfig.ini 2008-09-03 00:55:04 UTC (rev 352) @@ -1,11 +1,11 @@ -# This section specifies general lists used by the UI +; This section specifies general lists used by the UI [UI Config Values] MetaCommands=BFC,CERTIFY,CW,CCW,INVERTNEXT,CLIP,NOCLIP,SYNTH,BEGIN,RIBBED_HOSE,FLEXIBLE_HOSE,FLEX_CABLE,RIGID_HOSE,ELECTRIC_CABLE,PNEUMATIC_HOSE,FLEXIBLE_AXLE,FIBER_OPTIC_CABLE,RUBBER_BAND,CHAIN,PLASTIC_TREAD,RUBBER_TREAD,INSIDE,OUTSIDE,CROSS,SHOW,HIDE,END,LPUB,PLI,SUB,IGN,BI,GRAYED,GROUP,REMOVE,PAGE,SIZE,YES,NO,BACKGROUND,TRANS,STRETCH,BORDER,SQUARE,ROUND,MARGINS,NUMBER,ASSEM,PLACEMENT,CENTER,OFFSET,PART,INSIDE,OUTSIDE,BORDERLESS,CONSTRAIN,AREA,WIDTH,HEIGHT,COLS,CALLOUT,HORIZONTAL,VERTICAL,SEPARATOR,DIVIDER,INSTANCE_COUNT,POINTER,BASE,STEP_NUMBER,MULTI_STEP,BOM,SORT,PACK,SUBS,!COLOUR,CODE,VALUE,EDGE,ALPHA,LUMINANCE,CHROME,PEARLESCENT,RUBBER,MATTE_METALLIC,METAL,MATERIAL,ROTSTEP,REL,ADD,ABS,BUFEXCHG,STORE,RETRIEVE,GHOST,STEP,WRITE,PRINT,CLEAR,PAUSE,SAVE,L3P,IFPOV,IFNOTPOV,ELSEPOV,ENDPOV,CATEGORY,KEYWORDS,!CATEGORY,!KEYWORDS,FILE,NOFILE,!LDRAW_ORG,!LICENSE,!HELP,!CMDLINE,CMDLINE,!HISTORY,NOCERTIFY,LDRAW_ORG,ORIGINAL,UPDATE LDrawCategories=Animal,Antenna,Arch,Arm,Bar,Baseplate,Belville,Boat,Bracket,Brick,Car,Cone,Container,Conveyor,Crane,Cylinder,Door,Electric,Exhaust,Fence,Flag,Forklift,Freestyle,Garage,Gate,Glass,Grab,Hinge,Homemaker,Hose,Jack,Ladder,Lever,Magnet,Minifig,Minifig Accessory,Panel,Plane,Plant,Plate,Platform,Propellor,Rack,Roadsign,Rock,Round,Scala,Slope,Staircase,Sticker,Support,Tail,Tap,Technic,Tile,Tipper,Tractor,Trailer,Train,Turntable,Tyre,Wedge,Wheel,Winch,Window,Windscreen,Wing -# This section specifies what the sections for the meta menu -# and the order they will appear in the menu +; This section specifies the sections for the meta menu +; and the order they will appear in the menu [Meta Menu Items] 1=BFC Statements @@ -23,21 +23,21 @@ 13=LDRAW Statements 14=L3P Statements -# Usage: -# [<Parent Group>] -# <Menu Text>=<Insert Text> -# -# Where: -# <Parent Group> is the name of the Parent Group Menu -# a parent group can have any number of <Menu Text>=<Insert Text> -# statements -# -# <Menu Text> is the text that appear on the menu item -# -# <Insert Text> is the text acually inserted minus the '0 ' -# -# For a spacer line enter "-=-" -# +; Usage: +; [<Parent Group>] +; <Menu Text>=<Insert Text> +; +; Where: +; <Parent Group> is the name of the Parent Group Menu +; a parent group can have any number of <Menu Text>=<Insert Text> +; statements +; +; <Menu Text> is the text that appear on the menu item +; +; <Insert Text> is the text acually inserted minus the '0 ' +; +; For a spacer line enter "-=-" +; [BFC Statements] CERTIFY CW=BFC CERTIFY CW @@ -129,7 +129,7 @@ CONSTRAIN COLS cols=LPUB PLI CONSTRAIN COLS cols [LPub Callout Statements] -MARGINS x y=LPUB CALLOUT MARGINS x y= +MARGINS x y=LPUB CALLOUT MARGINS x y HORIZONTAL=LPUB CALLOUT HORIZONTAL VERTICAL=LPUB CALLOUT VERTICAL SEPARATOR seperator_color separator_width=LPUB CALLOUT SEPARATOR seperator_color separator_width Modified: trunk/DAT Tools/DATCheck.pas =================================================================== --- trunk/DAT Tools/DATCheck.pas 2008-08-30 01:40:56 UTC (rev 351) +++ trunk/DAT Tools/DATCheck.pas 2008-09-03 00:55:04 UTC (rev 352) @@ -27,8 +27,11 @@ interface -function L3CheckLine(const Line: string): string; +uses + Classes; +function L3CheckLine(const Line: string): TStringList; + var DetThreshold: Extended = 0; DistThreshold: Extended = 0; @@ -137,14 +140,14 @@ temp := PointCrossProduct(B, C); norm2 := PointMultiply(temp, 1 / sqrt(PointDotProduct(temp, temp))); temp := PointCrossProduct(norm1, norm2); - Angle1 := 180*pi*arcsin(sqrt(PointDotProduct(temp, temp))); + Angle1 := 180/pi*arcsin(sqrt(PointDotProduct(temp, temp))); temp := PointCrossProduct(A, B); norm1 := PointMultiply(temp, 1 / sqrt(PointDotProduct(temp, temp))); temp := PointCrossProduct(D, C); norm2 := PointMultiply(temp, 1 / sqrt(PointDotProduct(temp, temp))); temp := PointCrossProduct(norm1, norm2); - Angle2 := 180*pi*arcsin(sqrt(PointDotProduct(temp, temp))); + Angle2 := 180/pi*arcsin(sqrt(PointDotProduct(temp, temp))); if Angle1 > Angle2 then Result := Angle1 @@ -152,14 +155,14 @@ Result := Angle2; end; -function CheckSubPart(datsubpart: TDATSubPart): string; +function CheckSubPart(datsubpart: TDATSubPart): TStringList; var det, tempval: Extended; i: Integer; begin - Result := ''; + Result := TStringList.Create;; with datsubpart do begin det := MatrixDet(Matrix); @@ -173,7 +176,7 @@ det := MatrixDet(Matrix); if det <> 0 then begin - Result := 'Row ' + IntToStr(i-1) + ' all zeros'; + Result.Add('Row ' + IntToStr(i-1) + ' all zeros'); Break; end; end; @@ -185,48 +188,48 @@ det := MatrixDet(Matrix); if det <> 0 then begin - Result := 'Y column all zeros'; + Result.Add('Y column all zeros'); Break; end else MatrixVals[i,2] := tempval; end; - if det = 0 then Result := 'Singular matrix (unfixable)'; + if det = 0 then Result.Add('Singular matrix (unfixable)'); end else - Result := 'Singular matrix'; + Result.Add('Singular matrix'); end; end; -function CheckLine2(const line: TDATLine): string; +function CheckLine2(const line: TDATLine): TStringList; begin - Result := ''; + Result := TStringList.Create;; with line do if CheckSamePoint(Point[1],Point[2]) then - Result := 'Identical vertices'; + Result.Add('Identical vertices'); end; -function CheckTri(const tri: TDATTriangle): string; +function CheckTri(const tri: TDATTriangle): TStringList; var dp: Extended; begin - Result := ''; + Result := TStringList.Create; with tri do + begin if CheckSamePoint(Point[1],Point[2]) or CheckSamePoint(Point[2],Point[3]) or CheckSamePoint(Point[3],Point[1]) then - Result := 'Identical vertices' - else - begin - dp := CheckLinearPoints(Point[1],Point[2],Point[3]); - if dp < CollinearPointsThreshold then - Result := 'Collinear vertices (' + FloatToStr(dp) + ')'; - end; + Result.Add('Identical vertices'); + + dp := CheckLinearPoints(Point[1],Point[2],Point[3]); + if dp < CollinearPointsThreshold then + Result.Add('Collinear vertices (' + FloatToStr(dp) + ')'); + end; end; -function CheckQuad(const quad: TDATQuad): string; +function CheckQuad(const quad: TDATQuad): TStringList; var det, maxdist, maxangle: Extended; @@ -234,6 +237,7 @@ v01, v02, v03, v12, v13, v23: TDATPoint; begin + Result := TStringList.Create;; with quad do begin if CheckSamePoint(Point[1],Point[2]) or @@ -242,34 +246,19 @@ CheckSamePoint(Point[4],Point[1]) or CheckSamePoint(Point[1],Point[3]) or CheckSamePoint(Point[4],Point[2]) then - begin - Result := 'Identical vertices'; - Exit; - end; + Result.Add('Identical vertices'); if CheckLinearPoints(Point[1],Point[2],Point[3]) < CollinearPointsThreshold then - begin - Result := 'Collinear vertices 012 (' + FloatToStr(CheckLinearPoints(Point[1],Point[2],Point[3])) + ')'; - Exit; - end; + Result.Add('Collinear vertices 012 (' + FloatToStr(CheckLinearPoints(Point[1],Point[2],Point[3])) + ')'); if CheckLinearPoints(Point[1],Point[2],Point[4]) < CollinearPointsThreshold then - begin - Result := 'Collinear vertices 013 (' + FloatToStr(CheckLinearPoints(Point[1],Point[2],Point[4])) + ')'; - Exit; - end; + Result.Add('Collinear vertices 013 (' + FloatToStr(CheckLinearPoints(Point[1],Point[2],Point[4])) + ')'); if CheckLinearPoints(Point[1],Point[3],Point[4]) < CollinearPointsThreshold then - begin - Result := 'Collinear vertices 023 (' + FloatToStr(CheckLinearPoints(Point[1],Point[3],Point[4])) + ')'; - Exit; - end; + Result.Add('Collinear vertices 023 (' + FloatToStr(CheckLinearPoints(Point[1],Point[3],Point[4])) + ')'); if CheckLinearPoints(Point[2],Point[3],Point[4]) < CollinearPointsThreshold then - begin - Result := 'Collinear vertices 123(' + FloatToStr(CheckLinearPoints(Point[2],Point[3],Point[4])) + ')'; - Exit; - end; + Result.Add('Collinear vertices 123(' + FloatToStr(CheckLinearPoints(Point[2],Point[3],Point[4])) + ')'); v01 := PointSubtract(Point[2], Point[1]); v02 := PointSubtract(Point[3], Point[1]); @@ -285,112 +274,66 @@ if A then begin if (B and (not C)) or (C and (not B)) then - Result := 'Concave Quad, split on 02' + Result.Add('Concave Quad, split on 02') end else if B then if C then - Result := 'Concave Quad, split on 13' + Result.Add('Concave Quad, split on 13') else - Result := 'Bad vertex sequence, 0312 used' + Result.Add('Bad vertex sequence, 0312 used') else if C then - Result := 'Bad vertex sequence, 0132 used' + Result.Add('Bad vertex sequence, 0132 used') else - Result := 'Concave Quad, split on 13'; + Result.Add('Concave Quad, split on 13'); - if Result <> '' then - Exit; - -(* - if (not A) and (not B) and C then - begin - Result := 'Bad vertex sequence, 0132 used'; - Exit; - end; - - if (not A) and B and (not C) then - begin - Result := 'Bad vertex sequence, 0312 used'; - Exit; - end; - - if (not A) and B and C then - begin - Result := 'Concave Quad'; - Exit; - end; - - if (not A) and (not B) and (not C) then - begin - Result := 'Concave Quad'; - Exit; - end; - - if A and (not B) and (not C) then - begin - Result := 'Concave Quad'; - Exit; - end; - *) if (DetThreshold > 0) then begin det := CoPlanarCheckDet(Matrix); if det > DetThreshold then - begin - Result := 'Vertices not coplaner (' + FloatToStr(det) + ')'; - Exit; - end; + Result.Add('Vertices not coplaner (' + FloatToStr(det) + ')'); end; if (DistThreshold > 0) then begin maxdist := CoPlanerCheckDist(Matrix); if maxdist > DistThreshold then - begin - Result := 'Vertices not coplaner (' + FloatToStr(maxdist) + ')'; - Exit; - end; + Result.Add('Vertices not coplaner (' + FloatToStr(maxdist) + ')'); end; if (PlaneNormalAngleLimit > 0) then begin maxangle := CoPlanerCheckNormalAngle(Matrix); if maxangle > PlaneNormalAngleLimit then - begin - Result := 'Vertices not coplaner (angle ' + FloatToStr(maxangle) + ')'; - Exit; - end; + Result.Add('Vertices not coplaner (angle ' + FloatToStr(maxangle) + ')'); end; end; - - Result := ''; end; -function CheckOpLine(const opline: TDATOpline): string; +function CheckOpLine(const opline: TDATOpline): TStringList; begin + Result := TStringList.Create;; with opline do if CheckSamePoint(Point[1],Point[2]) or CheckSamePoint(Point[3],Point[4]) then - Result := 'Identical vertices'; + Result.Add('Identical vertices'); end; -function L3CheckLine(const Line: string): string; +function L3CheckLine(const Line: string): TStringList; var DLine: TDATType; begin DLine := StrToDAT(Line); - + Result := TStringList.Create; case DLine.LineType of 1: Result := CheckSubPart(DLine as TDATSubPart); 2: Result := CheckLine2(DLine as TDATLine); 3: Result := CheckTri(DLine as TDATTriangle); 4: Result := CheckQuad(DLine as TDATQuad); 5: Result := CheckOpLine(DLine as TDATOpline); - else - Result := ''; end; DLine.Free; Property changes on: trunk/gfx/cancel.bmp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/downarrow.bmp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/gfx/uparrow.bmp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/lddp/colordialog.pas =================================================================== --- trunk/lddp/colordialog.pas 2008-08-30 01:40:56 UTC (rev 351) +++ trunk/lddp/colordialog.pas 2008-09-03 00:55:04 UTC (rev 352) @@ -77,10 +77,12 @@ endline := Lines.Count - 1; end; + BeginUndoAction; for i := startline to endline do if (cbxReplaceEverything.Checked) or (GetLineColor(i) = oldcolor) then SetLineColor(i, newcolor); + EndUndoAction; end; end; Modified: trunk/lddp/dlgSubpart.dfm =================================================================== --- trunk/lddp/dlgSubpart.dfm 2008-08-30 01:40:56 UTC (rev 351) +++ trunk/lddp/dlgSubpart.dfm 2008-09-03 00:55:04 UTC (rev 352) @@ -128,7 +128,6 @@ Height = 41 Align = alBottom TabOrder = 6 - ExplicitTop = 313 object btnCancel: TBitBtn Left = 438 Top = 8 Modified: trunk/lddp/dlgSubpart.pas =================================================================== --- trunk/lddp/dlgSubpart.pas 2008-08-30 01:40:56 UTC (rev 351) +++ trunk/lddp/dlgSubpart.pas 2008-09-03 00:55:04 UTC (rev 352) @@ -94,7 +94,7 @@ if (edAuthor.Text <> '') and (edUsername.Text <> '') then SubFile.Add('0 Author: ' + edAuthor.Text + '[' + edUsername.text + ']'); SubFile.Add('0 !LDRAW_ORG ' + FileType); - SubFile.Add('!LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt'); + SubFile.Add('0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt'); SubFile.Add(''); if edHelpText.Lines.Count > 0 then begin @@ -133,8 +133,8 @@ procedure TfrSubFile.FormCreate(Sender: TObject); begin + TranslateComponent (self); CategoryCombo.Items.CommaText := ReadUIConfigValue('LDrawCategories'); - TranslateComponent (self); end; procedure TfrSubFile.FormShow(Sender: TObject); Modified: trunk/lddp/errorbar.pas =================================================================== --- trunk/lddp/errorbar.pas 2008-08-30 01:40:56 UTC (rev 351) +++ trunk/lddp/errorbar.pas 2008-09-03 00:55:04 UTC (rev 352) @@ -164,10 +164,11 @@ procedure TfrErrorWindow.acErrorCheckExecute(Sender: TObject); // Perform an error check based on L3P error check var - s, strid: string; + strid: string; i, j: Integer; errorfound: Boolean; DATModel1: TDATModel; + s: TStringList; begin Screen.Cursor := crHourGlass; @@ -175,7 +176,6 @@ ErrorListView.Items.Clear; DATModel1 := CreateDATModel(frOptions.sePntAcc.Value, frOptions.seRotAcc.Value); - DATModel1.ModelText := frMain.editor.Lines.Text; strid := 'Identical to line'; @@ -217,8 +217,10 @@ // Check for All Other L3P Errors s := L3CheckLine(DATModel1[i].DATString); - if s <> '' then - AddError(IntToStr(i+1),s); + if s.Count > 0 then + for j := 0 to s.Count - 1 do + AddError(IntToStr(i+1),s[j]); + s.Free; end; end; Modified: trunk/lddp/main.pas =================================================================== --- trunk/lddp/main.pas 2008-08-30 01:40:56 UTC (rev 351) +++ trunk/lddp/main.pas 2008-09-03 00:55:04 UTC (rev 352) @@ -28,7 +28,7 @@ SciScintillaBase, SciScintillaMemo, SciScintilla, SciScintillaLDDP, SciDocTabCtrl, Windows, Graphics, Forms, Messages, SysUtils, Types, StdCtrls, ShellAPI, sciPrint, SciScintillaOptionsFrm, SciAutoComplete, - SciCallTips; + SciCallTips, DATBase; type TfrMain = class(TForm) @@ -72,7 +72,7 @@ pmuExternalPrograms: TMenuItem; pmuFile: TMenuItem; HelpAbout: TAction; - ilToolBarColor: TImageList; + ilProgramIcons: TImageList; InlinePart1: TMenuItem; Insert2: TMenuItem; MenuItem2: TMenuItem; @@ -391,14 +391,15 @@ procedure editorDwellEnd(Sender: TObject; const position: Integer; x, y: Integer); - private + protected TabRightClickIndex: Integer; Initialized: Boolean; procedure AppInitialize; procedure FileIsDropped(var Msg : TMessage); message WM_DropFiles ; procedure BuildMetaMenu; - function tempFileName:string; + function tempFileName: string; procedure SetKeyWordList; + function CombineGeometrics(const line1, line2: TDATGeometric): TDATQuad; public PluginActionList: TActionList; @@ -423,7 +424,7 @@ uses about, options, colordialog, BezWindow, sorting, splash, BMP2LDraw, modeltreeview, dlgSubpart, commonprocs, windowsspecific, - DATBase, DATModel, DATUtils, DATCheck, DATErrorFix, SciStreamDefault, + DATModel, DATUtils, DATCheck, DATErrorFix, SciStreamDefault, STRUtils, Registry, IniFiles, SciResLang; var @@ -661,104 +662,137 @@ // Also checks for non coplanarity and issues a warning var DModel: TDATModel; - i, startline, endline: Integer; - QuadCombine: TDATQuad; - ErrorLine: string; + i, j, index, startline, endline: Integer; + quad: TDATQuad; + line1, line2: TDATGeometric; + errorlist: TStringList; + DoNotCombine, quaderror: Boolean; - procedure ProcessTriangles(tri1, tri2: TDATTriangle); +begin + DModel := LDDPCreateDATModel; + line1 := TDATTriangle.Create; + line2 := TDATTriangle.Create; - var - QuadPoints: array of TDATPoint; - j, k: Integer; - flag: Boolean; + editor.ExpandSelection(startline, endline); + DModel.ModelText := editor.SelText; - begin - for j := 1 to 3 do + i := 0; + + if DModel.Count >= 2 then + while i < DModel.Count do begin - if Length(QuadPoints) > 0 then - begin - flag := false; - for k := 0 to Length(QuadPoints) - 1 do - if CheckSamePoint(tri1.Point[j],QuadPoints[k]) then - flag := true; - if not flag then + if i <= DModel.Count - 2 then + if (DModel[i] is TDATTriangle) and (DModel[i+1] is TDATTriangle) then begin - SetLength(QuadPoints, Length(QuadPoints) + 1); - QuadPoints[Length(QuadPoints) - 1] := tri1.Point[j]; + line1.DATString := DModel[i].DATString; + line2.DATString := DModel[i+1].DATString; + quad := CombineGeometrics(line1, line2); + if Assigned(quad) then + begin + errorlist := L3CheckLine(quad.DATString); + + if errorlist.Find('Bad vertex sequence, 0132', index) then + FixBowtieQuad0132(quad) + else if errorlist.Find('Bad vertex sequence, 0312', index) then + FixBowtieQuad0312(quad); + + quaderror := False; + for j := 0 to errorlist.Count - 1 do + if (Pos('Collinear vertices', errorlist[j]) >= 0) or + (Pos('Vertices not coplaner', errorlist[j]) >= 0) or + (Pos('Vertices not coplaner', errorlist[j]) >= 0) then + begin + quaderror := True; + Break; + end; + DoNotCombine := False; + if quaderror then + case MessageDlg(_('Combining these triangles:') + #13#10 + + line1.DATString + ' (Line: ' + IntToStr(editor.LineFromPosition(editor.SelStart) + i) + ')' + #13#10 + + line2.DATString + ' (Line: ' + IntToStr(editor.LineFromPosition(editor.SelStart) + i + 1) + ')' + #13#10 + + _('will result in a concave quad or a quad with' + #13#10 + + 'collinear or not coplaner vertices' + #13#10 + + 'Combine anyway?'), mtWarning, [mbYes, mbNo, mbAbort], 0, mbNo) of + mrNo: DoNotCombine := True; + mrYes: DoNotCombine := False; + mrAbort: begin + DModel.Free; + line1.Free; + line2.Free; + Exit; + end; + else DoNotCombine := True; + end; + + if not DoNotCombine then + begin + DModel.Insert(i, quad.DATString); + DModel.Delete(i+1); + DModel.Delete(i+1); + end; + end; end; - end - else - begin - SetLength(QuadPoints,1); - QuadPoints[0] := tri1.Point[j]; - end; + inc(i); + end; + editor.SelText := DModel.ModelText; + DModel.Free; + line1.Free; + line2.Free; +end; + + +function tfrMain.CombineGeometrics(const line1, line2: TDATGeometric): TDATQuad; + +var + QuadPoints: array of TDATPoint; + j, k: Integer; + flag: Boolean; + +begin + for j := 1 to 3 do + begin + if Length(QuadPoints) > 0 then + begin flag := false; for k := 0 to Length(QuadPoints) - 1 do - if CheckSamePoint(tri2.Point[j],QuadPoints[k]) then + if CheckSamePoint(line1.Point[j],QuadPoints[k]) then flag := true; if not flag then begin SetLength(QuadPoints, Length(QuadPoints) + 1); - QuadPoints[Length(QuadPoints) - 1] := tri2.Point[j]; + QuadPoints[Length(QuadPoints) - 1] := line1.Point[j]; end; + end + else + begin + SetLength(QuadPoints,1); + QuadPoints[0] := line1.Point[j]; end; - - if Length(QuadPoints) = 4 then + flag := false; + for k := 0 to Length(QuadPoints) - 1 do + if CheckSamePoint(line2.Point[j],QuadPoints[k]) then + flag := true; + if not flag then begin - QuadCombine := TDATQuad.Create; - QuadCombine.Point[1] := QuadPoints[0]; - QuadCombine.Point[2] := QuadPoints[1]; - QuadCombine.Point[3] := QuadPoints[2]; - QuadCombine.Point[4] := QuadPoints[3]; - QuadCombine.Color := tri1.Color; - ErrorLine := L3CheckLine(QuadCombine.DATString); - - if pos('Bad vertex sequence, 0132',ErrorLine)>0 then - FixBowtieQuad0132(QuadCombine) - else if pos('Bad vertex sequence, 0312',ErrorLine)>0 then - FixBowtieQuad0312(QuadCombine); - - ErrorLine := L3CheckLine(QuadCombine.DATString); - flag := true; - if (pos('Collinear vertices',ErrorLine) > 0) or - (pos('Vertices not coplaner',ErrorLine) > 0) or - (pos('Concave Quad',ErrorLine) > 0) then - if MessageDlg(_('Combining these triangles:') + #13#10 + - tri1.DATString + '(Line: ' + IntToStr(editor.LineFromPosition(editor.SelStart) + i) + ')' + #13#10 + - tri2.DATString + '(Line: ' + IntToStr(editor.LineFromPosition(editor.SelStart) + i + 1) + ')' + #13#10 + - _('will result in a concave quad or a quad with' + #13#10 + - 'collinear or not coplaner vertices' + #13#10 + - 'Combine anyway?'), mtWarning, [mbYes, mbNo], 0) = mrNo then - flag := false; - - if flag then - begin - DModel.Insert(i, QuadCombine.DATString); - DModel.Delete(i+1); - DModel.Delete(i+1); - end; + SetLength(QuadPoints, Length(QuadPoints) + 1); + QuadPoints[Length(QuadPoints) - 1] := line2.Point[j]; end; - end; + end; -begin - DModel := LDDPCreateDATModel; + if Length(QuadPoints) = 4 then + begin + Result := TDATQuad.Create; + Result.Point[1] := QuadPoints[0]; + Result.Point[2] := QuadPoints[1]; + Result.Point[3] := QuadPoints[2]; + Result.Point[4] := QuadPoints[3]; + Result.Color := line1.Color; + end + else + Result := nil; +end; - editor.ExpandSelection(startline, endline); - DModel.ModelText := editor.SelText; - i := 0; - - if DModel.Count >= 2 then - while i < DModel.Count do - begin - if i <= DModel.Count - 2 then - if (DModel[i] is TDATTriangle) and (DModel[i+1] is TDATTriangle) then - ProcessTriangles(DModel[i] as TDATTriangle, DModel[i+1] as TDATTriangle); - inc(i); - end; - editor.SelText := DModel.ModelText; -end; - procedure TfrMain.acSubFileExecute(Sender: TObject); // Save a block of text as a separate file and add the appropriate subfile line var @@ -868,14 +902,14 @@ // File actions procedure TfrMain.acFileNewExecute(Sender: TObject); -// Creates a new untitled Editor child window +// Creates a new untitled document begin DocumentTabs.NewDocument; DocumentTabs.ActiveDocument.Highlighter := 'LDraw'; end; procedure TfrMain.acFileOpenExecute(Sender: TObject); -// Opens chosen existing filenames in a new editor child windows +// Opens chosen existing filenames in a new tab var i: Integer; @@ -886,6 +920,7 @@ end; procedure TfrMain.OpenFile(filename: string); +// Open the specified file and set initial data begin if FileExists(filename) then begin @@ -1373,7 +1408,8 @@ end; // Check style state and enable auto complete and call tips for linetype 1 file - AutoComplete.Disabled := editor.GetStyleAt(editor.GetCurrentPos) <> 16; + AutoComplete.Disabled := (editor.GetStyleAt(editor.GetCurrentPos) <> 16) and + (editor.GetStyleAt(editor.GetCurrentPos) <> 17); end; procedure TfrMain.FormDblClick(Sender: TObject); @@ -1428,7 +1464,8 @@ //Load form parameters from INI file LoadFormValues; - + UpdateViewMenu; + //Set defaults based on options editor.PositionDecimalPlaces := frOptions.sePntAcc.Value; editor.RotationDecimalPlaces := frOptions.seRotAcc.Value; @@ -1576,10 +1613,13 @@ DocumentTabs.ActiveDocument.LastChanged := fileage; end; end; + if frErrorWindow.Visible then + frErrorWindow.acErrorCheck.Execute; end; procedure TfrMain.DocumentTabsClosing(Sender: TObject; const TabIndex: Integer; var AllowClose: Boolean); + begin if editor.modified then begin @@ -1673,7 +1713,7 @@ try plgBitmap := TBitMap.Create; plgBitmap.LoadFromFile(ChangeFileExt(PluginFile, '.bmp')); - imgix := ilToolBarColor.AddMasked(plgBitmap, clFuchsia); + imgix := ilProgramIcons.AddMasked(plgBitmap, clFuchsia); plgBitmap.Free; except imgix := -1; @@ -1892,10 +1932,20 @@ Width := LDDPini.ReadInteger(IniSection, 'frMain_Width', Width); Height := LDDPini.ReadInteger(IniSection, 'frMain_Height', Height); tbrFile.Visible := LDDPini.ReadBool(IniSection, 'tbrFile_Visible', tbrFile.Visible); + tbrFile.Top := LDDPini.ReadInteger(IniSection, 'tbrFile_Top', tbrFile.Top); + tbrFile.Left := LDDPini.ReadInteger(IniSection, 'tbrFile_Left', tbrFile.Left); tbrExternalPrograms.Visible := LDDPini.ReadBool(IniSection, 'tbrExternalPrograms_Visible', tbrExternalPrograms.Visible); + tbrExternalPrograms.Top := LDDPini.ReadInteger(IniSection, 'tbrExternalPrograms_Top', tbrExternalPrograms.Top); + tbrExternalPrograms.Left := LDDPini.ReadInteger(IniSection, 'tbrExternalPrograms_Left', tbrExternalPrograms.Left); tbrTools.Visible := LDDPini.ReadBool(IniSection, 'tbrTools_Visible', tbrTools.Visible); + tbrTools.Top := LDDPini.ReadInteger(IniSection, 'tbrTools_Top', tbrTools.Top); + tbrTools.Left := LDDPini.ReadInteger(IniSection, 'tbrTools_Left', tbrTools.Left); tbrEditing.Visible := LDDPini.ReadBool(IniSection, 'tbrEditing_Visible', tbrEditing.Visible); + tbrEditing.Top := LDDPini.ReadInteger(IniSection, 'tbrEditing_Top', tbrEditing.Top); + tbrEditing.Left := LDDPini.ReadInteger(IniSection, 'tbrEditing_Left', tbrEditing.Left); tbrColorReplace.Visible := LDDPini.ReadBool(IniSection, 'tbrColorReplace_Visible', tbrColorReplace.Visible); + tbrColorReplace.Top := LDDPini.ReadInteger(IniSection, 'tbrColorReplace_Top', tbrColorReplace.Top); + tbrColorReplace.Left := LDDPini.ReadInteger(IniSection, 'tbrColorReplace_Left', tbrColorReplace.Left); if LDDPini.ReadBool(IniSection, 'mnuEnablePolling_Checked', mnuEnablePolling.Checked) then mnuEnablePollingClick(nil); if LDDPini.ReadBool(IniSection, 'mnuPollToSelected_Checked', mnuPollToSelected.Checked) then @@ -1934,83 +1984,93 @@ LDDPini.WriteInteger(IniSection, 'frMain_Width', Width); LDDPini.WriteInteger(IniSection, 'frMain_Height', Height); LDDPini.WriteBool(IniSection, 'tbrFile_Visible', tbrFile.Visible); + LDDPini.WriteInteger(IniSection, 'tbrFile_Top', tbrFile.Top); + LDDPini.WriteInteger(IniSection, 'tbrFile_Left', tbrFile.Left); LDDPini.WriteBool(IniSection, 'tbrExternalPrograms_Visible', tbrExternalPrograms.Visible); + LDDPini.WriteInteger(IniSection, 'tbrExternalPrograms_Top', tbrExternalPrograms.Top); + LDDPini.WriteInteger(IniSection, 'tbrExternalPrograms_Left', tbrExternalPrograms.Left); LDDPini.WriteBool(IniSection, 'tbrTools_Visible', tbrTools.Visible); + LDDPini.WriteInteger(IniSection, 'tbrTools_Top', tbrTools.Top); + LDDPini.WriteInteger(IniSection, 'tbrTools_Left', tbrTools.Left); LDDPini.WriteBool(IniSection, 'tbrEditing_Visible', tbrEditing.Visible); + LDDPini.WriteInteger(IniSection, 'tbrEditing_Top', tbrEditing.Top); + LDDPini.WriteInteger(IniSection, 'tbrEditing_Left', tbrEditing.Left); LDDPini.WriteBool(IniSection, 'tbrColorReplace_Visible', tbrColorReplace.Visible); - LDDPini.WriteBool(IniSection, 'mnuEnablePolling_Checked', mnuEnablePolling.Checked); - LDDPini.WriteBool(IniSection, 'mnuPollToSelected_Checked', mnuPollToSelected.Checked); - LDDPini.WriteBool(IniSection, 'mnuPollEvery1Sec_Checked', mnuPollEvery1Sec.Checked); - LDDPini.WriteBool(IniSection, 'mnuPollEvery2Sec_Checked', mnuPollEvery2Sec.Checked); - LDDPini.WriteBool(IniSection, 'mnuPollEvery5Sec_Checked', mnuPollEvery5Sec.Checked); - LDDPini.WriteBool(IniSection, 'mnuPollOnCustomInterval_Checked', mnuPollOnCustomInterval.Checked); - LDDPini.WriteBool(IniSection, 'mnuPollOnRequest_Checked', mnuPollOnRequest.Checked); - LDDPini.WriteString(IniSection, 'SearchReplaceDlg_ReplaceTextHistory', SearchReplaceDlg.ReplaceTextHistory); - LDDPini.WriteString(IniSection, 'SearchReplaceDlg_SearchTextHistory', SearchReplaceDlg.SearchTextHistory); - - LDDPini.UpdateFile; - LDDPini.Free; -end; - -function TfrMain.tempFileName:string; -{--------------------------------------------------------------------- -Description: Creates and returns a unique temporary filename for this editor window -Parameter: None -Return value: Path & Filename of the temporary filename ----------------------------------------------------------------------} -begin - Result := WinTempDir + ExtractFileName(DocumentTabs.ActiveDocument.FileName); -end; - -procedure TfrMain.FormClose(Sender: TObject; var Action: TCloseAction); -var - i: Integer; - -begin - for i := DocumentTabs.Count - 1 downto 0 do - begin - DocumentTabs.Activate(i); - if editor.Modified then - case MessageDlg('Save changes to ' + DocumentTabs.ActiveDocument.TabName + '?'+#13+#10+''+#13+#10+'Yes: Saves the changes and closes this document.'+#13+#10+'No: Closes the document without saving any changes.'+#13+#10+'Cancel: Keeps the document open', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of - mrYes: begin - acFileSave.Execute; - DeleteFile(tempFilename); - end; - mrCancel: begin - Action := caNone; - Exit; - end; - end; - end; - SaveFormValues; - EditorPropertyLoader.Save; - PluginActionList.Free; -end; - -procedure TfrMain.SearchReplaceDlgTextNotFound(Sender: TObject); -begin - acFindNext.Enabled := false; -end; - -procedure TfrMain.acFindNextUpdate(Sender: TObject); -begin - acFindNext.Enabled := SearchReplaceDlg.SearchText <> ''; -end; - -procedure TfrMain.tbUserDefinedClick(Sender: TObject); -begin -// Empty. Required for Button to be enabled -end; - -initialization - {Some locales use "," as the decimal separator - This changes the decimal separtor to "." as required by the LDraw spec - without changing the master settings. } - Application.UpdateFormatSettings := False; - DecimalSeparator := '.'; - ThousandSeparator:=','; - -finalization -// Nothing - -end. + LDDPini.WriteInteger(IniSection, 'tbrColorReplace_Top', tbrColorReplace.Top); + LDDPini.WriteInteger(IniSection, 'tbrColorReplace_Left', tbrColorReplace.Left); + LDDPini.WriteBool(IniSection, 'mnuEnablePolling_Checked', mnuEnablePolling.Checked); + LDDPini.WriteBool(IniSection, 'mnuPollToSelected_Checked', mnuPollToSelected.Checked); + LDDPini.WriteBool(IniSection, 'mnuPollEvery1Sec_Checked', mnuPollEvery1Sec.Checked); + LDDPini.WriteBool(IniSection, 'mnuPollEvery2Sec_Checked', mnuPollEvery2Sec.Checked); + LDDPini.WriteBool(IniSection, 'mnuPollEvery5Sec_Checked', mnuPollEvery5Sec.Checked); + LDDPini.WriteBool(IniSection, 'mnuPollOnCustomInterval_Checked', mnuPollOnCustomInterval.Checked); + LDDPini.WriteBool(IniSection, 'mnuPollOnRequest_Checked', mnuPollOnRequest.Checked); + LDDPini.WriteString(IniSection, 'SearchReplaceDlg_ReplaceTextHistory', SearchReplaceDlg.ReplaceTextHistory); + LDDPini.WriteString(IniSection, 'SearchReplaceDlg_SearchTextHistory', SearchReplaceDlg.SearchTextHistory); + + LDDPini.UpdateFile; + LDDPini.Free; +end; + +function TfrMain.tempFileName:string; +{--------------------------------------------------------------------- +Description: Creates and returns a unique temporary filename for this editor window +Parameter: None +Return value: Path & Filename of the temporary filename +---------------------------------------------------------------------} +begin + Result := WinTempDir + ExtractFileName(DocumentTabs.ActiveDocument.FileName); +end; + +procedure TfrMain.FormClose(Sender: TObject; var Action: TCloseAction); +var + i: Integer; + +begin + for i := DocumentTabs.Count - 1 downto 0 do + begin + DocumentTabs.Activate(i); + if editor.Modified then + case MessageDlg('Save changes to ' + DocumentTabs.ActiveDocument.TabName + '?'+#13+#10+''+#13+#10+'Yes: Saves the changes and closes this document.'+#13+#10+'No: Closes the document without saving any changes.'+#13+#10+'Cancel: Keeps the document open', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of + mrYes: begin + acFileSave.Execute; + DeleteFile(tempFilename); + end; + mrCancel: begin + Action := caNone; + Exit; + end; + end; + end; + SaveFormValues; + EditorPropertyLoader.Save; + PluginActionList.Free; +end; + +procedure TfrMain.SearchReplaceDlgTextNotFound(Sender: TObject); +begin + acFindNext.Enabled := false; +end; + +procedure TfrMain.acFindNextUpdate(Sender: TObject); +begin + acFindNext.Enabled := SearchReplaceDlg.SearchText <> ''; +end; + +procedure TfrMain.tbUserDefinedClick(Sender: TObject); +begin +// Empty. Required for Button to be enabled +end; + +initialization + {Some locales use "," as the decimal separator + This changes the decimal separtor to "." as required by the LDraw spec + without changing the master settings. } + Application.UpdateFormatSettings := False; + DecimalSeparator := '.'; + ThousandSeparator:=','; + +finalization +// Nothing + +end. Modified: trunk/lddp/options.pas =================================================================== --- trunk/lddp/options.pas 2008-08-30 01:40:56 UTC (rev 351) +++ trunk/lddp/options.pas 2008-09-03 00:55:04 UTC (rev 352) @@ -35,7 +35,7 @@ PageControl1: TPageControl; tsExternal: TTabSheet; GroupBox1: TGroupBox; - btL3Lab: TBitBtn; + c: TBitBtn; btMLCad: TBitBtn; btLDView: TBitBtn; btLDraw: TBitBtn; @@ -58,14 +58,6 @@ cboDist: TCheckBox; Memo1: TMemo; Memo2: TMemo; - TabSheet4: TTabSheet; - GroupBox3: TGroupBox; - edEmail: TEdit; - edUsername: TEdit; - edName: TEdit; - Label16: TLabel; - Label14: TLabel; - Label13: TLabel; TabSheet3: TTabSheet; GroupBox4: TGroupBox; btnRescanPlugins: TBitBtn; @@ -124,13 +116,31 @@ GroupBox6: TGroupBox; Label1: TLabel; seCustomPollInterval: TJvValidateEdit; + Label3: TLabel; + edUserName: TEdit; + edEmail: TEdit; + Label7: TLabel; + Label8: TLabel; + edName: TEdit; + SearchPathsList: TListView; + Panel5: TPanel; + btnPathUp: TBitBtn; + btnPathDown: TBitBtn; + btnMLCadPathImport: TButton; + btnDeleteInvalidPaths: TButton; + btnDeletePath: TButton; + btnReplacePath: TButton; + btnAddPath: TButton; + edSearchPath: TEdit; + btnPathOpen: TBitBtn; + OptionImages: TImageList; procedure PageControl1Change(Sender: TObject); procedure btnRescanPluginsClick(Sender: TObject); procedure cblPluginsClickCheck(Sender: TObject); procedure btLDrawClick(Sender: TObject); procedure btLDViewClick(Sender: TObject); procedure btMLCadClick(Sender: TObject); - procedure btL3LabClick(Sender: TObject); + procedure cClick(Sender: TObject); procedure btExternalClick(Sender: TObject); procedure btLSynthClick(Sender: TObject); procedure btnColorSelectClick(Sender: TObject); @@ -145,12 +155,24 @@ procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ColorBarSheetShow(Sender: TObject); procedure ColorBarComboChange(Sender: TObject); + procedure btnMLCadPathImportClick(Sender: TObject); + procedure SearchPathsListSelectItem(Sender: TObject; Item: TListItem; + Selected: Boolean); + procedure edSearchPathChange(Sender: TObject); + procedure btnPathOpenClick(Sender: TObject); + procedure btnAddPathClick(Sender: TObject); + procedure btnReplacePathClick(Sender: TObject); + procedure btnDeletePathClick(Sender: TObject); + procedure btnDeleteInvalidPathsClick(Sender: TObject); + procedure btnPathDownClick(Sender: TObject); + procedure btnPathUpClick(Sender: TObject); protected ColorBarList: TStringList; procedure ColorButtonChange(ImageColor: TColor; ColorName, ColorNumber: string; ButtonIndex: Integer); procedure MakeExternalMenuItem(ProgIndex:Integer); procedure SetColorListToDefault; + procedure SetDirectory(DCaption: string; EditControl: TEdit); public ExternalProgramList: TStringList; @@ -165,7 +187,7 @@ implementation -uses main, windowsspecific, ActnList, DATBase, DATCheck, DATUtils; +uses main, windowsspecific, ActnList, DATBase, DATCheck, DATUtils, StrUtils; {$R *.dfm} @@ -173,6 +195,7 @@ var strFound, strNotFound: string; + i: Integer; begin strFound := _('Found!'); @@ -190,7 +213,7 @@ lbLSynth.Caption:=strNotFound; if FileExists(frOptions.edLDrawDir.text+'\parts.lst') then begin - lbLDraw.font.Color:=clGreen; + lbLDraw.font.Color := clGreen; lbldraw.Caption:= strFound; end; @@ -214,16 +237,25 @@ lbLSynth.Caption:=strFound; end; - if trim(frOptions.edExternal.text)='' then lbExternal.Caption:='' + if trim(frOptions.edExternal.text)='' then + lbExternal.Caption:='' + else + if FileExists(frOptions.edExternal.text) then begin + lbExternal.font.Color:=clGreen; + lbExternal.Caption:=strFound; + end else - if FileExists(frOptions.edExternal.text) then begin - lbExternal.font.Color:=clGreen; - lbExternal.Caption:=strFound; - end - else begin - lbExternal.font.Color:=clRed; - lbExternal.Caption:=strNotFound; - end; + begin + lbExternal.font.Color:=clRed; + lbExternal.Caption:=strNotFound; + end; + + for i := 0 to SearchPathsList.Items.Count - 1 do + if DirectoryExists(SearchPathsList.Items[i].Caption) then + SearchPathsList.Items[i].StateIndex := 0 + else + SearchPathsList.Items[i].StateIndex := 1; + end; procedure TfrOptions.PageControl1Change(Sender: TObject); @@ -231,6 +263,12 @@ UpdateControls; end; +procedure TfrOptions.btnReplacePathClick(Sender: TObject); +begin + if Assigned(SearchPathsList.Selected) then + SearchPathsList.Selected.Caption := edSearchPath.Text +end; + procedure TfrOptions.btnRescanPluginsClick(Sender: TObject); begin frMain.LoadPlugins; @@ -250,45 +288,46 @@ end; procedure TfrOptions.btLDrawClick(Sender: TObject); -var strDir:string; begin - strDir:=edLdrawDir.Text; - if SelectDirectory(_('Choose LDraw Library Location'),'',strDir) then edLdrawDir.Text:=strDir; + SetDirectory(_('Choose LDraw Library Location'),edLdrawDir); UpdateControls; end; procedure TfrOptions.btLDViewClick(Sender: TObject); -var strDir:string; begin - strDir:=edLDViewDir.Text; - if SelectDirectory(_('Choose LDView Location'),'',strDir) then edLDViewDir.Text:=strDir; + SetDirectory(_('Choose LDView Location'),edLDViewDir); UpdateControls; end; procedure TfrOptions.btMLCadClick(Sender: TObject); -var strDir:string; begin - strDir:=edMLCadDir.Text; - if SelectDirectory(_('Choose MLCad Location'),'',strDir) then edMLCadDir.Text:=strDir; + SetDirectory(_('Choose MLCad Location'),edMLCadDir); UpdateControls; end; -procedure TfrOptions.btL3LabClick(Sender: TObject); -var strDir:string; +procedure TfrOptions.cClick(Sender: TObject); begin - strDir:=edL3LabDir.Text; - if SelectDirectory(_('Choose L3Lab Location'),'',strDir) then edL3LabDir.Text:=strDir; + SetDirectory(_('Choose L3Lab Location'),edL3LabDir); UpdateControls; end; procedure TfrOptions.btLSynthClick(Sender: TObject); -var strDir:string; begin - strDir:=edLSynthDir.Text; - if SelectDirectory(_('Choose lynthcp Location'),'',strDir) then edLSynthDir.Text:=strDir; + SetDirectory(_('Choose lynthcp Location'),edLSynthDir); UpdateControls; end; +procedure TfrOptions.SetDirectory(DCaption: string; EditControl: TEdit); +var + strDir: string; + +begin + strDir := EditControl.Text; + if SelectDirectory(DCaption,'',strDir) then + EditControl.Text := strDir; + UpdateControls; +end; + procedure TfrOptions.btExternalClick(Sender: TObject); begin OpenDialog.InitialDir := ExtractFileDir(edExternal.Text); @@ -341,6 +380,9 @@ for i := 0 to ExternalProgramList.Count - 1 do LDDPini.WriteString(IniSection, 'lbxExternal_Item' + IntToStr(i), ExternalProgramList[i]); + for i := 0 to SearchPathsList.Items.Count - 1 do + LDDPini.WriteString(IniSection, 'SearchPathsList_Item' + IntToStr(i), SearchPathsList.Items[i].Caption); + LDDPini.UpdateFile; LDDPini.Free; end; @@ -352,6 +394,7 @@ CurrentItem: TStringList; LDDPini: TMemIniFile; IniSection: string; + SearchPath: TListItem; begin ColorBarList := TStringList.Create; @@ -410,12 +453,22 @@ i := 0; while LDDPini.ReadString(IniSection, 'lbxExternal_Item' + IntToStr(i), 'none') <> 'none' do begin - MakeExternalMenuItem(ExternalProgramList.Add(LDDPini.ReadString(IniSection, 'lbxExternal_Item' + IntToStr(i), 'none'))); - CurrentItem.CommaText := ExternalProgramList[ExternalProgramList.Count - 1]; - lbxExternal.Items.Add(CurrentItem[0]); - Inc(i); + MakeExternalMenuItem(ExternalProgramList.Add(LDDPini.ReadString(IniSection, 'lbxExternal_Item' + IntToStr(i), 'none'))); + CurrentItem.CommaText := ExternalProgramList[ExternalProgramList.Count - 1]; + lbxExternal.Items.Add(CurrentItem[0]); + Inc(i); end; + //Read and setup seach paths list + SearchPathsList.Clear; + i := 0; + while LDDPini.ReadString(IniSection, 'SearchPathsList_Item' + IntToStr(i), 'none') <> 'none' do + begin + SearchPath := SearchPathsList.Items.Add; + SearchPath.Caption := LDDPini.ReadString(IniSection, 'SearchPathsList_Item' + IntToStr(i), ''); + Inc(i); + end; + CurrentItem.Free; LDDPini.Free; end; @@ -478,7 +531,7 @@ with frMain.tbrColorReplace.Buttons[ButtonIndex] do begin - ImageIndex := frMain.ilToolBarColor.AddMasked(ColorButtonBitmap, clFuchsia); + ImageIndex := frMain.ilProgramIcons.AddMasked(ColorButtonBitmap, clFuchsia); Hint := ColorName + ' ' + ColorNumber; Caption := ColorName + ' ' + ColorNumber; Tag := StrToInt(ColorNumber); @@ -528,6 +581,18 @@ ColourList.Free; end; +procedure TfrOptions.btnAddPathClick(Sender: TObject); + +var + SearchPath: TListItem; + +begin + SearchPath := SearchPathsList.Items.Add; + SearchPath.Caption := edSearchPath.Text; + SearchPathsList.Selected := SearchPath; + UpdateControls; +end; + procedure TfrOptions.btnColorRestoreClick(Sender: TObject); var @@ -654,6 +719,60 @@ end; end; +procedure TfrOptions.edSearchPathChange(Sender: TObject); +var + SearchPath: TListItem; + +begin + SearchPath := SearchPathsList.FindCaption(0, edSearchPath.Text, False, True, True); + if DirectoryExists(edSearchPath.Text) then + begin + if not Assigned(SearchPath) then + begin + btnAddPath.Enabled := True; + btnReplacePath.Enabled := Assigned(SearchPathsList.Selected); + btnDeletePath.Enabled := False; + end + else + begin + btnAddPath.Enabled := False; + btnReplacePath.Enabled := False; + btnDeletePath.Enabled := True; + end; + end + else + begin + btnAddPath.Enabled := False; + btnReplacePath.Enabled := False; + btnDeletePath.Enabled := Assigned(SearchPath); + end; + +end; + +procedure TfrOptions.btnDeleteInvalidPathsClick(Sender: TObject); + +var + i: Integer; + +begin + for i := SearchPathsList.Items.Count - 1 downto 0 do + if not DirectoryExists(SearchPathsList.Items[i].Caption) then + SearchPathsList.Items[i].Free; +end; + +procedure TfrOptions.btnDeletePathClick(Sender: TObject); +var + SearchPath: TListItem; + +begin + SearchPath := SearchPathsList.FindCaption(0, edSearchPath.Text, False, True, True); + if Assigned(SearchPath) then + begin + SearchPath.Free; + edSearchPath.Text := ''; + end; +end; + procedure TfrOptions.btnDelExternalClick(Sender: TObject); var @@ -683,6 +802,90 @@ end; end; +procedure TfrOptions.btnMLCadPathImportClick(Sender: TObject); +// Construct the meta command menu from the ini file +var + MLCadIni: TIniFile; + ScanPathSection: TStringList; + scanpath: string; + i: Integer; + SearchPath: TListItem; + +begin + if FileExists(edMLCadDir.Text + '\MLCad.ini') then + begin + ScanPathSection := TStringList.Create; + ScanPathSection.Duplicates := dupIgnore; + ScanPathSection.Sorted := True; + ScanPathSection.CaseSensitive := False; + + MLCadIni := TIniFile.Create(edMLCadDir.Text + '\MLCad.ini'); + + MLCadIni.ReadSection('SCAN_ORDER', ScanPathSection); + + for i := 0 to ScanPathSection.Count - 1 do + begin + scanpath := MLCadIni.ReadString('SCAN_ORDER', ScanPathSection[i], ''); + // strip out the SHOW or HIDE command + scanpath := RightStr(scanpath, Length(scanpath) - 5); + SearchPath := SearchPathsList.FindCaption(0, scanpath, False, True, True); + if not Assigned(SearchPath) and + (Pos('<LDRAWDIR>', scanpath) = 0) and + (scanpath <> LDrawBasePath + '\parts') and + (scanpath <> LDrawBasePath + '\parts\s') and + (scanpath <> LDrawBasePath + '\p') and + (scanpath <> LDrawBasePath + '\p\48') and + DirectoryExists(scanpath) then + begin + SearchPath := SearchPathsList.Items.Add; + SearchPath.Caption := scanpath; + end; + end; + ScanPathSection.Free; + MLCadIni.Free; + end; + UpdateControls; +end; + +procedure TfrOptions.btnPathDownClick(Sender: TObject); + +var + SearchPath: TListItem; + +begin + if Assigned(SearchPathsList.Selected) and + (SearchPathsList.Selected.Index < SearchPathsList.Items.Count - 1) then + begin + SearchPath := SearchPathsList.Items.Insert(SearchPathsList.Selected.Index + 2); + SearchPath.Caption := SearchPathsList.Selected.Caption; + SearchPathsList.Selected.Free; + SearchPathsList.Selected := SearchPath; + end; + UpdateControls; +end; + +procedure TfrOptions.btnPathOpenClick(Sender: TObject); +begin + SetDirectory(_('Choose Directory'),edSearchPath); +end; + +procedure TfrOptions.btnPathUpClick(Sender: TObject); + +var + SearchPath: TListItem; + +begin + if Assigned(SearchPathsList.Selected) and + (SearchPathsList.Selected.Index > 0) then + begin + SearchPath := SearchPathsList.Items.Insert(SearchPathsList.Selected.Index - 1); + SearchPath.Caption := SearchPathsList.Selected.Caption; + SearchPathsList.Selected.Free; + SearchPathsList.Selected := SearchPath; + end; + UpdateControls; +end; + procedure TfrOptions.FormClose(Sender: TObject; var Action: TCloseAction); begin if ModalResult = mrOK then @@ -694,14 +897,22 @@ procedure TfrOptions.FormCreate(Sender: TObject); begin - TranslateComponent (self); + TranslateComponent(Self); LoadFormValues; OpenDialog.Filter := _('Executibles') + '(*.*)|*.exe'; + if SearchPathsList.Items.Count > 0 then + SearchPathsList.Selected := SearchPathsList.Items[0]; UpdateControls; SetConfigurationConstants; PageControl1.ActivePage:=tsExternal; end; +procedure TfrOptions.SearchPathsListSelectItem(Sender: TObject; Item: TListItem; + Selected: Boolean); +begin + edSearchPath.Text := Item.Caption; +end; + procedure TfrOptions.SetColorListToDefault; var i: Integer; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-08-30 01:40:59
|
Revision: 351 http://lddp.svn.sourceforge.net/lddp/?rev=351&view=rev Author: billthefish Date: 2008-08-30 01:40:56 +0000 (Sat, 30 Aug 2008) Log Message: ----------- Added auto complete and mouse over file identification. Expanded subfile dialog Modified Paths: -------------- trunk/lddp/LDDesignPad.bdsproj trunk/lddp/commonprocs.pas trunk/lddp/dlgSubpart.dfm trunk/lddp/dlgSubpart.pas trunk/lddp/main.dfm trunk/lddp/main.pas trunk/lddp/windowsspecific.pas Modified: trunk/lddp/LDDesignPad.bdsproj =================================================================== --- trunk/lddp/LDDesignPad.bdsproj 2008-08-30 01:05:54 UTC (rev 350) +++ trunk/lddp/LDDesignPad.bdsproj 2008-08-30 01:40:56 UTC (rev 351) @@ -119,10 +119,10 @@ <Linker Name="ExeDescription"></Linker> </Linker> <Directories> - <Directories Name="OutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\Exe</Directories> - <Directories Name="UnitOutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\Exe\DCU</Directories> - <Directories Name="PackageDLLOutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\Exe\DCU</Directories> - <Directories Name="PackageDCPOutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\Exe\DCU</Directories> + <Directories Name="OutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build</Directories> + <Directories Name="UnitOutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build\DCU</Directories> + <Directories Name="PackageDLLOutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build\DCU</Directories> + <Directories Name="PackageDCPOutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build\DCU</Directories> <Directories Name="SearchPath"></Directories> <Directories Name="Packages">vclx;vcl;rtl;dbrtl;vcldb;adortl;dbxcds;dbexpress;vclib;ibxpress;vclactnband;xmlrtl;inet;IntrawebDB_80_100;Intraweb_80_100;vclie;inetdbbde;inetdbxpress;IndyCore;IndySystem;dclOfficeXP;VclSmp;soaprtl;dsnap;IndyProtocols;bdertl;teeui;teedb;tee;vcldbx;Jcl;JvCoreD10R;JvBandsD10R;JclVcl;JvDBD10R;JvStdCtrlsD10R;JvDlgsD10R;JvSystemD10R;JvBDED10R;JvCmpD10R;JvCryptD10R;JvCtrlsD10R;JvCustomD10R;JvDockingD10R;JvDotNetCtrlsD10R;JvEDID10R;JvGlobusD10R;JvHMID10R;JvInterpreterD10R;JvJansD10R;JvManagedThreadsD10R;JvMMD10R;JvNetD10R;JvPageCompsD10R;JvPluginD10R;JvPrintPreviewD10R;JvRuntimeDesignD10R;JvTimeFrameworkD10R;JvUIBD10R;JvValidatorsD10R;JvWizardD10R;JvXPCtrlsD10R;JvAppFrmD10R</Directories> <Directories Name="Conditionals"></Directories> Modified: trunk/lddp/commonprocs.pas =================================================================== --- trunk/lddp/commonprocs.pas 2008-08-30 01:05:54 UTC (rev 350) +++ trunk/lddp/commonprocs.pas 2008-08-30 01:40:56 UTC (rev 351) @@ -75,4 +75,5 @@ else Result := CreateDATModel(frOptions.sePntAcc.Value, frOptions.seRotAcc.Value); end; + end. Modified: trunk/lddp/dlgSubpart.dfm =================================================================== --- trunk/lddp/dlgSubpart.dfm 2008-08-30 01:05:54 UTC (rev 350) +++ trunk/lddp/dlgSubpart.dfm 2008-08-30 01:40:56 UTC (rev 351) @@ -3,7 +3,7 @@ Top = 376 BorderStyle = bsDialog Caption = 'Move Selection to Subfile' - ClientHeight = 304 + ClientHeight = 414 ClientWidth = 521 Color = clBtnFace Font.Charset = DEFAULT_CHARSET @@ -13,70 +13,77 @@ Font.Style = [] OldCreateOrder = False Position = poMainFormCenter + OnClose = FormClose OnCreate = FormCreate + OnShow = FormShow PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 8 - Top = 8 + Top = 35 Width = 45 Height = 13 Caption = 'Filename:' end object Label2: TLabel Left = 8 - Top = 32 + Top = 8 Width = 55 Height = 13 Caption = 'Model Title:' end object Label3: TLabel Left = 8 - Top = 56 + Top = 62 Width = 34 Height = 13 Caption = 'Author:' end + object Label5: TLabel + Left = 8 + Top = 89 + Width = 103 + Height = 13 + Caption = 'LDraw.org Username:' + end object Label4: TLabel Left = 8 - Top = 104 - Width = 90 + Top = 322 + Width = 45 Height = 13 - Caption = 'Header Comments:' + Caption = 'Category:' end - object Label5: TLabel + object Label6: TLabel Left = 8 - Top = 80 - Width = 103 + Top = 349 + Width = 49 Height = 13 - Caption = 'LDraw.org Username:' + Caption = 'Keywords:' end + object Label7: TLabel + Left = 8 + Top = 194 + Width = 25 + Height = 13 + Caption = 'Help:' + end object edFilename: TEdit Left = 115 - Top = 8 + Top = 32 Width = 398 Height = 21 TabOrder = 0 end object edAuthor: TEdit Left = 115 - Top = 56 + Top = 59 Width = 398 Height = 21 TabOrder = 1 end - object edComments: TMemo - Left = 115 - Top = 104 - Width = 398 - Height = 81 - Lines.Strings = ( - '') - TabOrder = 2 - end object rgType: TRadioGroup Left = 8 - Top = 192 + Top = 113 Width = 505 Height = 49 Caption = 'Model Type' @@ -88,134 +95,181 @@ 'Subpart' 'Primitive' '48_Primitive') - TabOrder = 3 + TabOrder = 2 end object cbUnofficial: TCheckBox Left = 8 - Top = 248 + Top = 168 Width = 153 Height = 17 Caption = 'Mark as Unofficial' Checked = True State = cbChecked + TabOrder = 3 + end + object edTitle: TEdit + Left = 115 + Top = 5 + Width = 398 + Height = 21 TabOrder = 4 end - object btnCreate: TBitBtn - Left = 8 - Top = 272 - Width = 75 - Height = 25 - Caption = 'Create' - ModalResult = 1 + object edUsername: TEdit + Left = 115 + Top = 86 + Width = 398 + Height = 21 TabOrder = 5 - Glyph.Data = { - 36050000424D3605000000000000360400002800000010000000100000000100 - 0800000000000001000000000000000000000001000000000000000000000000 - 80000080000000808000800000008000800080800000C0C0C000C0DCC000F0CA - A6000020400000206000002080000020A0000020C0000020E000004000000040 - 20000040400000406000004080000040A0000040C0000040E000006000000060 - 20000060400000606000006080000060A0000060C0000060E000008000000080 - 20000080400000806000008080000080A0000080C0000080E00000A0000000A0 - 200000A0400000A0600000A0800000A0A00000A0C00000A0E00000C0000000C0 - 200000C0400000C0600000C0800000C0A00000C0C00000C0E00000E0000000E0 - 200000E0400000E0600000E0800000E0A00000E0C00000E0E000400000004000 - 20004000400040006000400080004000A0004000C0004000E000402000004020 - 20004020400040206000402080004020A0004020C0004020E000404000004040 - 20004040400040406000404080004040A0004040C0004040E000406000004060 - 20004060400040606000406080004060A0004060C0004060E000408000004080 - 20004080400040806000408080004080A0004080C0004080E00040A0000040A0 - 200040A0400040A0600040A0800040A0A00040A0C00040A0E00040C0000040C0 - 200040C0400040C0600040C0800040C0A00040C0C00040C0E00040E0000040E0 - 200040E0400040E0600040E0800040E0A00040E0C00040E0E000800000008000 - 20008000400080006000800080008000A0008000C0008000E000802000008020 - 20008020400080206000802080008020A0008020C0008020E000804000008040 - 20008040400080406000804080008040A0008040C0008040E000806000008060 - 20008060400080606000806080008060A0008060C0008060E000808000008080 - 20008080400080806000808080008080A0008080C0008080E00080A0000080A0 - 200080A0400080A0600080A0800080A0A00080A0C00080A0E00080C0000080C0 - 200080C0400080C0600080C0800080C0A00080C0C00080C0E00080E0000080E0 - 200080E0400080E0600080E0800080E0A00080E0C00080E0E000C0000000C000 - 2000C0004000C0006000C0008000C000A000C000C000C000E000C0200000C020 - 2000C0204000C0206000C0208000C020A000C020C000C020E000C0400000C040 - 2000C0404000C0406000C0408000C040A000C040C000C040E000C0600000C060 - 2000C0604000C0606000C0608000C060A000C060C000C060E000C0800000C080 - 2000C0804000C0806000C0808000C080A000C080C000C080E000C0A00000C0A0 - 2000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0E000C0C00000C0C0 - 2000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0A000808080000000 - FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FDFDFDFDFDFD - 000000FDFDFDFDFDFDFDFDFDFDFDFD00B0A8A800FDFDFDFDFDFDFDFDFDFD00B0 - B0B0B0A800FDFDFDFDFDFDFDFD00B0A8B0B0B0B000FDFDFDFDFDFDFD00B0A8B0 - B8B0B0B0B000FDFDFDFDFD00B0A8B8B8A800B0B0B000FDFDFDFDFD00A9B8A8A9 - 00FD00B0B0B000FDFDFDFD00A1A8A900FDFD00B0B8B000FDFDFDFDFD000000FD - FDFDFD00B8B8B000FDFDFDFDFDFDFDFDFDFDFD00B8B8B000FDFDFDFDFDFDFDFD - FDFDFDFD00B8B8B000FDFDFDFDFDFDFDFDFDFDFD00B8B8B000FDFDFDFDFDFDFD - FDFDFDFDFD00B8B8B000FDFDFDFDFDFDFDFDFDFDFD00B8B0B800FDFDFDFDFDFD - FDFDFDFDFDFD000000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD} end - object btnCancel: TBitBtn - Left = 440 - Top = 272 - Width = 75 - Height = 25 - Caption = 'Cancel' - ModalResult = 2 + object Panel1: TPanel + Left = 0 + Top = 373 + Width = 521 + Height = 41 + Align = alBottom TabOrder = 6 - Glyph.Data = { - 36050000424D3605000000000000360400002800000010000000100000000100 - 0800000000000001000000000000000000000001000000010000000000000000 - 80000080000000808000800000008000800080800000C0C0C000C0DCC000F0CA - A6000020400000206000002080000020A0000020C0000020E000004000000040 - 20000040400000406000004080000040A0000040C0000040E000006000000060 - 20000060400000606000006080000060A0000060C0000060E000008000000080 - 20000080400000806000008080000080A0000080C0000080E00000A0000000A0 - 200000A0400000A0600000A0800000A0A00000A0C00000A0E00000C0000000C0 - 200000C0400000C0600000C0800000C0A00000C0C00000C0E00000E0000000E0 - 200000E0400000E0600000E0800000E0A00000E0C00000E0E000400000004000 - 20004000400040006000400080004000A0004000C0004000E000402000004020 - 20004020400040206000402080004020A0004020C0004020E000404000004040 - 20004040400040406000404080004040A0004040C0004040E000406000004060 - 20004060400040606000406080004060A0004060C0004060E000408000004080 - 20004080400040806000408080004080A0004080C0004080E00040A0000040A0 - 200040A0400040A0600040A0800040A0A00040A0C00040A0E00040C0000040C0 - 200040C0400040C0600040C0800040C0A00040C0C00040C0E00040E0000040E0 - 200040E0400040E0600040E0800040E0A00040E0C00040E0E000800000008000 - 20008000400080006000800080008000A0008000C0008000E000802000008020 - 20008020400080206000802080008020A0008020C0008020E000804000008040 - 20008040400080406000804080008040A0008040C0008040E000806000008060 - 20008060400080606000806080008060A0008060C0008060E000808000008080 - 20008080400080806000808080008080A0008080C0008080E00080A0000080A0 - 200080A0400080A0600080A0800080A0A00080A0C00080A0E00080C0000080C0 - 200080C0400080C0600080C0800080C0A00080C0C00080C0E00080E0000080E0 - 200080E0400080E0600080E0800080E0A00080E0C00080E0E000C0000000C000 - 2000C0004000C0006000C0008000C000A000C000C000C000E000C0200000C020 - 2000C0204000C0206000C0208000C020A000C020C000C020E000C0400000C040 - 2000C0404000C0406000C0408000C040A000C040C000C040E000C0600000C060 - 2000C0604000C0606000C0608000C060A000C060C000C060E000C0800000C080 - 2000C0804000C0806000C0808000C080A000C080C000C080E000C0A00000C0A0 - 2000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0E000C0C00000C0C0 - 2000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0A000808080000000 - FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FDFD000000FD - FDFDFD0000FDFDFDFDFDFD000E0E0E00FDFD000E0E00FDFDFDFDFD00575F5700 - FD000E9F9F4F00FDFDFDFD00579F9F57000E5F9F9F5700FDFDFDFD00575F5F9F - 575F9F9F5F0E00FDFDFDFDFD00575F5F5F9F5F9F570E00FDFDFDFDFDFD005757 - 5F5F9F570E00FDFDFDFDFDFDFDFD0057575757570E00FDFDFDFDFDFDFDFD0057 - 575757575700FDFDFDFDFDFDFDFD00574F575757570E00FDFDFDFDFDFD005757 - 4F57575757570E00FDFDFDFDFD0057574E4F57575757570E00FDFDFD005F570E - 5757004F5757570E00FDFDFD00575757575700004E57574F00FDFDFDFD005757 - 5700FDFD00000000FDFDFDFDFDFD000000FDFDFDFDFDFDFDFDFD} + ExplicitTop = 313 + object btnCancel: TBitBtn + Left = 438 + Top = 8 + Width = 75 + Height = 25 + Caption = 'Cancel' + ModalResult = 2 + TabOrder = 0 + Glyph.Data = { + 36050000424D3605000000000000360400002800000010000000100000000100 + 0800000000000001000000000000000000000001000000010000000000000000 + 80000080000000808000800000008000800080800000C0C0C000C0DCC000F0CA + A6000020400000206000002080000020A0000020C0000020E000004000000040 + 20000040400000406000004080000040A0000040C0000040E000006000000060 + 20000060400000606000006080000060A0000060C0000060E000008000000080 + 20000080400000806000008080000080A0000080C0000080E00000A0000000A0 + 200000A0400000A0600000A0800000A0A00000A0C00000A0E00000C0000000C0 + 200000C0400000C0600000C0800000C0A00000C0C00000C0E00000E0000000E0 + 200000E0400000E0600000E0800000E0A00000E0C00000E0E000400000004000 + 20004000400040006000400080004000A0004000C0004000E000402000004020 + 20004020400040206000402080004020A0004020C0004020E000404000004040 + 20004040400040406000404080004040A0004040C0004040E000406000004060 + 20004060400040606000406080004060A0004060C0004060E000408000004080 + 20004080400040806000408080004080A0004080C0004080E00040A0000040A0 + 200040A0400040A0600040A0800040A0A00040A0C00040A0E00040C0000040C0 + 200040C0400040C0600040C0800040C0A00040C0C00040C0E00040E0000040E0 + 200040E0400040E0600040E0800040E0A00040E0C00040E0E000800000008000 + 20008000400080006000800080008000A0008000C0008000E000802000008020 + 20008020400080206000802080008020A0008020C0008020E000804000008040 + 20008040400080406000804080008040A0008040C0008040E000806000008060 + 20008060400080606000806080008060A0008060C0008060E000808000008080 + 20008080400080806000808080008080A0008080C0008080E00080A0000080A0 + 200080A0400080A0600080A0800080A0A00080A0C00080A0E00080C0000080C0 + 200080C0400080C0600080C0800080C0A00080C0C00080C0E00080E0000080E0 + 200080E0400080E0600080E0800080E0A00080E0C00080E0E000C0000000C000 + 2000C0004000C0006000C0008000C000A000C000C000C000E000C0200000C020 + 2000C0204000C0206000C0208000C020A000C020C000C020E000C0400000C040 + 2000C0404000C0406000C0408000C040A000C040C000C040E000C0600000C060 + 2000C0604000C0606000C0608000C060A000C060C000C060E000C0800000C080 + 2000C0804000C0806000C0808000C080A000C080C000C080E000C0A00000C0A0 + 2000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0E000C0C00000C0C0 + 2000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0A000808080000000 + FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FDFD000000FD + FDFDFD0000FDFDFDFDFDFD000E0E0E00FDFD000E0E00FDFDFDFDFD00575F5700 + FD000E9F9F4F00FDFDFDFD00579F9F57000E5F9F9F5700FDFDFDFD00575F5F9F + 575F9F9F5F0E00FDFDFDFDFD00575F5F5F9F5F9F570E00FDFDFDFDFDFD005757 + 5F5F9F570E00FDFDFDFDFDFDFDFD0057575757570E00FDFDFDFDFDFDFDFD0057 + 575757575700FDFDFDFDFDFDFDFD00574F575757570E00FDFDFDFDFDFD005757 + 4F57575757570E00FDFDFDFDFD0057574E4F57575757570E00FDFDFD005F570E + 5757004F5757570E00FDFDFD00575757575700004E57574F00FDFDFDFD005757 + 5700FDFD00000000FDFDFDFDFDFD000000FDFDFDFDFDFDFDFDFD} + end + object btnCreate: TBitBtn + Left = 8 + Top = 8 + Width = 75 + Height = 25 + Caption = 'Create' + ModalResult = 1 + TabOrder = 1 + Glyph.Data = { + 36050000424D3605000000000000360400002800000010000000100000000100 + 0800000000000001000000000000000000000001000000000000000000000000 + 80000080000000808000800000008000800080800000C0C0C000C0DCC000F0CA + A6000020400000206000002080000020A0000020C0000020E000004000000040 + 20000040400000406000004080000040A0000040C0000040E000006000000060 + 20000060400000606000006080000060A0000060C0000060E000008000000080 + 20000080400000806000008080000080A0000080C0000080E00000A0000000A0 + 200000A0400000A0600000A0800000A0A00000A0C00000A0E00000C0000000C0 + 200000C0400000C0600000C0800000C0A00000C0C00000C0E00000E0000000E0 + 200000E0400000E0600000E0800000E0A00000E0C00000E0E000400000004000 + 20004000400040006000400080004000A0004000C0004000E000402000004020 + 20004020400040206000402080004020A0004020C0004020E000404000004040 + 20004040400040406000404080004040A0004040C0004040E000406000004060 + 20004060400040606000406080004060A0004060C0004060E000408000004080 + 20004080400040806000408080004080A0004080C0004080E00040A0000040A0 + 200040A0400040A0600040A0800040A0A00040A0C00040A0E00040C0000040C0 + 200040C0400040C0600040C0800040C0A00040C0C00040C0E00040E0000040E0 + 200040E0400040E0600040E0800040E0A00040E0C00040E0E000800000008000 + 20008000400080006000800080008000A0008000C0008000E000802000008020 + 20008020400080206000802080008020A0008020C0008020E000804000008040 + 20008040400080406000804080008040A0008040C0008040E000806000008060 + 20008060400080606000806080008060A0008060C0008060E000808000008080 + 20008080400080806000808080008080A0008080C0008080E00080A0000080A0 + 200080A0400080A0600080A0800080A0A00080A0C00080A0E00080C0000080C0 + 200080C0400080C0600080C0800080C0A00080C0C00080C0E00080E0000080E0 + 200080E0400080E0600080E0800080E0A00080E0C00080E0E000C0000000C000 + 2000C0004000C0006000C0008000C000A000C000C000C000E000C0200000C020 + 2000C0204000C0206000C0208000C020A000C020C000C020E000C0400000C040 + 2000C0404000C0406000C0408000C040A000C040C000C040E000C0600000C060 + 2000C0604000C0606000C0608000C060A000C060C000C060E000C0800000C080 + 2000C0804000C0806000C0808000C080A000C080C000C080E000C0A00000C0A0 + 2000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0E000C0C00000C0C0 + 2000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0A000808080000000 + FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FDFDFDFDFDFD + 000000FDFDFDFDFDFDFDFDFDFDFDFD00B0A8A800FDFDFDFDFDFDFDFDFDFD00B0 + B0B0B0A800FDFDFDFDFDFDFDFD00B0A8B0B0B0B000FDFDFDFDFDFDFD00B0A8B0 + B8B0B0B0B000FDFDFDFDFD00B0A8B8B8A800B0B0B000FDFDFDFDFD00A9B8A8A9 + 00FD00B0B0B000FDFDFDFD00A1A8A900FDFD00B0B8B000FDFDFDFDFD000000FD + FDFDFD00B8B8B000FDFDFDFDFDFDFDFDFDFDFD00B8B8B000FDFDFDFDFDFDFDFD + FDFDFDFD00B8B8B000FDFDFDFDFDFDFDFDFDFDFD00B8B8B000FDFDFDFDFDFDFD + FDFDFDFDFD00B8B8B000FDFDFDFDFDFDFDFDFDFDFD00B8B0B800FDFDFDFDFDFD + FDFDFDFDFDFD000000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD} + end end - object edTitle: TEdit + object rgBFC: TRadioGroup + Left = 8 + Top = 264 + Width = 505 + Height = 49 + Caption = 'BFC' + Columns = 3 + Items.Strings = ( + 'CERTIFY CCW' + 'CERTIFY CW' + 'NO CERTIFY') + TabOrder = 7 + end + object CategoryCombo: TComboBox Left = 115 - Top = 32 - Width = 398 + Top = 319 + Width = 145 Height = 21 - TabOrder = 7 + Style = csDropDownList + ItemHeight = 13 + Sorted = True + TabOrder = 8 end - object edUsername: TEdit + object edKeywords: TEdit Left = 115 - Top = 80 + Top = 346 Width = 398 Height = 21 - TabOrder = 8 + TabOrder = 9 end + object edHelpText: TMemo + Left = 115 + Top = 191 + Width = 398 + Height = 67 + ScrollBars = ssBoth + TabOrder = 10 + end end Modified: trunk/lddp/dlgSubpart.pas =================================================================== --- trunk/lddp/dlgSubpart.pas 2008-08-30 01:05:54 UTC (rev 350) +++ trunk/lddp/dlgSubpart.pas 2008-08-30 01:40:56 UTC (rev 351) @@ -27,19 +27,27 @@ TfrSubFile = class(TForm) edFilename: TEdit; edAuthor: TEdit; - edComments: TMemo; rgType: TRadioGroup; cbUnofficial: TCheckBox; - btnCreate: TBitBtn; - btnCancel: TBitBtn; Label1: TLabel; Label2: TLabel; Label3: TLabel; - Label4: TLabel; edTitle: TEdit; Label5: TLabel; edUsername: TEdit; + Panel1: TPanel; + btnCancel: TBitBtn; + btnCreate: TBitBtn; + rgBFC: TRadioGroup; + CategoryCombo: TComboBox; + Label4: TLabel; + Label6: TLabel; + edKeywords: TEdit; + edHelpText: TMemo; + Label7: TLabel; procedure FormCreate(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormShow(Sender: TObject); private { Private declarations } public @@ -53,9 +61,94 @@ {$R *.dfm} +uses + main, options, windowsspecific; + +procedure TfrSubFile.FormClose(Sender: TObject; var Action: TCloseAction); +var + SubFile: TStringList; + FileType, subfilename: string; + i: Integer; + +begin + if ModalResult = mrOK then + begin + case rgType.ItemIndex of + 1: FileType := 'Submodel'; + 2: FileType := 'Part'; + 3: FileType := 'Subpart'; + 4: FileType := 'Primitive'; + 5: FileType := '48_Primitive'; + else FileType := 'Model'; + end; + + if cbUnofficial.Checked then + FileType := 'Unofficial ' + FileType; + + SubFile := TStringList.Create; + + if edTitle.Text <> '' then + SubFile.Add('0 ' + edTitle.Text); + if edFileName.Text <> '' then + SubFile.Add('0 Name: ' + edFileName.Text); + if (edAuthor.Text <> '') and (edUsername.Text <> '') then + SubFile.Add('0 Author: ' + edAuthor.Text + '[' + edUsername.text + ']'); + SubFile.Add('0 !LDRAW_ORG ' + FileType); + SubFile.Add('!LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt'); + SubFile.Add(''); + if edHelpText.Lines.Count > 0 then + begin + for i := 0 to edHelpText.Lines.Count - 1 do + edHelpText.Lines[i] := '0 !HELP ' + edHelpText.Lines[i]; + SubFile.Add(edHelpText.Lines.Text); + end; + SubFile.Add(''); + case rgBFC.ItemIndex of + 0: SubFile.Add('0 BFC CERTIFY CCW'); + 1: SubFile.Add('0 BFC CERTIFY CW'); + else SubFile.Add('0 BFC NOCERTIFY'); + end; + SubFile.Add(''); + if CategoryCombo.ItemIndex > 0 then + SubFile.Add('0 !CATEGORY ' + CategoryCombo.Text); + if edKeywords.Text <> '' then + SubFile.Add('0 !KEYWORDS ' + edKeywords.Text); + SubFile.Add(''); + SubFile.Add(frMain.editor.SelText); + + + + subfilename := ExtractFilePath(frMain.DocumentTabs.ActiveDocument.FileName) + edFileName.Text; + + if FileExists(subfilename) and + (MessageDlg(_('File of same name already exists. Overwrite?'), + mtWarning, mbOKCancel, 0) <> mrOk) then + Exit; + + SubFile.SaveToFile(subfilename); + frMain.editor.SelText := '1 16 0 0 0 1 0 0 0 1 0 0 0 1 ' + edFileName.Text; + frMain.OpenFile(subfilename); + end; +end; + procedure TfrSubFile.FormCreate(Sender: TObject); begin + CategoryCombo.Items.CommaText := ReadUIConfigValue('LDrawCategories'); TranslateComponent (self); end; +procedure TfrSubFile.FormShow(Sender: TObject); +begin + edFilename.Text := ExtractFileName(frMain.DocumentTabs.ActiveDocument.Filename); + edAuthor.Text := frOptions.edName.Text; + edUsername.Text := frOptions.edUsername.Text; + edTitle.Text := ''; + edKeywords.Text := ''; + edHelpText.Clear; + rgType.ItemIndex := -1; + rgBFC.ItemIndex := -1; + cbUnofficial.Checked := False; + CategoryCombo.ItemIndex := -1; +end; + end. Modified: trunk/lddp/main.pas =================================================================== --- trunk/lddp/main.pas 2008-08-30 01:05:54 UTC (rev 350) +++ trunk/lddp/main.pas 2008-08-30 01:40:56 UTC (rev 351) @@ -27,7 +27,8 @@ ImgList, Controls, StdActns, Classes, ActnList, ComCtrls, ToolWin, SciScintillaBase, SciScintillaMemo, SciScintilla, SciScintillaLDDP, SciDocTabCtrl, Windows, Graphics, Forms, Messages, SysUtils, Types, - StdCtrls, ShellAPI, sciPrint, SciScintillaOptionsFrm; + StdCtrls, ShellAPI, sciPrint, SciScintillaOptionsFrm, SciAutoComplete, + SciCallTips; type TfrMain = class(TForm) @@ -306,6 +307,7 @@ YAxis3: TMenuItem; ZAxis3: TMenuItem; mnuPollOnCustomInterval: TMenuItem; + AutoComplete: TSciAutoComplete; procedure acHomepageExecute(Sender: TObject); procedure acL3LabExecute(Sender: TObject); @@ -384,6 +386,10 @@ CmdLine: TStrings); procedure mnuPollOnCustomIntervalClick(Sender: TObject); procedure CloseFile1Click(Sender: TObject); + procedure editorDwellStart(Sender: TObject; const position: Integer; x, + y: Integer); + procedure editorDwellEnd(Sender: TObject; const position: Integer; x, + y: Integer); private TabRightClickIndex: Integer; @@ -756,59 +762,11 @@ procedure TfrMain.acSubFileExecute(Sender: TObject); // Save a block of text as a separate file and add the appropriate subfile line var - SubFile: TStringList; - FileType, subfilename: string; - i, startline, endline: Integer; + startline, endline: Integer; begin editor.ExpandSelection(startline, endline); - - //Init Form Values - frSubFile.edFilename.Text := ExtractFileName(DocumentTabs.ActiveDocument.Filename); - frSubFile.edAuthor.Text := frOptions.edName.Text; - frSubFile.edUsername.Text := frOptions.edUsername.Text; - frSubFile.edTitle.Text := ''; - frSubFile.edComments.Clear; - frSubFile.rgType.ItemIndex := -1; - frSubFile.cbUnofficial.Checked := False; - - //Subfile selected text - if frSubfile.ShowModal = mrOK then - begin - case frSubFile.rgType.ItemIndex of - 1: FileType := 'Submodel'; - 2: FileType := 'Part'; - 3: FileType := 'Subpart'; - 4: FileType := 'Primitive'; - 5: FileType := '48_Primitive'; - else FileType := 'Model'; - end; - - if frSubFile.cbUnofficial.Checked then - FileType := 'Unofficial ' + FileType; - - for i := 0 to frSubFile.edComments.Lines.Count - 1 do - frSubFile.edComments.Lines[i] := '0 ' + frSubFile.edComments.Lines[i]; - - SubFile := TStringList.Create; - SubFile.Text := '0 ' + frSubFile.edTitle.Text + #13#10 + - '0 Name: ' + frSubFile.edFileName.Text + #13#10 + - '0 Author: ' + frSubFile.edAuthor.Text + - '[' + frSubFile.edUsername.text + ']' + #13#10 + - '0 !LDRAW_ORG ' + FileType + #13#10 + - frSubFile.edComments.Text + #13#10 + - editor.SelText; - - if FileExists(ExtractFilePath(DocumentTabs.ActiveDocument.Filename) + frSubFile.edFileName.Text) and - (MessageDlg(_('File of same name already exists. Overwrite?'), - mtWarning, mbOKCancel, 0) <> mrOk) then - Exit; - - subfilename := ExtractFilePath(DocumentTabs.ActiveDocument.FileName) + frSubFile.edFileName.Text; - SubFile.SaveToFile(subfilename); - editor.SelText := '1 16 0 0 0 1 0 0 0 1 0 0 0 1 ' + frSubFile.edFileName.Text; - OpenFile(subfilename); - end; + frSubfile.ShowModal; end; // External Program actions @@ -844,11 +802,12 @@ procedure TfrMain.acUserDefinedExecute(Sender: TObject); // Execute user defined program with active file var - opt:byte; + opt: byte; ExProgram: TStringList; - function ParseString(toparse:string):string; - var short,long:string; + function ParseString(toparse: string): string; + var + short, long: string; // %0 will be replaced by the path and filename of the exported file LDDP has generated, // %1 is replaced by the path only, // %2 will be replaced by the file-name only (without extension), @@ -857,15 +816,15 @@ begin long := tempFileName; short := ExtractShortPathName(long); - toparse:=StringReplace(toparse,'%0',long,[rfReplaceAll]); - toparse:=StringReplace(toparse,'%1',ExtractFilePath(long),[rfReplaceAll]); - toparse:=StringReplace(toparse,'%2',ChangeFileExt(ExtractFileName(long),''),[rfReplaceAll]); - toparse:=StringReplace(toparse,'%3',ChangeFileExt(long,''),[rfReplaceAll]); - toparse:=StringReplace(toparse,'%4',short,[rfReplaceAll]); - toparse:=StringReplace(toparse,'%5',ExtractFilePath(short),[rfReplaceAll]); - toparse:=StringReplace(toparse,'%6',ChangeFileExt(ExtractFileName(short),''),[rfReplaceAll]); - toparse:=StringReplace(toparse,'%7',ChangeFileExt(short,''),[rfReplaceAll]); - Result:=toParse; + toparse := StringReplace(toparse,'%0',long,[rfReplaceAll]); + toparse := StringReplace(toparse,'%1',ExtractFilePath(long),[rfReplaceAll]); + toparse := StringReplace(toparse,'%2',ChangeFileExt(ExtractFileName(long),''),[rfReplaceAll]); + toparse := StringReplace(toparse,'%3',ChangeFileExt(long,''),[rfReplaceAll]); + toparse := StringReplace(toparse,'%4',short,[rfReplaceAll]); + toparse := StringReplace(toparse,'%5',ExtractFilePath(short),[rfReplaceAll]); + toparse := StringReplace(toparse,'%6',ChangeFileExt(ExtractFileName(short),''),[rfReplaceAll]); + toparse := StringReplace(toparse,'%7',ChangeFileExt(short,''),[rfReplaceAll]); + Result := toParse; end; begin @@ -878,15 +837,15 @@ exit; end; case StrToInt(ExProgram[5]) of - 1: opt:=SW_HIDE; - 2: opt:=SW_SHOWNOACTIVATE; - 3: opt:=SW_MAXIMIZE; + 1: opt := SW_HIDE; + 2: opt := SW_SHOWNOACTIVATE; + 3: opt := SW_MAXIMIZE; else - opt:=SW_SHOWNORMAL; + opt := SW_SHOWNORMAL; end; if StrToBool(ExProgram[4]) then - ShowMessage(ExProgram[1]+' '+ParseString(ExProgram[2])); + ShowMessage(ExProgram[1] + ' ' + ParseString(ExProgram[2])); editor.Lines.SaveToFile(tempFileName); DoCommand(ExProgram[1] + ' ' + ParseString(ExProgram[2]), opt, StrToBool(ExProgram[3])); @@ -1327,12 +1286,48 @@ OpenFile(CmdLine[i]); end; +procedure TfrMain.editorDwellEnd(Sender: TObject; const position: Integer; x, + y: Integer); +begin + editor.CallTipCancel; +end; + +procedure TfrMain.editorDwellStart(Sender: TObject; const position: Integer; x, + y: Integer); + +var + subp: TDATType; + DModel: TDATModel; + +begin + if editor.GetStyleAt(editor.PositionFromPointClose(x,y)) = 16 then + begin + subp := StrToDAT(editor.Lines[editor.LineFromPosition(editor.PositionFromPointClose(x,y))]); + if subp is TDATSubpart then + begin + DModel := TDATModel.Create; + if FileExists(LDrawBasePath + 'parts\' + (subp as TDATSubpart).FileName) then + DModel.LoadModel(LDrawBasePath + 'parts\' + (subp as TDATSubpart).FileName) + else if FileExists(LDrawBasePath + 'p\' + (subp as TDATSubpart).FileName) then + DModel.LoadModel(LDrawBasePath + 'p\' + (subp as TDATSubpart).FileName); + + if (DModel.Count > 0) and (DModel[0] is TDATComment) then + editor.CallTipShow(editor.PositionFromPointClose(x,y), + PCHar((DModel[0] as TDATComment).Comment)); + + subp.Free; + DModel.Free; + end; + end; +end; + procedure TfrMain.editorUpdateUI(Sender: TObject); var i: Integer; DLine: TDATType; begin + // Update panel values if editor.modified then Statusbar.Panels[2].Text:=_('Modified') else @@ -1340,9 +1335,11 @@ StatusBar.Panels[1].text := IntToStr(editor.CaretY) + ':' + IntToStr(editor.CaretX); + // Set undo and redo state acUndo.Enabled := (DocumentTabs.Count > 0) and editor.CanUndo; acRedo.Enabled := (DocumentTabs.Count > 0) and editor.CanRedo; + // Enable inline function based on line or selection if editor.SelLength = 0 then begin DLine := StrToDAT(editor.Lines[editor.CaretY - 1]); @@ -1365,6 +1362,7 @@ end; end; + // Check plugin type an enable as appropriate for i := 0 to PluginActionList.ActionCount - 1 do begin case (PluginActionList.Actions[i] as TAction).Tag of @@ -1373,6 +1371,9 @@ 2: (PluginActionList.Actions[i] as TAction).Enabled := editor.SelLength <> 0; end; end; + + // Check style state and enable auto complete and call tips for linetype 1 file + AutoComplete.Disabled := editor.GetStyleAt(editor.GetCurrentPos) <> 16; end; procedure TfrMain.FormDblClick(Sender: TObject); @@ -1423,10 +1424,7 @@ // Check if the App Data folder exists and create it if not if not DirectoryExists(GetShellFolderPath('AppData') + '\LDDP') then CreateDir(GetShellFolderPath('AppData') + '\LDDP'); - if not DirectoryExists(GetShellFolderPath('AppData') + '\LDraw') then - CreateDir(GetShellFolderPath('AppData') + '\LDraw'); - CopyFile(PAnsiChar(ExtractFilePath(Application.ExeName) + '\metamenu.ini'), PAnsiChar(GetShellFolderPath('AppData') + '\LDDP\metamenu.ini'), false); - CopyFile(PAnsiChar(ExtractFilePath(Application.ExeName) + '\metalist.txt'), PAnsiChar(GetShellFolderPath('AppData') + '\LDDP\metalist.txt'), false); + CopyFile(PAnsiChar(ExtractFilePath(Application.ExeName) + '\uiconfig.ini'), PAnsiChar(GetShellFolderPath('AppData') + '\LDDP\uiconfig.ini'), false); //Load form parameters from INI file LoadFormValues; @@ -1436,10 +1434,12 @@ editor.RotationDecimalPlaces := frOptions.seRotAcc.Value; editor.OnlyRoundDuringAutoRound := frOptions.cboAutoRoundOnly.Checked; + editor.CallTipSetFore(clBlack); + //Set editor properties filename and load properties EditorPropertyLoader.FileName := GetShellFolderPath('AppData') + '\LDDP\' + EditorPropertyLoader.FileName; - if FileExists(EditorPropertyLoader.FileName) then - EditorPropertyLoader.Load; +// if FileExists(EditorPropertyLoader.FileName) then +// EditorPropertyLoader.Load; DocumentTabs.ActiveDocument.Highlighter := 'LDraw'; //Set InstallDir in registry for legacy plugin support @@ -1460,6 +1460,7 @@ //Set the keywordlist for the syntax highlighter if DirectoryExists(LDrawBasePath) then SetKeyWordList; + AutoComplete.AStrings.Text := LanguageManager.LanguageList.Find('LDraw').Keywords[0].Keywords.Text; // Set initial directory to that of the last opened file // or home directory if no file is listed @@ -1485,33 +1486,39 @@ MetaMenuIni: TInifile; ParentMenuItem, ParentMenuItem2, ChildMenuItem: TMenuItem; MetaSections, CurrentSection: TStringList; + SectionName: string; i,j: Integer; begin MetaSections := TStringList.Create; + MetaSections.Sorted := true; CurrentSection := TStringList.Create; - MetaMenuIni := TInifile.Create(IniFilePath + '\metamenu.ini'); + MetaMenuIni := TInifile.Create(IniFilePath + '\uiconfig.ini'); - MetaMenuIni.ReadSections(MetaSections); + MetaMenuIni.ReadSection('Meta Menu Items', MetaSections); if MetaSections.Count > 0 then for i := 0 to MetaSections.Count - 1 do begin - MetaMenuIni.ReadSection(MetaSections[i],CurrentSection); - if CurrentSection.Count > 0 then + SectionName := MetaMenuIni.ReadString('Meta Menu Items', MetaSections[i], ''); + if MetaMenuIni.SectionExists(SectionName) then begin - ParentMenuItem := CreateMenuItem(MetaSections[i],'',mnuMeta); - ParentMenuItem2 := CreateMenuItem(MetaSections[i],'',mnuMeta2); - mnuMeta.Add(ParentMenuItem); - mnuMeta2.Add(ParentMenuItem2); - for j := 0 to CurrentSection.Count - 1 do + MetaMenuIni.ReadSection(SectionName,CurrentSection); + if CurrentSection.Count > 0 then begin - ChildMenuItem := CreateMenuItem(CurrentSection[j],MetaMenuIni.ReadString(MetaSections[i],CurrentSection[j],''),ParentMenuItem); - ChildMenuItem.OnClick := MetaMenuClick; - ParentMenuItem.Add(ChildMenuItem); - ChildMenuItem := CreateMenuItem(CurrentSection[j],MetaMenuIni.ReadString(MetaSections[i],CurrentSection[j],''),ParentMenuItem); - ChildMenuItem.OnClick := MetaMenuClick; - ParentMenuItem2.Add(ChildMenuItem); + ParentMenuItem := CreateMenuItem(SectionName, '', mnuMeta); + ParentMenuItem2 := CreateMenuItem(SectionName, '', mnuMeta2); + mnuMeta.Add(ParentMenuItem); + mnuMeta2.Add(ParentMenuItem2); + for j := 0 to CurrentSection.Count - 1 do + begin + ChildMenuItem := CreateMenuItem(CurrentSection[j],MetaMenuIni.ReadString(SectionName,CurrentSection[j],''),ParentMenuItem); + ChildMenuItem.OnClick := MetaMenuClick; + ParentMenuItem.Add(ChildMenuItem); + ChildMenuItem := CreateMenuItem(CurrentSection[j],MetaMenuIni.ReadString(SectionName,CurrentSection[j],''),ParentMenuItem); + ChildMenuItem.OnClick := MetaMenuClick; + ParentMenuItem2.Add(ChildMenuItem); + end; end; end; end @@ -1551,10 +1558,7 @@ FindClose(sc); end; with LanguageManager.LanguageList.Find('LDraw').Keywords[1].Keywords do - begin - LoadFromFile(IniFilePath + '\metalist.txt'); - CommaText := Strings[0]; - end; + CommaText := ReadUIConfigValue('MetaCommands'); end; procedure TfrMain.DocumentTabsChange(Sender: TObject); Modified: trunk/lddp/windowsspecific.pas =================================================================== --- trunk/lddp/windowsspecific.pas 2008-08-30 01:05:54 UTC (rev 350) +++ trunk/lddp/windowsspecific.pas 2008-08-30 01:40:56 UTC (rev 351) @@ -69,10 +69,12 @@ procedure OpenInBrowser(url: string); function GetAppVersion(const FileName: TFileName): string; function GetDOSVar(VarName: string): string; +function ReadUIConfigValue(const ConfigValue: string): string; implementation -uses main; +uses + main, IniFiles; function GetAppVersion(const FileName: TFileName): string; var @@ -299,4 +301,14 @@ FreeMem(PBuff); end; +function ReadUIConfigValue(const ConfigValue: string): string; +var + UIConfigIni: TIniFile; + +begin + UIConfigIni := TInifile.Create(IniFilePath + '\uiconfig.ini'); + Result := UIConfigIni.ReadString('UI Config Values', ConfigValue, ''); + UIConfigIni.Free; +end; + end. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-08-30 01:05:56
|
Revision: 350 http://lddp.svn.sourceforge.net/lddp/?rev=350&view=rev Author: billthefish Date: 2008-08-30 01:05:54 +0000 (Sat, 30 Aug 2008) Log Message: ----------- Deleting unneeded files Modified Paths: -------------- trunk/Current Build/LDDesignPad.exe Removed Paths: ------------- trunk/Current Build/LDDP.eop trunk/Current Build/colors.pal trunk/Current Build/lddp.ini trunk/Current Build/ldraw.ini Deleted: trunk/Current Build/LDDP.eop =================================================================== --- trunk/Current Build/LDDP.eop 2008-08-28 01:23:21 UTC (rev 349) +++ trunk/Current Build/LDDP.eop 2008-08-30 01:05:54 UTC (rev 350) @@ -1,38 +0,0 @@ -[default] -style=fore:clWindowText,back:clWindow,size:10,font:Courier New,notbold,notitalics,notunderlined,visible,noteolfilled,changeable,nothotspot -WordWrap=0 -WordChars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 -ClearUndoAfterSave=False -EOLMode=0 -LineNumbers=False -Gutter=True -CaretPeriod=500 -CaretWidth=1 -CaretLineVisible=False -CaretFore=clBlack -CaretBack=clYellow -CaretAlpha=256 -SelectForeColor=clHighlightText -SelectBackColor=clHighlight -SelectAlpha=256 -MarkerForeColor=clBlue -MarkerBackColor=clAqua -FoldMarginHighlightColor=clBtnFace -FoldMarginColor=clBtnFace -WhitespaceForeColor=clDefault -WhitespaceBackColor=clDefault -ActiveHotspotForeColor=clBlue -ActiveHotspotBackColor=clDefault -ActiveHotspotUnderlined=True -ActiveHotspotSingleLine=False -FoldMarkerType=1 -MarkerBookmark=markertype:sciMCircle,Alpha:256,fore:clDefault,back:clDefault -EdgeColumn=0 -EdgeMode=0 -EdgeColor=clSilver -CodeFolding=False -BraceHighlight=True - -[extension] - - Deleted: trunk/Current Build/colors.pal =================================================================== --- trunk/Current Build/colors.pal 2008-08-28 01:23:21 UTC (rev 349) +++ trunk/Current Build/colors.pal 2008-08-30 01:05:54 UTC (rev 350) @@ -1,165 +0,0 @@ -0=Black 000000 -1=Blue 0033B2 -2=Green 007F33 -3=DkCyan 00AAAA -4=Red CC0000 -5=Magenta FF3399 -6=Brown 663300 -7=LTGray 999999 -8=DkGray 666658 -9=LtBlue 0080FF -10=Light_Green 33FF66 -11=Cyan 55AAFF -12=LTRed FF5555 -13=Pink FFB0CC -14=Yellow FFE500 -15=White FFFFFF -16=MainColor 222222 -17=MintGreen BAFFCE -18=LtYellow FDE896 -19=Tan E8CFA1 -20=LtPurple D7C4E6 -21=GlowDark E0FFB0 -22=Purple 81007B -23=VioletBlue 4732B0 -24=EdgeColor 444444 -25=Orange F96000 -26=Magenta D81B6D -27=YellowGreen D7F000 -28=DarkTan C59750 -33=TransBlue 0020A0 -34=TransGreen 066432 -36=TransRed C40026 -37=TransPurple 640061 -40=TransGray 645F52 -41=TransLtCyan AEEFEC -42=TransYellowGreen C0FF00 -45=TransPink DF6695 -46=TransYellow CAB000 -47=clear FFFFFF -57=TransOrange F96000 -256=RubberBlack 212121 -257=Black_Blue 001A59 -258=Black_Green 00401A -259=Black_DkCyan 005555 -260=Black_Red 660000 -261=Black_Magenta 801A4C -262=Black_Brown 331A00 -263=Black_LTGray 4C4C4C -264=Black_DkGray 33332C -265=Black_LtBlue 004080 -266=Black_LtGreen 1A8033 -267=Black_Cyan 2A5580 -268=Black_LTRed 802A2A -269=Black_Pink 805866 -270=Black_Yellow 807200 -271=Black_White 808080 -272=DkBlue 001D68 -274=Blue_Green 005972 -275=Blue_DkCyan 006EAE -276=Blue_Red 661A59 -277=Blue_Magenta 8033A6 -278=Blue_Brown 333359 -279=Blue_LTGray 4C66A6 -280=Blue_DkGray 334C85 -281=Blue_LtBlue 005AD8 -282=Blue_LtGreen 1A998C -283=Blue_Cyan 2A6ED8 -284=Blue_LTRed 804484 -285=Blue_Pink 8072BF -286=Blue_Yellow 808C59 -287=Blue_White 8099D8 -291=Green_DkCyan 00946E -292=Green_Red 66401A -293=Green_Magenta 805966 -294=Green_Brown 33591A -295=Green_LTGray 4C8C66 -296=Green_DkGray 337246 -297=Green_LtBlue 008099 -298=Green_LtGreen 1ABF4C -299=Green_Cyan 2A9499 -300=Green_LTRed 806A44 -301=Green_Pink 809880 -302=Green_Yellow 80B21A -303=Green_White 80BF99 -308=DkCyan_Red 665555 -309=DkCyan_Magenta 806EA2 -310=DkCyan_Brown 336E55 -311=DkCyan_LTGray 4CA2A2 -312=DkCyan_DkGray 338881 -313=DkCyan_LtBlue 0095D4 -314=DkCyan_LtGreen 1AD488 -315=DkCyan_Cyan 2AAAD4 -317=DkCyan_Pink 80ADBB -318=DkCyan_Yellow 80C855 -319=DkCyan_White 80D4D4 -320=Dark_Red AA0000 -325=Red_Magenta E61A4C -326=Red_Brown 991A00 -327=Red_LTGray B24C4C -328=Red_DkGray 99332C -329=Red_LtBlue 664080 -330=Red_LtGreen 808033 -331=Red_Cyan 905580 -332=Red_LTRed E62A2A -333=Red_Pink E65866 -334=ChromeGold F0B033 -335=SandRed BF8782 -342=Magenta_Brown B2334C -343=Magenta_LTGray CC6699 -344=Magenta_DkGray B24C78 -345=Magenta_LtBlue 805ACC -346=Magenta_LtGreen 999980 -347=Magenta_Cyan AA6ECC -348=Magenta_LTRed FF4477 -349=Magenta_Pink FF72B2 -350=Magenta_Yellow FF8C4C -351=Magenta_White FF99CC -359=Brown_LTGray 80664C -360=Brown_DkGray 664C2C -361=Brown_LtBlue 335A80 -362=Brown_LtGreen 4C9933 -363=Brown_Cyan 5E6E80 -364=Brown_LTRed B2442A -365=Brown_Pink B27266 -366=Brown_Yellow B28C00 -367=Brown_White B29980 -373=SandViolet 845E84 -375=RubberGray C1C2C1 -376=LTGray_DkGray 808078 -377=LTGray_LtBlue 4C8CCC -378=SandGreen A0BCAC -379=SandBlue 6A7A96 -380=LTGray_LTRed CC7777 -381=LTGray_Pink CCA4B2 -382=LTGray_Yellow CCBF4C -383=ChromeSilver CCCCCC -393=DkGray_LtBlue 3373AC -394=DkGray_LtGreen 4CB25F -395=DkGray_Cyan 5E88AC -396=DkGray_LTRed B25E56 -397=DkGray_Pink B28B92 -398=DkGray_Yellow B2A62C -399=DkGray_White B2B2AC -410=LtBlue_LtGreen 1AC0B2 -411=LtBlue_Cyan 2A95FF -412=LtBlue_LTRed 806AAA -413=LtBlue_Pink 8098E6 -414=LtBlue_Yellow 80B280 -415=LtBlue_White 80C0FF -418=Bright_Green 00BF59 -427=LtGreen_Cyan 44D4B2 -428=LtGreen_LTRed 99AA5E -429=LtGreen_Pink 99D899 -430=LtGreen_Yellow 99F233 -431=LtGreen_White 99FFB2 -444=Cyan_LTRed AA80AA -445=Cyan_Pink AAADE6 -446=Cyan_Yellow AAC880 -447=Cyan_White AAD4FF -461=LTRed_Pink FF8290 -462=Orange FF9D2A -463=LTRed_White FFAAAA -478=Pink_Yellow FFCA66 -479=Pink_White FFD8E6 -495=Yellow_White FFF280 Deleted: trunk/Current Build/lddp.ini =================================================================== --- trunk/Current Build/lddp.ini 2008-08-28 01:23:21 UTC (rev 349) +++ trunk/Current Build/lddp.ini 2008-08-30 01:05:54 UTC (rev 350) @@ -1,111 +0,0 @@ -[frOptions] -FormVersion=0 -ShowCmd=1 -Flags=0 -PixelsPerInch=96 -MinMaxPos(1280x800)=-1,-1,-1,-1 -MinMaxPos=-1,-1,-1,-1 -NormPos(1280x800)=375,200,904,600 -NormPos=375,200,904,600 -edEmail_Text= -edL3LabDir_Text= -edLdrawDir_Text= -edLDViewDir_Text= -edLSynthDir_Text= -edMLCadDir_Text= -edName_Text= -edSig_Text= -edExternal_Text= -edParameters_Text= -cboDet_Checked=TRUE -cboDist_Checked=TRUE -cboShowCommand_Checked=FALSE -cboWaitForFinish_Checked=FALSE -rgStyle_ItemIndex=-1 - -[frOptions\lbxExternal_Items] -Count=0 - -[frOptions\lbxColors_Items] -Count=16 -Item0=Black -Item1=Blue -Item2=Green -Item3=Teal -Item4=Red -Item5=Dark Pink -Item6=Brown -Item7=Gray -Item8=Dark Gray -Item9=Light Blue -Item10=Bright Green -Item11=Turquiose -Item12=Light Red -Item13=Pink -Item14=Yellow -Item15=White - -[LDDP Options] -edLDViewDir_Text=C:\Documents and Settings\Orion\My Documents\Lego\Programs\LDView -edMLCadDir_Text= -edL3LabDir_Text= -edLSynthDir_Text= -edExternal_Text= -edParameters_Text= -edEmail_Text= -edName_Text= -edUsername_Text= -seDet_Value=0.01 -seDist_Value=0.1 -seNormalAngle_Value=1 -seCollinear_Value=0.0001 -sePntAcc_Value=4 -seRotAcc_Value=4 -cboDist_Checked=0 -cboDet_Checked=0 -cboNormalAngle_Checked=1 -cboWaitForFinish_Checked=0 -cboShowCommand_Checked=0 -rgStyle_ItemIndex=-1 -lbxColors_Item0=Black,0,$00212121 -lbxColors_Item1=Blue,1,$00B23300 -lbxColors_Item2=Green,2,$00148C00 -lbxColors_Item3=Teal,3,$009F9900 -lbxColors_Item4=Red,4,$002600C4 -lbxColors_Item5="Dark Pink",5,$009566DF -lbxColors_Item6=Brown,6,$0000205C -lbxColors_Item7=Gray,7,$00C1C2C1 -lbxColors_Item8="Dark Gray",8,$00525F63 -lbxColors_Item9="Light Blue",9,$00DCAB6B -lbxColors_Item10="Bright Green",10,$0090EE6B -lbxColors_Item11=Turquiose,11,$00A7A633 -lbxColors_Item12="Light Red",12,$007A85FF -lbxColors_Item13=Pink,13,$00C6A4F9 -lbxColors_Item14=Yellow,14,$0000DCFF -lbxColors_Item15=White,15,$00FFFFFF - -[LDDP MRU] -C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp-Scintilla\sciforms.pas= -C:\Documents and Settings\Orion\My Documents\Lego\Models\Plugin Test Files\ErrorTestFile.dat= -C:\Documents and Settings\Orion\My Documents\Lego\Models\Plugin Test Files\ErrorTestFilea.dat= -C:\Documents and Settings\Orion\My Documents\Lego\Models\Plugin Test Files\LDDPTestFile.dat= -C:\Documents and Settings\Orion\My Documents\Lego\ldraw\parts\39.dat= -C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp-Scintilla\Exe\6861mini.ldr= -C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp-Scintilla\Exe\6861.mpd= -C:\Documents and Settings\Orion\My Documents\Lego\Models\Official Sets\Classic Space\6861 (X-1 Patrol Craft)\6861mini.ldr= -C:\Documents and Settings\Orion\My Documents\Lego\Models\Official Sets\Classic Space\6861 (X-1 Patrol Craft)\Example2.mpd= -C:\Documents and Settings\Orion\My Documents\Lego\Models\Official Sets\Classic Space\6861 (X-1 Patrol Craft)\6861.mpd= - -[LDDP Main] -InstallDir=C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp-Scintilla\Exe\ -frMain_Left=324 -frMain_Top=119 -frMain_Width=792 -frMain_Height=494 -tbrFiles_Visible=1 -tbrExternalPrograms_Visible=1 -tbrSearchAndReplace_Visible=1 -tbrWindows_Visible=1 -tbrEditing_Visible=1 -tbrColorReplace_Visible=1 - Deleted: trunk/Current Build/ldraw.ini =================================================================== --- trunk/Current Build/ldraw.ini 2008-08-28 01:23:21 UTC (rev 349) +++ trunk/Current Build/ldraw.ini 2008-08-30 01:05:54 UTC (rev 350) @@ -1,3 +0,0 @@ -[frMain] -FormVersion=0 - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-08-28 01:23:24
|
Revision: 349 http://lddp.svn.sourceforge.net/lddp/?rev=349&view=rev Author: billthefish Date: 2008-08-28 01:23:21 +0000 (Thu, 28 Aug 2008) Log Message: ----------- More ini file restructuring Added Paths: ----------- trunk/Current Build/uiconfig.ini Removed Paths: ------------- trunk/Current Build/metalist.ini trunk/Current Build/metamenu.ini Deleted: trunk/Current Build/metalist.ini =================================================================== --- trunk/Current Build/metalist.ini 2008-08-28 00:57:45 UTC (rev 348) +++ trunk/Current Build/metalist.ini 2008-08-28 01:23:21 UTC (rev 349) @@ -1,3 +0,0 @@ -[UI Config Values] -MetaCommands=BFC,CERTIFY,CW,CCW,INVERTNEXT,CLIP,NOCLIP,SYNTH,BEGIN,RIBBED_HOSE,FLEXIBLE_HOSE,FLEX_CABLE,RIGID_HOSE,ELECTRIC_CABLE,PNEUMATIC_HOSE,FLEXIBLE_AXLE,FIBER_OPTIC_CABLE,RUBBER_BAND,CHAIN,PLASTIC_TREAD,RUBBER_TREAD,INSIDE,OUTSIDE,CROSS,SHOW,HIDE,END,LPUB,PLI,SUB,IGN,BI,GRAYED,GROUP,REMOVE,PAGE,SIZE,YES,NO,BACKGROUND,TRANS,STRETCH,BORDER,SQUARE,ROUND,MARGINS,NUMBER,ASSEM,PLACEMENT,CENTER,OFFSET,PART,INSIDE,OUTSIDE,BORDERLESS,CONSTRAIN,AREA,WIDTH,HEIGHT,COLS,CALLOUT,HORIZONTAL,VERTICAL,SEPARATOR,DIVIDER,INSTANCE_COUNT,POINTER,BASE,STEP_NUMBER,MULTI_STEP,BOM,SORT,PACK,SUBS,!COLOUR,CODE,VALUE,EDGE,ALPHA,LUMINANCE,CHROME,PEARLESCENT,RUBBER,MATTE_METALLIC,METAL,MATERIAL,ROTSTEP,REL,ADD,ABS,BUFEXCHG,STORE,RETRIEVE,GHOST,STEP,WRITE,PRINT,CLEAR,PAUSE,SAVE,L3P,IFPOV,IFNOTPOV,ELSEPOV,ENDPOV,CATEGORY,KEYWORDS,!CATEGORY,!KEYWORDS,FILE,NOFILE,!LDRAW_ORG,!LICENSE,!HELP,!CMDLINE,CMDLINE,!HISTORY,NOCERTIFY,LDRAW_ORG,ORIGINAL,UPDATE -LDrawCategories=Animal,Antenna,Arch,Arm,Bar,Baseplate,Belville,Boat,Bracket,Brick,Car,Cone,Container,Conveyor,Crane,Cylinder,Door,Electric,Exhaust,Fence,Flag,Forklift,Freestyle,Garage,Gate,Glass,Grab,Hinge,Homemaker,Hose,Jack,Ladder,Lever,Magnet,Minifig,Minifig Accessory,Panel,Plane,Plant,Plate,Platform,Propellor,Rack,Roadsign,Rock,Round,Scala,Slope,Staircase,Sticker,Support,Tail,Tap,Technic,Tile,Tipper,Tractor,Trailer,Train,Turntable,Tyre,Wedge,Wheel,Winch,Window,Windscreen,Wing Deleted: trunk/Current Build/metamenu.ini =================================================================== --- trunk/Current Build/metamenu.ini 2008-08-28 00:57:45 UTC (rev 348) +++ trunk/Current Build/metamenu.ini 2008-08-28 01:23:21 UTC (rev 349) @@ -1,214 +0,0 @@ -;Usage: -; [<Parent Group>] -; <Menu Text>=<Insert Text> -; -; Where: -; <Parent Group> is the name of the Parent Group Menu -; a parent group can have any number of <Menu Text>=<Insert Text> -; statements -; -; <Menu Text> is the text that appear on the menu item -; -; <Insert Text> is the text acually inserted minus the '0 ' -; -; For a spacer line enter "-=-" -; - -[BFC Statements] -CERTIFY CW=BFC CERTIFY CW -CERTIFY CCW=BFC CERTIFY CCW -INVERTNEXT=BFC INVERTNEXT -CLIP=BFC CLIP -NOCLIP=BFC NOCLIP - -[LSynth Statements] -RIBBED_HOSE=SYNTH BEGIN RIBBED_HOSE 16 -FLEXIBLE_HOSE=SYNTH BEGIN FLEXIBLE_HOSE 16 -FLEX_CABLE=SYNTH BEGIN FLEX_CABLE 16 -RIGID_HOSE=SYNTH BEGIN RIGID_HOSE 16 -ELECTRIC_CABLE=SYNTH BEGIN ELECTRIC_CABLE 16 -PNEUMATIC_HOSE=SYNTH BEGIN PNEUMATIC_HOSE 16 -FLEXIBLE_AXLE=SYNTH BEGIN FLEXIBLE_AXLE 16 -FIBER_OPTIC_CABLE=SYNTH BEGIN FIBER_OPTIC_CABLE 16 -RUBBER_BAND=SYNTH BEGIN RUBBER_BAND 16 -CHAIN=SYNTH BEGIN CHAIN 16 -PLASTIC_TREAD=SYNTH BEGIN PLASTIC_TREAD 16 -RUBBER_TREAD=SYNTH BEGIN RUBBER_TREAD 16 --=- -INSIDE=SYNTH INSIDE -OUTSIDE=SYNTH OUTSIDE -CROSS=SYNTH CROSS -SHOW=SYNTH SHOW -HIDE=SYNTH HIDE --=- -SYNTH END=SYNTH END - -[LPub Statements] -LPUB PLI BEGIN SUB=LPUB PLI BEGIN SUB -LPUB PLI BEGIN IGN=LPUB PLI BEGIN IGN -LPUB PLI END=LPUB PLI END --=- -BI BEGIN GRAYED=BI BEGIN GRAYED -BI END=BI END -LPUB GROUP REMOVE=LPUB GROUP REMOVE - -[LPub Page Statements] -SIZE=LPUB PAGE SIZE -PLI (YES|NO)=LPUB PAGE PLI (YES|NO) --=- -BACKGROUND TRANS=LPUB PAGE BACKGROUND TRANS -BACKGROUND color=LPUB PAGE BACKGROUND color -BACKGROUND [STRETCH] png_image_name=LPUB PAGE BACKGROUND [STRETCH] png_image_name --=- -BORDER SQUARE=LPUB PAGE BORDER SQUARE -BORDER ROUND=LPUB PAGE BORDER ROUND -BORDER MARGINS x_margin y_margin=LPUB PAGE BORDER MARGINS x_margin y_margin --=- -NUMBER MARGINS x_margin y_margin=LPUB PAGE NUMBER MARGINS x_margin y_margin - -[LPub Assembly Statements] -MARGINS x_margin y_margin=LPUB ASSEM MARGINS x_margin y_margin --=- -PLACEMENT corner PAGE=LPUB ASSEM PLACEMENT corner PAGE -PLACEMENT edge PAGE=LPUB ASSEM PLACEMENT edge PAGE -PLACEMENT CENTER PAGE=LPUB ASSEM PLACEMENT CENTER PAGE -PLACEMENT OFFSET x_offset y_offset=LPUB ASSEM PLACEMENT OFFSET x_offset y_offset - -[LPub PLI Layout Statements] -PART MARGINS x y=LPUB PLI PART MARGINS x y -MARGINS x y=LPUB PLI MARGINS x y --=- -PLACEMENT CENTER PAGE=LPUB PLI PLACEMENT CENTER PAGE -PLACEMENT edge PAGE=LPUB PLI PLACEMENT edge PAGE -PLACEMENT CENTER ASSEM INSIDE=LPUB PLI PLACEMENT CENTER ASSEM INSIDE -PLACEMENT corner ASSEM INSIDE=LPUB PLI PLACEMENT corner ASSEM INSIDE -PLACEMENT edge ASSEM INSIDE=LPUB PLI PLACEMENT edge ASSEM INSIDE -PLACEMENT corner ASSEM OUTSIDE=LPUB PLI PLACEMENT corner ASSEM OUTSIDE -PLACEMENT edge justification ASSEM OUTSIDE=LPUB PLI PLACEMENT edge justification ASSEM OUTSIDE -PLACEMENT OFFSET x_offset y_offset=LPUB PLI PLACEMENT OFFSET x_offset y_offset --=- -BORDER SQUARE color thickness=LPUB PLI BORDER SQUARE color thickness -BORDER ROUND color thickness radius=LPUB PLI BORDER ROUND color thickness radius -BORDERLESS=LPUB PLI BORDERLESS -BORDER MARGINS x y=LPUB PLI BORDER MARGINS x y --=- -BACKGROUND TRANS=LPUB PLI BACKGROUND TRANS -BACKGROUND color=LPUB PLI BACKGROUND color -BACKGROUND [STRETCH] fname=LPUB PLI BACKGROUND [STRETCH] fname --=- -CONSTRAIN AREA=LPUB PLI CONSTRAIN AREA -CONSTRAIN SQUARE=LPUB PLI CONSTRAIN SQUARE -CONSTRAIN WIDTH width=LPUB PLI CONSTRAIN WIDTH width -CONSTRAIN HEIGHT height=LPUB PLI CONSTRAIN HEIGHT height -CONSTRAIN COLS cols=LPUB PLI CONSTRAIN COLS cols - -[LPub Callout Statements] -MARGINS x y=LPUB CALLOUT MARGINS x y= -HORIZONTAL=LPUB CALLOUT HORIZONTAL -VERTICAL=LPUB CALLOUT VERTICAL -SEPARATOR seperator_color separator_width=LPUB CALLOUT SEPARATOR seperator_color separator_width --=- -BORDER SQUARE color thickness=LPUB CALLOUT BORDER SQUARE color thickness -BORDER ROUND color thickness radius=LPUB CALLOUT BORDER ROUND color thickness radius -BORDER MARGINS x y=LPUB CALLOUT BORDER MARGINS x y -BORDERLESS=LPUB CALLOUT BORDERLESS --=- -BACKGROUND TRANS=LPUB CALLOUT BACKGROUND TRANS -BACKGROUND color=LPUB CALLOUT BACKGROUND color -BACKGROUND [STRETCH] fname=LPUB CALLOUT BACKGROUND [STRETCH] fname --=- -BEGIN=LPUB CALLOUT BEGIN=LPUB CALLOUT BEGIN=LPUB CALLOUT BEGIN -END=LPUB CALLOUT END=LPUB CALLOUT END=LPUB CALLOUT END -DIVIDER=LPUB CALLOUT DIVIDER --=- -INSTANCE_COUNT MARGINS x y=LPUB CALLOUT INSTANCE_COUNT MARGINS x y -INSTANCE_COUNT PLACEMENT corner CALLOUT preposition=LPUB CALLOUT INSTANCE_COUNT PLACEMENT corner CALLOUT preposition -INSTANCE_COUNT PLACEMENT edge CALLOUT INSIDE=LPUB CALLOUT INSTANCE_COUNT PLACEMENT edge CALLOUT INSIDE -INSTANCE_COUNT PLACEMENT horiz justification CALLOUT OUTSIDE=LPUB CALLOUT INSTANCE_COUNT PLACEMENT horiz justification CALLOUT OUTSIDE -INSTANCE_COUNT PLACEMENT vert justification CALLOUT OUTSIDE=LPUB CALLOUT INSTANCE_COUNT PLACEMENT vert justification CALLOUT OUTSIDE --=- -PLACEMENT CENTER PAGE=LPUB CALLOUT PLACEMENT CENTER PAGE -PLACEMENT corner PAGE=LPUB CALLOUT PLACEMENT corner PAGE -PLACEMENT edge PAGE=LPUB CALLOUT PLACEMENT edge PAGE -PLACEMENT CENTER ASSEM INSIDE=LPUB CALLOUT PLACEMENT CENTER ASSEM INSIDE -PLACEMENT corner ASSEM INSIDE=LPUB CALLOUT PLACEMENT corner ASSEM INSIDE -PLACEMENT edge ASSEM INSIDE=LPUB CALLOUT PLACEMENT edge ASSEM INSIDE -PLACEMENT corner ASSEM OUTSIDE=LPUB CALLOUT PLACEMENT corner ASSEM OUTSIDE -PLACEMENT edge justification ASSEM OUTSIDE=LPUB CALLOUT PLACEMENT edge justification ASSEM OUTSIDE -PLACEMENT OFFSET x_offset y_offset=LPUB CALLOUT PLACEMENT OFFSET x_offset y_offset --=- -POINTER BASE base=LPUB CALLOUT POINTER BASE base -POINTER placement loc assem_x assem_y= - -[LPub Step Number Statements] -PLACEMENT CENTER PAGE=LPUB STEP_NUMBER PLACEMENT CENTER PAGE -PLACEMENT corner PAGE=LPUB STEP_NUMBER PLACEMENT corner PAGE -PLACEMENT edge PAGE=LPUB STEP_NUMBER PLACEMENT edge PAGE -PLACEMENT CENTER ASSEM INSIDE=LPUB STEP_NUMBER PLACEMENT CENTER ASSEM INSIDE -PLACEMENT corner ASSEM INSIDE=LPUB STEP_NUMBER PLACEMENT corner ASSEM INSIDE -PLACEMENT edge ASSEM INSIDE=LPUB STEP_NUMBER PLACEMENT edge ASSEM INSIDE -PLACEMENT corner PLI=LPUB STEP_NUMBER PLACEMENT corner PLI -PLACEMENT edge justification PLI=LPUB STEP_NUMBER PLACEMENT edge justification PLI -PLACEMENT corner ASSEM OUTSIDE=LPUB STEP_NUMBER PLACEMENT corner ASSEM OUTSIDE -PLACEMENT edge justification ASSEM OUTSIDE=LPUB STEP_NUMBER PLACEMENT edge justification ASSEM OUTSIDE - -[LPub Multi-Step Number Statements] -VERTICAL=LPUB MULTI_STEP VERTICAL -HORIZONTAL=LPUB MULTI_STEP HORIZONTAL -MARGINS x y=LPUB MULTI_STEP MARGINS x y -SEPARATOR seperator_color separator_width=LPUB MULTI_STEP SEPARATOR seperator_color separator_width -BEGIN=LPUB MULTI_STEP BEGIN -DIVIDER=LPUB MULTI_STEP DIVIDER -END=LPUB MULTI_STEP END - -[LPub Bill Of Material Statements] -PART MARGINS x y=LPUB BOM PART MARGINS x y -MARGINS x y=LPUB BOM MARGINS x y -BEGIN IGN=LPUB BOM BEGIN IGN -END=LPUB BOM END --=- -BORDER SQUARE color thickness=LPUB BOM BORDER SQUARE color thickness -BORDER ROUND color thickness radius=LPUB BOM BORDER ROUND color thickness radius -BORDERLESS=LPUB BOM BORDERLESS -BORDER MARGINS x y=LPUB BOM BORDER MARGINS x y --=- -BACKGROUND TRANS=LPUB BOM BACKGROUND TRANS -BACKGROUND color=LPUB BOM BACKGROUND color -BACKGROUND [STRETCH] fname=LPUB BOM BACKGROUND [STRETCH] fname --=- -CONSTRAIN AREA=LPUB BOM CONSTRAIN AREA -CONSTRAIN SQUARE=LPUB BOM CONSTRAIN SQUARE -CONSTRAIN WIDTH width=LPUB BOM CONSTRAIN WIDTH width -CONSTRAIN HEIGHT height=LPUB BOM CONSTRAIN HEIGHT height -CONSTRAIN COLS cols=LPUB BOM CONSTRAIN COLS cols --=- -SORT WIDTH=LPUB BOM SORT WIDTH -PACK SUBS=LPUB BOM PACK SUBS - -[ldconfig Statements] -!COLOUR=!COLOUR name CODE x VALUE v EDGE e [ALPHA a] [LUMINANCE l] [ CHROME | PEARLESCENT | RUBBER | MATTE_METALLIC | METAL | MATERIAL <params> ] - -[MLCAD Statements] -ROTSTEP REL=ROTSTEP <x-angle> <y-angle> <z-angle> REL -ROTSTEP ADD=ROTSTEP <x-angle> <y-angle> <z-angle> ADD -ROTSTEP ABS=ROTSTEP <x-angle> <y-angle> <z-angle> ABS -ROTSTEP END=ROTSTEP END -BUFEXCHG STORE = BUFEXCHG <A-Z> STORE -BUFEXCHG RETRIEVE = BUFEXCHG <A-Z> RETRIEVE -GHOST=GHOST - -[LDRAW Statements] -STEP=STEP -WRITE=WRITE -PRINT=PRINT -CLEAR=CLEAR -PAUSE=PAUSE -SAVE=SAVE - -[L3P Statements] -L3P IFPOV=L3P IFPOV -L3P IFNOTPOV=L3P IFNOTPOV -L3P ELSEPOV=L3P ELSEPOV -L3P ENDPOV=L3P ENDPOV - - Copied: trunk/Current Build/uiconfig.ini (from rev 346, trunk/Current Build/metamenu.ini) =================================================================== --- trunk/Current Build/uiconfig.ini (rev 0) +++ trunk/Current Build/uiconfig.ini 2008-08-28 01:23:21 UTC (rev 349) @@ -0,0 +1,240 @@ +# This section specifies general lists used by the UI + +[UI Config Values] +MetaCommands=BFC,CERTIFY,CW,CCW,INVERTNEXT,CLIP,NOCLIP,SYNTH,BEGIN,RIBBED_HOSE,FLEXIBLE_HOSE,FLEX_CABLE,RIGID_HOSE,ELECTRIC_CABLE,PNEUMATIC_HOSE,FLEXIBLE_AXLE,FIBER_OPTIC_CABLE,RUBBER_BAND,CHAIN,PLASTIC_TREAD,RUBBER_TREAD,INSIDE,OUTSIDE,CROSS,SHOW,HIDE,END,LPUB,PLI,SUB,IGN,BI,GRAYED,GROUP,REMOVE,PAGE,SIZE,YES,NO,BACKGROUND,TRANS,STRETCH,BORDER,SQUARE,ROUND,MARGINS,NUMBER,ASSEM,PLACEMENT,CENTER,OFFSET,PART,INSIDE,OUTSIDE,BORDERLESS,CONSTRAIN,AREA,WIDTH,HEIGHT,COLS,CALLOUT,HORIZONTAL,VERTICAL,SEPARATOR,DIVIDER,INSTANCE_COUNT,POINTER,BASE,STEP_NUMBER,MULTI_STEP,BOM,SORT,PACK,SUBS,!COLOUR,CODE,VALUE,EDGE,ALPHA,LUMINANCE,CHROME,PEARLESCENT,RUBBER,MATTE_METALLIC,METAL,MATERIAL,ROTSTEP,REL,ADD,ABS,BUFEXCHG,STORE,RETRIEVE,GHOST,STEP,WRITE,PRINT,CLEAR,PAUSE,SAVE,L3P,IFPOV,IFNOTPOV,ELSEPOV,ENDPOV,CATEGORY,KEYWORDS,!CATEGORY,!KEYWORDS,FILE,NOFILE,!LDRAW_ORG,!LICENSE,!HELP,!CMDLINE,CMDLINE,!HISTORY,NOCERTIFY,LDRAW_ORG,ORIGINAL,UPDATE +LDrawCategories=Animal,Antenna,Arch,Arm,Bar,Baseplate,Belville,Boat,Bracket,Brick,Car,Cone,Container,Conveyor,Crane,Cylinder,Door,Electric,Exhaust,Fence,Flag,Forklift,Freestyle,Garage,Gate,Glass,Grab,Hinge,Homemaker,Hose,Jack,Ladder,Lever,Magnet,Minifig,Minifig Accessory,Panel,Plane,Plant,Plate,Platform,Propellor,Rack,Roadsign,Rock,Round,Scala,Slope,Staircase,Sticker,Support,Tail,Tap,Technic,Tile,Tipper,Tractor,Trailer,Train,Turntable,Tyre,Wedge,Wheel,Winch,Window,Windscreen,Wing + +# This section specifies what the sections for the meta menu +# and the order they will appear in the menu + +[Meta Menu Items] +1=BFC Statements +2=LSynth Statements +3=LPub Statements +4=LPub Page Statements +5=LPub Assembly Statements +6=LPub PLI Layout Statements +7=LPub Callout Statements +8=LPub Step Number Statements +9=LPub Multi-Step Number Statements +10=LPub Bill Of Material Statements +11=ldconfig Statements +12=MLCAD Statements +13=LDRAW Statements +14=L3P Statements + +# Usage: +# [<Parent Group>] +# <Menu Text>=<Insert Text> +# +# Where: +# <Parent Group> is the name of the Parent Group Menu +# a parent group can have any number of <Menu Text>=<Insert Text> +# statements +# +# <Menu Text> is the text that appear on the menu item +# +# <Insert Text> is the text acually inserted minus the '0 ' +# +# For a spacer line enter "-=-" +# + +[BFC Statements] +CERTIFY CW=BFC CERTIFY CW +CERTIFY CCW=BFC CERTIFY CCW +INVERTNEXT=BFC INVERTNEXT +CLIP=BFC CLIP +NOCLIP=BFC NOCLIP + + +[LSynth Statements] +RIBBED_HOSE=SYNTH BEGIN RIBBED_HOSE 16 +FLEXIBLE_HOSE=SYNTH BEGIN FLEXIBLE_HOSE 16 +FLEX_CABLE=SYNTH BEGIN FLEX_CABLE 16 +RIGID_HOSE=SYNTH BEGIN RIGID_HOSE 16 +ELECTRIC_CABLE=SYNTH BEGIN ELECTRIC_CABLE 16 +PNEUMATIC_HOSE=SYNTH BEGIN PNEUMATIC_HOSE 16 +FLEXIBLE_AXLE=SYNTH BEGIN FLEXIBLE_AXLE 16 +FIBER_OPTIC_CABLE=SYNTH BEGIN FIBER_OPTIC_CABLE 16 +RUBBER_BAND=SYNTH BEGIN RUBBER_BAND 16 +CHAIN=SYNTH BEGIN CHAIN 16 +PLASTIC_TREAD=SYNTH BEGIN PLASTIC_TREAD 16 +RUBBER_TREAD=SYNTH BEGIN RUBBER_TREAD 16 +-=- +INSIDE=SYNTH INSIDE +OUTSIDE=SYNTH OUTSIDE +CROSS=SYNTH CROSS +SHOW=SYNTH SHOW +HIDE=SYNTH HIDE +-=- +SYNTH END=SYNTH END + +[LPub Statements] +LPUB PLI BEGIN SUB=LPUB PLI BEGIN SUB +LPUB PLI BEGIN IGN=LPUB PLI BEGIN IGN +LPUB PLI END=LPUB PLI END +-=- +BI BEGIN GRAYED=BI BEGIN GRAYED +BI END=BI END +LPUB GROUP REMOVE=LPUB GROUP REMOVE + +[LPub Page Statements] +SIZE=LPUB PAGE SIZE +PLI (YES|NO)=LPUB PAGE PLI (YES|NO) +-=- +BACKGROUND TRANS=LPUB PAGE BACKGROUND TRANS +BACKGROUND color=LPUB PAGE BACKGROUND color +BACKGROUND [STRETCH] png_image_name=LPUB PAGE BACKGROUND [STRETCH] png_image_name +-=- +BORDER SQUARE=LPUB PAGE BORDER SQUARE +BORDER ROUND=LPUB PAGE BORDER ROUND +BORDER MARGINS x_margin y_margin=LPUB PAGE BORDER MARGINS x_margin y_margin +-=- +NUMBER MARGINS x_margin y_margin=LPUB PAGE NUMBER MARGINS x_margin y_margin + +[LPub Assembly Statements] +MARGINS x_margin y_margin=LPUB ASSEM MARGINS x_margin y_margin +-=- +PLACEMENT corner PAGE=LPUB ASSEM PLACEMENT corner PAGE +PLACEMENT edge PAGE=LPUB ASSEM PLACEMENT edge PAGE +PLACEMENT CENTER PAGE=LPUB ASSEM PLACEMENT CENTER PAGE +PLACEMENT OFFSET x_offset y_offset=LPUB ASSEM PLACEMENT OFFSET x_offset y_offset + +[LPub PLI Layout Statements] +PART MARGINS x y=LPUB PLI PART MARGINS x y +MARGINS x y=LPUB PLI MARGINS x y +-=- +PLACEMENT CENTER PAGE=LPUB PLI PLACEMENT CENTER PAGE +PLACEMENT edge PAGE=LPUB PLI PLACEMENT edge PAGE +PLACEMENT CENTER ASSEM INSIDE=LPUB PLI PLACEMENT CENTER ASSEM INSIDE +PLACEMENT corner ASSEM INSIDE=LPUB PLI PLACEMENT corner ASSEM INSIDE +PLACEMENT edge ASSEM INSIDE=LPUB PLI PLACEMENT edge ASSEM INSIDE +PLACEMENT corner ASSEM OUTSIDE=LPUB PLI PLACEMENT corner ASSEM OUTSIDE +PLACEMENT edge justification ASSEM OUTSIDE=LPUB PLI PLACEMENT edge justification ASSEM OUTSIDE +PLACEMENT OFFSET x_offset y_offset=LPUB PLI PLACEMENT OFFSET x_offset y_offset +-=- +BORDER SQUARE color thickness=LPUB PLI BORDER SQUARE color thickness +BORDER ROUND color thickness radius=LPUB PLI BORDER ROUND color thickness radius +BORDERLESS=LPUB PLI BORDERLESS +BORDER MARGINS x y=LPUB PLI BORDER MARGINS x y +-=- +BACKGROUND TRANS=LPUB PLI BACKGROUND TRANS +BACKGROUND color=LPUB PLI BACKGROUND color +BACKGROUND [STRETCH] fname=LPUB PLI BACKGROUND [STRETCH] fname +-=- +CONSTRAIN AREA=LPUB PLI CONSTRAIN AREA +CONSTRAIN SQUARE=LPUB PLI CONSTRAIN SQUARE +CONSTRAIN WIDTH width=LPUB PLI CONSTRAIN WIDTH width +CONSTRAIN HEIGHT height=LPUB PLI CONSTRAIN HEIGHT height +CONSTRAIN COLS cols=LPUB PLI CONSTRAIN COLS cols + +[LPub Callout Statements] +MARGINS x y=LPUB CALLOUT MARGINS x y= +HORIZONTAL=LPUB CALLOUT HORIZONTAL +VERTICAL=LPUB CALLOUT VERTICAL +SEPARATOR seperator_color separator_width=LPUB CALLOUT SEPARATOR seperator_color separator_width +-=- +BORDER SQUARE color thickness=LPUB CALLOUT BORDER SQUARE color thickness +BORDER ROUND color thickness radius=LPUB CALLOUT BORDER ROUND color thickness radius +BORDER MARGINS x y=LPUB CALLOUT BORDER MARGINS x y +BORDERLESS=LPUB CALLOUT BORDERLESS +-=- +BACKGROUND TRANS=LPUB CALLOUT BACKGROUND TRANS +BACKGROUND color=LPUB CALLOUT BACKGROUND color +BACKGROUND [STRETCH] fname=LPUB CALLOUT BACKGROUND [STRETCH] fname +-=- +BEGIN=LPUB CALLOUT BEGIN=LPUB CALLOUT BEGIN=LPUB CALLOUT BEGIN +END=LPUB CALLOUT END=LPUB CALLOUT END=LPUB CALLOUT END +DIVIDER=LPUB CALLOUT DIVIDER +-=- +INSTANCE_COUNT MARGINS x y=LPUB CALLOUT INSTANCE_COUNT MARGINS x y +INSTANCE_COUNT PLACEMENT corner CALLOUT preposition=LPUB CALLOUT INSTANCE_COUNT PLACEMENT corner CALLOUT preposition +INSTANCE_COUNT PLACEMENT edge CALLOUT INSIDE=LPUB CALLOUT INSTANCE_COUNT PLACEMENT edge CALLOUT INSIDE +INSTANCE_COUNT PLACEMENT horiz justification CALLOUT OUTSIDE=LPUB CALLOUT INSTANCE_COUNT PLACEMENT horiz justification CALLOUT OUTSIDE +INSTANCE_COUNT PLACEMENT vert justification CALLOUT OUTSIDE=LPUB CALLOUT INSTANCE_COUNT PLACEMENT vert justification CALLOUT OUTSIDE +-=- +PLACEMENT CENTER PAGE=LPUB CALLOUT PLACEMENT CENTER PAGE +PLACEMENT corner PAGE=LPUB CALLOUT PLACEMENT corner PAGE +PLACEMENT edge PAGE=LPUB CALLOUT PLACEMENT edge PAGE +PLACEMENT CENTER ASSEM INSIDE=LPUB CALLOUT PLACEMENT CENTER ASSEM INSIDE +PLACEMENT corner ASSEM INSIDE=LPUB CALLOUT PLACEMENT corner ASSEM INSIDE +PLACEMENT edge ASSEM INSIDE=LPUB CALLOUT PLACEMENT edge ASSEM INSIDE +PLACEMENT corner ASSEM OUTSIDE=LPUB CALLOUT PLACEMENT corner ASSEM OUTSIDE +PLACEMENT edge justification ASSEM OUTSIDE=LPUB CALLOUT PLACEMENT edge justification ASSEM OUTSIDE +PLACEMENT OFFSET x_offset y_offset=LPUB CALLOUT PLACEMENT OFFSET x_offset y_offset +-=- +POINTER BASE base=LPUB CALLOUT POINTER BASE base +POINTER placement loc assem_x assem_y= + +[LPub Step Number Statements] +PLACEMENT CENTER PAGE=LPUB STEP_NUMBER PLACEMENT CENTER PAGE +PLACEMENT corner PAGE=LPUB STEP_NUMBER PLACEMENT corner PAGE +PLACEMENT edge PAGE=LPUB STEP_NUMBER PLACEMENT edge PAGE +PLACEMENT CENTER ASSEM INSIDE=LPUB STEP_NUMBER PLACEMENT CENTER ASSEM INSIDE +PLACEMENT corner ASSEM INSIDE=LPUB STEP_NUMBER PLACEMENT corner ASSEM INSIDE +PLACEMENT edge ASSEM INSIDE=LPUB STEP_NUMBER PLACEMENT edge ASSEM INSIDE +PLACEMENT corner PLI=LPUB STEP_NUMBER PLACEMENT corner PLI +PLACEMENT edge justification PLI=LPUB STEP_NUMBER PLACEMENT edge justification PLI +PLACEMENT corner ASSEM OUTSIDE=LPUB STEP_NUMBER PLACEMENT corner ASSEM OUTSIDE +PLACEMENT edge justification ASSEM OUTSIDE=LPUB STEP_NUMBER PLACEMENT edge justification ASSEM OUTSIDE + +[LPub Multi-Step Number Statements] +VERTICAL=LPUB MULTI_STEP VERTICAL +HORIZONTAL=LPUB MULTI_STEP HORIZONTAL +MARGINS x y=LPUB MULTI_STEP MARGINS x y +SEPARATOR seperator_color separator_width=LPUB MULTI_STEP SEPARATOR seperator_color separator_width +BEGIN=LPUB MULTI_STEP BEGIN +DIVIDER=LPUB MULTI_STEP DIVIDER +END=LPUB MULTI_STEP END + +[LPub Bill Of Material Statements] +PART MARGINS x y=LPUB BOM PART MARGINS x y +MARGINS x y=LPUB BOM MARGINS x y +BEGIN IGN=LPUB BOM BEGIN IGN +END=LPUB BOM END +-=- +BORDER SQUARE color thickness=LPUB BOM BORDER SQUARE color thickness +BORDER ROUND color thickness radius=LPUB BOM BORDER ROUND color thickness radius +BORDERLESS=LPUB BOM BORDERLESS +BORDER MARGINS x y=LPUB BOM BORDER MARGINS x y +-=- +BACKGROUND TRANS=LPUB BOM BACKGROUND TRANS +BACKGROUND color=LPUB BOM BACKGROUND color +BACKGROUND [STRETCH] fname=LPUB BOM BACKGROUND [STRETCH] fname +-=- +CONSTRAIN AREA=LPUB BOM CONSTRAIN AREA +CONSTRAIN SQUARE=LPUB BOM CONSTRAIN SQUARE +CONSTRAIN WIDTH width=LPUB BOM CONSTRAIN WIDTH width +CONSTRAIN HEIGHT height=LPUB BOM CONSTRAIN HEIGHT height +CONSTRAIN COLS cols=LPUB BOM CONSTRAIN COLS cols +-=- +SORT WIDTH=LPUB BOM SORT WIDTH +PACK SUBS=LPUB BOM PACK SUBS + +[ldconfig Statements] +!COLOUR=!COLOUR name CODE x VALUE v EDGE e [ALPHA a] [LUMINANCE l] [ CHROME | PEARLESCENT | RUBBER | MATTE_METALLIC | METAL | MATERIAL <params> ] + +[MLCAD Statements] +ROTSTEP REL=ROTSTEP <x-angle> <y-angle> <z-angle> REL +ROTSTEP ADD=ROTSTEP <x-angle> <y-angle> <z-angle> ADD +ROTSTEP ABS=ROTSTEP <x-angle> <y-angle> <z-angle> ABS +ROTSTEP END=ROTSTEP END +BUFEXCHG STORE = BUFEXCHG <A-Z> STORE +BUFEXCHG RETRIEVE = BUFEXCHG <A-Z> RETRIEVE +GHOST=GHOST + +[LDRAW Statements] +STEP=STEP +WRITE=WRITE +PRINT=PRINT +CLEAR=CLEAR +PAUSE=PAUSE +SAVE=SAVE + +[L3P Statements] +L3P IFPOV=L3P IFPOV +L3P IFNOTPOV=L3P IFNOTPOV +L3P ELSEPOV=L3P ELSEPOV +L3P ENDPOV=L3P ENDPOV + + Property changes on: trunk/Current Build/uiconfig.ini ___________________________________________________________________ Added: svn:mergeinfo + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-08-28 00:57:47
|
Revision: 348 http://lddp.svn.sourceforge.net/lddp/?rev=348&view=rev Author: billthefish Date: 2008-08-28 00:57:45 +0000 (Thu, 28 Aug 2008) Log Message: ----------- Changed to ui config file Modified Paths: -------------- trunk/Current Build/metalist.ini Modified: trunk/Current Build/metalist.ini =================================================================== --- trunk/Current Build/metalist.ini 2008-08-28 00:48:38 UTC (rev 347) +++ trunk/Current Build/metalist.ini 2008-08-28 00:57:45 UTC (rev 348) @@ -1,3 +1,3 @@ -BFC,CERTIFY,CW,CCW,INVERTNEXT,CLIP,NOCLIP,SYNTH,BEGIN,RIBBED_HOSE,FLEXIBLE_HOSE,FLEX_CABLE,RIGID_HOSE,ELECTRIC_CABLE,PNEUMATIC_HOSE,FLEXIBLE_AXLE,FIBER_OPTIC_CABLE,RUBBER_BAND,CHAIN,PLASTIC_TREAD,RUBBER_TREAD,INSIDE,OUTSIDE,CROSS,SHOW,HIDE,END,LPUB,PLI,SUB,IGN,BI,GRAYED,GROUP,REMOVE,PAGE,SIZE,YES,NO,BACKGROUND,TRANS,STRETCH,BORDER,SQUARE,ROUND,MARGINS,NUMBER,ASSEM,PLACEMENT,CENTER,OFFSET,PART,INSIDE,OUTSIDE,BORDERLESS,CONSTRAIN,AREA,WIDTH,HEIGHT,COLS,CALLOUT,HORIZONTAL,VERTICAL,SEPARATOR,DIVIDER,INSTANCE_COUNT,POINTER,BASE,STEP_NUMBER,MULTI_STEP,BOM,SORT,PACK,SUBS,!COLOUR,CODE,VALUE,EDGE,ALPHA,LUMINANCE,CHROME,PEARLESCENT,RUBBER,MATTE_METALLIC,METAL,MATERIAL,ROTSTEP,REL,ADD,ABS,BUFEXCHG,STORE,RETRIEVE,GHOST,STEP,WRITE,PRINT,CLEAR,PAUSE,SAVE,L3P,IFPOV,IFNOTPOV,ELSEPOV,ENDPOV,CATEGORY,KEYWORDS,!CATEGORY,!KEYWORDS,FILE,NOFILE,!LDRAW_ORG,!LICENSE,!HELP,!CMDLINE,CMDLINE,!HISTORY,NOCERTIFY,LDRAW_ORG,ORIGINAL,UPDATE - - +[UI Config Values] +MetaCommands=BFC,CERTIFY,CW,CCW,INVERTNEXT,CLIP,NOCLIP,SYNTH,BEGIN,RIBBED_HOSE,FLEXIBLE_HOSE,FLEX_CABLE,RIGID_HOSE,ELECTRIC_CABLE,PNEUMATIC_HOSE,FLEXIBLE_AXLE,FIBER_OPTIC_CABLE,RUBBER_BAND,CHAIN,PLASTIC_TREAD,RUBBER_TREAD,INSIDE,OUTSIDE,CROSS,SHOW,HIDE,END,LPUB,PLI,SUB,IGN,BI,GRAYED,GROUP,REMOVE,PAGE,SIZE,YES,NO,BACKGROUND,TRANS,STRETCH,BORDER,SQUARE,ROUND,MARGINS,NUMBER,ASSEM,PLACEMENT,CENTER,OFFSET,PART,INSIDE,OUTSIDE,BORDERLESS,CONSTRAIN,AREA,WIDTH,HEIGHT,COLS,CALLOUT,HORIZONTAL,VERTICAL,SEPARATOR,DIVIDER,INSTANCE_COUNT,POINTER,BASE,STEP_NUMBER,MULTI_STEP,BOM,SORT,PACK,SUBS,!COLOUR,CODE,VALUE,EDGE,ALPHA,LUMINANCE,CHROME,PEARLESCENT,RUBBER,MATTE_METALLIC,METAL,MATERIAL,ROTSTEP,REL,ADD,ABS,BUFEXCHG,STORE,RETRIEVE,GHOST,STEP,WRITE,PRINT,CLEAR,PAUSE,SAVE,L3P,IFPOV,IFNOTPOV,ELSEPOV,ENDPOV,CATEGORY,KEYWORDS,!CATEGORY,!KEYWORDS,FILE,NOFILE,!LDRAW_ORG,!LICENSE,!HELP,!CMDLINE,CMDLINE,!HISTORY,NOCERTIFY,LDRAW_ORG,ORIGINAL,UPDATE +LDrawCategories=Animal,Antenna,Arch,Arm,Bar,Baseplate,Belville,Boat,Bracket,Brick,Car,Cone,Container,Conveyor,Crane,Cylinder,Door,Electric,Exhaust,Fence,Flag,Forklift,Freestyle,Garage,Gate,Glass,Grab,Hinge,Homemaker,Hose,Jack,Ladder,Lever,Magnet,Minifig,Minifig Accessory,Panel,Plane,Plant,Plate,Platform,Propellor,Rack,Roadsign,Rock,Round,Scala,Slope,Staircase,Sticker,Support,Tail,Tap,Technic,Tile,Tipper,Tractor,Trailer,Train,Turntable,Tyre,Wedge,Wheel,Winch,Window,Windscreen,Wing This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-08-28 00:48:40
|
Revision: 347 http://lddp.svn.sourceforge.net/lddp/?rev=347&view=rev Author: billthefish Date: 2008-08-28 00:48:38 +0000 (Thu, 28 Aug 2008) Log Message: ----------- Added Paths: ----------- trunk/Current Build/metalist.ini Removed Paths: ------------- trunk/Current Build/metalist.txt Property Changed: ---------------- trunk/Current Build/ Property changes on: trunk/Current Build ___________________________________________________________________ Added: svn:ignore + DCU Copied: trunk/Current Build/metalist.ini (from rev 346, trunk/Current Build/metalist.txt) =================================================================== --- trunk/Current Build/metalist.ini (rev 0) +++ trunk/Current Build/metalist.ini 2008-08-28 00:48:38 UTC (rev 347) @@ -0,0 +1,3 @@ +BFC,CERTIFY,CW,CCW,INVERTNEXT,CLIP,NOCLIP,SYNTH,BEGIN,RIBBED_HOSE,FLEXIBLE_HOSE,FLEX_CABLE,RIGID_HOSE,ELECTRIC_CABLE,PNEUMATIC_HOSE,FLEXIBLE_AXLE,FIBER_OPTIC_CABLE,RUBBER_BAND,CHAIN,PLASTIC_TREAD,RUBBER_TREAD,INSIDE,OUTSIDE,CROSS,SHOW,HIDE,END,LPUB,PLI,SUB,IGN,BI,GRAYED,GROUP,REMOVE,PAGE,SIZE,YES,NO,BACKGROUND,TRANS,STRETCH,BORDER,SQUARE,ROUND,MARGINS,NUMBER,ASSEM,PLACEMENT,CENTER,OFFSET,PART,INSIDE,OUTSIDE,BORDERLESS,CONSTRAIN,AREA,WIDTH,HEIGHT,COLS,CALLOUT,HORIZONTAL,VERTICAL,SEPARATOR,DIVIDER,INSTANCE_COUNT,POINTER,BASE,STEP_NUMBER,MULTI_STEP,BOM,SORT,PACK,SUBS,!COLOUR,CODE,VALUE,EDGE,ALPHA,LUMINANCE,CHROME,PEARLESCENT,RUBBER,MATTE_METALLIC,METAL,MATERIAL,ROTSTEP,REL,ADD,ABS,BUFEXCHG,STORE,RETRIEVE,GHOST,STEP,WRITE,PRINT,CLEAR,PAUSE,SAVE,L3P,IFPOV,IFNOTPOV,ELSEPOV,ENDPOV,CATEGORY,KEYWORDS,!CATEGORY,!KEYWORDS,FILE,NOFILE,!LDRAW_ORG,!LICENSE,!HELP,!CMDLINE,CMDLINE,!HISTORY,NOCERTIFY,LDRAW_ORG,ORIGINAL,UPDATE + + Property changes on: trunk/Current Build/metalist.ini ___________________________________________________________________ Added: svn:mergeinfo + Deleted: trunk/Current Build/metalist.txt =================================================================== --- trunk/Current Build/metalist.txt 2008-08-27 22:23:16 UTC (rev 346) +++ trunk/Current Build/metalist.txt 2008-08-28 00:48:38 UTC (rev 347) @@ -1,3 +0,0 @@ -BFC,CERTIFY,CW,CCW,INVERTNEXT,CLIP,NOCLIP,SYNTH,BEGIN,RIBBED_HOSE,FLEXIBLE_HOSE,FLEX_CABLE,RIGID_HOSE,ELECTRIC_CABLE,PNEUMATIC_HOSE,FLEXIBLE_AXLE,FIBER_OPTIC_CABLE,RUBBER_BAND,CHAIN,PLASTIC_TREAD,RUBBER_TREAD,INSIDE,OUTSIDE,CROSS,SHOW,HIDE,END,LPUB,PLI,SUB,IGN,BI,GRAYED,GROUP,REMOVE,PAGE,SIZE,YES,NO,BACKGROUND,TRANS,STRETCH,BORDER,SQUARE,ROUND,MARGINS,NUMBER,ASSEM,PLACEMENT,CENTER,OFFSET,PART,INSIDE,OUTSIDE,BORDERLESS,CONSTRAIN,AREA,WIDTH,HEIGHT,COLS,CALLOUT,HORIZONTAL,VERTICAL,SEPARATOR,DIVIDER,INSTANCE_COUNT,POINTER,BASE,STEP_NUMBER,MULTI_STEP,BOM,SORT,PACK,SUBS,!COLOUR,CODE,VALUE,EDGE,ALPHA,LUMINANCE,CHROME,PEARLESCENT,RUBBER,MATTE_METALLIC,METAL,MATERIAL,ROTSTEP,REL,ADD,ABS,BUFEXCHG,STORE,RETRIEVE,GHOST,STEP,WRITE,PRINT,CLEAR,PAUSE,SAVE,L3P,IFPOV,IFNOTPOV,ELSEPOV,ENDPOV,CATEGORY,KEYWORDS,!CATEGORY,!KEYWORDS,FILE,NOFILE,!LDRAW_ORG,!LICENSE,!HELP,!CMDLINE,CMDLINE,!HISTORY,NOCERTIFY,LDRAW_ORG,ORIGINAL,UPDATE - - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-08-27 22:23:19
|
Revision: 346 http://lddp.svn.sourceforge.net/lddp/?rev=346&view=rev Author: billthefish Date: 2008-08-27 22:23:16 +0000 (Wed, 27 Aug 2008) Log Message: ----------- Added Paths: ----------- trunk/Current Build/ trunk/Current Build/LDDP.eop trunk/Current Build/LDDesignPad.exe trunk/Current Build/Plugins/ trunk/Current Build/SciLexer.dll trunk/Current Build/colors.pal trunk/Current Build/lddp.ini trunk/Current Build/ldraw.ini trunk/Current Build/locale/ trunk/Current Build/locale/en/ trunk/Current Build/locale/en/LC_MESSAGES/ trunk/Current Build/locale/en/LC_MESSAGES/default.mo trunk/Current Build/locale/en/LC_MESSAGES/default.po trunk/Current Build/metalist.txt trunk/Current Build/metamenu.ini Added: trunk/Current Build/LDDP.eop =================================================================== --- trunk/Current Build/LDDP.eop (rev 0) +++ trunk/Current Build/LDDP.eop 2008-08-27 22:23:16 UTC (rev 346) @@ -0,0 +1,38 @@ +[default] +style=fore:clWindowText,back:clWindow,size:10,font:Courier New,notbold,notitalics,notunderlined,visible,noteolfilled,changeable,nothotspot +WordWrap=0 +WordChars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 +ClearUndoAfterSave=False +EOLMode=0 +LineNumbers=False +Gutter=True +CaretPeriod=500 +CaretWidth=1 +CaretLineVisible=False +CaretFore=clBlack +CaretBack=clYellow +CaretAlpha=256 +SelectForeColor=clHighlightText +SelectBackColor=clHighlight +SelectAlpha=256 +MarkerForeColor=clBlue +MarkerBackColor=clAqua +FoldMarginHighlightColor=clBtnFace +FoldMarginColor=clBtnFace +WhitespaceForeColor=clDefault +WhitespaceBackColor=clDefault +ActiveHotspotForeColor=clBlue +ActiveHotspotBackColor=clDefault +ActiveHotspotUnderlined=True +ActiveHotspotSingleLine=False +FoldMarkerType=1 +MarkerBookmark=markertype:sciMCircle,Alpha:256,fore:clDefault,back:clDefault +EdgeColumn=0 +EdgeMode=0 +EdgeColor=clSilver +CodeFolding=False +BraceHighlight=True + +[extension] + + Property changes on: trunk/Current Build/LDDesignPad.exe ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/Current Build/SciLexer.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Current Build/colors.pal =================================================================== --- trunk/Current Build/colors.pal (rev 0) +++ trunk/Current Build/colors.pal 2008-08-27 22:23:16 UTC (rev 346) @@ -0,0 +1,165 @@ +0=Black 000000 +1=Blue 0033B2 +2=Green 007F33 +3=DkCyan 00AAAA +4=Red CC0000 +5=Magenta FF3399 +6=Brown 663300 +7=LTGray 999999 +8=DkGray 666658 +9=LtBlue 0080FF +10=Light_Green 33FF66 +11=Cyan 55AAFF +12=LTRed FF5555 +13=Pink FFB0CC +14=Yellow FFE500 +15=White FFFFFF +16=MainColor 222222 +17=MintGreen BAFFCE +18=LtYellow FDE896 +19=Tan E8CFA1 +20=LtPurple D7C4E6 +21=GlowDark E0FFB0 +22=Purple 81007B +23=VioletBlue 4732B0 +24=EdgeColor 444444 +25=Orange F96000 +26=Magenta D81B6D +27=YellowGreen D7F000 +28=DarkTan C59750 +33=TransBlue 0020A0 +34=TransGreen 066432 +36=TransRed C40026 +37=TransPurple 640061 +40=TransGray 645F52 +41=TransLtCyan AEEFEC +42=TransYellowGreen C0FF00 +45=TransPink DF6695 +46=TransYellow CAB000 +47=clear FFFFFF +57=TransOrange F96000 +256=RubberBlack 212121 +257=Black_Blue 001A59 +258=Black_Green 00401A +259=Black_DkCyan 005555 +260=Black_Red 660000 +261=Black_Magenta 801A4C +262=Black_Brown 331A00 +263=Black_LTGray 4C4C4C +264=Black_DkGray 33332C +265=Black_LtBlue 004080 +266=Black_LtGreen 1A8033 +267=Black_Cyan 2A5580 +268=Black_LTRed 802A2A +269=Black_Pink 805866 +270=Black_Yellow 807200 +271=Black_White 808080 +272=DkBlue 001D68 +274=Blue_Green 005972 +275=Blue_DkCyan 006EAE +276=Blue_Red 661A59 +277=Blue_Magenta 8033A6 +278=Blue_Brown 333359 +279=Blue_LTGray 4C66A6 +280=Blue_DkGray 334C85 +281=Blue_LtBlue 005AD8 +282=Blue_LtGreen 1A998C +283=Blue_Cyan 2A6ED8 +284=Blue_LTRed 804484 +285=Blue_Pink 8072BF +286=Blue_Yellow 808C59 +287=Blue_White 8099D8 +291=Green_DkCyan 00946E +292=Green_Red 66401A +293=Green_Magenta 805966 +294=Green_Brown 33591A +295=Green_LTGray 4C8C66 +296=Green_DkGray 337246 +297=Green_LtBlue 008099 +298=Green_LtGreen 1ABF4C +299=Green_Cyan 2A9499 +300=Green_LTRed 806A44 +301=Green_Pink 809880 +302=Green_Yellow 80B21A +303=Green_White 80BF99 +308=DkCyan_Red 665555 +309=DkCyan_Magenta 806EA2 +310=DkCyan_Brown 336E55 +311=DkCyan_LTGray 4CA2A2 +312=DkCyan_DkGray 338881 +313=DkCyan_LtBlue 0095D4 +314=DkCyan_LtGreen 1AD488 +315=DkCyan_Cyan 2AAAD4 +317=DkCyan_Pink 80ADBB +318=DkCyan_Yellow 80C855 +319=DkCyan_White 80D4D4 +320=Dark_Red AA0000 +325=Red_Magenta E61A4C +326=Red_Brown 991A00 +327=Red_LTGray B24C4C +328=Red_DkGray 99332C +329=Red_LtBlue 664080 +330=Red_LtGreen 808033 +331=Red_Cyan 905580 +332=Red_LTRed E62A2A +333=Red_Pink E65866 +334=ChromeGold F0B033 +335=SandRed BF8782 +342=Magenta_Brown B2334C +343=Magenta_LTGray CC6699 +344=Magenta_DkGray B24C78 +345=Magenta_LtBlue 805ACC +346=Magenta_LtGreen 999980 +347=Magenta_Cyan AA6ECC +348=Magenta_LTRed FF4477 +349=Magenta_Pink FF72B2 +350=Magenta_Yellow FF8C4C +351=Magenta_White FF99CC +359=Brown_LTGray 80664C +360=Brown_DkGray 664C2C +361=Brown_LtBlue 335A80 +362=Brown_LtGreen 4C9933 +363=Brown_Cyan 5E6E80 +364=Brown_LTRed B2442A +365=Brown_Pink B27266 +366=Brown_Yellow B28C00 +367=Brown_White B29980 +373=SandViolet 845E84 +375=RubberGray C1C2C1 +376=LTGray_DkGray 808078 +377=LTGray_LtBlue 4C8CCC +378=SandGreen A0BCAC +379=SandBlue 6A7A96 +380=LTGray_LTRed CC7777 +381=LTGray_Pink CCA4B2 +382=LTGray_Yellow CCBF4C +383=ChromeSilver CCCCCC +393=DkGray_LtBlue 3373AC +394=DkGray_LtGreen 4CB25F +395=DkGray_Cyan 5E88AC +396=DkGray_LTRed B25E56 +397=DkGray_Pink B28B92 +398=DkGray_Yellow B2A62C +399=DkGray_White B2B2AC +410=LtBlue_LtGreen 1AC0B2 +411=LtBlue_Cyan 2A95FF +412=LtBlue_LTRed 806AAA +413=LtBlue_Pink 8098E6 +414=LtBlue_Yellow 80B280 +415=LtBlue_White 80C0FF +418=Bright_Green 00BF59 +427=LtGreen_Cyan 44D4B2 +428=LtGreen_LTRed 99AA5E +429=LtGreen_Pink 99D899 +430=LtGreen_Yellow 99F233 +431=LtGreen_White 99FFB2 +444=Cyan_LTRed AA80AA +445=Cyan_Pink AAADE6 +446=Cyan_Yellow AAC880 +447=Cyan_White AAD4FF +461=LTRed_Pink FF8290 +462=Orange FF9D2A +463=LTRed_White FFAAAA +478=Pink_Yellow FFCA66 +479=Pink_White FFD8E6 +495=Yellow_White FFF280 Added: trunk/Current Build/lddp.ini =================================================================== --- trunk/Current Build/lddp.ini (rev 0) +++ trunk/Current Build/lddp.ini 2008-08-27 22:23:16 UTC (rev 346) @@ -0,0 +1,111 @@ +[frOptions] +FormVersion=0 +ShowCmd=1 +Flags=0 +PixelsPerInch=96 +MinMaxPos(1280x800)=-1,-1,-1,-1 +MinMaxPos=-1,-1,-1,-1 +NormPos(1280x800)=375,200,904,600 +NormPos=375,200,904,600 +edEmail_Text= +edL3LabDir_Text= +edLdrawDir_Text= +edLDViewDir_Text= +edLSynthDir_Text= +edMLCadDir_Text= +edName_Text= +edSig_Text= +edExternal_Text= +edParameters_Text= +cboDet_Checked=TRUE +cboDist_Checked=TRUE +cboShowCommand_Checked=FALSE +cboWaitForFinish_Checked=FALSE +rgStyle_ItemIndex=-1 + +[frOptions\lbxExternal_Items] +Count=0 + +[frOptions\lbxColors_Items] +Count=16 +Item0=Black +Item1=Blue +Item2=Green +Item3=Teal +Item4=Red +Item5=Dark Pink +Item6=Brown +Item7=Gray +Item8=Dark Gray +Item9=Light Blue +Item10=Bright Green +Item11=Turquiose +Item12=Light Red +Item13=Pink +Item14=Yellow +Item15=White + +[LDDP Options] +edLDViewDir_Text=C:\Documents and Settings\Orion\My Documents\Lego\Programs\LDView +edMLCadDir_Text= +edL3LabDir_Text= +edLSynthDir_Text= +edExternal_Text= +edParameters_Text= +edEmail_Text= +edName_Text= +edUsername_Text= +seDet_Value=0.01 +seDist_Value=0.1 +seNormalAngle_Value=1 +seCollinear_Value=0.0001 +sePntAcc_Value=4 +seRotAcc_Value=4 +cboDist_Checked=0 +cboDet_Checked=0 +cboNormalAngle_Checked=1 +cboWaitForFinish_Checked=0 +cboShowCommand_Checked=0 +rgStyle_ItemIndex=-1 +lbxColors_Item0=Black,0,$00212121 +lbxColors_Item1=Blue,1,$00B23300 +lbxColors_Item2=Green,2,$00148C00 +lbxColors_Item3=Teal,3,$009F9900 +lbxColors_Item4=Red,4,$002600C4 +lbxColors_Item5="Dark Pink",5,$009566DF +lbxColors_Item6=Brown,6,$0000205C +lbxColors_Item7=Gray,7,$00C1C2C1 +lbxColors_Item8="Dark Gray",8,$00525F63 +lbxColors_Item9="Light Blue",9,$00DCAB6B +lbxColors_Item10="Bright Green",10,$0090EE6B +lbxColors_Item11=Turquiose,11,$00A7A633 +lbxColors_Item12="Light Red",12,$007A85FF +lbxColors_Item13=Pink,13,$00C6A4F9 +lbxColors_Item14=Yellow,14,$0000DCFF +lbxColors_Item15=White,15,$00FFFFFF + +[LDDP MRU] +C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp-Scintilla\sciforms.pas= +C:\Documents and Settings\Orion\My Documents\Lego\Models\Plugin Test Files\ErrorTestFile.dat= +C:\Documents and Settings\Orion\My Documents\Lego\Models\Plugin Test Files\ErrorTestFilea.dat= +C:\Documents and Settings\Orion\My Documents\Lego\Models\Plugin Test Files\LDDPTestFile.dat= +C:\Documents and Settings\Orion\My Documents\Lego\ldraw\parts\39.dat= +C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp-Scintilla\Exe\6861mini.ldr= +C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp-Scintilla\Exe\6861.mpd= +C:\Documents and Settings\Orion\My Documents\Lego\Models\Official Sets\Classic Space\6861 (X-1 Patrol Craft)\6861mini.ldr= +C:\Documents and Settings\Orion\My Documents\Lego\Models\Official Sets\Classic Space\6861 (X-1 Patrol Craft)\Example2.mpd= +C:\Documents and Settings\Orion\My Documents\Lego\Models\Official Sets\Classic Space\6861 (X-1 Patrol Craft)\6861.mpd= + +[LDDP Main] +InstallDir=C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp-Scintilla\Exe\ +frMain_Left=324 +frMain_Top=119 +frMain_Width=792 +frMain_Height=494 +tbrFiles_Visible=1 +tbrExternalPrograms_Visible=1 +tbrSearchAndReplace_Visible=1 +tbrWindows_Visible=1 +tbrEditing_Visible=1 +tbrColorReplace_Visible=1 + Added: trunk/Current Build/ldraw.ini =================================================================== --- trunk/Current Build/ldraw.ini (rev 0) +++ trunk/Current Build/ldraw.ini 2008-08-27 22:23:16 UTC (rev 346) @@ -0,0 +1,3 @@ +[frMain] +FormVersion=0 + Property changes on: trunk/Current Build/locale/en/LC_MESSAGES/default.mo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Current Build/locale/en/LC_MESSAGES/default.po =================================================================== --- trunk/Current Build/locale/en/LC_MESSAGES/default.po (rev 0) +++ trunk/Current Build/locale/en/LC_MESSAGES/default.po 2008-08-27 22:23:16 UTC (rev 346) @@ -0,0 +1,2219 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2005-12-25 11:37\n" +"PO-Revision-Date: 2005-12-25 13:08-1000\n" +"Last-Translator: Orion Pobursky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: dxgettext 1.2.1\n" +"Language-Team: \n" + +#. frAboutBox..Caption +#: about.dfm:10 +msgid "About LDraw Design Pad" +msgstr "About LDraw Design Pad" + +#. frAboutBox..Panel1..ProductName..Caption +#. frAboutBox..Panel1..Memo1....Lines.Strings +#. frMain..Caption +#: about.dfm:157 +#: about.dfm:184 +#: main.dfm:8 +msgid "LDraw Design Pad" +msgstr "LDraw Design Pad" + +#. frAboutBox..Panel1..Version..Caption +#: about.dfm:170 +msgid "Version" +msgstr "Version" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:186 +msgid "Copyright (C) 2002-2006 by the LDDP contributors" +msgstr "Copyright (C) 2002-2006 by the LDDP contributors" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:188 +msgid " Orion Pobursky" +msgstr " Orion Pobursky" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:189 +msgid " Stephan Schonberg" +msgstr " Stephan Schonberg" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:190 +msgid " Carsten Schmitz" +msgstr " Carsten Schmitz" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:192 +msgid "Special thanks to:" +msgstr "Special thanks to:" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:194 +msgid "Lars C. Hassing" +msgstr "Lars C. Hassing" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:196 +msgid "Error Check feature derived from L3Check.cpp, L3Math.cpp" +msgstr "Error Check feature derived from L3Check.cpp, L3Math.cpp" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:197 +msgid "Part of the L3 project for handling LDraw *.dat files" +msgstr "Part of the L3 project for handling LDraw *.dat files" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:198 +msgid "Copyright (C) 1997-1999 Lars C. Hassing (lc...@cc...)" +msgstr "Copyright (C) 1997-1999 Lars C. Hassing (lc...@cc...)" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:202 +msgid "Bendible Object Generator feature derived from " +msgstr "Bendible Object Generator feature derived from " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:203 +msgid "Emacs LDraw Major-Mode " +msgstr "Emacs LDraw Major-Mode " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:206 +msgid "Willy Tschager" +msgstr "Willy Tschager" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:207 +msgid "Anders Isaksson" +msgstr "Anders Isaksson" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:208 +msgid "Kevin Clague" +msgstr "Kevin Clague" + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:210 +msgid "This program is free software; you can redistribute it " +msgstr "This program is free software; you can redistribute it " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:211 +msgid "and/or modify it under the terms of the GNU General " +msgstr "and/or modify it under the terms of the GNU General " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:212 +msgid "Public License as published by the Free Software Foundation; " +msgstr "Public License as published by the Free Software Foundation; " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:213 +msgid "either version 2 of the License, or (at your option) any later " +msgstr "either version 2 of the License, or (at your option) any later " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:214 +msgid "version." +msgstr "version." + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:216 +msgid "This program is distributed in the hope that it will be useful, " +msgstr "This program is distributed in the hope that it will be useful, " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:217 +msgid "but WITHOUT ANY WARRANTY; without even the implied " +msgstr "but WITHOUT ANY WARRANTY; without even the implied " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:218 +msgid "warranty of MERCHANTABILITY or FITNESS FOR A " +msgstr "warranty of MERCHANTABILITY or FITNESS FOR A " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:219 +msgid "PARTICULAR PURPOSE. See the GNU General Public License " +msgstr "PARTICULAR PURPOSE. See the GNU General Public License " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:220 +msgid "for more details." +msgstr "for more details." + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:222 +msgid "You should have received a copy of the GNU General " +msgstr "You should have received a copy of the GNU General " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:223 +msgid "Public License along with this program; if not, write to the " +msgstr "Public License along with this program; if not, write to the " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:224 +msgid "Free Software Foundation, Inc., " +msgstr "Free Software Foundation, Inc., " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:225 +msgid "59 Temple Place - Suite 330, " +msgstr "59 Temple Place - Suite 330, " + +#. frAboutBox..Panel1..Memo1....Lines.Strings +#: about.dfm:226 +msgid "Boston, MA 02111-1307, USA." +msgstr "Boston, MA 02111-1307, USA." + +#. frAboutBox..BitBtn1..Caption +#. frColorDialog..Panel3..BitBtn1..Caption +#. TextSearchDialog..btnOK..Caption +#. frModelTreeView..Panel1..BitBtn1..Caption +#. frOptions..Panel1..BitBtn1..Caption +#. fmSort..Panel1..BitBtn1..Caption +#: about.dfm:236 +#: colordialog.dfm:281 +#: dlgsearchtext.dfm:83 +#: modeltreeview.dfm:30 +#: options.dfm:37 +#: sorting.dfm:88 +msgid "OK" +msgstr "OK" + +#. frmDATCurve..Caption +#: BezWindow.dfm:6 +msgid "Bendible Objects Creator" +msgstr "Bendible Objects Creator" + +#. frmDATCurve..lblType..Caption +#: BezWindow.dfm:27 +msgid "Type" +msgstr "Type" + +#. frmDATCurve..btnGenerate..Caption +#: BezWindow.dfm:67 +msgid "Generate Curve" +msgstr "Generate Curve" + +#. frmDATCurve..btnCancel..Caption +#. frColorDialog..Panel3..BitBtn2..Caption +#. ConfirmReplaceDialog..btnCancel..Caption +#. TextSearchDialog..btnCancel..Caption +#. frSubFile..btnCancel..Caption +#. frOptions..Panel1..BitBtn2..Caption +#. fmSort..Panel1..BitBtn2..Caption +#: BezWindow.dfm:77 +#: colordialog.dfm:336 +#: dlgconfirmreplace.dfm:59 +#: dlgsearchtext.dfm:94 +#: dlgSubpart.dfm:149 +#: options.dfm:92 +#: sorting.dfm:36 +msgid "Cancel" +msgstr "Cancel" + +#. frmDATCurve..gbxStartPoint..Caption +#: BezWindow.dfm:86 +msgid "Start Point" +msgstr "Start Point" + +#. frmDATCurve..gbxCont1..Caption +#: BezWindow.dfm:115 +msgid "Control Point 1" +msgstr "Control Point 1" + +#. frmDATCurve..gbxCont2..Caption +#: BezWindow.dfm:178 +msgid "Control Point 2" +msgstr "Control Point 2" + +#. frmDATCurve..gbxEndPoint..Caption +#: BezWindow.dfm:241 +msgid "End Point" +msgstr "End Point" + +#. frmDATCurve..cbxContEnable..Caption +#: BezWindow.dfm:270 +msgid "Manually Enter Control Points" +msgstr "Manually Enter Control Points" + +#. frBMP2LDrawMain..ScrollBox1..pnProgress..Label4..Caption +#: BMP2LDraw.dfm:45 +msgid "Converting..." +msgstr "Converting..." + +#. frBMP2LDrawMain..pc..TabSheet1..Label1..Caption +#: BMP2LDraw.dfm:85 +msgid "First load the image you want to convert..." +msgstr "First load the image you want to convert..." + +#. frBMP2LDrawMain..pc..TabSheet1..Label6..Caption +#: BMP2LDraw.dfm:92 +msgid "Welcome to the BMP-to-LDraw Wizard..." +msgstr "Welcome to the BMP-to-LDraw Wizard..." + +#. frBMP2LDrawMain..pc..TabSheet1..Label3....Caption +#: BMP2LDraw.dfm:108 +msgid "Remember that using this tool isn't the appropiate way to create patterns for official parts." +msgstr "Remember that using this tool isn't the appropiate way to create patterns for official parts." + +#. frBMP2LDrawMain..pc..TabSheet1..BitBtn1..Caption +#: BMP2LDraw.dfm:117 +msgid "&Open Bitmap" +msgstr "&Open Bitmap" + +#. frBMP2LDrawMain..pc..TabSheet1..btNext1..Caption +#. frBMP2LDrawMain..pc..TabSheet2..BitBtn5..Caption +#: BMP2LDraw.dfm:169 +#: BMP2LDraw.dfm:286 +msgid ">> Next" +msgstr ">> Next" + +#. frBMP2LDrawMain..pc..TabSheet2..Label5..Caption +#: BMP2LDraw.dfm:191 +msgid "&Choose a transparent color:" +msgstr "&Choose a transparent color:" + +#. frBMP2LDrawMain..pc..TabSheet2..Edit1..Text +#. fmSort..Panel2..cbSort..Text +#. fmSort..Panel2..cbSort....Items.Strings +#. fmSort..Panel2..cbSort2..Text +#. fmSort..Panel2..cbSort2....Items.Strings +#. fmSort..Panel2..cbSort3..Text +#. fmSort..Panel2..cbSort3....Items.Strings +#: BMP2LDraw.dfm:200 +#: sorting.dfm:198 +#: sorting.dfm:200 +#: sorting.dfm:222 +#: sorting.dfm:224 +#: sorting.dfm:246 +#: sorting.dfm:248 +#: BMP2LDraw.pas:371 +msgid "None" +msgstr "None" + +#. frBMP2LDrawMain..pc..TabSheet2..BitBtn6..Caption +#: BMP2LDraw.dfm:207 +msgid "C&lear color" +msgstr "C&lear color" + +#. frBMP2LDrawMain..pc..TabSheet2..Button1..Caption +#: BMP2LDraw.dfm:259 +msgid "&Pick color" +msgstr "&Pick color" + +#. frBMP2LDrawMain..pc..TabSheet2..BitBtn4..Caption +#. frBMP2LDrawMain..pc..TabSheet3..BitBtn2..Caption +#: BMP2LDraw.dfm:277 +#: BMP2LDraw.dfm:355 +msgid "<< Previous" +msgstr "<< Previous" + +#. frBMP2LDrawMain..pc..TabSheet2..rbTrans1..Caption +#: BMP2LDraw.dfm:296 +msgid "&Replace with transparency value (default)" +msgstr "&Replace with transparency value (default)" + +#. frBMP2LDrawMain..pc..TabSheet2..rbTrans2..Caption +#: BMP2LDraw.dfm:306 +msgid "&Just leave color out" +msgstr "&Just leave color out" + +#. frBMP2LDrawMain..pc..TabSheet3..Label2..Caption +#: BMP2LDraw.dfm:326 +msgid "LDraw unit" +msgstr "LDraw unit" + +#. frBMP2LDrawMain..pc..TabSheet3..RadioButton1..Caption +#: BMP2LDraw.dfm:333 +msgid "1 &Pixel =" +msgstr "1 &Pixel =" + +#. frBMP2LDrawMain..pc..TabSheet3..RadioButton2....Caption +#: BMP2LDraw.dfm:346 +msgid "Span over Quadrilateral. Insert complete Quadrilateral line here:" +msgstr "Span over Quadrilateral. Insert complete Quadrilateral line here:" + +#. frBMP2LDrawMain..pc..TabSheet3..btSave..Caption +#: BMP2LDraw.dfm:364 +msgid "Done" +msgstr "Done" + +#. frBMP2LDrawMain..PopupMenu1..About1..Caption +#. frMain..ActionList1..HelpAbout..Caption +#: BMP2LDraw.dfm:434 +#: main.dfm:931 +msgid "&About..." +msgstr "&About..." + +#. frBMP2LDrawMain..OpenDialog..Filter +#: BMP2LDraw.dfm:438 +msgid "Bitmaps (*.bmp)|*.bmp|All files (*.*)|*.*" +msgstr "Bitmaps (*.bmp)|*.bmp|All files (*.*)|*.*" + +#. frBMP2LDrawMain..OpenDialog..Title +#: BMP2LDraw.dfm:441 +msgid "Open bitmap" +msgstr "Open bitmap" + +#. frEditorChild..pnInfo..lbInfo......Caption +#: childwin.dfm:79 +msgid "Fix" +msgstr "Fix" + +#. frEditorChild..pnInfo..lbInfo......Caption +#: childwin.dfm:85 +msgid "Line Number" +msgstr "Line Number" + +#. frEditorChild..pnInfo..lbInfo......Caption +#: childwin.dfm:92 +msgid "Error" +msgstr "Error" + +#. frColorDialog..Caption +#: colordialog.dfm:9 +msgid "Search & Replace Color Dialog" +msgstr "Search & Replace Color Dialog" + +#. frColorDialog..GroupBox1..Caption +#: colordialog.dfm:29 +msgid "Pick your color" +msgstr "Pick your color" + +#. frColorDialog..GroupBox1..Label1..Caption +#: colordialog.dfm:164 +msgid "Old color:" +msgstr "Old color:" + +#. frColorDialog..GroupBox1..Label2..Caption +#: colordialog.dfm:171 +msgid "New Color:" +msgstr "New Color:" + +#. frColorDialog..GroupBox1..Label3..Caption +#: colordialog.dfm:178 +msgid "Custom Color Nr:" +msgstr "Custom Color Nr:" + +#. frColorDialog..GroupBox1..btOldColor..Caption +#: colordialog.dfm:187 +msgid "Unknown" +msgstr "Unknown" + +#. frColorDialog..GroupBox1..btNewColor..Caption +#: colordialog.dfm:203 +msgid "0 - Black" +msgstr "0 - Black" + +#. frColorDialog..GroupBox1..rgOptions....Items.Strings +#: colordialog.dfm:251 +#: main.pas:1721 +msgid "Replace All" +msgstr "Replace All" + +#. frColorDialog..GroupBox1..cbxReplaceEverything..Caption +#: colordialog.dfm:259 +msgid "Replace Regardless of Original Color" +msgstr "Replace Regardless of Original Color" + +#. ConfirmReplaceDialog..Caption +#: dlgconfirmreplace.dfm:5 +msgid "Confirm replace" +msgstr "Confirm replace" + +#. ConfirmReplaceDialog..btnReplace..Caption +#: dlgconfirmreplace.dfm:39 +msgid "&Yes" +msgstr "&Yes" + +#. ConfirmReplaceDialog..btnSkip..Caption +#: dlgconfirmreplace.dfm:49 +msgid "&No" +msgstr "&No" + +#. ConfirmReplaceDialog..btnReplaceAll..Caption +#: dlgconfirmreplace.dfm:68 +msgid "Yes to &all" +msgstr "Yes to &all" + +#. TextReplaceDialog..Caption +#: dlgreplacetext.dfm:4 +msgid "Replace text" +msgstr "Replace text" + +#. TextReplaceDialog..Label2..Caption +#: dlgreplacetext.dfm:14 +msgid "&Replace with:" +msgstr "&Replace with:" + +#. TextSearchDialog..Caption +#: dlgsearchtext.dfm:5 +msgid "Search Text" +msgstr "Search Text" + +#. TextSearchDialog..Label1..Caption +#: dlgsearchtext.dfm:24 +msgid "&Search for:" +msgstr "&Search for:" + +#. TextSearchDialog..gbSearchOptions..Caption +#: dlgsearchtext.dfm:39 +msgid "Options" +msgstr "Options" + +#. TextSearchDialog..gbSearchOptions..cbSearchCaseSensitive..Caption +#: dlgsearchtext.dfm:46 +msgid "C&ase sensitivity" +msgstr "C&ase sensitivity" + +#. TextSearchDialog..gbSearchOptions..cbSearchWholeWords..Caption +#: dlgsearchtext.dfm:54 +msgid "&Whole words only" +msgstr "&Whole words only" + +#. TextSearchDialog..gbSearchOptions..cbSearchSelectedOnly..Caption +#: dlgsearchtext.dfm:62 +msgid "&Selected text only" +msgstr "&Selected text only" + +#. TextSearchDialog..rgSearchDirection..Caption +#: dlgsearchtext.dfm:71 +msgid "Direction" +msgstr "Direction" + +#. TextSearchDialog..rgSearchDirection....Items.Strings +#: dlgsearchtext.dfm:74 +msgid "&Forward" +msgstr "&Forward" + +#. TextSearchDialog..rgSearchDirection....Items.Strings +#: dlgsearchtext.dfm:75 +msgid "&Backward" +msgstr "&Backward" + +#. frSubFile..Caption +#: dlgSubpart.dfm:5 +msgid "Move Selection to Subfile" +msgstr "Move Selection to Subfile" + +#. frSubFile..Label1..Caption +#: dlgSubpart.dfm:23 +msgid "Filename:" +msgstr "Filename:" + +#. frSubFile..Label2..Caption +#: dlgSubpart.dfm:30 +msgid "Model Title:" +msgstr "Model Title:" + +#. frSubFile..Label3..Caption +#: dlgSubpart.dfm:37 +msgid "Author:" +msgstr "Author:" + +#. frSubFile..Label4..Caption +#: dlgSubpart.dfm:44 +msgid "Header Comments:" +msgstr "Header Comments:" + +#. frSubFile..rgType..Caption +#: dlgSubpart.dfm:74 +msgid "Model Type" +msgstr "Model Type" + +#. frSubFile..rgType....Items.Strings +#: dlgSubpart.dfm:77 +msgid "Model" +msgstr "Model" + +#. frSubFile..rgType....Items.Strings +#: dlgSubpart.dfm:78 +msgid "Submodel" +msgstr "Submodel" + +#. frSubFile..rgType....Items.Strings +#: dlgSubpart.dfm:79 +msgid "Part" +msgstr "Part" + +#. frSubFile..rgType....Items.Strings +#: dlgSubpart.dfm:80 +msgid "Subpart" +msgstr "Subpart" + +#. frSubFile..rgType....Items.Strings +#: dlgSubpart.dfm:81 +msgid "Primitive" +msgstr "Primitive" + +#. frSubFile..cbUnofficial..Caption +#: dlgSubpart.dfm:89 +msgid "Mark as Unofficial" +msgstr "Mark as Unofficial" + +#. frSubFile..btnCreate..Caption +#: dlgSubpart.dfm:97 +msgid "Create" +msgstr "Create" + +#. frMain..ControlBar1..ToolBar2..Caption +#. frMain..MainMenu1..Processing1..ExternalPrograms1..Caption +#. frMain..ActionList1..acExternalsToolbar..Caption +#: main.dfm:69 +#: main.dfm:755 +#: main.dfm:1134 +msgid "External Programs" +msgstr "External Programs" + +#. frMain..ControlBar1..ToolBar1..Caption +#. frMain..ActionList1..acFileToolbar..Caption +#: main.dfm:133 +#: main.dfm:1106 +msgid "Files" +msgstr "Files" + +#. frMain..ControlBar1..ToolBar3..Caption +#: main.dfm:181 +msgid "Search & Replace" +msgstr "Search & Replace" + +#. frMain..ControlBar1..ToolBar4..Caption +#. frMain..ActionList1..acWindowsToolbar..Caption +#: main.dfm:219 +#: main.dfm:1127 +msgid "Windows" +msgstr "Windows" + +#. frMain..ControlBar1..ToolBar5..Caption +#. frMain..ActionList1..acEditingToolbar..Caption +#: main.dfm:252 +#: main.dfm:1113 +msgid "Editing" +msgstr "Editing" + +#. frMain..ControlBar1..tbrColorReplace..Caption +#. frMain..ActionList1..acColorToolbar..Caption +#: main.dfm:373 +#: main.dfm:1324 +msgid "Color Replace" +msgstr "Color Replace" + +#. frMain..MainMenu1..File1..Caption +#: main.dfm:491 +msgid "File" +msgstr "File" + +#. frMain..MainMenu1..File1..Hint +#: main.dfm:492 +msgid "File Commands" +msgstr "File Commands" + +#. frMain..MainMenu1..File1..CloseAll1..Hint +#: main.dfm:504 +msgid "Close all|Close all files" +msgstr "Close all|Close all files" + +#. frMain..MainMenu1..File1..Print1..Hint +#. Form1..ToolBar1..ToolButton1..Caption +#: main.dfm:514 +#: preview.dfm:32 +msgid "Print" +msgstr "Print" + +#. frMain..MainMenu1..File1..LastOpen1..Caption +#: main.dfm:524 +msgid "Last opened" +msgstr "Last opened" + +#. frMain..MainMenu1..Edit1..Caption +#: main.dfm:535 +msgid "Edit" +msgstr "Edit" + +#. frMain..MainMenu1..Edit1..Hint +#: main.dfm:536 +msgid "Editing Commands" +msgstr "Editing Commands" + +#. frMain..MainMenu1..View1..Caption +#: main.dfm:578 +msgid "View" +msgstr "View" + +#. frMain..MainMenu1..View1..Hint +#: main.dfm:579 +msgid "View Options" +msgstr "View Options" + +#. frMain..MainMenu1..View1..Toolbars..Caption +#: main.dfm:581 +msgid "&Toolbars" +msgstr "&Toolbars" + +#. frMain..MainMenu1..View1..Toolbars..Hint +#: main.dfm:582 +msgid "Show or Hide Toolbars" +msgstr "Show or Hide Toolbars" + +#. frMain..MainMenu1..View1..SyntaxHighlighting1..Caption +#. frMain..pmMemo..Highlighting1..Caption +#: main.dfm:603 +#: main.dfm:2893 +msgid "Syntax Highlighting" +msgstr "Syntax Highlighting" + +#. frMain..MainMenu1..Insert1..Caption +#: main.dfm:616 +msgid "Insert" +msgstr "Insert" + +#. frMain..MainMenu1..Insert1..Hint +#: main.dfm:617 +msgid "Insert Commands" +msgstr "Insert Commands" + +#. frMain..MainMenu1..Insert1..mnuMeta..Caption +#. frMain..pmMemo..Insert2..mnuMeta2..Caption +#: main.dfm:625 +#: main.dfm:2829 +msgid "META Statement" +msgstr "META Statement" + +#. frMain..MainMenu1..Tools1..Caption +#: main.dfm:629 +msgid "Tools" +msgstr "Tools" + +#. frMain..MainMenu1..Tools1..Hint +#: main.dfm:630 +msgid "LDraw Tool Commands" +msgstr "LDraw Tool Commands" + +#. frMain..MainMenu1..Tools1..Mirror1..Caption +#. frMain..pmMemo..MirrorLineOn1..Caption +#: main.dfm:662 +#: main.dfm:2839 +msgid "Mirror Line On" +msgstr "Mirror Line On" + +#. frMain..MainMenu1..Tools1..ErrorCheck1..Caption +#: main.dfm:677 +msgid "Error Checking" +msgstr "Error Checking" + +#. frMain..MainMenu1..Tools1..ErrorCheck1..Hint +#: main.dfm:678 +msgid "Check for errors" +msgstr "Check for errors" + +#. frMain..MainMenu1..Processing1..Caption +#: main.dfm:746 +msgid "Process" +msgstr "Process" + +#. frMain..MainMenu1..Processing1..Plugins1..Caption +#. frMain..pmMemo..Plugins3..Caption +#. frOptions..PageControl1..TabSheet3..Caption +#: main.dfm:748 +#: main.dfm:2833 +#: options.dfm:993 +msgid "&Plugins" +msgstr "&Plugins" + +#. frMain..MainMenu1..Processing1..Plugins1..Nonefound1..Caption +#: main.dfm:751 +msgid "(None found)" +msgstr "(None found)" + +#. frMain..MainMenu1..Processing1..ExternalPrograms1..mnuUserDefined..Caption +#: main.dfm:766 +msgid "User Defined Program" +msgstr "User Defined Program" + +#. frMain..MainMenu1..Processing1..ExternalPrograms1..mnuUserDefined..Hint +#: main.dfm:767 +msgid "User Defined Program|Execute User Defined program" +msgstr "User Defined Program|Execute User Defined program" + +#. frMain..MainMenu1..Processing1..ExternalPrograms1..Polling1..Caption +#: main.dfm:774 +msgid "Polling" +msgstr "Polling" + +#. frMain..MainMenu1..Processing1..ExternalPrograms1..Polling1..PolltoL3LabLDView1..Caption +#. frMain..pmPolling..mnPollL3Lab..Caption +#: main.dfm:777 +#: main.dfm:2909 +msgid "Poll to L3Lab && LDView" +msgstr "Poll to L3Lab && LDView" + +#. frMain..MainMenu1..Processing1..ExternalPrograms1..Polling1..Polltoselectedlineonly1..Caption +#. frMain..pmPolling..mnPollToSelected..Caption +#: main.dfm:781 +#: main.dfm:2914 +msgid "Poll to selected line only" +msgstr "Poll to selected line only" + +#. frMain..MainMenu1..Processing1..ExternalPrograms1..Polling1..Pollevery1sec1..Caption +#. frMain..pmPolling..Pollevery1sec2..Caption +#: main.dfm:788 +#: main.dfm:2923 +msgid "Poll every 1 sec" +msgstr "Poll every 1 sec" + +#. frMain..MainMenu1..Processing1..ExternalPrograms1..Polling1..Pollevery2sec1..Caption +#: main.dfm:794 +msgid "Poll every 2 sec" +msgstr "Poll every 2 sec" + +#. frMain..MainMenu1..Processing1..ExternalPrograms1..Polling1..Pollevery5sec..Caption +#: main.dfm:800 +msgid "Poll every 5 sec" +msgstr "Poll every 5 sec" + +#. frMain..MainMenu1..Processing1..ExternalPrograms1..Polling1..Pollonrequest2..Caption +#. frMain..pmPolling..Pollonrequest1..Caption +#: main.dfm:805 +#: main.dfm:2942 +msgid "Poll on request" +msgstr "Poll on request" + +#. frMain..MainMenu1..Window1..Caption +#: main.dfm:829 +msgid "Window" +msgstr "Window" + +#. frMain..MainMenu1..Window1..Hint +#: main.dfm:830 +msgid "Window Commands" +msgstr "Window Commands" + +#. frMain..MainMenu1..Help1..Caption +#. frMain..ActionList1..HelpAbout..Category +#: main.dfm:839 +#: main.dfm:930 +msgid "Help" +msgstr "Help" + +#. frMain..MainMenu1..Help1..Hint +#: main.dfm:840 +msgid "Help Commands" +msgstr "Help Commands" + +#. frMain..ActionList1..acFileNew..Caption +#: main.dfm:858 +msgid "&New" +msgstr "&New" + +#. frMain..ActionList1..acFileNew..Hint +#: main.dfm:859 +msgid "New|Create a new file" +msgstr "New|Create a new file" + +#. frMain..ActionList1..acFileOpen..Caption +#: main.dfm:866 +msgid "&Open..." +msgstr "&Open..." + +#. frMain..ActionList1..acFileOpen..Hint +#: main.dfm:867 +msgid "Open|Open an existing file" +msgstr "Open|Open an existing file" + +#. frMain..ActionList1..acFileClose..Caption +#: main.dfm:874 +msgid "&Close" +msgstr "&Close" + +#. frMain..ActionList1..acFileClose..Hint +#: main.dfm:875 +msgid "Close|Close current file" +msgstr "Close|Close current file" + +#. frMain..ActionList1..acFileSave..Caption +#: main.dfm:879 +msgid "&Save" +msgstr "&Save" + +#. frMain..ActionList1..acFileSave..Hint +#: main.dfm:880 +msgid "Save|Save current file" +msgstr "Save|Save current file" + +#. frMain..ActionList1..acFileSaveAs..Caption +#: main.dfm:887 +msgid "Save &As..." +msgstr "Save &As..." + +#. frMain..ActionList1..acFileSaveAs..Hint +#: main.dfm:888 +msgid "Save As|Save file under a new filename" +msgstr "Save As|Save file under a new filename" + +#. frMain..ActionList1..acFileExit..Caption +#: main.dfm:894 +msgid "&Exit" +msgstr "&Exit" + +#. frMain..ActionList1..acFileExit..Hint +#: main.dfm:895 +msgid "Exit|Quit program" +msgstr "Exit|Quit program" + +#. frMain..ActionList1..acEditCut..Caption +#: main.dfm:900 +msgid "&Cut" +msgstr "&Cut" + +#. frMain..ActionList1..acEditCut..Hint +#: main.dfm:901 +msgid "Cut|Cut out the marked text" +msgstr "Cut|Cut out the marked text" + +#. frMain..ActionList1..acEditCopy..Caption +#: main.dfm:908 +msgid "C&opy" +msgstr "C&opy" + +#. frMain..ActionList1..acEditCopy..Hint +#: main.dfm:909 +msgid "Copy|Copy the marked text to clipboard" +msgstr "Copy|Copy the marked text to clipboard" + +#. frMain..ActionList1..acEditPaste..Caption +#: main.dfm:916 +msgid "&Paste" +msgstr "&Paste" + +#. frMain..ActionList1..acEditPaste..Hint +#: main.dfm:917 +msgid "Paste|Paste text from clipboard" +msgstr "Paste|Paste text from clipboard" + +#. frMain..ActionList1..acWindowCascade..Caption +#: main.dfm:924 +msgid "&Cascade" +msgstr "&Cascade" + +#. frMain..ActionList1..acWindowCascade..Hint +#: main.dfm:925 +msgid "Cascade|Cascade all open windows" +msgstr "Cascade|Cascade all open windows" + +#. frMain..ActionList1..HelpAbout..Hint +#: main.dfm:932 +msgid "Info|Show info about LDDP" +msgstr "Info|Show info about LDDP" + +#. frMain..ActionList1..acFileRevert..Caption +#: main.dfm:937 +msgid "Revert" +msgstr "Revert" + +#. frMain..ActionList1..acFileRevert..Hint +#: main.dfm:938 +msgid "Revert|Reload file and lose changes" +msgstr "Revert|Reload file and lose changes" + +#. frMain..ActionList1..acFind..Caption +#: main.dfm:943 +msgid "&Find..." +msgstr "&Find..." + +#. frMain..ActionList1..acFind..Hint +#: main.dfm:944 +msgid "Find text|Find specified text" +msgstr "Find text|Find specified text" + +#. frMain..ActionList1..acReplace..Caption +#: main.dfm:951 +msgid "&Replace..." +msgstr "&Replace..." + +#. frMain..ActionList1..acReplace..Hint +#: main.dfm:952 +msgid "Find and replace text|Find and replace text" +msgstr "Find and replace text|Find and replace text" + +#. frMain..ActionList1..acErrorCheck..Caption +#: main.dfm:959 +msgid "Run Error Check" +msgstr "Run Error Check" + +#. frMain..ActionList1..acErrorCheck..Hint +#: main.dfm:960 +msgid "Check for errors|Check for errors" +msgstr "Check for errors|Check for errors" + +#. frMain..ActionList1..acOptions..Caption +#: main.dfm:967 +msgid "&Options..." +msgstr "&Options..." + +#. frMain..ActionList1..acOptions..Hint +#: main.dfm:968 +msgid "Options|Options" +msgstr "Options|Options" + +#. frMain..ActionList1..acLDView..Caption +#: main.dfm:975 +msgid "LDView" +msgstr "LDView" + +#. frMain..ActionList1..acLDView..Hint +#: main.dfm:976 +msgid "Start LDView" +msgstr "Start LDView" + +#. frMain..ActionList1..acUndo..Caption +#: main.dfm:982 +msgid "&Undo" +msgstr "&Undo" + +#. frMain..ActionList1..acUndo..Hint +#: main.dfm:983 +msgid "Undo last action" +msgstr "Undo last action" + +#. frMain..ActionList1..acRedo..Caption +#: main.dfm:990 +msgid "&Redo" +msgstr "&Redo" + +#. frMain..ActionList1..acRedo..Hint +#: main.dfm:991 +msgid "Redo last action" +msgstr "Redo last action" + +#. frMain..ActionList1..acMLCad..Caption +#: main.dfm:998 +msgid "MLCad" +msgstr "MLCad" + +#. frMain..ActionList1..acMLCad..Hint +#: main.dfm:999 +msgid "Start MLCad" +msgstr "Start MLCad" + +#. frMain..ActionList1..acincIndent..Caption +#. frMain..ActionList1..acincIndent..Hint +#: main.dfm:1005 +#: main.dfm:1006 +msgid "Increase Indent" +msgstr "Increase Indent" + +#. frMain..ActionList1..acDecIndent..Caption +#. frMain..ActionList1..acDecIndent..Hint +#: main.dfm:1012 +#: main.dfm:1013 +msgid "Decrease Indent" +msgstr "Decrease Indent" + +#. frMain..ActionList1..acInsertPartHeader..Caption +#: main.dfm:1019 +msgid "Standard Part Header" +msgstr "Standard Part Header" + +#. frMain..ActionList1..acInsertPartHeader..Hint +#: main.dfm:1020 +msgid "Insert a part header" +msgstr "Insert a part header" + +#. frMain..ActionList1..acInsertUpdateLine..Caption +#: main.dfm:1025 +msgid "Update Header" +msgstr "Update Header" + +#. frMain..ActionList1..acInsertUpdateLine..Hint +#: main.dfm:1026 +msgid "Insert an update line header" +msgstr "Insert an update line header" + +#. frMain..ActionList1..acCommentBlock..Caption +#: main.dfm:1032 +msgid "&Comment" +msgstr "&Comment" + +#. frMain..ActionList1..acCommentBlock..Hint +#: main.dfm:1033 +msgid "Comment a block with 0" +msgstr "Comment a block with 0" + +#. frMain..ActionList1..acUncommentBlock..Caption +#: main.dfm:1040 +msgid "&Uncomment" +msgstr "&Uncomment" + +#. frMain..ActionList1..acUncommentBlock..Hint +#: main.dfm:1041 +msgid "" +"Uncomment a commented block\n" +"by removing leading zeros" +msgstr "" +"Uncomment a commented block\n" +"by removing leading zeros" + +#. frMain..ActionList1..acTrimLines..Caption +#: main.dfm:1048 +msgid "Tr&im Lines" +msgstr "Tr&im Lines" + +#. frMain..ActionList1..acTrimLines..Hint +#: main.dfm:1049 +msgid "Removes blank lines from selection" +msgstr "Removes blank lines from selection" + +#. frMain..ActionList1..acHomepage..Caption +#: main.dfm:1055 +msgid "LDDP &Homepage" +msgstr "LDDP &Homepage" + +#. frMain..ActionList1..acHomepage..Hint +#: main.dfm:1056 +msgid "Go to LDDP homepage" +msgstr "Go to LDDP homepage" + +#. frMain..ActionList1..acInline..Caption +#: main.dfm:1062 +msgid "I&nline Part" +msgstr "I&nline Part" + +#. frMain..ActionList1..acInline..Hint +#: main.dfm:1063 +msgid "Inline a part" +msgstr "Inline a part" + +#. frMain..ActionList1..acReplaceColor..Caption +#: main.dfm:1075 +msgid "Replace &Color..." +msgstr "Replace &Color..." + +#. frMain..ActionList1..acReplaceColor..Hint +#: main.dfm:1076 +msgid "Search and replace LDraw colors with a color dialogue" +msgstr "Search and replace LDraw colors with a color dialogue" + +#. frMain..ActionList1..acSelectAll..Caption +#: main.dfm:1082 +msgid "&Select all" +msgstr "&Select all" + +#. frMain..ActionList1..acSelectAll..Hint +#: main.dfm:1083 +msgid "Select all" +msgstr "Select all" + +#. frMain..ActionList1..acFindNext..Caption +#: main.dfm:1089 +msgid "Find &Next" +msgstr "Find &Next" + +#. frMain..ActionList1..acFindNext..Hint +#: main.dfm:1091 +msgid "Find next..." +msgstr "Find next..." + +#. frMain..ActionList1..acL3Lab..Caption +#: main.dfm:1099 +msgid "L3Lab" +msgstr "L3Lab" + +#. frMain..ActionList1..acL3Lab..Hint +#: main.dfm:1100 +msgid "Start L3Lab" +msgstr "Start L3Lab" + +#. frMain..ActionList1..acSearchToolbar..Caption +#: main.dfm:1120 +msgid "Search && Replace" +msgstr "Search && Replace" + +#. frMain..ActionList1..acHighlightLdraw..Category +#. frMain..ActionList1..acHighlightPascal..Category +#. frMain..ActionList1..acHighlightCpp..Category +#: main.dfm:1140 +#: main.dfm:1145 +#: main.dfm:1150 +msgid "Highlighter" +msgstr "Highlighter" + +#. frMain..ActionList1..acHighlightLdraw..Caption +#: main.dfm:1141 +msgid "LDraw" +msgstr "LDraw" + +#. frMain..ActionList1..acHighlightPascal..Caption +#: main.dfm:1146 +msgid "Pascal" +msgstr "Pascal" + +#. frMain..ActionList1..acHighlightCpp..Caption +#: main.dfm:1151 +msgid "C++" +msgstr "C++" + +#. frMain..ActionList1..acMRUList..Caption +#: main.dfm:1156 +msgid "acMRUList" +msgstr "acMRUList" + +#. frMain..ActionList1..acFilePrint..Caption +#: main.dfm:1161 +msgid "&Print..." +msgstr "&Print..." + +#. frMain..ActionList1..acFilePrint..Hint +#: main.dfm:1162 +msgid "Print|Print current file" +msgstr "Print|Print current file" + +#. frMain..ActionList1..acFileCloseAll..Caption +#: main.dfm:1169 +msgid "Close A&ll" +msgstr "Close A&ll" + +#. frMain..ActionList1..acFileCloseAll..Hint +#: main.dfm:1170 +msgid "Close all|Close all open files" +msgstr "Close all|Close all open files" + +#. frMain..ActionList1..acWindowTile..Caption +#: main.dfm:1175 +msgid "Tile" +msgstr "Tile" + +#. frMain..ActionList1..acWindowTile..Hint +#: main.dfm:1176 +msgid "Tile|Tile all open windows" +msgstr "Tile|Tile all open windows" + +#. frMain..ActionList1..acReverseWinding..Caption +#: main.dfm:1182 +msgid "&Reverse Winding" +msgstr "&Reverse Winding" + +#. frMain..ActionList1..acReverseWinding..Hint +#: main.dfm:1183 +msgid "Reverse Winding" +msgstr "Reverse Winding" + +#. frMain..ActionList1..acCheckforUpdate..Caption +#: main.dfm:1192 +msgid "Check for Update..." +msgstr "Check for Update..." + +#. frMain..ActionList1..acCheckforUpdate..Hint +#: main.dfm:1193 +msgid "Check if there is a newer version available..." +msgstr "Check if there is a newer version available..." + +#. frMain..ActionList1..acBMP2LDraw..Caption +#: main.dfm:1198 +msgid "Convert Bitmap to LDraw..." +msgstr "Convert Bitmap to LDraw..." + +#. frMain..ActionList1..acBMP2LDraw..Hint +#: main.dfm:1199 +msgid "Start BMP-2-LDraw Tool" +msgstr "Start BMP-2-LDraw Tool" + +#. frMain..ActionList1..acModelTreeView..Caption +#: main.dfm:1204 +msgid "View Model Tree..." +msgstr "View Model Tree..." + +#. frMain..ActionList1..acModelTreeView..Hint +#: main.dfm:1205 +msgid "Show a Tree Model of this file including all submodels" +msgstr "Show a Tree Model of this file including all submodels" + +#. frMain..ActionList1..acECFixError..Caption +#: main.dfm:1210 +msgid "Autofix Selected Error" +msgstr "Autofix Selected Error" + +#. frMain..ActionList1..acECFixAllErrors..Caption +#: main.dfm:1216 +msgid "Autofix All Errors" +msgstr "Autofix All Errors" + +#. frMain..ActionList1..acECMarkAll..Caption +#: main.dfm:1222 +msgid "Mark All" +msgstr "Mark All" + +#. frMain..ActionList1..acECUnMarkAll..Caption +#: main.dfm:1228 +msgid "Unmark All" +msgstr "Unmark All" + +#. frMain..ActionList1..acECFixAllMarkedErrors..Caption +#: main.dfm:1234 +msgid "Autofix All Marked Errors" +msgstr "Autofix All Marked Errors" + +#. frMain..ActionList1..acECFixAllMarkedErrorsTyped..Caption +#: main.dfm:1240 +msgid "Autofix All Marked Errors of Selected Type" +msgstr "Autofix All Marked Errors of Selected Type" + +#. frMain..ActionList1..acECFixAllErrorsTyped..Caption +#: main.dfm:1246 +msgid "Autofix All Errors of Selected Type" +msgstr "Autofix All Errors of Selected Type" + +#. frMain..ActionList1..acECMarkAllTyped..Caption +#: main.dfm:1252 +msgid "Mark All of Selected Type" +msgstr "Mark All of Selected Type" + +#. frMain..ActionList1..acECUnMarkAllTyped..Caption +#: main.dfm:1258 +msgid "Unmark All of Selected Type" +msgstr "Unmark All of Selected Type" + +#. frMain..ActionList1..acLSynth..Caption +#: main.dfm:1264 +msgid "Process Through LSynth..." +msgstr "Process Through LSynth..." + +#. frMain..ActionList1..acLSynth..Hint +#: main.dfm:1265 +msgid "Run current text though LSynth" +msgstr "Run current text though LSynth" + +#. frMain..ActionList1..acBendableObject..Caption +#: main.dfm:1270 +msgid "Generate Bendable Object... " +msgstr "Generate Bendable Object... " + +#. frMain..ActionList1..acAutoRound..Caption +#: main.dfm:1276 +msgid "&Auto Round Selection" +msgstr "&Auto Round Selection" + +#. frMain..ActionList1..acSortSelection..Caption +#. fmSort..Caption +#: main.dfm:1282 +#: sorting.dfm:5 +msgid "Sort" +msgstr "Sort" + +#. frMain..ActionList1..acECCopy..Caption +#: main.dfm:1287 +msgid "Copy Error List To Clipboard" +msgstr "Copy Error List To Clipboard" + +#. frMain..ActionList1..acTriangleCombine..Caption +#: main.dfm:1293 +msgid "Combine &Triangles Into Quad" +msgstr "Combine &Triangles Into Quad" + +#. frMain..ActionList1..acTriangleCombine..Hint +#: main.dfm:1294 +msgid "Combine 2 Triangles into 1 Quad" +msgstr "Combine 2 Triangles into 1 Quad" + +#. frMain..ActionList1..acRandomizeColors..Caption +#: main.dfm:1301 +msgid "Randomize Colors in Selection" +msgstr "Randomize Colors in Selection" + +#. frMain..ActionList1..acMirrorX..Caption +#: main.dfm:1307 +msgid "X Axis" +msgstr "X Axis" + +#. frMain..ActionList1..acMirrorY..Caption +#: main.dfm:1313 +msgid "Y Axis" +msgstr "Y Axis" + +#. frMain..ActionList1..acMirrorZ..Caption +#: main.dfm:1319 +msgid "Z Axis" +msgstr "Z Axis" + +#. frMain..ActionList1..acColorReplaceShortcut..Caption +#: main.dfm:1330 +msgid "Replace Color Shortcut" +msgstr "Replace Color Shortcut" + +#. frMain..ActionList1..acSubFile..Caption +#: main.dfm:1335 +msgid "Subfile Selection" +msgstr "Subfile Selection" + +#. frMain..ActionList1..acSubFile..Hint +#: main.dfm:1336 +msgid "Move Selection to New Subfile" +msgstr "Move Selection to New Subfile" + +#. frMain..pmMemo..Insert2..Caption +#: main.dfm:2821 +msgid "&Insert" +msgstr "&Insert" + +#. frMain..pmPolling..Pollevery2sec2..Caption +#: main.dfm:2929 +msgid "Poll every 2 secs" +msgstr "Poll every 2 secs" + +#. frMain..pmPolling..Pollevery5sec2..Caption +#: main.dfm:2936 +msgid "Poll every 5 secs" +msgstr "Poll every 5 secs" + +#. frMain..OpenDialog1....Filter +#: main.dfm:3065 +msgid "LDraw-Files (*.ldr ,*.dat ,*.mpd)|*.dat;*.mpd;*.ldr|Pascal, Delphi (*.pas,*.dpr)|*.pas;*.dpr|C,C++(*.c)|*.c|All Files (*.*)|*.*" +msgstr "LDraw-Files (*.ldr ,*.dat ,*.mpd)|*.dat;*.mpd;*.ldr|Pascal, Delphi (*.pas,*.dpr)|*.pas;*.dpr|C,C++(*.c)|*.c|All Files (*.*)|*.*" + +#. frMain..OpenDialog1..Title +#: main.dfm:3068 +msgid "Choose LDraw File..." +msgstr "Choose LDraw File..." + +#. frMain..SaveDialog1....Filter +#: main.dfm:3076 +msgid "LDraw-Files (*.ldr ,*.dat ,*.mpd)|*.dat;*.mpd;*.ldr|All Files (*.*)|*.*" +msgstr "LDraw-Files (*.ldr ,*.dat ,*.mpd)|*.dat;*.mpd;*.ldr|All Files (*.*)|*.*" + +#. frMain..SaveDialog1..Title +#: main.dfm:3079 +msgid "Save File as..." +msgstr "Save File as..." + +#. frMain..SynCppSyn..DefaultFilter +#: main.dfm:3088 +msgid "C++ Files (*.c,*.cpp,*.h,*.hpp)|*.c;*.cpp;*.h;*.hpp" +msgstr "C++ Files (*.c,*.cpp,*.h,*.hpp)|*.c;*.cpp;*.h;*.hpp" + +#. frModelTreeView..Caption +#: modeltreeview.dfm:5 +msgid "Model Tree View" +msgstr "Model Tree View" + +#. frOptions..Caption +#: options.dfm:9 +msgid "Misc. Options" +msgstr "Misc. Options" + +#. frOptions..PageControl1..tsExternal..Caption +#: options.dfm:152 +msgid "&External Progs" +msgstr "&External Progs" + +#. frOptions..PageControl1..tsExternal..GroupBox1..Caption +#: options.dfm:159 +msgid "External Progam Locations" +msgstr "External Progam Locations" + +#. frOptions..PageControl1..tsExternal..GroupBox1..lbL3Lab..Caption +#: options.dfm:166 +msgid "lbL3Lab" +msgstr "lbL3Lab" + +#. frOptions..PageControl1..tsExternal..GroupBox1..Label17..Caption +#: options.dfm:179 +msgid "L3Lab (L3Lab.exe)" +msgstr "L3Lab (L3Lab.exe)" + +#. frOptions..PageControl1..tsExternal..GroupBox1..Label5..Caption +#: options.dfm:186 +msgid "LDraw (parts.lst)" +msgstr "LDraw (parts.lst)" + +#. frOptions..PageControl1..tsExternal..GroupBox1..lbMLCAD..Caption +#: options.dfm:193 +msgid "lbMLCAD" +msgstr "lbMLCAD" + +#. frOptions..PageControl1..tsExternal..GroupBox1..Label2..Caption +#: options.dfm:206 +msgid "MLCad (MLCad.exe)" +msgstr "MLCad (MLCad.exe)" + +#. frOptions..PageControl1..tsExternal..GroupBox1..lbLDVIew..Caption +#: options.dfm:213 +msgid "lbLDView" +msgstr "lbLDView" + +#. frOptions..PageControl1..tsExternal..GroupBox1..Label4..Caption +#: options.dfm:226 +msgid "LDView (LDView.exe)" +msgstr "LDView (LDView.exe)" + +#. frOptions..PageControl1..tsExternal..GroupBox1..lbLdraw..Caption +#: options.dfm:233 +msgid "lbLdraw" +msgstr "lbLdraw" + +#. frOptions..PageControl1..tsExternal..GroupBox1..lbLSynth..Caption +#: options.dfm:246 +msgid "lbLSynth" +msgstr "lbLSynth" + +#. frOptions..PageControl1..tsExternal..GroupBox1..Label12..Caption +#: options.dfm:259 +msgid "LSynth (lsynthcp.exe)" +msgstr "LSynth (lsynthcp.exe)" + +#. frOptions..PageControl1..TabSheet1..Caption +#: options.dfm:554 +msgid "User-&defined Program" +msgstr "User-&defined Program" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..Caption +#: options.dfm:562 +msgid "User Defined Program Configuration" +msgstr "User Defined Program Configuration" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..Label10..Caption +#: options.dfm:569 +msgid "Parameters:" +msgstr "Parameters:" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..Label11..Caption +#: options.dfm:589 +msgid "Path && Filename:" +msgstr "Path && Filename:" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..Label19..Caption +#: options.dfm:596 +msgid "Program Name" +msgstr "Program Name" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..rgStyle..Caption +#: options.dfm:604 +msgid "Style" +msgstr "Style" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..rgStyle....Items.Strings +#: options.dfm:607 +msgid "Normal" +msgstr "Normal" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..rgStyle....Items.Strings +#: options.dfm:608 +msgid "Hidden" +msgstr "Hidden" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..rgStyle....Items.Strings +#: options.dfm:609 +msgid "Normal, LDDP Retains Focus" +msgstr "Normal, LDDP Retains Focus" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..rgStyle....Items.Strings +#: options.dfm:610 +msgid "Maximized" +msgstr "Maximized" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..cboShowCommand..Caption +#: options.dfm:686 +msgid "Show command line before execution" +msgstr "Show command line before execution" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..cboWaitForFinish..Caption +#: options.dfm:695 +msgid "Wait until program is finished" +msgstr "Wait until program is finished" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..Memo5....Lines.Strings +#: options.dfm:716 +msgid "You can use the following shortcuts in the parameters:" +msgstr "You can use the following shortcuts in the parameters:" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..Memo5....Lines.Strings +#: options.dfm:717 +msgid "%0: Path and filename of the current file" +msgstr "%0: Path and filename of the current file" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..Memo5....Lines.Strings +#: options.dfm:718 +msgid "%1: Path only" +msgstr "%1: Path only" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..Memo5....Lines.Strings +#: options.dfm:719 +msgid "%2: Filename without extension" +msgstr "%2: Filename without extension" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..Memo5....Lines.Strings +#: options.dfm:720 +msgid "%3: Path and Filename without extension" +msgstr "%3: Path and Filename without extension" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..Memo5....Lines.Strings +#: options.dfm:721 +msgid "%4 - %7: The 8.3 notation of %0 - %3" +msgstr "%4 - %7: The 8.3 notation of %0 - %3" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..btnAddExternal..Caption +#: options.dfm:729 +msgid "Add New Program" +msgstr "Add New Program" + +#. frOptions..PageControl1..TabSheet1..GroupBox7..btnDelExternal..Caption +#: options.dfm:738 +msgid "Delete Current Program" +msgstr "Delete Current Program" + +#. frOptions..PageControl1..TabSheet2..Caption +#: options.dfm:756 +msgid "Configuration &Values" +msgstr "Configuration &Values" + +#. frOptions..PageControl1..TabSheet2..GroupBox2..Caption +#: options.dfm:764 +msgid "Error Check Options" +msgstr "Error Check Options" + +#. frOptions..PageControl1..TabSheet2..GroupBox2..Label6..Caption +#: options.dfm:771 +msgid "Collinear Points Threshold:" +msgstr "Collinear Points Threshold:" + +#. frOptions..PageControl1..TabSheet2..GroupBox2..cboDet..Caption +#: options.dfm:778 +msgid "Det Coplanarity Check Threshold:" +msgstr "Det Coplanarity Check Threshold:" + +#. frOptions..PageControl1..TabSheet2..GroupBox2..cboDist..Caption +#: options.dfm:786 +msgid "Dist Coplanarity Check Threshold:" +msgstr "Dist Coplanarity Check Threshold:" + +#. frOptions..PageControl1..TabSheet2..GroupBox2..Memo1....Lines.Strings +#: options.dfm:798 +msgid "General files (parts, subparts and some " +msgstr "General files (parts, subparts and some " + +#. frOptions..PageControl1..TabSheet2..GroupBox2..Memo1....Lines.Strings +#: options.dfm:799 +msgid "primitives) typically use a value of 0.1." +msgstr "primitives) typically use a value of 0.1." + +#. frOptions..PageControl1..TabSheet2..GroupBox2..Memo2....Lines.Strings +#: options.dfm:812 +msgid "Geometric primitives typically use 0.01. " +msgstr "Geometric primitives typically use 0.01. " + +#. frOptions..PageControl1..TabSheet2..GroupBox2..Memo2....Lines.Strings +#: options.dfm:813 +msgid "Hi-res primitives typically use 0.001." +msgstr "Hi-res primitives typically use 0.001." + +#. frOptions..PageControl1..TabSheet2..GroupBox2..Memo3....Lines.Strings +#: options.dfm:826 +msgid "Only adjust this value if you want to change " +msgstr "Only adjust this value if you want to change " + +#. frOptions..PageControl1..TabSheet2..GroupBox2..Memo3....Lines.Strings +#: options.dfm:827 +msgid "the pecent deviation used for collinear point " +msgstr "the pecent deviation used for collinear point " + +#. frOptions..PageControl1..TabSheet2..GroupBox2..Memo3....Lines.Strings +#: options.dfm:828 +msgid "determination. (L3P uses 0.0001 by defualt)" +msgstr "determination. (L3P uses 0.0001 by defualt)" + +#. frOptions..PageControl1..TabSheet2..GroupBox5..Caption +#: options.dfm:890 +msgid "Decimal Accuracy" +msgstr "Decimal Accuracy" + +#. frOptions..PageControl1..TabSheet2..GroupBox5..lbPntAcc..Caption +#: options.dfm:897 +msgid "Position Decimal Accuracy" +msgstr "Position Decimal Accuracy" + +#. frOptions..PageControl1..TabSheet2..GroupBox5..lbRotAcc..Caption +#: options.dfm:904 +msgid "Rotation Matrix Decimal Accuracy" +msgstr "Rotation Matrix Decimal Accuracy" + +#. frOptions..PageControl1..TabSheet4..Caption +#: options.dfm:937 +msgid "&User" +msgstr "&User" + +#. frOptions..PageControl1..TabSheet4..GroupBox3..Caption +#: options.dfm:945 +msgid "User Details For Macros" +msgstr "User Details For Macros" + +#. frOptions..PageControl1..TabSheet4..GroupBox3..Label16..Caption +#: options.dfm:952 +msgid "Email:" +msgstr "Email:" + +#. frOptions..PageControl1..TabSheet4..GroupBox3..Label14..Caption +#: options.dfm:959 +msgid "Signature:" +msgstr "Signature:" + +#. frOptions..PageControl1..TabSheet4..GroupBox3..Label13..Caption +#: options.dfm:966 +msgid "Full Name:" +msgstr "Full Name:" + +#. frOptions..PageControl1..TabSheet3..GroupBox4..Caption +#: options.dfm:1001 +msgid "Configure Plugins" +msgstr "Configure Plugins" + +#. frOptions..PageControl1..TabSheet3..GroupBox4..Label9....Caption +#: options.dfm:1012 +msgid "" +"Mark/Unmark a plugin to en-/disable it.\n" +"\n" +"If a plugin is disabled it won't show up in the editors popup menu (right-click in editor to bring it up)" +msgstr "" +"Mark/Unmark a plugin to en-/disable it.\n" +"\n" +"If a plugin is disabled it won't show up in the editors popup menu (right-click in editor to bring it up)" + +#. frOptions..PageControl1..TabSheet3..GroupBox4..Button1..Caption +#: options.dfm:1020 +msgid "Rescan for Plugins" +msgstr "Rescan for Plugins" + +#. frOptions..PageControl1..TabSheet5..Caption +#: options.dfm:1072 +msgid "LDraw &Highlighting" +msgstr "LDraw &Highlighting" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..Caption +#: options.dfm:1080 +msgid "Highlighter Options" +msgstr "Highlighter Options" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..Label3..Caption +#: options.dfm:1101 +msgid "&Background Color:" +msgstr "&Background Color:" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..Label1..Caption +#: options.dfm:1108 +msgid "&Foreground Color:" +msgstr "&Foreground Color:" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..lstElement....Items.Strings +#: options.dfm:1118 +msgid "Default" +msgstr "Default" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..lstElement....Items.Strings +#. frOptions..PageControl1..TabSheet7..GroupBox9..Label15..Caption +#. fmSort..Panel2..cbSort....Items.Strings +#. fmSort..Panel2..cbSort2....Items.Strings +#. fmSort..Panel2..cbSort3....Items.Strings +#: options.dfm:1119 +#: options.dfm:1333 +#: sorting.dfm:201 +#: sorting.dfm:225 +#: sorting.dfm:249 +msgid "Color" +msgstr "Color" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..lstElement....Items.Strings +#: options.dfm:1120 +msgid "Comment" +msgstr "Comment" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..lstElement....Items.Strings +#: options.dfm:1121 +msgid "Triple 1" +msgstr "Triple 1" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..lstElement....Items.Strings +#: options.dfm:1122 +msgid "Triple 2" +msgstr "Triple 2" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..lstElement....Items.Strings +#: options.dfm:1123 +msgid "Triple 3" +msgstr "Triple 3" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..lstElement....Items.Strings +#: options.dfm:1124 +msgid "Triple 4" +msgstr "Triple 4" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..lstElement....Items.Strings +#: options.dfm:1125 +msgid "Line" +msgstr "Line" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..lstElement....Items.Strings +#: options.dfm:1126 +msgid "Triangle" +msgstr "Triangle" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..lstElement....Items.Strings +#: options.dfm:1127 +msgid "Quad" +msgstr "Quad" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..lstElement....Items.Strings +#: options.dfm:1128 +msgid "Optional Line" +msgstr "Optional Line" + +#. frOptions..PageControl1..TabSheet5..GroupBox6..btnReset..Caption +#. frOptions..PageControl1..TabSheet7..GroupBox9..btnColorRestore..Caption +#: options.dfm:1169 +#: options.dfm:1392 +msgid "&Restore Defaults" +msgstr "&Restore Defaults" + +#. frOptions..PageControl1..TabSheet6..Caption +#: options.dfm:1252 +msgid "Editor &Options" +msgstr "Editor &Options" + +#. frOptions..PageControl1..TabSheet6..GroupBox8..Caption +#: options.dfm:1260 +msgid "Editor Options" +msgstr "Editor Options" + +#. frOptions..PageControl1..TabSheet6..GroupBox8..Label7..Caption +#: options.dfm:1267 +msgid "Left Margin Width" +msgstr "Left Margin Width" + +#. frOptions..PageControl1..TabSheet6..GroupBox8..Label8..Caption +#: options.dfm:1274 +msgid "Right Line Position" +msgstr "Right Line Position" + +#. frOptions..PageControl1..TabSheet6..GroupBox8..cboMarginNumbers..Caption +#: options.dfm:1281 +msgid "Show Line Numbers in Left Margin" +msgstr "Show Line Numbers in Left Margin" + +#. frOptions..PageControl1..TabSheet7..Caption +#: options.dfm:1311 +msgid "Color Bar" +msgstr "Color Bar" + +#. frOptions..PageControl1..TabSheet7..GroupBox9..Caption +#: options.dfm:1319 +msgid "Color Bar Colors" +msgstr "Color Bar Colors" + +#. frOptions..PageControl1..TabSheet7..GroupBox9..Label18..Caption +#: options.dfm:1340 +msgid "Color Number" +msgstr "Color Number" + +#. frOptions..PageControl1..TabSheet7..GroupBox9..btnColorSelect..Caption +#: options.dfm:1357 +msgid "Select Color" +msgstr "Select Color" + +#. frOptions..PageControl1..TabSheet7..GroupBox9..edColorName..EditLabel.Caption +#: options.dfm:1368 +msgid "Color Name" +msgstr "Color Name" + +#. frOptions..OpenDialog..Filter +#: options.dfm:1586 +msgid "Executibles (*.*)|*.exe" +msgstr "Executibles (*.*)|*.exe" + +#. frOptions..OpenDialog..Title +#: options.dfm:1589 +msgid "Open" +msgstr "Open" + +#. fmSort..Panel2..Label1..Caption +#: sorting.dfm:150 +msgid "Sort on" +msgstr "Sort on" + +#. fmSort..Panel2..Label2..Caption +#. fmSort..Panel2..Label3..Caption +#: sorting.dfm:157 +#: sorting.dfm:164 +msgid "Then sort on" +msgstr "Then sort on" + +#. fmSort..Panel2..r... [truncated message content] |
From: <bil...@us...> - 2008-08-27 22:18:34
|
Revision: 345 http://lddp.svn.sourceforge.net/lddp/?rev=345&view=rev Author: billthefish Date: 2008-08-27 22:18:30 +0000 (Wed, 27 Aug 2008) Log Message: ----------- Property Changed: ---------------- trunk/Custom Controls/ScintillaLDDP/ Property changes on: trunk/Custom Controls/ScintillaLDDP ___________________________________________________________________ Added: svn:ignore + *.identcache *.local *.cfg This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-08-27 22:16:49
|
Revision: 344 http://lddp.svn.sourceforge.net/lddp/?rev=344&view=rev Author: billthefish Date: 2008-08-27 22:16:47 +0000 (Wed, 27 Aug 2008) Log Message: ----------- Removed Paths: ------------- trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.cfg Deleted: trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.cfg =================================================================== --- trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.cfg 2008-08-27 22:16:23 UTC (rev 343) +++ trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.cfg 2008-08-27 22:16:47 UTC (rev 344) @@ -1,40 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --N0"C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build\DCU" --LE"C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build" --LN"C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build\DCU" --Z --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-08-27 22:16:25
|
Revision: 343 http://lddp.svn.sourceforge.net/lddp/?rev=343&view=rev Author: billthefish Date: 2008-08-27 22:16:23 +0000 (Wed, 27 Aug 2008) Log Message: ----------- Removed Paths: ------------- trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.bdsproj.local trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.identcache Deleted: trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.bdsproj.local =================================================================== --- trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.bdsproj.local 2008-08-27 22:15:46 UTC (rev 342) +++ trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.bdsproj.local 2008-08-27 22:16:23 UTC (rev 343) @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<BorlandProject> - <Transactions> - <Transaction>2008/07/29 19:25:56.952.bdsproj,C:\Documents and Settings\Orion\My Documents\Borland Studio Projects\Package1.bdsproj=C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp-Scintilla\ScintillaLDDP.bdsproj</Transaction> - <Transaction>2008/08/16 09:40:51.593.pas,C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\SciSearchReplaceLDDP.pas=</Transaction> - </Transactions> -</BorlandProject> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-08-27 22:15:49
|
Revision: 342 http://lddp.svn.sourceforge.net/lddp/?rev=342&view=rev Author: billthefish Date: 2008-08-27 22:15:46 +0000 (Wed, 27 Aug 2008) Log Message: ----------- Removed Paths: ------------- trunk/lddp/lddpCLX.zip trunk/lddp/metamenu.ini Deleted: trunk/lddp/metamenu.ini =================================================================== --- trunk/lddp/metamenu.ini 2008-08-27 22:14:33 UTC (rev 341) +++ trunk/lddp/metamenu.ini 2008-08-27 22:15:46 UTC (rev 342) @@ -1,214 +0,0 @@ -;Usage: -; [<Parent Group>] -; <Menu Text>=<Insert Text> -; -; Where: -; <Parent Group> is the name of the Parent Group Menu -; a parent group can have any number of <Menu Text>=<Insert Text> -; statements -; -; <Menu Text> is the text that appear on the menu item -; -; <Insert Text> is the text acually inserted minus the '0 ' -; -; For a spacer line enter "-=-" -; - -[BFC Statements] -CERTIFY CW=BFC CERTIFY CW -CERTIFY CCW=BFC CERTIFY CCW -INVERTNEXT=BFC INVERTNEXT -CLIP=BFC CLIP -NOCLIP=BFC NOCLIP - -[LSynth Statements] -RIBBED_HOSE=SYNTH BEGIN RIBBED_HOSE 16 -FLEXIBLE_HOSE=SYNTH BEGIN FLEXIBLE_HOSE 16 -FLEX_CABLE=SYNTH BEGIN FLEX_CABLE 16 -RIGID_HOSE=SYNTH BEGIN RIGID_HOSE 16 -ELECTRIC_CABLE=SYNTH BEGIN ELECTRIC_CABLE 16 -PNEUMATIC_HOSE=SYNTH BEGIN PNEUMATIC_HOSE 16 -FLEXIBLE_AXLE=SYNTH BEGIN FLEXIBLE_AXLE 16 -FIBER_OPTIC_CABLE=SYNTH BEGIN FIBER_OPTIC_CABLE 16 -RUBBER_BAND=SYNTH BEGIN RUBBER_BAND 16 -CHAIN=SYNTH BEGIN CHAIN 16 -PLASTIC_TREAD=SYNTH BEGIN PLASTIC_TREAD 16 -RUBBER_TREAD=SYNTH BEGIN RUBBER_TREAD 16 --=- -INSIDE=SYNTH INSIDE -OUTSIDE=SYNTH OUTSIDE -CROSS=SYNTH CROSS -SHOW=SYNTH SHOW -HIDE=SYNTH HIDE --=- -SYNTH END=SYNTH END - -[LPub Statements] -LPUB PLI BEGIN SUB=LPUB PLI BEGIN SUB -LPUB PLI BEGIN IGN=LPUB PLI BEGIN IGN -LPUB PLI END=LPUB PLI END --=- -BI BEGIN GRAYED=BI BEGIN GRAYED -BI END=BI END -LPUB GROUP REMOVE=LPUB GROUP REMOVE - -[LPub Page Statements] -SIZE=LPUB PAGE SIZE -PLI (YES|NO)=LPUB PAGE PLI (YES|NO) --=- -BACKGROUND TRANS=LPUB PAGE BACKGROUND TRANS -BACKGROUND color=LPUB PAGE BACKGROUND color -BACKGROUND [STRETCH] png_image_name=LPUB PAGE BACKGROUND [STRETCH] png_image_name --=- -BORDER SQUARE=LPUB PAGE BORDER SQUARE -BORDER ROUND=LPUB PAGE BORDER ROUND -BORDER MARGINS x_margin y_margin=LPUB PAGE BORDER MARGINS x_margin y_margin --=- -NUMBER MARGINS x_margin y_margin=LPUB PAGE NUMBER MARGINS x_margin y_margin - -[LPub Assembly Statements] -MARGINS x_margin y_margin=LPUB ASSEM MARGINS x_margin y_margin --=- -PLACEMENT corner PAGE=LPUB ASSEM PLACEMENT corner PAGE -PLACEMENT edge PAGE=LPUB ASSEM PLACEMENT edge PAGE -PLACEMENT CENTER PAGE=LPUB ASSEM PLACEMENT CENTER PAGE -PLACEMENT OFFSET x_offset y_offset=LPUB ASSEM PLACEMENT OFFSET x_offset y_offset - -[LPub PLI Layout Statements] -PART MARGINS x y=LPUB PLI PART MARGINS x y -MARGINS x y=LPUB PLI MARGINS x y --=- -PLACEMENT CENTER PAGE=LPUB PLI PLACEMENT CENTER PAGE -PLACEMENT edge PAGE=LPUB PLI PLACEMENT edge PAGE -PLACEMENT CENTER ASSEM INSIDE=LPUB PLI PLACEMENT CENTER ASSEM INSIDE -PLACEMENT corner ASSEM INSIDE=LPUB PLI PLACEMENT corner ASSEM INSIDE -PLACEMENT edge ASSEM INSIDE=LPUB PLI PLACEMENT edge ASSEM INSIDE -PLACEMENT corner ASSEM OUTSIDE=LPUB PLI PLACEMENT corner ASSEM OUTSIDE -PLACEMENT edge justification ASSEM OUTSIDE=LPUB PLI PLACEMENT edge justification ASSEM OUTSIDE -PLACEMENT OFFSET x_offset y_offset=LPUB PLI PLACEMENT OFFSET x_offset y_offset --=- -BORDER SQUARE color thickness=LPUB PLI BORDER SQUARE color thickness -BORDER ROUND color thickness radius=LPUB PLI BORDER ROUND color thickness radius -BORDERLESS=LPUB PLI BORDERLESS -BORDER MARGINS x y=LPUB PLI BORDER MARGINS x y --=- -BACKGROUND TRANS=LPUB PLI BACKGROUND TRANS -BACKGROUND color=LPUB PLI BACKGROUND color -BACKGROUND [STRETCH] fname=LPUB PLI BACKGROUND [STRETCH] fname --=- -CONSTRAIN AREA=LPUB PLI CONSTRAIN AREA -CONSTRAIN SQUARE=LPUB PLI CONSTRAIN SQUARE -CONSTRAIN WIDTH width=LPUB PLI CONSTRAIN WIDTH width -CONSTRAIN HEIGHT height=LPUB PLI CONSTRAIN HEIGHT height -CONSTRAIN COLS cols=LPUB PLI CONSTRAIN COLS cols - -[LPub Callout Statements] -MARGINS x y=LPUB CALLOUT MARGINS x y= -HORIZONTAL=LPUB CALLOUT HORIZONTAL -VERTICAL=LPUB CALLOUT VERTICAL -SEPARATOR seperator_color separator_width=LPUB CALLOUT SEPARATOR seperator_color separator_width --=- -BORDER SQUARE color thickness=LPUB CALLOUT BORDER SQUARE color thickness -BORDER ROUND color thickness radius=LPUB CALLOUT BORDER ROUND color thickness radius -BORDER MARGINS x y=LPUB CALLOUT BORDER MARGINS x y -BORDERLESS=LPUB CALLOUT BORDERLESS --=- -BACKGROUND TRANS=LPUB CALLOUT BACKGROUND TRANS -BACKGROUND color=LPUB CALLOUT BACKGROUND color -BACKGROUND [STRETCH] fname=LPUB CALLOUT BACKGROUND [STRETCH] fname --=- -BEGIN=LPUB CALLOUT BEGIN=LPUB CALLOUT BEGIN=LPUB CALLOUT BEGIN -END=LPUB CALLOUT END=LPUB CALLOUT END=LPUB CALLOUT END -DIVIDER=LPUB CALLOUT DIVIDER --=- -INSTANCE_COUNT MARGINS x y=LPUB CALLOUT INSTANCE_COUNT MARGINS x y -INSTANCE_COUNT PLACEMENT corner CALLOUT preposition=LPUB CALLOUT INSTANCE_COUNT PLACEMENT corner CALLOUT preposition -INSTANCE_COUNT PLACEMENT edge CALLOUT INSIDE=LPUB CALLOUT INSTANCE_COUNT PLACEMENT edge CALLOUT INSIDE -INSTANCE_COUNT PLACEMENT horiz justification CALLOUT OUTSIDE=LPUB CALLOUT INSTANCE_COUNT PLACEMENT horiz justification CALLOUT OUTSIDE -INSTANCE_COUNT PLACEMENT vert justification CALLOUT OUTSIDE=LPUB CALLOUT INSTANCE_COUNT PLACEMENT vert justification CALLOUT OUTSIDE --=- -PLACEMENT CENTER PAGE=LPUB CALLOUT PLACEMENT CENTER PAGE -PLACEMENT corner PAGE=LPUB CALLOUT PLACEMENT corner PAGE -PLACEMENT edge PAGE=LPUB CALLOUT PLACEMENT edge PAGE -PLACEMENT CENTER ASSEM INSIDE=LPUB CALLOUT PLACEMENT CENTER ASSEM INSIDE -PLACEMENT corner ASSEM INSIDE=LPUB CALLOUT PLACEMENT corner ASSEM INSIDE -PLACEMENT edge ASSEM INSIDE=LPUB CALLOUT PLACEMENT edge ASSEM INSIDE -PLACEMENT corner ASSEM OUTSIDE=LPUB CALLOUT PLACEMENT corner ASSEM OUTSIDE -PLACEMENT edge justification ASSEM OUTSIDE=LPUB CALLOUT PLACEMENT edge justification ASSEM OUTSIDE -PLACEMENT OFFSET x_offset y_offset=LPUB CALLOUT PLACEMENT OFFSET x_offset y_offset --=- -POINTER BASE base=LPUB CALLOUT POINTER BASE base -POINTER placement loc assem_x assem_y= - -[LPub Step Number Statements] -PLACEMENT CENTER PAGE=LPUB STEP_NUMBER PLACEMENT CENTER PAGE -PLACEMENT corner PAGE=LPUB STEP_NUMBER PLACEMENT corner PAGE -PLACEMENT edge PAGE=LPUB STEP_NUMBER PLACEMENT edge PAGE -PLACEMENT CENTER ASSEM INSIDE=LPUB STEP_NUMBER PLACEMENT CENTER ASSEM INSIDE -PLACEMENT corner ASSEM INSIDE=LPUB STEP_NUMBER PLACEMENT corner ASSEM INSIDE -PLACEMENT edge ASSEM INSIDE=LPUB STEP_NUMBER PLACEMENT edge ASSEM INSIDE -PLACEMENT corner PLI=LPUB STEP_NUMBER PLACEMENT corner PLI -PLACEMENT edge justification PLI=LPUB STEP_NUMBER PLACEMENT edge justification PLI -PLACEMENT corner ASSEM OUTSIDE=LPUB STEP_NUMBER PLACEMENT corner ASSEM OUTSIDE -PLACEMENT edge justification ASSEM OUTSIDE=LPUB STEP_NUMBER PLACEMENT edge justification ASSEM OUTSIDE - -[LPub Multi-Step Number Statements] -VERTICAL=LPUB MULTI_STEP VERTICAL -HORIZONTAL=LPUB MULTI_STEP HORIZONTAL -MARGINS x y=LPUB MULTI_STEP MARGINS x y -SEPARATOR seperator_color separator_width=LPUB MULTI_STEP SEPARATOR seperator_color separator_width -BEGIN=LPUB MULTI_STEP BEGIN -DIVIDER=LPUB MULTI_STEP DIVIDER -END=LPUB MULTI_STEP END - -[LPub Bill Of Material Statements] -PART MARGINS x y=LPUB BOM PART MARGINS x y -MARGINS x y=LPUB BOM MARGINS x y -BEGIN IGN=LPUB BOM BEGIN IGN -END=LPUB BOM END --=- -BORDER SQUARE color thickness=LPUB BOM BORDER SQUARE color thickness -BORDER ROUND color thickness radius=LPUB BOM BORDER ROUND color thickness radius -BORDERLESS=LPUB BOM BORDERLESS -BORDER MARGINS x y=LPUB BOM BORDER MARGINS x y --=- -BACKGROUND TRANS=LPUB BOM BACKGROUND TRANS -BACKGROUND color=LPUB BOM BACKGROUND color -BACKGROUND [STRETCH] fname=LPUB BOM BACKGROUND [STRETCH] fname --=- -CONSTRAIN AREA=LPUB BOM CONSTRAIN AREA -CONSTRAIN SQUARE=LPUB BOM CONSTRAIN SQUARE -CONSTRAIN WIDTH width=LPUB BOM CONSTRAIN WIDTH width -CONSTRAIN HEIGHT height=LPUB BOM CONSTRAIN HEIGHT height -CONSTRAIN COLS cols=LPUB BOM CONSTRAIN COLS cols --=- -SORT WIDTH=LPUB BOM SORT WIDTH -PACK SUBS=LPUB BOM PACK SUBS - -[ldconfig Statements] -!COLOUR=!COLOUR name CODE x VALUE v EDGE e [ALPHA a] [LUMINANCE l] [ CHROME | PEARLESCENT | RUBBER | MATTE_METALLIC | METAL | MATERIAL <params> ] - -[MLCAD Statements] -ROTSTEP REL=ROTSTEP <x-angle> <y-angle> <z-angle> REL -ROTSTEP ADD=ROTSTEP <x-angle> <y-angle> <z-angle> ADD -ROTSTEP ABS=ROTSTEP <x-angle> <y-angle> <z-angle> ABS -ROTSTEP END=ROTSTEP END -BUFEXCHG STORE = BUFEXCHG <A-Z> STORE -BUFEXCHG RETRIEVE = BUFEXCHG <A-Z> RETRIEVE -GHOST=GHOST - -[LDRAW Statements] -STEP=STEP -WRITE=WRITE -PRINT=PRINT -CLEAR=CLEAR -PAUSE=PAUSE -SAVE=SAVE - -[L3P Statements] -L3P IFPOV=L3P IFPOV -L3P IFNOTPOV=L3P IFNOTPOV -L3P ELSEPOV=L3P ELSEPOV -L3P ENDPOV=L3P ENDPOV - - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-08-27 22:14:35
|
Revision: 341 http://lddp.svn.sourceforge.net/lddp/?rev=341&view=rev Author: billthefish Date: 2008-08-27 22:14:33 +0000 (Wed, 27 Aug 2008) Log Message: ----------- Removed Paths: ------------- trunk/Custom Controls/ScintillaLDDP/__history/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-08-27 22:13:48
|
Revision: 340 http://lddp.svn.sourceforge.net/lddp/?rev=340&view=rev Author: billthefish Date: 2008-08-27 22:13:44 +0000 (Wed, 27 Aug 2008) Log Message: ----------- Modified Paths: -------------- trunk/DAT Tools/DATBase.pas trunk/DAT Tools/DATCheck.pas trunk/DAT Tools/DATErrorFix.pas trunk/DAT Tools/DATModel.pas trunk/DAT Tools/DATUtils.pas trunk/plugins/delphi/EditorPluginSample.cfg trunk/plugins/delphi/EditorPluginSample.dpr Added Paths: ----------- trunk/Custom Controls/ trunk/Custom Controls/ScintillaLDDP/ trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.bdsproj trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.bdsproj.local trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.cfg trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.dpk trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.identcache trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.res trunk/Custom Controls/ScintillaLDDP/__history/ trunk/Projects/ trunk/Projects/LDDP.bdsgroup trunk/plugins/delphi/EditorPluginSample.bdsproj Property Changed: ---------------- trunk/plugins/delphi/ Added: trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas =================================================================== --- trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas (rev 0) +++ trunk/Custom Controls/ScintillaLDDP/SciScintillaLDDP.pas 2008-08-27 22:13:44 UTC (rev 340) @@ -0,0 +1,178 @@ +unit SciScintillaLDDP; + +interface + +uses + SysUtils, Classes, Controls, SciScintillaBase, SciScintillaMemo, SciScintilla, DATBase; + +type + TScintillaLDDP = class(TScintilla) + private + FPntAcc, FRotAcc: Byte; + FOnlyRoundDuringAutoRound: Boolean; + + protected + { Protected declarations } + public + constructor Create(AOwner: TComponent); override; + function CaretX: Integer; + function CaretY: Integer; + procedure ExpandSelection(out startln, endln: Integer); + procedure SelectLine(Line: Integer); + procedure SelectLines(StartLine, EndLine: Integer); + procedure MirrorSelection(axis: TDATAxis); + procedure AutoRound; + procedure SetLineColor(line, color: Integer); + function GetLineColor(line: Integer): Integer; + published + property PositionDecimalPlaces: Byte read FPntAcc write FPntAcc default 15; + property RotationDecimalPlaces: Byte read FRotAcc write FRotAcc default 15; + property OnlyRoundDuringAutoRound: Boolean read FOnlyRoundDuringAutoRound write FOnlyRoundDuringAutoRound default false; + end; + +procedure Register; + +implementation + +uses + DATModel, DATUtils, SciStreamDefault; + +procedure TScintillaLDDP.SelectLine(Line: Integer); +begin + SelectLines(Line, Line); +end; + +procedure TScintillaLDDP.SelectLines(StartLine, EndLine: Integer); +begin + SetCurrentPos(GetLineEndPosition(endline)); + SetAnchor(PositionFromLine(startline)); +end; + +procedure TScintillaLDDP.ExpandSelection(out startln, endln: Integer); +{------- +Description: If the selected text begins and/or ends in the middle of a line +ExpandSelection will move the beginning of the selected text to the beginning of +the line and the end of the selected text to the end of the line +--------} +var + startline, endline: Integer; + +begin + startline := LineFromPosition(SelStart); + + if SelLength > 0 then + endline := LineFromPosition(SelStart + SelLength - 1) + else + endline := startline; + + SelectLines(startline, endline); + + startln := startline; + endln := endline; +end; + +function TScintillaLDDP.CaretX: Integer; +begin + Result := GetColumn(GetCurrentPos) + 1; +end; + +function TScintillaLDDP.CaretY: Integer; +begin + Result := LineFromPosition(GetCurrentPos) + 1; +end; + +constructor TScintillaLDDP.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + StreamClass := TSciStreamDefault; +end; + +procedure TScintillaLDDP.MirrorSelection(axis: TDATAxis); + +var + DModel: TDATModel; + rows, i, j, startline, endline: integer; + +begin + ExpandSelection(startline, endline); + + if FOnlyRoundDuringAutoRound then + DModel := CreateDATModel(PositionDecimalPlaces, RotationDecimalPlaces) + else + DModel := CreateDATModel(15, 15); + + DModel.ModelText := SelText; + + for i := 0 to DModel.Count - 1 do + if DModel[i] is TDATElement then + begin + case DModel[i].LineType of + 1,3: rows := 3; + 2: rows := 2; + 4,5: rows := 4; + else + rows := 0; + end; + + if rows > 0 then + for j := 1 to rows do + (DModel[i] as TDATElement).MatrixVals[j, Ord(axis)] := -(DModel[i] as TDATElement).MatrixVals[j, Ord(axis)]; + end; + SelText := DModel.ModelText; + SelectLines(startline, endline); + DModel.Free; +end; + +procedure TScintillaLDDP.AutoRound; +var + DModel: TDATModel; + startline,endline: Integer; + +begin + ExpandSelection(startline,endline); + DModel := CreateDATModel(PositionDecimalPlaces, RotationDecimalPlaces); + DModel.ModelText := SelText; + SelText := DModel.ModelText; + SelectLines(startline, endline); +end; + +procedure TScintillaLDDP.SetLineColor(line, color: Integer); + +var + DLine: TDATType; + +begin + if color >= 0 then + begin + DLine := StrToDAT(Lines[line]); + if DLine is TDATElement then + begin + (DLine as TDATElement).Color := color; + (DLine as TDATElement).PositionDecimalPlaces := PositionDecimalPlaces; + (DLine as TDATElement).RotationDecimalPlaces := RotationDecimalPlaces; + Lines[line] := (DLine as TDATElement).DATString; + end; + DLine.Free; + end; +end; + +function TScintillaLDDP.GetLineColor(line: Integer): Integer; + +var + DLine: TDATType; + +begin + DLine := StrToDAT(Lines[line]); + if DLine is TDATElement then + Result := (DLine as TDATElement).Color + else + Result := -1; + DLine.Free; +end; + +procedure Register; +begin + RegisterComponents('Scintilla', [TScintillaLDDP]); +end; + +end. Added: trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.bdsproj =================================================================== --- trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.bdsproj (rev 0) +++ trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.bdsproj 2008-08-27 22:13:44 UTC (rev 340) @@ -0,0 +1,175 @@ +<?xml version="1.0" encoding="utf-8"?> +<BorlandProject> + <PersonalityInfo> + <Option> + <Option Name="Personality">Delphi.Personality</Option> + <Option Name="ProjectType"></Option> + <Option Name="Version">1.0</Option> + <Option Name="GUID">{0DCA340D-8E5A-40C8-8AA1-E53493B1D698}</Option> + </Option> + </PersonalityInfo> + <Delphi.Personality> + <Source> + <Source Name="MainSource">ScintillaLDDP.dpk</Source> + </Source> + <FileVersion> + <FileVersion Name="Version">7.0</FileVersion> + </FileVersion> + <Compiler> + <Compiler Name="A">8</Compiler> + <Compiler Name="B">0</Compiler> + <Compiler Name="C">1</Compiler> + <Compiler Name="D">1</Compiler> + <Compiler Name="E">0</Compiler> + <Compiler Name="F">0</Compiler> + <Compiler Name="G">1</Compiler> + <Compiler Name="H">1</Compiler> + <Compiler Name="I">1</Compiler> + <Compiler Name="J">0</Compiler> + <Compiler Name="K">0</Compiler> + <Compiler Name="L">1</Compiler> + <Compiler Name="M">0</Compiler> + <Compiler Name="N">1</Compiler> + <Compiler Name="O">1</Compiler> + <Compiler Name="P">1</Compiler> + <Compiler Name="Q">0</Compiler> + <Compiler Name="R">0</Compiler> + <Compiler Name="S">0</Compiler> + <Compiler Name="T">0</Compiler> + <Compiler Name="U">0</Compiler> + <Compiler Name="V">1</Compiler> + <Compiler Name="W">0</Compiler> + <Compiler Name="X">1</Compiler> + <Compiler Name="Y">1</Compiler> + <Compiler Name="Z">1</Compiler> + <Compiler Name="ShowHints">True</Compiler> + <Compiler Name="ShowWarnings">True</Compiler> + <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> + <Compiler Name="NamespacePrefix"></Compiler> + <Compiler Name="GenerateDocumentation">False</Compiler> + <Compiler Name="DefaultNamespace"></Compiler> + <Compiler Name="SymbolDeprecated">True</Compiler> + <Compiler Name="SymbolLibrary">True</Compiler> + <Compiler Name="SymbolPlatform">True</Compiler> + <Compiler Name="SymbolExperimental">True</Compiler> + <Compiler Name="UnitLibrary">True</Compiler> + <Compiler Name="UnitPlatform">True</Compiler> + <Compiler Name="UnitDeprecated">True</Compiler> + <Compiler Name="UnitExperimental">True</Compiler> + <Compiler Name="HResultCompat">True</Compiler> + <Compiler Name="HidingMember">True</Compiler> + <Compiler Name="HiddenVirtual">True</Compiler> + <Compiler Name="Garbage">True</Compiler> + <Compiler Name="BoundsError">True</Compiler> + <Compiler Name="ZeroNilCompat">True</Compiler> + <Compiler Name="StringConstTruncated">True</Compiler> + <Compiler Name="ForLoopVarVarPar">True</Compiler> + <Compiler Name="TypedConstVarPar">True</Compiler> + <Compiler Name="AsgToTypedConst">True</Compiler> + <Compiler Name="CaseLabelRange">True</Compiler> + <Compiler Name="ForVariable">True</Compiler> + <Compiler Name="ConstructingAbstract">True</Compiler> + <Compiler Name="ComparisonFalse">True</Compiler> + <Compiler Name="ComparisonTrue">True</Compiler> + <Compiler Name="ComparingSignedUnsigned">True</Compiler> + <Compiler Name="CombiningSignedUnsigned">True</Compiler> + <Compiler Name="UnsupportedConstruct">True</Compiler> + <Compiler Name="FileOpen">True</Compiler> + <Compiler Name="FileOpenUnitSrc">True</Compiler> + <Compiler Name="BadGlobalSymbol">True</Compiler> + <Compiler Name="DuplicateConstructorDestructor">True</Compiler> + <Compiler Name="InvalidDirective">True</Compiler> + <Compiler Name="PackageNoLink">True</Compiler> + <Compiler Name="PackageThreadVar">True</Compiler> + <Compiler Name="ImplicitImport">True</Compiler> + <Compiler Name="HPPEMITIgnored">True</Compiler> + <Compiler Name="NoRetVal">True</Compiler> + <Compiler Name="UseBeforeDef">True</Compiler> + <Compiler Name="ForLoopVarUndef">True</Compiler> + <Compiler Name="UnitNameMismatch">True</Compiler> + <Compiler Name="NoCFGFileFound">True</Compiler> + <Compiler Name="ImplicitVariants">True</Compiler> + <Compiler Name="UnicodeToLocale">True</Compiler> + <Compiler Name="LocaleToUnicode">True</Compiler> + <Compiler Name="ImagebaseMultiple">True</Compiler> + <Compiler Name="SuspiciousTypecast">True</Compiler> + <Compiler Name="PrivatePropAccessor">True</Compiler> + <Compiler Name="UnsafeType">False</Compiler> + <Compiler Name="UnsafeCode">False</Compiler> + <Compiler Name="UnsafeCast">False</Compiler> + <Compiler Name="OptionTruncated">True</Compiler> + <Compiler Name="WideCharReduced">True</Compiler> + <Compiler Name="DuplicatesIgnored">True</Compiler> + <Compiler Name="UnitInitSeq">True</Compiler> + <Compiler Name="LocalPInvoke">True</Compiler> + <Compiler Name="MessageDirective">True</Compiler> + <Compiler Name="CodePage"></Compiler> + </Compiler> + <Linker> + <Linker Name="MapFile">0</Linker> + <Linker Name="OutputObjs">0</Linker> + <Linker Name="GenerateHpps">False</Linker> + <Linker Name="ConsoleApp">1</Linker> + <Linker Name="DebugInfo">False</Linker> + <Linker Name="RemoteSymbols">False</Linker> + <Linker Name="GenerateDRC">False</Linker> + <Linker Name="MinStackSize">16384</Linker> + <Linker Name="MaxStackSize">1048576</Linker> + <Linker Name="ImageBase">4194304</Linker> + <Linker Name="ExeDescription"></Linker> + </Linker> + <Directories> + <Directories Name="OutputDir"></Directories> + <Directories Name="UnitOutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build\DCU</Directories> + <Directories Name="PackageDLLOutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build</Directories> + <Directories Name="PackageDCPOutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build\DCU</Directories> + <Directories Name="SearchPath"></Directories> + <Directories Name="Packages"></Directories> + <Directories Name="Conditionals"></Directories> + <Directories Name="DebugSourceDirs"></Directories> + <Directories Name="UsePackages">False</Directories> + </Directories> + <Parameters> + <Parameters Name="RunParams"></Parameters> + <Parameters Name="HostApplication"></Parameters> + <Parameters Name="Launcher"></Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="DebugCWD"></Parameters> + <Parameters Name="Debug Symbols Search Path"></Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <Language> + <Language Name="ActiveLang"></Language> + <Language Name="ProjectLang">$00000000</Language> + <Language Name="RootDir"></Language> + </Language> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">1</VersionInfo> + <VersionInfo Name="MinorVer">0</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1033</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"></VersionInfoKeys> + <VersionInfoKeys Name="FileDescription"></VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"></VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> + <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> + <VersionInfoKeys Name="ProductName"></VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"></VersionInfoKeys> + </VersionInfoKeys> + </Delphi.Personality> +</BorlandProject> Added: trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.bdsproj.local =================================================================== --- trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.bdsproj.local (rev 0) +++ trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.bdsproj.local 2008-08-27 22:13:44 UTC (rev 340) @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<BorlandProject> + <Transactions> + <Transaction>2008/07/29 19:25:56.952.bdsproj,C:\Documents and Settings\Orion\My Documents\Borland Studio Projects\Package1.bdsproj=C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp-Scintilla\ScintillaLDDP.bdsproj</Transaction> + <Transaction>2008/08/16 09:40:51.593.pas,C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\SciSearchReplaceLDDP.pas=</Transaction> + </Transactions> +</BorlandProject> Added: trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.cfg =================================================================== --- trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.cfg (rev 0) +++ trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.cfg 2008-08-27 22:13:44 UTC (rev 340) @@ -0,0 +1,40 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N0"C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build\DCU" +-LE"C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build" +-LN"C:\Documents and Settings\Orion\My Documents\Lego\LDDP\Current Build\DCU" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST Added: trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.dpk =================================================================== --- trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.dpk (rev 0) +++ trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.dpk 2008-08-27 22:13:44 UTC (rev 340) @@ -0,0 +1,35 @@ +package ScintillaLDDP; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + Scit, + vcl; + +contains + SciScintillaLDDP in 'SciScintillaLDDP.pas'; + +end. Property changes on: trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.identcache ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/Custom Controls/ScintillaLDDP/ScintillaLDDP.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/DAT Tools/DATBase.pas =================================================================== --- trunk/DAT Tools/DATBase.pas 2008-08-27 22:12:41 UTC (rev 339) +++ trunk/DAT Tools/DATBase.pas 2008-08-27 22:13:44 UTC (rev 340) @@ -27,20 +27,31 @@ Contnrs; type +// EInvalidDATLine = class(Exception); + (* These types allow passing of fixed arrays between procedures instead of varible length arrays *) TDATPoint = array[1..3] of Extended; TDATMatrix = array[1..4,1..4] of Extended; TDATRotationMatrix = array[1..3,1..3] of Extended; + // For operations involving axis TDATAxis = (axisX = 1, axisY = 2, axisZ = 3); + + // List of DAT file types, the first 5 are official + TDATFileType = (ftPart, ftSubpart, ftPrimitive, ft48Primitve, + ftShortcut, ftModel, ftSubmodel); + + //License Type + TDATLicenseType = (ltCA, ltNonCA); + (* The general structure of the DAT Classes is: - TDATType------------- - / \ \ - / \ \ - TDATComment-- \ TDATColor + TDATType--- + / \ \ + / \ TDATInvalidLine + TDATComment-- \ / TDATElement TDATBlankLine---- / \ / \ @@ -73,6 +84,8 @@ property DATString: string read GetDATString write ProcessDATLine; end; + TDATInvalidLine = TDATType; + (* Represents LineType 0 *) TDATComment=class(TDATType) private @@ -334,6 +347,8 @@ implementation +{TDATType} + constructor TDATType.Create; begin @@ -351,6 +366,8 @@ strLine := strText; end; +{TDATComment} + procedure TDATComment.ProcessDATLine(strText:string); begin strText := Trim(strText); @@ -373,12 +390,16 @@ result := '0 ' + strComment; end; +{TDATBlankLine} + function TDATBlankLine.GetDATString: string; begin Result := ''; end; +{TDATElement} + constructor TDATElement.Create; begin inherited Create; Modified: trunk/DAT Tools/DATCheck.pas =================================================================== --- trunk/DAT Tools/DATCheck.pas 2008-08-27 22:12:41 UTC (rev 339) +++ trunk/DAT Tools/DATCheck.pas 2008-08-27 22:13:44 UTC (rev 340) @@ -42,18 +42,18 @@ function SubPartIsXZPrimitive(const Subp: string): Boolean; begin - Result := (pos('disc',Subp) > 0) or - (pos('ndis',Subp) > 0) or - (pos('rect',Subp) > 0) or - (pos('rin',Subp) > 0) or - (pos('axleend',Subp) > 0) or - (pos('axlehol2',Subp) > 0) or - (pos('axlehol3',Subp) > 0) or - (pos('axlehol9',Subp) > 0) or - (pos('axleho10',Subp) > 0) or - (pos('edge',Subp) > 0) or - (pos('chrd',Subp) > 0) or - (pos('tang',Subp) > 0); + Result := (Pos('disc', Subp) > 0) or + (Pos('ndis', Subp) > 0) or + (Pos('rect', Subp) > 0) or + (Pos('rin', Subp) > 0) or + (Pos('axleend', Subp) > 0) or + (Pos('axlehol2', Subp) > 0) or + (Pos('axlehol3', Subp) > 0) or + (Pos('axlehol9', Subp) > 0) or + (Pos('axleho10', Subp) > 0) or + (Pos('edge', Subp) > 0) or + (Pos('chrd', Subp) > 0) or + (Pos('tang', Subp) > 0); end; function CheckLinearPoints(const p1,p2,p3: TDATPoint): Extended; @@ -282,6 +282,27 @@ B := PointDotProduct(PointCrossProduct(v12, v01), PointCrossProduct(v01, v13)) > 0; C := -PointDotProduct(PointCrossProduct(v02, v12), PointCrossProduct(v12, v23)) > 0; + if A then + begin + if (B and (not C)) or (C and (not B)) then + Result := 'Concave Quad, split on 02' + end + else + if B then + if C then + Result := 'Concave Quad, split on 13' + else + Result := 'Bad vertex sequence, 0312 used' + else + if C then + Result := 'Bad vertex sequence, 0132 used' + else + Result := 'Concave Quad, split on 13'; + + if Result <> '' then + Exit; + +(* if (not A) and (not B) and C then begin Result := 'Bad vertex sequence, 0132 used'; @@ -294,6 +315,24 @@ Exit; end; + if (not A) and B and C then + begin + Result := 'Concave Quad'; + Exit; + end; + + if (not A) and (not B) and (not C) then + begin + Result := 'Concave Quad'; + Exit; + end; + + if A and (not B) and (not C) then + begin + Result := 'Concave Quad'; + Exit; + end; + *) if (DetThreshold > 0) then begin det := CoPlanarCheckDet(Matrix); Modified: trunk/DAT Tools/DATErrorFix.pas =================================================================== --- trunk/DAT Tools/DATErrorFix.pas 2008-08-27 22:12:41 UTC (rev 339) +++ trunk/DAT Tools/DATErrorFix.pas 2008-08-27 22:13:44 UTC (rev 340) @@ -24,6 +24,8 @@ procedure FixBowtieQuad0132(quad: TDATQuad); procedure FixBowtieQuad0312(quad: TDATQuad); +procedure SplitConcaveQuad02(quad: TDATQuad; out tri1, tri2: TDATTriangle); +procedure SplitConcaveQuad13(quad: TDATQuad; out tri1, tri2: TDATTriangle); procedure FixRowAllZeros(subp: TDATSubPart; const Row: Integer); procedure FixYColumnAllZeros(subp: TDATSubPart); @@ -82,5 +84,33 @@ subp.MatrixVals[2,2] := 1; end; +procedure SplitConcaveQuad02(quad: TDATQuad; out tri1, tri2: TDATTriangle); +begin + tri1 := TDATTriangle.Create; + tri2 := TDATTriangle.Create; + + tri1.Point[1] := quad.Point[1]; + tri1.Point[2] := quad.Point[2]; + tri1.Point[3] := quad.Point[3]; + + tri2.Point[1] := quad.Point[1]; + tri2.Point[2] := quad.Point[3]; + tri2.Point[3] := quad.Point[4]; +end; + +procedure SplitConcaveQuad13(quad: TDATQuad; out tri1, tri2: TDATTriangle); +begin + tri1 := TDATTriangle.Create; + tri2 := TDATTriangle.Create; + + tri1.Point[1] := quad.Point[2]; + tri1.Point[2] := quad.Point[3]; + tri1.Point[3] := quad.Point[4]; + + tri2.Point[1] := quad.Point[4]; + tri2.Point[2] := quad.Point[1]; + tri2.Point[3] := quad.Point[2]; +end; + end. Modified: trunk/DAT Tools/DATModel.pas =================================================================== --- trunk/DAT Tools/DATModel.pas 2008-08-27 22:12:41 UTC (rev 339) +++ trunk/DAT Tools/DATModel.pas 2008-08-27 22:13:44 UTC (rev 340) @@ -30,10 +30,11 @@ type - TDATSortTerm = (dsNil, dsLineType, dsColor, + TDATSortTerm = (dsNil, dsColor, dsMidX, dsMidY, dsMidZ, dsMaxX, dsMaxY, dsMaxZ, - dsMinX, dsMinY, dsMinZ); + dsMinX, dsMinY, dsMinZ , + dsLineType); TDATSortArray = array[1..3] of TDATSortTerm; Modified: trunk/DAT Tools/DATUtils.pas =================================================================== --- trunk/DAT Tools/DATUtils.pas 2008-08-27 22:12:41 UTC (rev 339) +++ trunk/DAT Tools/DATUtils.pas 2008-08-27 22:13:44 UTC (rev 340) @@ -68,30 +68,25 @@ (strCurrentLine = #10#13) then Result := TDATBlankLine.Create else - if Length(strCurrentLine) > 1 then - if strCurrentLine[2] = ' ' then - case strCurrentLine[1] of - '0': Result := TDATComment.Create; - '1': Result := TDATSubPart.Create; - '2': Result := TDATLine.Create; - '3': Result := TDATTriangle.Create; - '4': Result := TDATQuad.Create; - '5': Result := TDATOpLine.Create; - else Result := TDATBlankLine.Create; - end - else - Result := TDATBlankLine.Create + if (Length(strCurrentLine) > 1) and + (strCurrentLine[2] = ' ') then + case strCurrentLine[1] of + '0': Result := TDATComment.Create; + '1': Result := TDATSubPart.Create; + '2': Result := TDATLine.Create; + '3': Result := TDATTriangle.Create; + '4': Result := TDATQuad.Create; + '5': Result := TDATOpLine.Create; + else Result := TDATInvalidLine.Create; + end else - if strCurrentLine[1] = '0' then - Result := TDATComment.Create - else - Result := TDATBlankLine.Create; + Result := TDATInvalidLine.Create; try Result.DATString := strLine; except Result.Free; - Result := TDATComment.Create; - (Result as TDATComment).Comment := 'Invalid Line: ' + strLine; + Result := TDATInvalidLine.Create; + Result.DATString := strLine; end; end; @@ -287,6 +282,7 @@ Result.Finish := Finish; Result.MaterialParams := MaterialParams; end; + function CheckIdentPoints(const points1, points2: array of TDATPoint): Boolean; var Property changes on: trunk/Projects ___________________________________________________________________ Added: svn:ignore + __history *.local Added: trunk/Projects/LDDP.bdsgroup =================================================================== --- trunk/Projects/LDDP.bdsgroup (rev 0) +++ trunk/Projects/LDDP.bdsgroup 2008-08-27 22:13:44 UTC (rev 340) @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<BorlandProject> + <PersonalityInfo> + <Option> + <Option Name="Personality">Default.Personality</Option> + <Option Name="ProjectType"></Option> + <Option Name="Version">1.0</Option> + <Option Name="GUID">{A9E72A51-2F19-4483-83FC-5326531BB457}</Option> + </Option> + </PersonalityInfo> + <Default.Personality> <Projects> + <Projects Name="LDDesignPad.exe">..\lddp\LDDesignPad.bdsproj</Projects> + <Projects Name="ScintillaLDDP.bpl">..\Custom Controls\ScintillaLDDP\ScintillaLDDP.bdsproj</Projects> + <Projects Name="Targets">LDDesignPad.exe ScintillaLDDP.bpl</Projects> + </Projects> + <Dependencies/> + </Default.Personality> +</BorlandProject> Property changes on: trunk/plugins/delphi ___________________________________________________________________ Added: svn:ignore + __history *.local *.identcache Added: trunk/plugins/delphi/EditorPluginSample.bdsproj =================================================================== --- trunk/plugins/delphi/EditorPluginSample.bdsproj (rev 0) +++ trunk/plugins/delphi/EditorPluginSample.bdsproj 2008-08-27 22:13:44 UTC (rev 340) @@ -0,0 +1,175 @@ +<?xml version="1.0" encoding="utf-8"?> +<BorlandProject> + <PersonalityInfo> + <Option> + <Option Name="Personality">Delphi.Personality</Option> + <Option Name="ProjectType">VCLApplication</Option> + <Option Name="Version">1.0</Option> + <Option Name="GUID">{3126AE2E-8230-4386-B832-ACEA06F7A673}</Option> + </Option> + </PersonalityInfo> + <Delphi.Personality> + <Source> + <Source Name="MainSource">EditorPluginSample.dpr</Source> + </Source> + <FileVersion> + <FileVersion Name="Version">7.0</FileVersion> + </FileVersion> + <Compiler> + <Compiler Name="A">8</Compiler> + <Compiler Name="B">0</Compiler> + <Compiler Name="C">1</Compiler> + <Compiler Name="D">1</Compiler> + <Compiler Name="E">0</Compiler> + <Compiler Name="F">0</Compiler> + <Compiler Name="G">1</Compiler> + <Compiler Name="H">1</Compiler> + <Compiler Name="I">1</Compiler> + <Compiler Name="J">1</Compiler> + <Compiler Name="K">0</Compiler> + <Compiler Name="L">1</Compiler> + <Compiler Name="M">0</Compiler> + <Compiler Name="N">1</Compiler> + <Compiler Name="O">1</Compiler> + <Compiler Name="P">1</Compiler> + <Compiler Name="Q">0</Compiler> + <Compiler Name="R">0</Compiler> + <Compiler Name="S">0</Compiler> + <Compiler Name="T">0</Compiler> + <Compiler Name="U">0</Compiler> + <Compiler Name="V">1</Compiler> + <Compiler Name="W">0</Compiler> + <Compiler Name="X">1</Compiler> + <Compiler Name="Y">1</Compiler> + <Compiler Name="Z">1</Compiler> + <Compiler Name="ShowHints">True</Compiler> + <Compiler Name="ShowWarnings">True</Compiler> + <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> + <Compiler Name="NamespacePrefix"></Compiler> + <Compiler Name="GenerateDocumentation">False</Compiler> + <Compiler Name="DefaultNamespace"></Compiler> + <Compiler Name="SymbolDeprecated">True</Compiler> + <Compiler Name="SymbolLibrary">True</Compiler> + <Compiler Name="SymbolPlatform">True</Compiler> + <Compiler Name="SymbolExperimental">True</Compiler> + <Compiler Name="UnitLibrary">True</Compiler> + <Compiler Name="UnitPlatform">True</Compiler> + <Compiler Name="UnitDeprecated">True</Compiler> + <Compiler Name="UnitExperimental">True</Compiler> + <Compiler Name="HResultCompat">True</Compiler> + <Compiler Name="HidingMember">True</Compiler> + <Compiler Name="HiddenVirtual">True</Compiler> + <Compiler Name="Garbage">True</Compiler> + <Compiler Name="BoundsError">True</Compiler> + <Compiler Name="ZeroNilCompat">True</Compiler> + <Compiler Name="StringConstTruncated">True</Compiler> + <Compiler Name="ForLoopVarVarPar">True</Compiler> + <Compiler Name="TypedConstVarPar">True</Compiler> + <Compiler Name="AsgToTypedConst">True</Compiler> + <Compiler Name="CaseLabelRange">True</Compiler> + <Compiler Name="ForVariable">True</Compiler> + <Compiler Name="ConstructingAbstract">True</Compiler> + <Compiler Name="ComparisonFalse">True</Compiler> + <Compiler Name="ComparisonTrue">True</Compiler> + <Compiler Name="ComparingSignedUnsigned">True</Compiler> + <Compiler Name="CombiningSignedUnsigned">True</Compiler> + <Compiler Name="UnsupportedConstruct">True</Compiler> + <Compiler Name="FileOpen">True</Compiler> + <Compiler Name="FileOpenUnitSrc">True</Compiler> + <Compiler Name="BadGlobalSymbol">True</Compiler> + <Compiler Name="DuplicateConstructorDestructor">True</Compiler> + <Compiler Name="InvalidDirective">True</Compiler> + <Compiler Name="PackageNoLink">True</Compiler> + <Compiler Name="PackageThreadVar">True</Compiler> + <Compiler Name="ImplicitImport">True</Compiler> + <Compiler Name="HPPEMITIgnored">True</Compiler> + <Compiler Name="NoRetVal">True</Compiler> + <Compiler Name="UseBeforeDef">True</Compiler> + <Compiler Name="ForLoopVarUndef">True</Compiler> + <Compiler Name="UnitNameMismatch">True</Compiler> + <Compiler Name="NoCFGFileFound">True</Compiler> + <Compiler Name="ImplicitVariants">True</Compiler> + <Compiler Name="UnicodeToLocale">True</Compiler> + <Compiler Name="LocaleToUnicode">True</Compiler> + <Compiler Name="ImagebaseMultiple">True</Compiler> + <Compiler Name="SuspiciousTypecast">True</Compiler> + <Compiler Name="PrivatePropAccessor">True</Compiler> + <Compiler Name="UnsafeType">False</Compiler> + <Compiler Name="UnsafeCode">False</Compiler> + <Compiler Name="UnsafeCast">False</Compiler> + <Compiler Name="OptionTruncated">True</Compiler> + <Compiler Name="WideCharReduced">True</Compiler> + <Compiler Name="DuplicatesIgnored">True</Compiler> + <Compiler Name="UnitInitSeq">True</Compiler> + <Compiler Name="LocalPInvoke">True</Compiler> + <Compiler Name="MessageDirective">True</Compiler> + <Compiler Name="CodePage"></Compiler> + </Compiler> + <Linker> + <Linker Name="MapFile">0</Linker> + <Linker Name="OutputObjs">0</Linker> + <Linker Name="GenerateHpps">False</Linker> + <Linker Name="ConsoleApp">1</Linker> + <Linker Name="DebugInfo">False</Linker> + <Linker Name="RemoteSymbols">False</Linker> + <Linker Name="GenerateDRC">False</Linker> + <Linker Name="MinStackSize">16384</Linker> + <Linker Name="MaxStackSize">1048576</Linker> + <Linker Name="ImageBase">4194304</Linker> + <Linker Name="ExeDescription"></Linker> + </Linker> + <Directories> + <Directories Name="OutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\Exe\Plugins</Directories> + <Directories Name="UnitOutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\Exe\DCU</Directories> + <Directories Name="PackageDLLOutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\Exe\DCU</Directories> + <Directories Name="PackageDCPOutputDir">C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\Exe\DCU</Directories> + <Directories Name="SearchPath"></Directories> + <Directories Name="Packages"></Directories> + <Directories Name="Conditionals"></Directories> + <Directories Name="DebugSourceDirs"></Directories> + <Directories Name="UsePackages">False</Directories> + </Directories> + <Parameters> + <Parameters Name="RunParams"></Parameters> + <Parameters Name="HostApplication">D:\Eigene Dateien\_Projekte\LDrawDesignpad\LDDesignPad.exe</Parameters> + <Parameters Name="Launcher"></Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="DebugCWD"></Parameters> + <Parameters Name="Debug Symbols Search Path"></Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <Language> + <Language Name="ActiveLang"></Language> + <Language Name="ProjectLang">$00000000</Language> + <Language Name="RootDir"></Language> + </Language> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">False</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">1</VersionInfo> + <VersionInfo Name="MinorVer">0</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1031</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"></VersionInfoKeys> + <VersionInfoKeys Name="FileDescription"></VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"></VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> + <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> + <VersionInfoKeys Name="ProductName"></VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"></VersionInfoKeys> + </VersionInfoKeys> + </Delphi.Personality> +</BorlandProject> Modified: trunk/plugins/delphi/EditorPluginSample.cfg =================================================================== --- trunk/plugins/delphi/EditorPluginSample.cfg 2008-08-27 22:12:41 UTC (rev 339) +++ trunk/plugins/delphi/EditorPluginSample.cfg 2008-08-27 22:13:44 UTC (rev 340) @@ -1,35 +1,40 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J+ --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --LE"d:\delphi6\Projects\Bpl" --LN"d:\delphi6\Projects\Bpl" +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J+ +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-E"C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\Exe\Plugins" +-N0"C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\Exe\DCU" +-LE"C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\Exe\DCU" +-LN"C:\Documents and Settings\Orion\My Documents\Lego\LDDP\lddp\Exe\DCU" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST Modified: trunk/plugins/delphi/EditorPluginSample.dpr =================================================================== --- trunk/plugins/delphi/EditorPluginSample.dpr 2008-08-27 22:12:41 UTC (rev 339) +++ trunk/plugins/delphi/EditorPluginSample.dpr 2008-08-27 22:13:44 UTC (rev 340) @@ -42,11 +42,6 @@ // 1 = Plugin can only be called if no text is selected // 2 = Plugin can only be called if a portion of text is selected - Plugintype:='%%editor'; - - // Plugintype Kind of plugin - never change this - // if you want to write an import or export plugin use the "ImportExportPluginSample" - case CaseID of 0:strResult:=PlugInName; 1:strResult:=PlugInMenuEntry; @@ -55,7 +50,6 @@ 4:strResult:=PlugInAuthor; 5:strResult:=PlugInCommentaries; 6:strResult:=PluginCall; - 7:strResult:=Plugintype; else strResult:=PlugInName; end; if Length(strResult) > maxLength then // don't overflow the buffer we are about to write to @@ -63,7 +57,7 @@ StrPCopy(buffer,strResult); end; -procedure ProcessText(CompleteText,SelText:PChar;var SelStart, SelLength , cursorrow , cursorcolumn:longWORD; myCallback:TLDDPCallBack);stdcall; +procedure ProcessText(CompleteText,SelText:PChar;var SelStart, SelLength , cursorrow , cursorcolumn:longWORD; myCallback:TLDDPCallBack); stdcall; // // This function processes and Returns 'TheText'. // This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bil...@us...> - 2008-08-27 22:12:44
|
Revision: 339 http://lddp.svn.sourceforge.net/lddp/?rev=339&view=rev Author: billthefish Date: 2008-08-27 22:12:41 +0000 (Wed, 27 Aug 2008) Log Message: ----------- Modified Paths: -------------- trunk/lddp/BMP2LDraw.pas trunk/lddp/errorbar.dfm trunk/lddp/errorbar.pas trunk/lddp/main.dfm trunk/lddp/main.pas trunk/lddp/options.dfm trunk/lddp/options.pas Removed Paths: ------------- trunk/lddp/Exe/ trunk/lddp/LDDP.bdsgroup trunk/lddp/SciScintillaLDDP.pas trunk/lddp/ScintillaLDDP.bdsproj trunk/lddp/ScintillaLDDP.dpk trunk/lddp/ScintillaLDDP.res Modified: trunk/lddp/BMP2LDraw.pas =================================================================== --- trunk/lddp/BMP2LDraw.pas 2008-08-24 21:43:56 UTC (rev 338) +++ trunk/lddp/BMP2LDraw.pas 2008-08-27 22:12:41 UTC (rev 339) @@ -73,13 +73,12 @@ procedure BitBtn4Click(Sender: TObject); procedure TabSheet3Show(Sender: TObject); procedure FormCreate(Sender: TObject); + private - { Private-Deklarationen } - slConvertColors:Tstringlist; + ColourList: TDATColourList; + public - function GetLDrawColor(const color:TCOLOR):integer; - function BGRtoRGB(clr:TColor):TCoLOR; - { Public-Deklarationen } + function GetLDrawColor(const color: TColor): Integer; end; var @@ -87,309 +86,319 @@ implementation -uses main; +uses + main, DATUtils; {$R *.dfm} +function TfrBMP2LDrawMain.GetLDrawColor(const color: TColor): Integer; -function TfrBMP2LDrawMain.BGRtoRGB(clr:TColor):TColor; -var sr:string; -begin - sr:=IntToHex(ColortoRGB(clr),6); - Result:=strtoint('$'+Copy(sr,5,2)+Copy(sr,3,2)+Copy(sr,1,2)); -end; +var + DistanceSquared, i, B1, B2, G1, G2, R1, R2, SmallestDistanceSquared: Integer; + function GetRValue(rgb: TColor): Byte; + begin + Result := Byte(rgb); + end; + function GetGValue(rgb: TColor): Byte; + begin + Result := Byte(rgb shr 8); + end; -function TfrBMP2LDrawMain.GetLDrawColor(const color:TCOLOR):integer; -VAR - DistanceSquared: INTEGER; - i:integer; - B1, B2: INTEGER; - G1, G2: INTEGER; - R1, R2: INTEGER; - SmallestDistanceSquared: INTEGER; + function GetBValue(rgb: TColor): Byte; + begin + Result := Byte(rgb shr 16); + end; - function GetRValue(rgb: TColor): Byte; - begin - Result := Byte(rgb); - end; +begin + Result := clBlack; // Assume black is closest color + SmallestDistanceSquared := 256 * 256 * 256; // Any distance would be shorter - function GetGValue(rgb: TColor): Byte; - begin - Result := Byte(rgb shr 8); - end; - - function GetBValue(rgb: TColor): Byte; - begin - Result := Byte(rgb shr 16); - end; - - -BEGIN - RESULT := clBlack; // Assume black is closest color - SmallestDistanceSquared := 256*256*256; // Any distance would be shorter - R1 := GetRValue(color); G1 := GetGValue(color); B1 := GetBValue(color); - i:=0; - while i<=slConvertColors.count-1 do - BEGIN - R2 := GetRValue(strtoint('$'+copy(slConvertColors[i],Pos(' ',slConvertColors[i]) + 1,6))); - G2 := GetGValue(strtoint('$'+copy(slConvertColors[i],Pos(' ',slConvertColors[i]) + 1,6))); - B2 := GetBValue(strtoint('$'+copy(slConvertColors[i],Pos(' ',slConvertColors[i]) + 1,6))); + for i := 0 to ColourList.Count - 1 do + begin + R2 := GetRValue(ColourList[i].MainColor); + G2 := GetGValue(ColourList[i].MainColor); + B2 := GetBValue(ColourList[i].MainColor); - DistanceSquared := SQR(R1-R2) + SQR(G1-G2) + SQR(B1-B2); - IF DistanceSquared < SmallestDistanceSquared - THEN BEGIN - RESULT := strtoint(slConvertColors.Names[i]); - SmallestDistanceSquared := DistanceSquared + DistanceSquared := Sqr(R1 - R2) + Sqr(G1 - G2) + Sqr(B1 - B2); + if DistanceSquared < SmallestDistanceSquared then + begin + Result := ColourList[i].Code; + SmallestDistanceSquared := DistanceSquared; end; - inc(i); - END + end; end; procedure TfrBMP2LDrawMain.BitBtn1Click(Sender: TObject); begin - if opendialog.execute then begin - image1.Picture.LoadFromFile(opendialog.files[0]); - btNext1.Enabled:=True; + if OpenDialog.Execute then + begin + Image1.Picture.LoadFromFile(OpenDialog.Files[0]); + btNext1.Enabled := True; end; end; procedure TfrBMP2LDrawMain.btSaveClick(Sender: TObject); -var sr:TStringList; - cl,clo:TColor; - Quad:TDatquad; - ps,transclr:integer; - x,y,i,found,ldc:integer; - pwx,pwy,pwzx,pwzy,z2,z3,y1,y2,y3,y4:real; - x3:real; +var + sr: TStringList; + cl, clo: TColor; + quad, quad2: TDATQuad; + x, y, i, found, ldc, ps, transclr: Integer; + pwx, pwy, pwzx, pwzy, x3, z2, z3, y1, y2, y3, y4: Real; begin - quad:=TDatQuad.Create; - decimalseparator:='.'; - if Radiobutton1.Checked then begin - pwx:=strtofloat(edwidth.text); - pwy:=pwx; - pwzx:=0; pwzy:=0; - z2:=0; x3:=0; z3:=0; - y1:=0; y2:=0; y3:=0; y4:=0; - if strtofloat(edwidth.text)=0 then begin + quad := TDATQuad.Create; + if RadioButton1.Checked then + begin + pwx := StrToFloat(edWidth.Text); + pwy := pwx; + pwzx := 0; + pwzy := 0; + z2 := 0; + x3 := 0; + z3 := 0; + y1 := 0; + y2 := 0; + y3 := 0; + y4 := 0; + if StrToFloat(edWidth.Text) = 0 then + begin MessageDlg(_('LDraw unit size cannot be 0.0 !'), mtError, [mbOK], 0); Exit; end; end - else begin - try - quad.DATString:=edQuad.text; - except - MessageDlg(_('You entered an invalid Quadliteral line!'), mtError, [mbOK], 0); - exit; - end; - try + else + begin + try + quad.DATString := edQuad.text; + except + MessageDlg(_('You entered an invalid Quadliteral line!'), mtError, [mbOK], 0); + Exit; + end; - x3:=quad.x3; + try + x3 := quad.x3; - y1:=quad.y1; - y2:=quad.y2; - y3:=quad.y3; - y4:=quad.y4; + y1 := quad.y1; + y2 := quad.y2; + y3 := quad.y3; + y4 := quad.y4; - z2:=quad.z2; - z3:=quad.z3; + z2 := quad.z2; + z3 := quad.z3; - pwx:=(quad.x1-x3)/image1.Width; - pwy:=(quad.y1-y3)/image1.height; - pwzx:=(quad.z1-z3)/image1.width; - pwzy:=(quad.z1-z3)/image1.height; - - - except - MessageDlg(_('You entered an invalid Quadliteral line!'), mtError, [mbOK], 0); - Exit; - end; + pwx := (quad.x1 - x3) / Image1.Width; + pwy := (quad.y1 - y3) / Image1.Height; + pwzx := (quad.z1 - z3) / Image1.Width; + pwzy := (quad.z1 - z3) / Image1.Height; + except + MessageDlg(_('You entered an invalid Quadliteral line!'), mtError, [mbOK], 0); + Exit; end; + end; - frBMP2LDrawMain.Enabled:=False; - pnProgress.Visible:=true; - slConvertColors.LoadFromFile(ExtractFilePath(Application.ExeName)+'\colors.pal'); - transclr:=-1; - if edit1.Text<>'None' then begin - clo:=strtoint('$'+edit1.Text); - transclr:=getLDrawColor(clo); - end; - decimalseparator:='.'; - clo:=image1.Canvas.pixels[0,0]; - ps:=0; - sr:=TStringList.Create; - sr.Add('0 Image converted by LDrawDesignPad'); - pb.Position:=0; - with image1 do begin - pb.max:=Height; - for y:=0 to Height-1 do begin - pb.Position:=y+1; - Application.ProcessMessages; - for x:=0 to Width do begin - cl:=Canvas.pixels[x,y]; - if (cl<>clo) or (x=Width) then begin - ldc:=getLDrawColor(clo); - if (rbTrans1.Checked) or (rbTrans2.Checked and not (ldc=transclr)) then begin - if rbTrans1.Checked and (ldc=transclr) then ldc:=16; - found:=0; - if sr.Count>2 then - if (z2<>z3) and not ((y1=y2) and (y2=y3) and (y3=y4)) then + frBMP2LDrawMain.Enabled := False; + pnProgress.Visible := true; + ColourList := MakeStandardDATColourList; + transclr := -1; + if Edit1.Text <> 'None' then + begin + clo := StrToInt('$' + Edit1.Text); + transclr := GetLDrawColor(clo); + end; + clo := Image1.Canvas.Pixels[0,0]; + ps := 0; + sr := TStringList.Create; + sr.Add('0 Image converted by LDrawDesignPad'); + pb.Position := 0; + with Image1 do + begin + pb.Max := Height; + for y := 0 to Height - 1 do + begin + pb.Position := y + 1; + Application.ProcessMessages; + for x := 0 to Width do + begin + cl := Canvas.Pixels[x,y]; + if (cl <> clo) or (x = Width) then + begin + ldc := GetLDrawColor(clo); + if (rbTrans1.Checked) or (rbTrans2.Checked and not (ldc = transclr)) then + begin + if rbTrans1.Checked and (ldc = transclr) then + ldc := 16; + found := 0; + if sr.Count > 2 then + if (z2 <> z3) and not ((y1 = y2) and (y2 = y3) and (y3 = y4)) then + begin + for i := sr.Count - 1 downto 2 do begin - for I:=sr.Count-1 downto 2 do + Quad.DATString := sr[i]; + if (quad.Color = ldc) and + (quad.x1 = (pwx * ps) + x3) and + (quad.x2 = (pwx * x) + x3) and + (quad.x3 = (pwy * (y - 1)) + y3 + pwy) then begin - quad.DATString:=sr[i]; - if (quad.Color=ldc) and - (quad.x1=(pwx*ps)+x3) and - (quad.x2=(pwx*x) +x3) and - (quad.x3=(pwy*(y-1))+y3+pwy) - then begin - found:=i; - Break; - end; + found := i; + Break; end; - end - else + end; + end + else + begin + for i := sr.Count - 1 downto 2 do + begin + quad.DATString := sr[i]; + if (quad.Color = ldc) and + (quad.x1 = (pwx * ps) + x3) and + (quad.x2 = (pwx * x) + x3) and + (quad.x3 = (pwy * (y - 1)) + y3 + pwy) then begin - for I:=sr.Count-1 downto 2 do - begin - quad.DATString:=sr[i]; - if (quad.Color=ldc) and - (quad.x1=(pwx*ps)+x3) and - (quad.x2=(pwx*x) +x3) and - (quad.x3=(pwy*(y-1))+y3+pwy) - then - begin - found:=i; - Break; - end; + found:=i; + Break; end; - - end; - if found>0 then begin - quad.DATString:=sr[found]; - if (z2<>z3) and not ((y1=y2) and (y2=y3) and (y3=y4)) then - sr.Add('4 '+IntToStr(ldc)+' '+ - floattostr((pwx*ps)+x3)+' '+floattostr(quad.y1)+' '+floattostr(quad.z1)+' '+ - floattostr((pwx*x) +x3)+' '+floattostr(quad.y2)+' '+floattostr((pwzx*x)+z3)+' '+ - floattostr((pwx*x )+x3)+' '+floattostr((pwy*y)+pwy+y3) +' '+floattostr((pwzx*x)+z3)+' '+ - floattostr((pwx*ps)+x3)+' '+floattostr((pwy*y)+pwy+y3) +' '+floattostr(quad.z3)) - else - sr.Add('4 '+IntToStr(ldc)+' '+ - floattostr((pwx*ps)+x3)+' '+floattostr(quad.y1)+' '+floattostr(quad.z1)+' '+ - floattostr((pwx*x) +x3)+' '+floattostr(quad.y2)+' '+floattostr(quad.z2)+' '+ - floattostr((pwx*x )+x3)+' '+floattostr((pwy*y)+pwy+y3) +' '+floattostr((pwzy*(y+1))+z3)+' '+ - floattostr((pwx*ps)+x3)+' '+floattostr((pwy*y)+pwy+y3) +' '+floattostr((pwzy*(y+1))+z3)); + end; + end; + if found > 0 then + begin + quad.DATString := sr[found]; + if (z2 <> z3) and not ((y1 = y2) and (y2 = y3) and (y3 = y4)) then + begin + quad2 := TDATQuad.Create; + quad2.Color := ldc; + quad2.Matrix := DATMatrix((pwx * ps) + x3, quad.y1, quad.z1, 0, + (pwx * x) + x3, quad.y2, (pwzx * x) + z3, 0, + (pwx * x) + x3, (pwy * y) + pwy + y3, (pwzx * x) + z3, 0, + (pwx * ps) + x3, (pwy * y) + pwy + y3, quad.z3, 1); + sr.Add(quad2.DATString); + quad2.Free; + end + else + begin + quad2 := TDATQuad.Create; + quad2.Color := ldc; + quad2.Matrix := DATMatrix((pwx * ps) + x3, quad.y1, quad.z1, 0, + (pwx * x) + x3, quad.y2, quad.z2, 0, + (pwx * x) + x3, (pwy * y) + pwy + y3, (pwzy * (y + 1)) + z3, 0, + (pwx * ps) + x3, (pwy * y) + pwy + y3, (pwzy *( y + 1)) + z3, 1); + sr.Add(quad2.DATString); sr.Delete(found); - - end else begin - - if (z2<>z3) and not ((y1=y2) and (y2=y3) and (y3=y4)) then - sr.Add('4 '+IntToStr(ldc)+' '+ - floattostr((pwx*ps)+x3)+' '+floattostr((pwy*y)+y3) +' '+floattostr((pwzx*ps)+z3)+' '+ - floattostr((pwx*x) +x3)+' '+floattostr((pwy*y)+y3) +' '+floattostr((pwzx*x)+z3)+' '+ - floattostr((pwx*x )+x3)+' '+floattostr((pwy*y)+pwy+y3)+' '+floattostr((pwzx*x)+z3)+' '+ - floattostr((pwx*ps)+x3)+' '+floattostr((pwy*y)+pwy+y3)+' '+floattostr((pwzx*ps)+z3)) - else - sr.Add('4 '+IntToStr(ldc)+' '+ - floattostr((pwx*ps)+x3)+' '+floattostr((pwy*y)+y3) +' '+floattostr((pwzy*y)+z3)+' '+ - floattostr((pwx*x) +x3)+' '+floattostr((pwy*y)+y3) +' '+floattostr((pwzy*y)+z3)+' '+ - floattostr((pwx*x )+x3)+' '+floattostr((pwy*y)+pwy+y3)+' '+floattostr((pwzy*(y+1))+z3)+' '+ - floattostr((pwx*ps)+x3)+' '+floattostr((pwy*y)+pwy+y3)+' '+floattostr((pwzy*(y+1))+z3)); - - end; + quad2.Free; + end; + end + else + begin + if (z2 <> z3) and not ((y1 = y2) and (y2 = y3) and (y3 = y4)) then + begin + quad2 := TDATQuad.Create; + quad2.Color := ldc; + quad2.Matrix := DATMatrix((pwx * ps) + x3, (pwy * y) + y3, (pwzx * ps) + z3, 0, + (pwx * x) + x3, (pwy * y) + y3, (pwzx * x) + z3, 0, + (pwx * x) + x3, (pwy * y) + pwy + y3, (pwzx * x) + z3, 0, + (pwx * ps) + x3, (pwy * y) + pwy + y3, (pwzx * ps) + z3, 1); + sr.Add(quad2.DATString); + quad2.Free; + end + else + begin + quad2 := TDATQuad.Create; + quad2.Color := ldc; + quad2.Matrix := DATMatrix((pwx * ps) + x3, (pwy * y) + y3, (pwzy * y) + z3, 0, + (pwx * x) + x3, (pwy * y) + y3, (pwzy * y) + z3, 0, + (pwx * x) + x3, (pwy * y) + pwy + y3, (pwzy * (y + 1)) + z3, 0, + (pwx * ps) + x3, (pwy * y) + pwy + y3, (pwzy *( y + 1)) + z3, 1); + sr.Add(quad2.DATString); + quad2.Free; + end; end; - ps:=x; - if x=Width then begin - ps:=0; - clo:=Canvas.pixels[0,y+1] - - end - else clo:=cl; - end; + ps := x; + if x = Width then + begin + ps := 0; + clo := Canvas.Pixels[0,y+1]; + end + else + clo := cl; end; end; end; + end; - frMain.editor.Seltext:=sr.text; - sr.Free; - pnProgress.Visible:=False; - frBMP2LDrawMain.Enabled:=true; - MessageDlg(_('Done!'), mtInformation, [mbOK], 0); - quad.free; - ModalResult:=mrOK; + frMain.Editor.Seltext := sr.text; + sr.Free; + pnProgress.Visible := False; + frBMP2LDrawMain.Enabled := true; + quad.Free; + ModalResult := mrOK; end; - - procedure TfrBMP2LDrawMain.FormShow(Sender: TObject); begin - pc.ActivePage:=TabSheet1; - if slConvertColors=nil then slConvertColors:=TStringlist.Create; + pc.ActivePage := TabSheet1; end; procedure TfrBMP2LDrawMain.btNext1Click(Sender: TObject); begin - pc.ActivePage:=TabSheet2; + pc.ActivePage := TabSheet2; end; procedure TfrBMP2LDrawMain.BitBtn5Click(Sender: TObject); begin - pc.ActivePage:=TabSheet3; + pc.ActivePage := TabSheet3; end; procedure TfrBMP2LDrawMain.Button1Click(Sender: TObject); begin - Screen.cursor:=crHandPoint; + Screen.Cursor := crHandPoint; end; procedure TfrBMP2LDrawMain.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin - if Screen.cursor=crHandPoint then begin - edit1.Color:=image1.Canvas.Pixels[x,y]; - edit1.text:=IntToHex(image1.Canvas.Pixels[x,y],6); - edit1.Font.color:=($FFFFFF-image1.Canvas.Pixels[x,y]); - Screen.cursor:=crDefault; + if Screen.Cursor = crHandPoint then + begin + Edit1.Color := Image1.Canvas.Pixels[x,y]; + Edit1.Text := IntToHex(image1.Canvas.Pixels[x,y], 6); + Edit1.Font.Color := ($FFFFFF - Image1.Canvas.Pixels[x,y]); + Screen.Cursor := crDefault; end; end; procedure TfrBMP2LDrawMain.BitBtn6Click(Sender: TObject); begin - edit1.Text:=_('None'); - edit1.Color:=clWindow; - edit1.Font.Color:=clBlack; + Edit1.Text := _('None'); + Edit1.Color := clWindow; + Edit1.Font.Color := clBlack; end; procedure TfrBMP2LDrawMain.BitBtn4Click(Sender: TObject); begin - pc.ActivePage:=TabSheet1; + pc.ActivePage := TabSheet1; end; procedure TfrBMP2LDrawMain.TabSheet3Show(Sender: TObject); begin - edQuad.Enabled:=Radiobutton2.Checked; - if Radiobutton1.Checked then begin - btSave.Enabled:=(strtoFloat(edWidth.text)>0); - end - else begin - btSave.Enabled:=(edQuad.Text<>''); - end; + edQuad.Enabled := Radiobutton2.Checked; + if Radiobutton1.Checked then + btSave.Enabled := (StrToFloat(edWidth.text) > 0) + else + btSave.Enabled := (edQuad.Text <> ''); + end; procedure TfrBMP2LDrawMain.FormCreate(Sender: TObject); begin - TranslateComponent (self); + TranslateComponent(Self); end; end. Deleted: trunk/lddp/LDDP.bdsgroup =================================================================== --- trunk/lddp/LDDP.bdsgroup 2008-08-24 21:43:56 UTC (rev 338) +++ trunk/lddp/LDDP.bdsgroup 2008-08-27 22:12:41 UTC (rev 339) @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<BorlandProject> - <PersonalityInfo> - <Option> - <Option Name="Personality">Default.Personality</Option> - <Option Name="ProjectType"></Option> - <Option Name="Version">1.0</Option> - <Option Name="GUID">{A9E72A51-2F19-4483-83FC-5326531BB457}</Option> - </Option> - </PersonalityInfo> - <Default.Personality> - - <Projects> - <Projects Name="LDDesignPad.exe">LDDesignPad.bdsproj</Projects> - <Projects Name="ScintillaLDDP.bpl">ScintillaLDDP.bdsproj</Projects> - <Projects Name="Targets">LDDesignPad.exe ScintillaLDDP.bpl</Projects> - </Projects> - <Dependencies/> - </Default.Personality> -</BorlandProject> Deleted: trunk/lddp/SciScintillaLDDP.pas =================================================================== --- trunk/lddp/SciScintillaLDDP.pas 2008-08-24 21:43:56 UTC (rev 338) +++ trunk/lddp/SciScintillaLDDP.pas 2008-08-27 22:12:41 UTC (rev 339) @@ -1,178 +0,0 @@ -unit SciScintillaLDDP; - -interface - -uses - SysUtils, Classes, Controls, SciScintillaBase, SciScintillaMemo, SciScintilla, DATBase; - -type - TScintillaLDDP = class(TScintilla) - private - FPntAcc, FRotAcc: Byte; - FOnlyRoundDuringAutoRound: Boolean; - - protected - { Protected declarations } - public - constructor Create(AOwner: TComponent); override; - function CaretX: Integer; - function CaretY: Integer; - procedure ExpandSelection(out startln, endln: Integer); - procedure SelectLine(Line: Integer); - procedure SelectLines(StartLine, EndLine: Integer); - procedure MirrorSelection(axis: TDATAxis); - procedure AutoRound; - procedure SetLineColor(line, color: Integer); - function GetLineColor(line: Integer): Integer; - published - property PositionDecimalPlaces: Byte read FPntAcc write FPntAcc default 15; - property RotationDecimalPlaces: Byte read FRotAcc write FRotAcc default 15; - property OnlyRoundDuringAutoRound: Boolean read FOnlyRoundDuringAutoRound write FOnlyRoundDuringAutoRound default false; - end; - -procedure Register; - -implementation - -uses - DATModel, DATUtils, SciStreamDefault; - -procedure TScintillaLDDP.SelectLine(Line: Integer); -begin - SelectLines(Line, Line); -end; - -procedure TScintillaLDDP.SelectLines(StartLine, EndLine: Integer); -begin - SetCurrentPos(GetLineEndPosition(endline)); - SetAnchor(PositionFromLine(startline)); -end; - -procedure TScintillaLDDP.ExpandSelection(out startln, endln: Integer); -{------- -Description: If the selected text begins and/or ends in the middle of a line -ExpandSelection will move the beginning of the selected text to the beginning of -the line and the end of the selected text to the end of the line ---------} -var - startline, endline: Integer; - -begin - startline := LineFromPosition(SelStart); - - if SelLength > 0 then - endline := LineFromPosition(SelStart + SelLength - 1) - else - endline := startline; - - SelectLines(startline, endline); - - startln := startline; - endln := endline; -end; - -function TScintillaLDDP.CaretX: Integer; -begin - Result := GetColumn(GetCurrentPos) + 1; -end; - -function TScintillaLDDP.CaretY: Integer; -begin - Result := LineFromPosition(GetCurrentPos) + 1; -end; - -constructor TScintillaLDDP.Create(AOwner: TComponent); -begin - inherited Create(AOwner); - StreamClass := TSciStreamDefault; -end; - -procedure TScintillaLDDP.MirrorSelection(axis: TDATAxis); - -var - DModel: TDATModel; - rows, i, j, startline, endline: integer; - -begin - ExpandSelection(startline, endline); - - if FOnlyRoundDuringAutoRound then - DModel := CreateDATModel(PositionDecimalPlaces, RotationDecimalPlaces) - else - DModel := CreateDATModel(15, 15); - - DModel.ModelText := SelText; - - for i := 0 to DModel.Count - 1 do - if DModel[i] is TDATElement then - begin - case DModel[i].LineType of - 1,3: rows := 3; - 2: rows := 2; - 4,5: rows := 4; - else - rows := 0; - end; - - if rows > 0 then - for j := 1 to rows do - (DModel[i] as TDATElement).MatrixVals[j, Ord(axis)] := -(DModel[i] as TDATElement).MatrixVals[j, Ord(axis)]; - end; - SelText := DModel.ModelText; - SelectLines(startline, endline); - DModel.Free; -end; - -procedure TScintillaLDDP.AutoRound; -var - DModel: TDATModel; - startline,endline: Integer; - -begin - ExpandSelection(startline,endline); - DModel := CreateDATModel(PositionDecimalPlaces, RotationDecimalPlaces); - DModel.ModelText := SelText; - SelText := DModel.ModelText; - SelectLines(startline, endline); -end; - -procedure TScintillaLDDP.SetLineColor(line, color: Integer); - -var - DLine: TDATType; - -begin - if color >= 0 then - begin - DLine := StrToDAT(Lines[line]); - if DLine is TDATElement then - begin - (DLine as TDATElement).Color := color; - (DLine as TDATElement).PositionDecimalPlaces := PositionDecimalPlaces; - (DLine as TDATElement).RotationDecimalPlaces := RotationDecimalPlaces; - Lines[line] := (DLine as TDATElement).DATString; - end; - DLine.Free; - end; -end; - -function TScintillaLDDP.GetLineColor(line: Integer): Integer; - -var - DLine: TDATType; - -begin - DLine := StrToDAT(Lines[line]); - if DLine is TDATElement then - Result := (DLine as TDATElement).Color - else - Result := -1; - DLine.Free; -end; - -procedure Register; -begin - RegisterComponents('Scintilla', [TScintillaLDDP]); -end; - -end. Deleted: trunk/lddp/ScintillaLDDP.bdsproj =================================================================== --- trunk/lddp/ScintillaLDDP.bdsproj 2008-08-24 21:43:56 UTC (rev 338) +++ trunk/lddp/ScintillaLDDP.bdsproj 2008-08-27 22:12:41 UTC (rev 339) @@ -1,175 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<BorlandProject> - <PersonalityInfo> - <Option> - <Option Name="Personality">Delphi.Personality</Option> - <Option Name="ProjectType"></Option> - <Option Name="Version">1.0</Option> - <Option Name="GUID">{0DCA340D-8E5A-40C8-8AA1-E53493B1D698}</Option> - </Option> - </PersonalityInfo> - <Delphi.Personality> - <Source> - <Source Name="MainSource">ScintillaLDDP.dpk</Source> - </Source> - <FileVersion> - <FileVersion Name="Version">7.0</FileVersion> - </FileVersion> - <Compiler> - <Compiler Name="A">8</Compiler> - <Compiler Name="B">0</Compiler> - <Compiler Name="C">1</Compiler> - <Compiler Name="D">1</Compiler> - <Compiler Name="E">0</Compiler> - <Compiler Name="F">0</Compiler> - <Compiler Name="G">1</Compiler> - <Compiler Name="H">1</Compiler> - <Compiler Name="I">1</Compiler> - <Compiler Name="J">0</Compiler> - <Compiler Name="K">0</Compiler> - <Compiler Name="L">1</Compiler> - <Compiler Name="M">0</Compiler> - <Compiler Name="N">1</Compiler> - <Compiler Name="O">1</Compiler> - <Compiler Name="P">1</Compiler> - <Compiler Name="Q">0</Compiler> - <Compiler Name="R">0</Compiler> - <Compiler Name="S">0</Compiler> - <Compiler Name="T">0</Compiler> - <Compiler Name="U">0</Compiler> - <Compiler Name="V">1</Compiler> - <Compiler Name="W">0</Compiler> - <Compiler Name="X">1</Compiler> - <Compiler Name="Y">1</Compiler> - <Compiler Name="Z">1</Compiler> - <Compiler Name="ShowHints">True</Compiler> - <Compiler Name="ShowWarnings">True</Compiler> - <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> - <Compiler Name="NamespacePrefix"></Compiler> - <Compiler Name="GenerateDocumentation">False</Compiler> - <Compiler Name="DefaultNamespace"></Compiler> - <Compiler Name="SymbolDeprecated">True</Compiler> - <Compiler Name="SymbolLibrary">True</Compiler> - <Compiler Name="SymbolPlatform">True</Compiler> - <Compiler Name="SymbolExperimental">True</Compiler> - <Compiler Name="UnitLibrary">True</Compiler> - <Compiler Name="UnitPlatform">True</Compiler> - <Compiler Name="UnitDeprecated">True</Compiler> - <Compiler Name="UnitExperimental">True</Compiler> - <Compiler Name="HResultCompat">True</Compiler> - <Compiler Name="HidingMember">True</Compiler> - <Compiler Name="HiddenVirtual">True</Compiler> - <Compiler Name="Garbage">True</Compiler> - <Compiler Name="BoundsError">True</Compiler> - <Compiler Name="ZeroNilCompat">True</Compiler> - <Compiler Name="StringConstTruncated">True</Compiler> - <Compiler Name="ForLoopVarVarPar">True</Compiler> - <Compiler Name="TypedConstVarPar">True</Compiler> - <Compiler Name="AsgToTypedConst">True</Compiler> - <Compiler Name="CaseLabelRange">True</Compiler> - <Compiler Name="ForVariable">True</Compiler> - <Compiler Name="ConstructingAbstract">True</Compiler> - <Compiler Name="ComparisonFalse">True</Compiler> - <Compiler Name="ComparisonTrue">True</Compiler> - <Compiler Name="ComparingSignedUnsigned">True</Compiler> - <Compiler Name="CombiningSignedUnsigned">True</Compiler> - <Compiler Name="UnsupportedConstruct">True</Compiler> - <Compiler Name="FileOpen">True</Compiler> - <Compiler Name="FileOpenUnitSrc">True</Compiler> - <Compiler Name="BadGlobalSymbol">True</Compiler> - <Compiler Name="DuplicateConstructorDestructor">True</Compiler> - <Compiler Name="InvalidDirective">True</Compiler> - <Compiler Name="PackageNoLink">True</Compiler> - <Compiler Name="PackageThreadVar">True</Compiler> - <Compiler Name="ImplicitImport">True</Compiler> - <Compiler Name="HPPEMITIgnored">True</Compiler> - <Compiler Name="NoRetVal">True</Compiler> - <Compiler Name="UseBeforeDef">True</Compiler> - <Compiler Name="ForLoopVarUndef">True</Compiler> - <Compiler Name="UnitNameMismatch">True</Compiler> - <Compiler Name="NoCFGFileFound">True</Compiler> - <Compiler Name="ImplicitVariants">True</Compiler> - <Compiler Name="UnicodeToLocale">True</Compiler> - <Compiler Name="LocaleToUnicode">True</Compiler> - <Compiler Name="ImagebaseMultiple">True</Compiler> - <Compiler Name="SuspiciousTypecast">True</Compiler> - <Compiler Name="PrivatePropAccessor">True</Compiler> - <Compiler Name="UnsafeType">False</Compiler> - <Compiler Name="UnsafeCode">False</Compiler> - <Compiler Name="UnsafeCast">False</Compiler> - <Compiler Name="OptionTruncated">True</Compiler> - <Compiler Name="WideCharReduced">True</Compiler> - <Compiler Name="DuplicatesIgnored">True</Compiler> - <Compiler Name="UnitInitSeq">True</Compiler> - <Compiler Name="LocalPInvoke">True</Compiler> - <Compiler Name="MessageDirective">True</Compiler> - <Compiler Name="CodePage"></Compiler> - </Compiler> - <Linker> - <Linker Name="MapFile">0</Linker> - <Linker Name="OutputObjs">0</Linker> - <Linker Name="GenerateHpps">False</Linker> - <Linker Name="ConsoleApp">1</Linker> - <Linker Name="DebugInfo">False</Linker> - <Linker Name="RemoteSymbols">False</Linker> - <Linker Name="GenerateDRC">False</Linker> - <Linker Name="MinStackSize">16384</Linker> - <Linker Name="MaxStackSize">1048576</Linker> - <Linker Name="ImageBase">4194304</Linker> - <Linker Name="ExeDescription"></Linker> - </Linker> - <Directories> - <Directories Name="OutputDir"></Directories> - <Directories Name="UnitOutputDir"></Directories> - <Directories Name="PackageDLLOutputDir"></Directories> - <Directories Name="PackageDCPOutputDir"></Directories> - <Directories Name="SearchPath">C:\Documents and Settings\Orion\My Documents\Delphi Packages\delphisci\Source;C:\Documents and Settings\Orion\My Documents\Lego\DAT Tools</Directories> - <Directories Name="Packages"></Directories> - <Directories Name="Conditionals"></Directories> - <Directories Name="DebugSourceDirs"></Directories> - <Directories Name="UsePackages">False</Directories> - </Directories> - <Parameters> - <Parameters Name="RunParams"></Parameters> - <Parameters Name="HostApplication"></Parameters> - <Parameters Name="Launcher"></Parameters> - <Parameters Name="UseLauncher">False</Parameters> - <Parameters Name="DebugCWD"></Parameters> - <Parameters Name="Debug Symbols Search Path"></Parameters> - <Parameters Name="LoadAllSymbols">True</Parameters> - <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> - </Parameters> - <Language> - <Language Name="ActiveLang"></Language> - <Language Name="ProjectLang">$00000000</Language> - <Language Name="RootDir"></Language> - </Language> - <VersionInfo> - <VersionInfo Name="IncludeVerInfo">True</VersionInfo> - <VersionInfo Name="AutoIncBuild">False</VersionInfo> - <VersionInfo Name="MajorVer">1</VersionInfo> - <VersionInfo Name="MinorVer">0</VersionInfo> - <VersionInfo Name="Release">0</VersionInfo> - <VersionInfo Name="Build">0</VersionInfo> - <VersionInfo Name="Debug">False</VersionInfo> - <VersionInfo Name="PreRelease">False</VersionInfo> - <VersionInfo Name="Special">False</VersionInfo> - <VersionInfo Name="Private">False</VersionInfo> - <VersionInfo Name="DLL">False</VersionInfo> - <VersionInfo Name="Locale">1033</VersionInfo> - <VersionInfo Name="CodePage">1252</VersionInfo> - </VersionInfo> - <VersionInfoKeys> - <VersionInfoKeys Name="CompanyName"></VersionInfoKeys> - <VersionInfoKeys Name="FileDescription"></VersionInfoKeys> - <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> - <VersionInfoKeys Name="InternalName"></VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys> - <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> - <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> - <VersionInfoKeys Name="ProductName"></VersionInfoKeys> - <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> - <VersionInfoKeys Name="Comments"></VersionInfoKeys> - </VersionInfoKeys> - </Delphi.Personality> -</BorlandProject> Deleted: trunk/lddp/ScintillaLDDP.dpk =================================================================== --- trunk/lddp/ScintillaLDDP.dpk 2008-08-24 21:43:56 UTC (rev 338) +++ trunk/lddp/ScintillaLDDP.dpk 2008-08-27 22:12:41 UTC (rev 339) @@ -1,35 +0,0 @@ -package ScintillaLDDP; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - rtl, - Scit, - vcl; - -contains - SciScintillaLDDP in 'SciScintillaLDDP.pas'; - -end. Modified: trunk/lddp/errorbar.dfm =================================================================== --- trunk/lddp/errorbar.dfm 2008-08-24 21:43:56 UTC (rev 338) +++ trunk/lddp/errorbar.dfm 2008-08-27 22:12:41 UTC (rev 339) @@ -61,11 +61,11 @@ DockStyle = frMain.JvDockDelphiStyle1 CustomDock = False Left = 8 - Top = 8 + Top = 16 end object pmL3P: TPopupMenu Left = 40 - Top = 8 + Top = 16 object MarkAllForFixing1: TMenuItem Action = acECMarkAll end @@ -111,7 +111,7 @@ end object ActionList1: TActionList Left = 72 - Top = 8 + Top = 16 object acErrorCheck: TAction Category = 'Error Check' Caption = 'Run Error Check' Modified: trunk/lddp/errorbar.pas =================================================================== --- trunk/lddp/errorbar.pas 2008-08-24 21:43:56 UTC (rev 338) +++ trunk/lddp/errorbar.pas 2008-08-27 22:12:41 UTC (rev 339) @@ -320,6 +320,8 @@ // Fix an error var DATElem: TDATElement; + tri1, tri2: TDATTriangle; + i: Integer; begin if ErrorListView.ItemIndex >= 0 then @@ -340,6 +342,55 @@ ErrorListView.items.delete(ErrorListView.ItemIndex); end + else if pos('Bad vertex sequence, 0312',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then + begin + DATElem := TDATQuad.Create; + with DATElem as TDATQuad do + begin + DATString := frMain.editor.lines[frMain.editor.CaretY-1]; + FixBowtieQuad0312(DATElem as TDATQuad); + frMain.editor.lines[frMain.editor.CaretY-1] := DATString; + end; + DATElem.Free; + ErrorListView.items.delete(ErrorListView.ItemIndex); + end + + else if pos('Concave Quad, split on 13',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then + begin + DATElem := TDATQuad.Create; + with DATElem as TDATQuad do + begin + DATString := frMain.editor.lines[frMain.editor.CaretY-1]; + SplitConcaveQuad13((DATElem as TDATQuad), tri1, tri2); + frMain.editor.Lines[frMain.editor.CaretY-1] := tri1.DATString; + frMain.editor.Lines.Insert(frMain.editor.CaretY, tri2.DATString); + end; + DATElem.Free; + tri1.Free; + tri2.Free; + for i := ErrorListView.ItemIndex + 1 to ErrorListView.Items.Count - 1 do + ErrorListView.Items[i].SubItems[0] := IntToStr(StrToInt(ErrorListView.Items[i].SubItems[0]) + 1); + ErrorListView.items.delete(ErrorListView.ItemIndex); + end + + else if pos('Concave Quad, split on 02',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then + begin + DATElem := TDATQuad.Create; + with DATElem as TDATQuad do + begin + DATString := frMain.editor.lines[frMain.editor.CaretY-1]; + SplitConcaveQuad02((DATElem as TDATQuad), tri1, tri2); + frMain.editor.Lines[frMain.editor.CaretY-1] := tri1.DATString; + frMain.editor.Lines.Insert(frMain.editor.CaretY, tri2.DATString); + end; + DATElem.Free; + tri1.Free; + tri2.Free; + for i := ErrorListView.ItemIndex + 1 to ErrorListView.Items.Count - 1 do + ErrorListView.Items[i].SubItems[0] := IntToStr(StrToInt(ErrorListView.Items[i].SubItems[0]) + 1); + ErrorListView.items.delete(ErrorListView.ItemIndex); + end + else if pos('Identical to line',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then begin frMain.editor.lines[frMain.editor.CaretY-1]:=''; @@ -384,19 +435,6 @@ frMain.editor.lines[frMain.editor.CaretY-1] := (DATElem as TDATSubPart).DATString; DATElem.Free; ErrorListView.items.delete(ErrorListView.ItemIndex); - end - - else if pos('Bad vertex sequence, 0312',ErrorListView.Items[ErrorListView.ItemIndex].SubItems[1])>0 then - begin - DATElem := TDATQuad.Create; - with DATElem as TDATQuad do - begin - DATString := frMain.editor.lines[frMain.editor.CaretY-1]; - FixBowtieQuad0312(DATElem as TDATQuad); - frMain.editor.lines[frMain.editor.CaretY-1] := DATString; - end; - DATElem.Free; - ErrorListView.items.delete(ErrorListView.ItemIndex); end; if ErrorListView.Items.Count < 1 then Modified: trunk/lddp/main.pas =================================================================== --- trunk/lddp/main.pas 2008-08-24 21:43:56 UTC (rev 338) +++ trunk/lddp/main.pas 2008-08-27 22:12:41 UTC (rev 339) @@ -75,8 +75,8 @@ InlinePart1: TMenuItem; Insert2: TMenuItem; MenuItem2: TMenuItem; - mnPollL3Lab: TMenuItem; - mnPollToSelected: TMenuItem; + mnuEnablePolling: TMenuItem; + mnuPollToSelected: TMenuItem; N5: TMenuItem; N8: TMenuItem; N10: TMenuItem; @@ -85,9 +85,9 @@ pmMemo: TPopupMenu; pmPolling: TPopupMenu; pmToolbars: TPopupMenu; - Pollevery5sec2: TMenuItem; - Pollevery1sec2: TMenuItem; - Pollevery2sec2: TMenuItem; + mnuPollEvery5sec: TMenuItem; + mnuPollEvery1sec: TMenuItem; + mnuPollevery2sec: TMenuItem; StandardPartHeader2: TMenuItem; StatusBar: TStatusBar; tmPoll: TTimer; @@ -176,14 +176,6 @@ ConvertBitmaptoLDraw1: TMenuItem; acModelTreeView: TAction; mnuModelTree: TMenuItem; - N15: TMenuItem; - Polling1: TMenuItem; - PolltoL3LabLDView1: TMenuItem; - Polltoselectedlineonly1: TMenuItem; - N16: TMenuItem; - Pollevery1sec1: TMenuItem; - Pollevery2sec1: TMenuItem; - Pollevery5sec: TMenuItem; N7: TMenuItem; View1: TMenuItem; MarkAll1: TMenuItem; @@ -222,8 +214,7 @@ Processing1: TMenuItem; RandomizeColorsinSelection1: TMenuItem; RandomizeColorsinSelection2: TMenuItem; - Pollonrequest1: TMenuItem; - Pollonrequest2: TMenuItem; + mnuPollOnRequest: TMenuItem; N24: TMenuItem; acMirrorX: TAction; acMirrorY: TAction; @@ -314,6 +305,7 @@ XAxis3: TMenuItem; YAxis3: TMenuItem; ZAxis3: TMenuItem; + mnuPollOnCustomInterval: TMenuItem; procedure acHomepageExecute(Sender: TObject); procedure acL3LabExecute(Sender: TObject); @@ -350,11 +342,11 @@ procedure FormDblClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure HelpAboutExecute(Sender: TObject); - procedure mnPollL3LabClick(Sender: TObject); - procedure mnPollToSelectedClick(Sender: TObject); - procedure Pollevery5sec2Click(Sender: TObject); - procedure Pollevery1sec2Click(Sender: TObject); - procedure Pollevery2sec2Click(Sender: TObject); + procedure mnuEnablePollingClick(Sender: TObject); + procedure mnuPollToSelectedClick(Sender: TObject); + procedure mnuPollEvery5secClick(Sender: TObject); + procedure mnuPollEvery1secClick(Sender: TObject); + procedure mnuPollevery2secClick(Sender: TObject); procedure tmPollTimer(Sender: TObject); procedure acFileSaveAsExecute(Sender: TObject); procedure acFileOpenExecute(Sender: TObject); @@ -371,7 +363,7 @@ procedure MetaMenuClick(Sender: TObject); procedure acTriangleCombineExecute(Sender: TObject); procedure acRandomizeColorsExecute(Sender: TObject); - procedure Pollonrequest1Click(Sender: TObject); + procedure mnuPollOnRequestClick(Sender: TObject); procedure acMirrorExecute(Sender: TObject); procedure acColorReplaceShortcutExecute(Sender: TObject); procedure tbUserDefinedClick(Sender: TObject); @@ -390,6 +382,8 @@ procedure DocumentTabsChange(Sender: TObject); procedure AppInstCmdLineReceived(Sender: TObject; CmdLine: TStrings); + procedure mnuPollOnCustomIntervalClick(Sender: TObject); + procedure CloseFile1Click(Sender: TObject); private TabRightClickIndex: Integer; @@ -405,7 +399,7 @@ strChangedCompleteText, strChangedSelText: string; procedure LoadPlugins; procedure OpenFile(filename: string); - procedure UpdateControls(Closing: Boolean = false); + procedure CloseFile(DocNumber: Integer); procedure UpdateMRU(NewFileName: TFileName= ''); procedure UpdateViewMenu; procedure LoadFormValues; @@ -619,7 +613,6 @@ editor.SelText := DATModel1.ModelText; editor.Modified := true; - UpdateControls(false); DATModel1.Free; end; @@ -721,14 +714,15 @@ ErrorLine := L3CheckLine(QuadCombine.DATString); flag := true; - if (pos('Collinear vertices',ErrorLine)>0) or - (pos('Vertices not coplaner',ErrorLine)>0) then + if (pos('Collinear vertices',ErrorLine) > 0) or + (pos('Vertices not coplaner',ErrorLine) > 0) or + (pos('Concave Quad',ErrorLine) > 0) then if MessageDlg(_('Combining these triangles:') + #13#10 + tri1.DATString + '(Line: ' + IntToStr(editor.LineFromPosition(editor.SelStart) + i) + ')' + #13#10 + tri2.DATString + '(Line: ' + IntToStr(editor.LineFromPosition(editor.SelStart) + i + 1) + ')' + #13#10 + - _('will result in a quad with collinear or') + #13#10 + - _('not coplaner vertices') + #13#10 + - _('Combine anyway?'), mtWarning, [mbYes, mbNo], 0) = mrNo then + _('will result in a concave quad or a quad with' + #13#10 + + 'collinear or not coplaner vertices' + #13#10 + + 'Combine anyway?'), mtWarning, [mbYes, mbNo], 0) = mrNo then flag := false; if flag then @@ -939,7 +933,6 @@ DocumentTabs.Open(filename); UpdateMRU(filename); DocumentTabs.ActiveDocument.Highlighter := 'LDraw'; - UpdateControls; end else MessageDlg(_('File ') + DocumentTabs.ActiveDocument.Filename + _(' not found'), mtError, [mbOK], 0); @@ -1002,9 +995,26 @@ end; procedure TfrMain.acFileCloseExecute(Sender: TObject); +// Close tab under cursor begin + CloseFile(DocumentTabs.ActiveDocument.Index); +end; + +procedure TfrMain.CloseFile(DocNumber: Integer); +var + LastTab: Boolean; + +begin + LastTab := DocumentTabs.Count <= 1; + DocumentTabs.Close(DocNumber); + if LastTab then + DocumentTabs.ActiveDocument.Highlighter := 'LDraw'; +end; + +procedure TfrMain.CloseFile1Click(Sender: TObject); +begin if TabRightClickIndex >= 0 then - DocumentTabs.Close(TabRightClickIndex); + CloseFile(TabRightClickIndex); end; // Help actions @@ -1021,7 +1031,12 @@ // Show options window begin frOptions.ShowModal; - UpdateControls; + + editor.OnlyRoundDuringAutoRound := frOptions.cboAutoRoundOnly.Checked; + mnuUserDefined.Enabled := frOptions.ExternalProgramList.Count > 0; + tbUserDefined.Enabled := frOptions.ExternalProgramList.Count > 0; + + editorUpdateUI(Sender); end; procedure TfrMain.acHomepageExecute(Sender: TObject); @@ -1312,68 +1327,6 @@ OpenFile(CmdLine[i]); end; -procedure TfrMain.UpdateControls(Closing: Boolean = false); -// Updated the action controls depending on the EditorChilds -var - documentcount: Integer; - -begin - documentcount := DocumentTabs.Count; - - if Closing then documentcount := documentcount - 1; - acFileClose.Enabled := documentcount > 0 ; - acFileCloseAll.Enabled := documentcount > 0; - acFileSaveAs.Enabled := documentcount > 0; - acFilePrint.Enabled := documentcount > 0; - acFileSave.Enabled := documentcount > 0; - acFileRevert.Enabled := documentcount > 0; - acldview.Enabled := documentcount > 0; - acl3Lab.Enabled := documentcount > 0; - acmlcad.Enabled := documentcount > 0; - acEditCut.Enabled := documentcount > 0; - acEditCopy.Enabled := documentcount > 0; - acEditPaste.Enabled := documentcount > 0; - btPolling.Enabled := documentcount > 0; - acSelectAll.Enabled := documentcount > 0; - acFind.Enabled := documentcount > 0; - acReplace.Enabled := documentcount > 0; - Plugins1.Enabled := documentcount > 0; - Insert1.Enabled := documentcount > 0; - Edit1.Enabled := documentcount > 0; - acCommentBlock.Enabled := documentcount > 0; - acUnCommentBlock.Enabled := documentcount > 0; - acIncIndent.Enabled := documentcount > 0; - acDecIndent.Enabled := documentcount > 0; - acTrimLines.Enabled := documentcount > 0; - acReverseWinding.Enabled := documentcount > 0; - acTriangleCombine.Enabled := documentcount > 0; - acMirrorX.Enabled := documentcount > 0; - acMirrorY.Enabled := documentcount > 0; - acMirrorZ.Enabled := documentcount > 0; - acAutoRound.Enabled := documentcount > 0; - acLSynth.Enabled := documentcount > 0; - acBendableObject.Enabled := documentcount > 0; - acModelTreeView.Enabled := documentcount > 0; - acBMP2LDraw.Enabled := documentcount > 0; - Mirror1.Enabled := documentcount > 0; - ErrorCheck1.Enabled := documentcount > 0; - MirrorLineOn1.Enabled := documentcount > 0; - tbrColorReplace.Enabled := documentcount > 0; - acSubfile.Enabled := documentcount > 0; - acSortSelection.Enabled := documentcount > 0; - acUserDefined.Enabled := documentcount > 0; - acReplaceColor.enabled := documentcount > 0; - acEditorOptions.Enabled := documentcount > 0; - - acUndo.Enabled := (documentcount>0) and editor.CanUndo; - acRedo.Enabled := (documentcount>0) and editor.CanRedo; - - if documentcount = 0 then acInline.enabled:=false; - - mnuUserDefined.Enabled := frOptions.ExternalProgramList.Count > 0; - tbUserDefined.Enabled := frOptions.ExternalProgramList.Count > 0; -end; - procedure TfrMain.editorUpdateUI(Sender: TObject); var i: Integer; @@ -1385,15 +1338,15 @@ else Statusbar.Panels[2].Text:=''; - acUndo.Enabled:=editor.CanUndo; - acRedo.Enabled:=editor.CanRedo; + StatusBar.Panels[1].text := IntToStr(editor.CaretY) + ':' + IntToStr(editor.CaretX); - StatusBar.Panels[1].text:=inttostr(editor.CaretY)+':'+inttostr(editor.CaretX); + acUndo.Enabled := (DocumentTabs.Count > 0) and editor.CanUndo; + acRedo.Enabled := (DocumentTabs.Count > 0) and editor.CanRedo; if editor.SelLength = 0 then begin DLine := StrToDAT(editor.Lines[editor.CaretY - 1]); - acInline.enabled := DLine.LineType = 1; + acInline.Enabled := DLine.LineType = 1; DLine.Free; end else @@ -1420,7 +1373,6 @@ 2: (PluginActionList.Actions[i] as TAction).Enabled := editor.SelLength <> 0; end; end; - UpdateControls; end; procedure TfrMain.FormDblClick(Sender: TObject); @@ -1441,7 +1393,6 @@ // if app starts for first time this initializes application and updates controls begin AppInitialize; - UpdateControls; frModelTreeView.RestorePosition; end; @@ -1621,8 +1572,6 @@ DocumentTabs.ActiveDocument.LastChanged := fileage; end; end; - - UpdateControls; end; procedure TfrMain.DocumentTabsClosing(Sender: TObject; const TabIndex: Integer; @@ -1801,56 +1750,60 @@ // do nothing end; -procedure TfrMain.Pollevery1sec2Click(Sender: TObject); +procedure TfrMain.mnuPollEvery1secClick(Sender: TObject); // Set polling interval to 1 sec begin - Pollevery1sec1.Checked := true; - Pollevery1sec2.Checked := true; - Pollonrequest2.ShortCut := 0; - tmPoll.Enabled:=false; - tmPoll.Interval:=1000; - tmPoll.Enabled:=true; + mnuPollEvery1sec.Checked := true; + mnuPollOnRequest.ShortCut := 0; + tmPoll.Enabled := false; + tmPoll.Interval := 1000; + tmPoll.Enabled := true; end; -procedure TfrMain.Pollevery2sec2Click(Sender: TObject); +procedure TfrMain.mnuPollevery2secClick(Sender: TObject); // Set polling interval to 2 secs begin - Pollevery2sec1.Checked := true; - Pollevery2sec2.Checked := true; - Pollonrequest2.ShortCut := 0; - tmPoll.Enabled:=false; - tmPoll.Interval:=2000; - tmPoll.Enabled:=true; + mnuPollEvery2sec.Checked := true; + mnuPollOnRequest.ShortCut := 0; + tmPoll.Enabled := false; + tmPoll.Interval := 2000; + tmPoll.Enabled := true; end; -procedure TfrMain.Pollevery5sec2Click(Sender: TObject); +procedure TfrMain.mnuPollEvery5secClick(Sender: TObject); // Set polling interval to 5 secs begin - Pollevery5sec.Checked := true; - Pollevery5sec2.Checked := true; - Pollonrequest2.ShortCut := 0; - tmPoll.Enabled:=false; - tmPoll.Interval:=5000; - tmPoll.Enabled:=true; + mnuPollEvery5sec.Checked := true; + mnuPollOnRequest.ShortCut := 0; + tmPoll.Enabled := false; + tmPoll.Interval := 5000; + tmPoll.Enabled := true; end; -procedure TfrMain.Pollonrequest1Click(Sender: TObject); +procedure TfrMain.mnuPollOnCustomIntervalClick(Sender: TObject); +begin + mnuPollOnCustomInterval.Checked := true; + mnuPollOnRequest.ShortCut := 0; + tmPoll.Enabled := false; + tmPoll.Interval := frOptions.seCustomPollInterval.Value * 1000; + tmPoll.Enabled := true; +end; + +procedure TfrMain.mnuPollOnRequestClick(Sender: TObject); // Poll on request begin - Pollonrequest1.Checked := true; - Pollonrequest2.Checked := true; - Pollonrequest2.ShortCut := TextToShortcut('F11'); - tmPoll.Enabled:=false; - tmPollTimer(nil); + mnuPollOnRequest.Checked := true; + mnuPollOnRequest.ShortCut := TextToShortcut('F11'); + tmPoll.Enabled := false; + tmPollTimer(Sender); end; -procedure TfrMain.mnPollToSelectedClick(Sender: TObject); +procedure TfrMain.mnuPollToSelectedClick(Sender: TObject); // Switch polling to selected line begin - mnPollToSelected.Checked:=not mnPollToSelected.Checked; - Polltoselectedlineonly1.Checked := not Polltoselectedlineonly1.Checked; + mnuPollToSelected.Checked := not mnuPollToSelected.Checked; end; procedure TfrMain.tmPollTimer(Sender: TObject); @@ -1859,26 +1812,25 @@ st: TStringList; begin - if mnPollL3Lab.Checked and (DocumentTabs.Count > 0) then - if mnPolltoSelected.checked then - begin - st:=TStringList.Create; - st.Text:=editor.Lines.Text; - while st.Count>editor.CaretY do - st.Delete(st.Count-1); - st.SaveToFile(tempFileName); - end - else editor.lines.SaveToFile(tempFileName); + if mnuEnablePolling.Checked and (DocumentTabs.Count > 0) then + if mnuPollToSelected.checked then + begin + st := TStringList.Create; + st.Text := editor.Lines.Text; + while st.Count > editor.CaretY do + st.Delete(st.Count - 1); + st.SaveToFile(tempFileName); + end + else editor.lines.SaveToFile(tempFileName); end; -procedure TfrMain.mnPollL3LabClick(Sender: TObject); +procedure TfrMain.mnuEnablePollingClick(Sender: TObject); // Activate Polling for L3Lab begin - mnPollL3Lab.checked:= not mnPollL3Lab.checked; - PolltoL3LabLDView1.Checked := not PolltoL3LabLDView1.Checked; - if (Pollonrequest1.Checked) and (not mnPollL3Lab.checked) then - Pollonrequest1.ShortCut := 0; + mnuEnablePolling.Checked := not mnuEnablePolling.Checked; + if (mnuPollOnRequest.Checked) and (not mnuEnablePolling.Checked) then + mnuPollOnRequest.ShortCut := 0; end; procedure TfrMain.UpdateMRU(NewFileName: TFileName = ''); @@ -1940,6 +1892,20 @@ tbrTools.Visible := LDDPini.ReadBool(IniSection, 'tbrTools_Visible', tbrTools.Visible); tbrEditing.Visible := LDDPini.ReadBool(IniSection, 'tbrEditing_Visible', tbrEditing.Visible); tbrColorReplace.Visible := LDDPini.ReadBool(IniSection, 'tbrColorReplace_Visible', tbrColorReplace.Visible); + if LDDPini.ReadBool(IniSection, 'mnuEnablePolling_Checked', mnuEnablePolling.Checked) then + mnuEnablePollingClick(nil); + if LDDPini.ReadBool(IniSection, 'mnuPollToSelected_Checked', mnuPollToSelected.Checked) then + mnuPollToSelectedClick(nil); + if LDDPini.ReadBool(IniSection, 'mnuPollEvery1Sec_Checked', mnuPollEvery1Sec.Checked) then + mnuPollEvery1SecClick(nil); + if LDDPini.ReadBool(IniSection, 'mnuPollEvery2Sec_Checked', mnuPollEvery2Sec.Checked) then + mnuPollEvery2SecClick(nil); + if LDDPini.ReadBool(IniSection, 'mnuPollEvery5Sec_Checked', mnuPollEvery5Sec.Checked) then + mnuPollEvery5SecClick(nil); + if LDDPini.ReadBool(IniSection, 'mnuPollOnCustomInterval_Checked', mnuPollOnCustomInterval.Checked) then + mnuPollOnCustomIntervalClick(nil); + if LDDPini.ReadBool(IniSection, 'mnuPollOnRequest_Checked', mnuPollOnRequest.Checked) then + mnuPollOnRequestClick(nil); SearchReplaceDlg.ReplaceTextHistory := LDDPini.ReadString(IniSection, 'SearchReplaceDlg_ReplaceTextHistory', SearchReplaceDlg.ReplaceTextHistory); SearchReplaceDlg.SearchTextHistory := LDDPini.ReadString(IniSection, 'SearchReplaceDlg_SearchTextHistory', SearchReplaceDlg.SearchTextHistory); LDDPini.Free; @@ -1968,6 +1934,13 @@ LDDPini.WriteBool(IniSection, 'tbrTools_Visible', tbrTools.Visible); LDDPini.WriteBool(IniSection, 'tbrEditing_Visible', tbrEditing.Visible); LDDPini.WriteBool(IniSection, 'tbrColorReplace_Visible', tbrColorReplace.Visible); + LDDPini.WriteBool(IniSection, 'mnuEnablePolling_Checked', mnuEnablePolling.Checked); + LDDPini.WriteBool(IniSection, 'mnuPollToSelected_Checked', mnuPollToSelected.Checked); + LDDPini.WriteBool(IniSection, 'mnuPollEvery1Sec_Checked', mnuPollEvery1Sec.Checked); + LDDPini.WriteBool(IniSection, 'mnuPollEvery2Sec_Checked', mnuPollEvery2Sec.Checked); + LDDPini.WriteBool(IniSection, 'mnuPollEvery5Sec_Checked', mnuPollEvery5Sec.Checked); + LDDPini.WriteBool(IniSection, 'mnuPollOnCustomInterval_Checked', mnuPollOnCustomInterval.Checked); + LDDPini.WriteBool(IniSection, 'mnuPollOnRequest_Checked', mnuPollOnRequest.Checked); LDDPini.WriteString(IniSection, 'SearchReplaceDlg_ReplaceTextHistory', SearchReplaceDlg.ReplaceTextHistory); LDDPini.WriteString(IniSection, 'SearchReplaceDlg_SearchTextHistory', SearchReplaceDlg.SearchTextHistory); @@ -1982,7 +1955,7 @@ Return value: Path & Filename of the temporary filename ---------------------------------------------------------------------} begin - Result := WinTempDir + DocumentTabs.ActiveDocument.TabName;//ExtractFileName(ExtractShortPathName(DocumentTabs.ActiveDocument.FileName)) + Result := WinTempDir + ExtractFileName(DocumentTabs.ActiveDocument.FileName); end; procedure TfrMain.FormClose(Sender: TObject; var Action: TCloseAction); Modified: trunk/lddp/options.pas =================================================================== --- trunk/lddp/options.pas 2008-08-24 21:43:56 UTC (rev 338) +++ trunk/lddp/options.pas 2008-08-27 22:12:41 UTC (rev 339) @@ -121,6 +121,9 @@ cboAutoRoundOnly: TCheckBox; ColorBarCombo: TJvColorComboBox; TabSheet5: TTabSheet; + GroupBox6: TGroupBox; + Label1: TLabel; + seCustomPollInterval: TJvValidateEdit; procedure PageControl1Change(Sender: TObject); procedure btnRescanPluginsClick(Sender: TObject); procedure cblPluginsClickCheck(Sender: TObject); @@ -143,7 +146,7 @@ procedure ColorBarSheetShow(Sender: TObject); procedure ColorBarComboChange(Sender: TObject); - private + protected ColorBarList: TStringList; procedure ColorButtonChange(ImageColor: TColor; ColorName, ColorNumber: string; ButtonIndex: Integer); procedure MakeExternalMenuItem(ProgIndex:Integer); @@ -323,6 +326,7 @@ LDDPini.WriteFloat(IniSection, 'seDist_Value', seDist.Value); LDDPini.WriteFloat(IniSection, 'seNormalAngle_Value', seNormalAngle.Value); LDDPini.WriteFloat(IniSection, 'seCollinear_Value', seCollinear.Value); + LDDPini.WriteFloat(IniSection, 'seCustomPollInterval_Value', seCustomPollInterval.Value); LDDPini.WriteInteger(IniSection, 'sePntAcc_Value', sePntAcc.Value); LDDPini.WriteInteger(IniSection, 'seRotAcc_Value', seRotAcc.Value); LDDPini.WriteBool(IniSection, 'cboDist_Checked', cboDist.Checked); @@ -374,6 +378,7 @@ if seNormalAngle.Value = 0 then seNormalAngle.Value := 1; seCollinear.Value := LDDPini.ReadFloat(IniSection, 'seCollinear_Value', 0.0001); if seCollinear.Value = 0 then seCollinear.Value := 0.0001; + seCustomPollInterval.Value := LDDPini.ReadFloat(IniSection, 'seCustomPollInterval_Value', 0.1); sePntAcc.Value := LDDPini.ReadInteger(IniSection, 'sePntAcc_Value', 4); if sePntAcc.Value = 0 then sePntAcc.Value := 4; seRotAcc.Value := LDDPini.ReadInteger(IniSection, 'seRotAcc_Value', 4); @@ -681,12 +686,10 @@ procedure TfrOptions.FormClose(Sender: TObject; var Action: TCloseAction); begin if ModalResult = mrOK then - begin - SaveFormValues; - SetConfigurationConstants; - end + SaveFormValues else LoadFormValues; + SetConfigurationConstants; end; procedure TfrOptions.FormCreate(Sender: TObject); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |