You've already forked lazarus-ccr
LazMapViewer: Add new properties LineColor and LineWidth to TGpsTrack. Add demo showing several individually colored tracks. Add some utility functions.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8102 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -166,6 +166,13 @@ uses
|
||||
GraphType, Types,
|
||||
mvJobQueue, mvExtraData, mvDLEFpc, mvDE_IntfGraphics;
|
||||
|
||||
{ Converts a length given in millimeters to screen pixels }
|
||||
function mmToPx(AValue: Double): Integer;
|
||||
begin
|
||||
Result := round(AValue / 25.4 * ScreenInfo.PixelsPerInchX);
|
||||
end;
|
||||
|
||||
|
||||
type
|
||||
|
||||
{ TDrawObjJob }
|
||||
@@ -575,18 +582,27 @@ var
|
||||
trkColor: TColor;
|
||||
trkWidth: Integer;
|
||||
begin
|
||||
if trk.Points.Count > 0 then
|
||||
if trk.Visible and (trk.Points.Count > 0) then
|
||||
begin
|
||||
trkColor := ColorToRGB(FDefaultTrackColor);
|
||||
trkWidth := FDefaultTrackWidth;
|
||||
if trk.ExtraData <> nil then
|
||||
// Determine track color
|
||||
if trk.LineColor = clDefault then
|
||||
begin
|
||||
if trk.ExtraData.InheritsFrom(TDrawingExtraData) then
|
||||
trkColor := ColorToRGB(FDefaultTrackColor);
|
||||
if (trk.ExtraData <> nil) and trk.ExtraData.InheritsFrom(TDrawingExtraData) then
|
||||
trkColor := TDrawingExtraData(trk.ExtraData).Color;
|
||||
if trk.ExtraData.InheritsFrom(TTrackExtraData) then
|
||||
trkWidth := round(ScreenInfo.PixelsPerInchX * TTrackExtraData(trk.ExtraData).Width / 25.4);
|
||||
end;
|
||||
end else
|
||||
trkColor := ColorToRGB(trk.LineColor);
|
||||
|
||||
// Determine track width
|
||||
if trk.LineWidth = -1 then
|
||||
begin
|
||||
trkWidth := FDefaultTrackWidth;
|
||||
if (trk.ExtraData <> nil) and trk.ExtraData.InheritsFrom(TTrackExtraData) then
|
||||
trkWidth := mmToPx(TTrackExtraData(trk.ExtraData).Width);
|
||||
end else
|
||||
trkWidth := mmToPx(trk.LineWidth);
|
||||
if trkWidth < 1 then trkWidth := 1;
|
||||
|
||||
LastInside := false;
|
||||
DrawingEngine.PenColor := trkColor;
|
||||
DrawingEngine.PenWidth := trkWidth;
|
||||
|
||||
Reference in New Issue
Block a user