mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 15:19:19 +02:00
* Start of new Icon - bitmap cleanup
git-svn-id: trunk@13624 -
This commit is contained in:
parent
3e34d8a699
commit
39aa9c05e7
@ -695,19 +695,23 @@ type
|
|||||||
procedure WriteData(Stream: TStream); virtual;
|
procedure WriteData(Stream: TStream); virtual;
|
||||||
public
|
public
|
||||||
constructor Create; virtual;
|
constructor Create; virtual;
|
||||||
|
function LazarusResourceTypeValid(const AResourceType: string): boolean; virtual;
|
||||||
procedure LoadFromFile(const Filename: string); virtual;
|
procedure LoadFromFile(const Filename: string); virtual;
|
||||||
procedure SaveToFile(const Filename: string); virtual;
|
|
||||||
procedure LoadFromStream(Stream: TStream); virtual; abstract;
|
procedure LoadFromStream(Stream: TStream); virtual; abstract;
|
||||||
procedure SaveToStream(Stream: TStream); virtual; abstract;
|
|
||||||
procedure LoadFromMimeStream(Stream: TStream; const MimeType: string); virtual;
|
procedure LoadFromMimeStream(Stream: TStream; const MimeType: string); virtual;
|
||||||
procedure LoadFromLazarusResource(const ResName: String); virtual; abstract;
|
procedure LoadFromLazarusResource(const ResName: String); virtual;
|
||||||
|
procedure LoadFromResourceName(Instance: THandle; const ResName: String);
|
||||||
|
procedure LoadFromResourceID(Instance: THandle; ResID: Integer);
|
||||||
procedure LoadFromClipboardFormat(FormatID: TClipboardFormat); virtual;
|
procedure LoadFromClipboardFormat(FormatID: TClipboardFormat); virtual;
|
||||||
procedure LoadFromClipboardFormatID(ClipboardType: TClipboardType;
|
procedure LoadFromClipboardFormatID(ClipboardType: TClipboardType;
|
||||||
FormatID: TClipboardFormat); virtual;
|
FormatID: TClipboardFormat); virtual;
|
||||||
|
procedure SaveToFile(const Filename: string); virtual;
|
||||||
|
procedure SaveToStream(Stream: TStream); virtual; abstract;
|
||||||
procedure SaveToClipboardFormat(FormatID: TClipboardFormat); virtual;
|
procedure SaveToClipboardFormat(FormatID: TClipboardFormat); virtual;
|
||||||
procedure SaveToClipboardFormatID(ClipboardType: TClipboardType;
|
procedure SaveToClipboardFormatID(ClipboardType: TClipboardType;
|
||||||
FormatID: TClipboardFormat); virtual;
|
FormatID: TClipboardFormat); virtual;
|
||||||
procedure GetSupportedSourceMimeTypes(List: TStrings); virtual;
|
procedure GetSupportedSourceMimeTypes(List: TStrings); virtual;
|
||||||
|
function GetResourceType: TResourceType; virtual;
|
||||||
function GetDefaultMimeType: string; virtual;
|
function GetDefaultMimeType: string; virtual;
|
||||||
class function GetFileExtensions: string; virtual;
|
class function GetFileExtensions: string; virtual;
|
||||||
class function GetFPReaderForFileExt(
|
class function GetFPReaderForFileExt(
|
||||||
@ -1152,6 +1156,7 @@ type
|
|||||||
function GetHandle: HBITMAP; virtual;
|
function GetHandle: HBITMAP; virtual;
|
||||||
function GetMaskHandle: HBITMAP; virtual;
|
function GetMaskHandle: HBITMAP; virtual;
|
||||||
function GetTransparent: Boolean; override;
|
function GetTransparent: Boolean; override;
|
||||||
|
function GetBitmapNativeType: TBitmapNativeType; virtual;
|
||||||
procedure HandleNeeded;
|
procedure HandleNeeded;
|
||||||
procedure MaskHandleNeeded;
|
procedure MaskHandleNeeded;
|
||||||
procedure PaletteNeeded;
|
procedure PaletteNeeded;
|
||||||
@ -1180,22 +1185,19 @@ type
|
|||||||
function MaskHandleAllocated: boolean;
|
function MaskHandleAllocated: boolean;
|
||||||
function PaletteAllocated: boolean;
|
function PaletteAllocated: boolean;
|
||||||
procedure CreateFromBitmapHandles(ABitmap, AMask: HBitmap; const ARect: TRect);
|
procedure CreateFromBitmapHandles(ABitmap, AMask: HBitmap; const ARect: TRect);
|
||||||
function LazarusResourceTypeValid(const ResourceType: string): boolean; virtual;
|
function LazarusResourceTypeValid(const ResourceType: string): boolean; override;
|
||||||
procedure LoadFromDevice(DC: HDC); virtual;
|
procedure LoadFromDevice(DC: HDC); virtual;
|
||||||
procedure LoadFromStream(Stream: TStream); override;
|
procedure LoadFromStream(Stream: TStream); override;
|
||||||
procedure LoadFromLazarusResource(const ResName: String); override;
|
|
||||||
procedure LoadFromResourceName(Instance: THandle; const ResName: String); virtual;
|
|
||||||
procedure LoadFromResourceID(Instance: THandle; ResID: Integer); virtual;
|
|
||||||
procedure LoadFromMimeStream(Stream: TStream; const MimeType: string); override;
|
procedure LoadFromMimeStream(Stream: TStream; const MimeType: string); override;
|
||||||
procedure SaveToFile(const Filename: string); override;
|
procedure LoadFromIntfImage(IntfImage: TLazIntfImage);
|
||||||
|
procedure LoadFromXPMFile(const Filename: String); deprecated;
|
||||||
|
procedure SaveToStream(Stream: TStream); override;
|
||||||
procedure GetSupportedSourceMimeTypes(List: TStrings); override;
|
procedure GetSupportedSourceMimeTypes(List: TStrings); override;
|
||||||
function GetDefaultMimeType: string; override;
|
function GetDefaultMimeType: string; override;
|
||||||
|
function GetResourceType: TResourceType; override;
|
||||||
class function GetFileExtensions: string; override;
|
class function GetFileExtensions: string; override;
|
||||||
procedure LoadFromXPMFile(const Filename: String);
|
|
||||||
procedure LoadFromIntfImage(IntfImage: TLazIntfImage);
|
|
||||||
procedure Mask(ATransparentColor: TColor);
|
procedure Mask(ATransparentColor: TColor);
|
||||||
procedure SetHandles(ABitmap, AMask: HBITMAP);
|
procedure SetHandles(ABitmap, AMask: HBITMAP);
|
||||||
procedure SaveToStream(Stream: TStream); override;
|
|
||||||
procedure ReadStream(Stream: TStream; UseSize: boolean; Size: Longint); virtual;
|
procedure ReadStream(Stream: TStream; UseSize: boolean; Size: Longint); virtual;
|
||||||
procedure WriteStream(Stream: TStream; WriteSize: Boolean); virtual;
|
procedure WriteStream(Stream: TStream; WriteSize: Boolean); virtual;
|
||||||
function ReleaseHandle: HBITMAP;
|
function ReleaseHandle: HBITMAP;
|
||||||
@ -1236,8 +1238,9 @@ type
|
|||||||
{ TPixmap }
|
{ TPixmap }
|
||||||
|
|
||||||
TPixmap = class(TBitmap)
|
TPixmap = class(TBitmap)
|
||||||
|
protected
|
||||||
|
function GetBitmapNativeType: TBitmapNativeType; override;
|
||||||
public
|
public
|
||||||
procedure SaveToFile(const Filename: string); override;
|
|
||||||
function LazarusResourceTypeValid(const ResourceType: string): boolean; override;
|
function LazarusResourceTypeValid(const ResourceType: string): boolean; override;
|
||||||
procedure WriteStream(Stream: TStream; WriteSize: Boolean); override;
|
procedure WriteStream(Stream: TStream; WriteSize: Boolean); override;
|
||||||
class function GetDefaultFPReader: TFPCustomImageReaderClass; override;
|
class function GetDefaultFPReader: TFPCustomImageReaderClass; override;
|
||||||
@ -1250,6 +1253,8 @@ type
|
|||||||
reader and writer }
|
reader and writer }
|
||||||
|
|
||||||
TFPImageBitmap = class(TBitmap)
|
TFPImageBitmap = class(TBitmap)
|
||||||
|
protected
|
||||||
|
function GetBitmapNativeType: TBitmapNativeType; override;
|
||||||
public
|
public
|
||||||
class function GetFileExtensions: string; override;
|
class function GetFileExtensions: string; override;
|
||||||
class function IsFileExtensionSupported(const FileExtension: string): boolean;
|
class function IsFileExtensionSupported(const FileExtension: string): boolean;
|
||||||
@ -1297,10 +1302,14 @@ type
|
|||||||
Bitmaps property
|
Bitmaps property
|
||||||
Writing is not (yet) implemented.
|
Writing is not (yet) implemented.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{.$define ICON_OLDSTYLE} // Set to keep original functionality
|
||||||
|
|
||||||
TIcon = class(TBitmap)
|
TIcon = class(TBitmap)
|
||||||
private
|
private
|
||||||
FBitmaps: TObjectList;
|
FBitmaps: TObjectList;
|
||||||
protected
|
protected
|
||||||
|
function GetBitmapNativeType: TBitmapNativeType; override;
|
||||||
procedure ReadData(Stream: TStream); override;
|
procedure ReadData(Stream: TStream); override;
|
||||||
procedure InitFPImageReader(IntfImg: TLazIntfImage; ImgReader: TFPCustomImageReader); override;
|
procedure InitFPImageReader(IntfImg: TLazIntfImage; ImgReader: TFPCustomImageReader); override;
|
||||||
public
|
public
|
||||||
@ -1310,6 +1319,7 @@ type
|
|||||||
procedure AddBitmap(Bitmap: TBitmap); { Note that Ownership passes to TIcon }
|
procedure AddBitmap(Bitmap: TBitmap); { Note that Ownership passes to TIcon }
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ TCursorImage }
|
{ TCursorImage }
|
||||||
TCursorImage = class(TIcon)
|
TCursorImage = class(TIcon)
|
||||||
private
|
private
|
||||||
@ -1317,6 +1327,7 @@ type
|
|||||||
FCursorHandle: HCURSOR;
|
FCursorHandle: HCURSOR;
|
||||||
FOwnHandle: Boolean;
|
FOwnHandle: Boolean;
|
||||||
protected
|
protected
|
||||||
|
function GetBitmapNativeType: TBitmapNativeType; override;
|
||||||
function GetCursorHandle: HCURSOR;
|
function GetCursorHandle: HCURSOR;
|
||||||
procedure CursorHandleNeeded;
|
procedure CursorHandleNeeded;
|
||||||
public
|
public
|
||||||
@ -1938,6 +1949,11 @@ begin
|
|||||||
Result:=nil;
|
Result:=nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TFPImageBitmap.GetBitmapNativeType: TBitmapNativeType;
|
||||||
|
begin
|
||||||
|
Result := bnNone;
|
||||||
|
end;
|
||||||
|
|
||||||
class function TFPImageBitmap.GetDefaultFPReader: TFPCustomImageReaderClass;
|
class function TFPImageBitmap.GetDefaultFPReader: TFPCustomImageReaderClass;
|
||||||
begin
|
begin
|
||||||
Result:=nil;
|
Result:=nil;
|
||||||
@ -2044,6 +2060,11 @@ begin
|
|||||||
FreeAndNil(FBitmaps);
|
FreeAndNil(FBitmaps);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TIcon.GetBitmapNativeType: TBitmapNativeType;
|
||||||
|
begin
|
||||||
|
Result := bnIcon;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TIcon.AddBitmap(Bitmap: TBitmap);
|
procedure TIcon.AddBitmap(Bitmap: TBitmap);
|
||||||
begin
|
begin
|
||||||
if not Assigned(FBitmaps) then
|
if not Assigned(FBitmaps) then
|
||||||
@ -2051,6 +2072,8 @@ begin
|
|||||||
FBitmaps.Add(Bitmap);
|
FBitmaps.Add(Bitmap);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{ TCursorImage }
|
{ TCursorImage }
|
||||||
|
|
||||||
class function TCursorImage.GetFileExtensions: string;
|
class function TCursorImage.GetFileExtensions: string;
|
||||||
@ -2106,6 +2129,11 @@ begin
|
|||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TCursorImage.GetBitmapNativeType: TBitmapNativeType;
|
||||||
|
begin
|
||||||
|
Result := bnCursor;
|
||||||
|
end;
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
// Decrease the component RGBs of a color of the quantity' passed
|
// Decrease the component RGBs of a color of the quantity' passed
|
||||||
//
|
//
|
||||||
|
@ -270,9 +270,8 @@ end;
|
|||||||
|
|
||||||
function TBitmap.LazarusResourceTypeValid(const ResourceType: string): boolean;
|
function TBitmap.LazarusResourceTypeValid(const ResourceType: string): boolean;
|
||||||
begin
|
begin
|
||||||
Result:=((ClassType=TBitmap) or (ClassType=TPixmap) or (ClassType=TIcon))
|
Result := AnsiSameText(ResourceType,'XPM')
|
||||||
and ((AnsiCompareText(ResourceType,'XPM')=0)
|
or AnsiSameText(ResourceType,'BMP');
|
||||||
or (AnsiCompareText(ResourceType,'BMP')=0));
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBitMap.Mask(ATransparentColor: TColor);
|
procedure TBitMap.Mask(ATransparentColor: TColor);
|
||||||
@ -442,51 +441,11 @@ begin
|
|||||||
// CreateMask;
|
// CreateMask;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBitmap.LoadFromLazarusResource(const ResName: String);
|
|
||||||
var
|
|
||||||
Stream: TLazarusResourceStream;
|
|
||||||
begin
|
|
||||||
Stream := nil;
|
|
||||||
try
|
|
||||||
Stream := TLazarusResourceStream.Create(ResName, nil);
|
|
||||||
if LazarusResourceTypeValid(Stream.Res.ValueType) then
|
|
||||||
LoadFromStream(Stream);
|
|
||||||
finally
|
|
||||||
Stream.Free;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TBitMap.LoadFromStream(Stream: TStream);
|
procedure TBitMap.LoadFromStream(Stream: TStream);
|
||||||
begin
|
begin
|
||||||
ReadStream(Stream, true, Stream.Size - Stream.Position);
|
ReadStream(Stream, true, Stream.Size - Stream.Position);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBitMap.LoadFromResourceName(Instance: THandle; const ResName: String);
|
|
||||||
var
|
|
||||||
Stream: TResourceStream;
|
|
||||||
begin
|
|
||||||
Stream := nil;
|
|
||||||
try
|
|
||||||
Stream := TResourceStream.Create(Instance, ResName, RT_BITMAP);
|
|
||||||
LoadFromStream(Stream);
|
|
||||||
finally
|
|
||||||
Stream.Free;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TBitMap.LoadFromResourceID(Instance: THandle; ResID: Integer);
|
|
||||||
var
|
|
||||||
Stream: TResourceStream;
|
|
||||||
begin
|
|
||||||
Stream := nil;
|
|
||||||
try
|
|
||||||
Stream := TResourceStream.CreateFromID(Instance, ResID, RT_BITMAP);
|
|
||||||
LoadFromStream(Stream);
|
|
||||||
finally
|
|
||||||
Stream.Free;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TBitmap.GetSupportedSourceMimeTypes(List: TStrings);
|
procedure TBitmap.GetSupportedSourceMimeTypes(List: TStrings);
|
||||||
begin
|
begin
|
||||||
if (ClassType=TBitmap) or (ClassType=TPixmap) or (ClassType=TIcon) then
|
if (ClassType=TBitmap) or (ClassType=TPixmap) or (ClassType=TIcon) then
|
||||||
@ -609,6 +568,11 @@ begin
|
|||||||
FImage.SaveStreamClass:=nil;
|
FImage.SaveStreamClass:=nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TBitmap.GetBitmapNativeType: TBitmapNativeType;
|
||||||
|
begin
|
||||||
|
Result := bnWinBitmap;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TBitmap.ReadStream(Stream: TStream; UseSize: boolean; Size: Longint);
|
procedure TBitmap.ReadStream(Stream: TStream; UseSize: boolean; Size: Longint);
|
||||||
|
|
||||||
procedure RaiseInvalidBitmapHeader;
|
procedure RaiseInvalidBitmapHeader;
|
||||||
@ -703,18 +667,6 @@ begin
|
|||||||
inherited LoadFromMimeStream(Stream, MimeType);
|
inherited LoadFromMimeStream(Stream, MimeType);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBitmap.SaveToFile(const Filename: string);
|
|
||||||
begin
|
|
||||||
if (ClassType=TBitmap) and (FImage.SaveStreamType<>bnWinBitmap) then begin
|
|
||||||
// TBitmap should always save in .bmp format
|
|
||||||
// but the current SaveStream is not in .bmp format.
|
|
||||||
// -> Clear the SaveStream.
|
|
||||||
UnshareImage(true);
|
|
||||||
FreeSaveStream;
|
|
||||||
end;
|
|
||||||
inherited SaveToFile(Filename);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TBitmap.SetWidthHeight(NewWidth, NewHeight: integer);
|
procedure TBitmap.SetWidthHeight(NewWidth, NewHeight: integer);
|
||||||
begin
|
begin
|
||||||
if (FImage.FDIB.dsbm.bmHeight <> NewHeight)
|
if (FImage.FDIB.dsbm.bmHeight <> NewHeight)
|
||||||
@ -937,9 +889,10 @@ var
|
|||||||
RawImage: TRawImage;
|
RawImage: TRawImage;
|
||||||
begin
|
begin
|
||||||
//DebugLn(['WriteStreamWithFPImage Self=',DbgS(Self),' ',Width,',',Height,' Using SaveStream=',(FImage.SaveStream<>nil) and (FImage.SaveStream.Size>0)]);
|
//DebugLn(['WriteStreamWithFPImage Self=',DbgS(Self),' ',Width,',',Height,' Using SaveStream=',(FImage.SaveStream<>nil) and (FImage.SaveStream.Size>0)]);
|
||||||
if (FImage.SaveStream<>nil) and (FImage.SaveStream.Size>0)
|
if (FImage.SaveStream<>nil)
|
||||||
and ((FImage.SaveStreamType<>bnNone)
|
and (FImage.SaveStream.Size>0)
|
||||||
or CanReadGraphicStreams(FImage.SaveStreamClass))
|
and (FImage.SaveStreamType = GetBitmapNativeType)
|
||||||
|
and ((FImage.SaveStreamType<>bnNone) or CanReadGraphicStreams(FImage.SaveStreamClass))
|
||||||
then begin
|
then begin
|
||||||
// it's a stream format, that this graphic class can read
|
// it's a stream format, that this graphic class can read
|
||||||
// (important for restore)
|
// (important for restore)
|
||||||
@ -1266,6 +1219,11 @@ begin
|
|||||||
Result := FImage.FPalette;
|
Result := FImage.FPalette;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TBitmap.GetResourceType: TResourceType;
|
||||||
|
begin
|
||||||
|
Result := RT_BITMAP;
|
||||||
|
end;
|
||||||
|
|
||||||
function TBitmap.GetWidth: Integer;
|
function TBitmap.GetWidth: Integer;
|
||||||
begin
|
begin
|
||||||
Result := FImage.FDIB.dsbm.bmWidth;
|
Result := FImage.FDIB.dsbm.bmWidth;
|
||||||
|
@ -45,6 +45,11 @@ begin
|
|||||||
Result:=0;
|
Result:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TGraphic.GetResourceType: TResourceType;
|
||||||
|
begin
|
||||||
|
Result := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TGraphic.Changed(Sender: TObject);
|
procedure TGraphic.Changed(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
FModified := True;
|
FModified := True;
|
||||||
@ -126,7 +131,39 @@ begin
|
|||||||
if (DefMimeType<>'') and (MimeType=GetDefaultMimeType) then
|
if (DefMimeType<>'') and (MimeType=GetDefaultMimeType) then
|
||||||
LoadFromStream(Stream)
|
LoadFromStream(Stream)
|
||||||
else
|
else
|
||||||
raise Exception.Create(ClassName+': Unsupported MimeType: '+MimeType);
|
raise EInvalidGraphic.Create(ClassName+': Unsupported MimeType: '+MimeType);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TGraphic.LoadFromResourceID(Instance: THandle; ResID: Integer);
|
||||||
|
var
|
||||||
|
Stream: TResourceStream;
|
||||||
|
ResType: TResourceType;
|
||||||
|
begin
|
||||||
|
ResType := GetResourceType;
|
||||||
|
if ResType = nil then Exit;
|
||||||
|
|
||||||
|
Stream := TResourceStream.CreateFromID(Instance, ResID, ResType);
|
||||||
|
try
|
||||||
|
LoadFromStream(Stream);
|
||||||
|
finally
|
||||||
|
Stream.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TGraphic.LoadFromResourceName(Instance: THandle; const ResName: String);
|
||||||
|
var
|
||||||
|
Stream: TResourceStream;
|
||||||
|
ResType: TResourceType;
|
||||||
|
begin
|
||||||
|
ResType := GetResourceType;
|
||||||
|
if ResType = nil then Exit;
|
||||||
|
|
||||||
|
Stream := TResourceStream.Create(Instance, ResName, ResType);
|
||||||
|
try
|
||||||
|
LoadFromStream(Stream);
|
||||||
|
finally
|
||||||
|
Stream.Free;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGraphic.LoadFromClipboardFormat(FormatID: TClipboardFormat);
|
procedure TGraphic.LoadFromClipboardFormat(FormatID: TClipboardFormat);
|
||||||
@ -193,6 +230,21 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TGraphic.LoadFromLazarusResource(const ResName: String);
|
||||||
|
var
|
||||||
|
Stream: TLazarusResourceStream;
|
||||||
|
begin
|
||||||
|
Stream := nil;
|
||||||
|
try
|
||||||
|
Stream := TLazarusResourceStream.Create(ResName, nil);
|
||||||
|
if LazarusResourceTypeValid(Stream.Res.ValueType)
|
||||||
|
then LoadFromStream(Stream)
|
||||||
|
else raise EInvalidGraphic.Create(ClassName+': Unsupported Resourcetype: '+Stream.Res.ValueType);
|
||||||
|
finally
|
||||||
|
Stream.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TGraphic.WriteData(Stream: TStream);
|
procedure TGraphic.WriteData(Stream: TStream);
|
||||||
begin
|
begin
|
||||||
SaveToStream(Stream);
|
SaveToStream(Stream);
|
||||||
@ -203,6 +255,11 @@ begin
|
|||||||
Result := FTransparent;
|
Result := FTransparent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TGraphic.LazarusResourceTypeValid(const AResourceType: string): boolean;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TGraphic.SetModified(Value: Boolean);
|
procedure TGraphic.SetModified(Value: Boolean);
|
||||||
begin
|
begin
|
||||||
if Value then
|
if Value then
|
||||||
|
@ -277,18 +277,6 @@ end;
|
|||||||
|
|
||||||
{ TPixmap }
|
{ TPixmap }
|
||||||
|
|
||||||
procedure TPixmap.SaveToFile(const Filename: string);
|
|
||||||
begin
|
|
||||||
if (ClassType=TPixmap) and (FImage.SaveStreamType<>bnXPixmap) then begin
|
|
||||||
// TPixmap should always save in .xpm format
|
|
||||||
// but the current SaveStream is not in .xpm format.
|
|
||||||
// -> Clear the SaveStream.
|
|
||||||
UnshareImage(true);
|
|
||||||
FreeSaveStream;
|
|
||||||
end;
|
|
||||||
inherited SaveToFile(Filename);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TPixmap.LazarusResourceTypeValid(const ResourceType: string): boolean;
|
function TPixmap.LazarusResourceTypeValid(const ResourceType: string): boolean;
|
||||||
begin
|
begin
|
||||||
Result:=(ResourceType='XPM');
|
Result:=(ResourceType='XPM');
|
||||||
@ -299,6 +287,11 @@ begin
|
|||||||
WriteStreamWithFPImage(Stream,WriteSize,TLazWriterXPM);
|
WriteStreamWithFPImage(Stream,WriteSize,TLazWriterXPM);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TPixmap.GetBitmapNativeType: TBitmapNativeType;
|
||||||
|
begin
|
||||||
|
Result := bnXPixmap;
|
||||||
|
end;
|
||||||
|
|
||||||
class function TPixmap.GetDefaultFPReader: TFPCustomImageReaderClass;
|
class function TPixmap.GetDefaultFPReader: TFPCustomImageReaderClass;
|
||||||
begin
|
begin
|
||||||
Result:=TLazReaderXPM;
|
Result:=TLazReaderXPM;
|
||||||
|
@ -1868,20 +1868,21 @@ const
|
|||||||
CBM_INIT = 4; { initialize bitmap }
|
CBM_INIT = 4; { initialize bitmap }
|
||||||
|
|
||||||
{ Predefined Resource Types }
|
{ Predefined Resource Types }
|
||||||
|
type
|
||||||
|
{$ifdef UNICODE}
|
||||||
|
TResourceType = PWideChar;
|
||||||
|
{$else}
|
||||||
|
TResourceType = PChar;
|
||||||
|
{$endif}
|
||||||
|
const
|
||||||
{$ifdef windows}
|
{$ifdef windows}
|
||||||
RT_CURSOR = Windows.RT_CURSOR;
|
RT_CURSOR = Windows.RT_CURSOR;
|
||||||
RT_BITMAP = Windows.RT_BITMAP;
|
RT_BITMAP = Windows.RT_BITMAP;
|
||||||
RT_ICON = Windows.RT_ICON;
|
RT_ICON = Windows.RT_ICON;
|
||||||
{$else}
|
{$else}
|
||||||
{$ifdef UNICODE} // PI: taked this define from classesh.inc TResourceStream
|
RT_CURSOR = TResourceType(1);
|
||||||
RT_CURSOR = PWideChar(1);
|
RT_BITMAP = TResourceType(2);
|
||||||
RT_BITMAP = PWideChar(2);
|
RT_ICON = TResourceType(3);
|
||||||
RT_ICON = PWideChar(3);
|
|
||||||
{$else}
|
|
||||||
RT_CURSOR = PChar(1);
|
|
||||||
RT_BITMAP = PChar(2);
|
|
||||||
RT_ICON = PChar(3);
|
|
||||||
{$endif}
|
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user