2
0
Johann 6 жил өмнө
parent
commit
4568f8034c

+ 16 - 0
lazpaint/release/i18n/lazpaint.ar.po

@@ -3315,6 +3315,10 @@ msgstr "px"
 msgid "RAM disk"
 msgstr ""
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr ""
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr "المجلدات الأخيرة:"
@@ -3444,6 +3448,10 @@ msgstr ""
 msgid "Transfer selection to other layer?"
 msgstr "نقل التحديد إلى طبقة أخرى؟"
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr ""
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr ""
@@ -3464,6 +3472,14 @@ msgstr "لايمكن حفظ الملف :"
 msgid "Unknown command : "
 msgstr "الأمر غير معروف :"
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr ""
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr ""
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr "نعم"

+ 16 - 0
lazpaint/release/i18n/lazpaint.cs.po

@@ -3302,6 +3302,10 @@ msgstr "px"
 msgid "RAM disk"
 msgstr ""
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr ""
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr "Nedávné adresáře:"
@@ -3431,6 +3435,10 @@ msgstr ""
 msgid "Transfer selection to other layer?"
 msgstr "Přenést výběr do jiné vrstvy?"
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr ""
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr ""
@@ -3451,6 +3459,14 @@ msgstr "Nelze uložit soubor :"
 msgid "Unknown command : "
 msgstr "Neznámý příkaz :"
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr ""
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr ""
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr "Ano"

+ 16 - 0
lazpaint/release/i18n/lazpaint.de.po

@@ -3320,6 +3320,10 @@ msgstr "px"
 msgid "RAM disk"
 msgstr "RAM-Disk"
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr ""
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr "Letzte Verzeichnisse"
@@ -3449,6 +3453,10 @@ msgstr "Bilder Gesamt: %1"
 msgid "Transfer selection to other layer?"
 msgstr "Auswahl auf andere Ebene verschieben?"
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr ""
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr ""
@@ -3469,6 +3477,14 @@ msgstr "Kann Datei nicht sichern: "
 msgid "Unknown command : "
 msgstr "Unbekannter Befehl: "
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr ""
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr ""
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr "Ja"

+ 16 - 0
lazpaint/release/i18n/lazpaint.es.po

@@ -3312,6 +3312,10 @@ msgstr "px"
 msgid "RAM disk"
 msgstr "Disco RAM"
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr "Capa de trama"
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr "Carpetas recientes:"
@@ -3443,6 +3447,10 @@ msgstr "Total: %1"
 msgid "Transfer selection to other layer?"
 msgstr "¿Transferir selección a otra capa?"
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr "Capa de trama transformada"
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr "¿Quieres transformar el contenido de la selección?"
@@ -3463,6 +3471,14 @@ msgstr "Imposible guardar archivo: "
 msgid "Unknown command : "
 msgstr "Comando desconocido: "
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr "Original desconocido"
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr "Capa vectorial"
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr "Sí"

+ 16 - 0
lazpaint/release/i18n/lazpaint.fi.po

@@ -3285,6 +3285,10 @@ msgstr ""
 msgid "RAM disk"
 msgstr ""
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr ""
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr "Viimeisimmät kansiot:"
@@ -3414,6 +3418,10 @@ msgstr "Kuvia kaikkiaan: %1"
 msgid "Transfer selection to other layer?"
 msgstr ""
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr ""
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr ""
@@ -3434,6 +3442,14 @@ msgstr ""
 msgid "Unknown command : "
 msgstr ""
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr ""
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr ""
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr "Kyllä"

+ 16 - 0
lazpaint/release/i18n/lazpaint.fr.po

@@ -3319,6 +3319,10 @@ msgstr "px"
 msgid "RAM disk"
 msgstr "RAM disque"
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr "Calque en pixels"
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr "Répertoires récents :"
@@ -3450,6 +3454,10 @@ msgstr "Nb. total d'images : %1"
 msgid "Transfer selection to other layer?"
 msgstr "Voulez-vous transférer la sélection vers un autre calque ?"
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr "Calque en pixels transformé"
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr "Voulez-vous transformer le contenu de la sélection ?"
@@ -3470,6 +3478,14 @@ msgstr "Impossible d'enregistrer le fichier : "
 msgid "Unknown command : "
 msgstr "Commande inconnue : "
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr "Original inconnu"
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr "Calque vectoriel"
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr "Oui"

+ 16 - 0
lazpaint/release/i18n/lazpaint.ja.po

@@ -3307,6 +3307,10 @@ msgstr ""
 msgid "RAM disk"
 msgstr ""
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr ""
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr ""
@@ -3436,6 +3440,10 @@ msgstr ""
 msgid "Transfer selection to other layer?"
 msgstr ""
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr ""
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr ""
@@ -3456,6 +3464,14 @@ msgstr "ファイルの保存に失敗しました:"
 msgid "Unknown command : "
 msgstr "Unknown command:"
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr ""
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr ""
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr ""

+ 16 - 0
lazpaint/release/i18n/lazpaint.lv.po

@@ -3303,6 +3303,10 @@ msgstr "pikseļi"
 msgid "RAM disk"
 msgstr ""
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr ""
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr "Nesen lietotās mapes:"
@@ -3432,6 +3436,10 @@ msgstr "Attēlu kopskaits: %1"
 msgid "Transfer selection to other layer?"
 msgstr "Pārvietot iezīmējumu uz citu slāni?"
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr ""
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr ""
@@ -3452,6 +3460,14 @@ msgstr "Nevar saglabāt failu:"
 msgid "Unknown command : "
 msgstr "Nepazīstama komanda:"
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr ""
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr ""
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr "Jā"

+ 16 - 0
lazpaint/release/i18n/lazpaint.nl.po

@@ -3329,6 +3329,10 @@ msgstr "px"
 msgid "RAM disk"
 msgstr ""
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr ""
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr "Recente directories:"
@@ -3458,6 +3462,10 @@ msgstr ""
 msgid "Transfer selection to other layer?"
 msgstr "Verplaats selectie naar andere laag?"
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr ""
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr ""
@@ -3478,6 +3486,14 @@ msgstr "Kan bestand niet opslaan : "
 msgid "Unknown command : "
 msgstr "Onbekend commando : "
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr ""
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr ""
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr "Ja"

+ 16 - 0
lazpaint/release/i18n/lazpaint.po

@@ -3284,6 +3284,10 @@ msgstr ""
 msgid "RAM disk"
 msgstr ""
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr ""
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr ""
@@ -3413,6 +3417,10 @@ msgstr ""
 msgid "Transfer selection to other layer?"
 msgstr ""
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr ""
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr ""
@@ -3433,6 +3441,14 @@ msgstr ""
 msgid "Unknown command : "
 msgstr ""
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr ""
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr ""
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr ""

+ 16 - 0
lazpaint/release/i18n/lazpaint.pt_BR.po

@@ -3311,6 +3311,10 @@ msgstr ""
 msgid "RAM disk"
 msgstr ""
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr ""
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr "Diretórios recentes:"
@@ -3440,6 +3444,10 @@ msgstr ""
 msgid "Transfer selection to other layer?"
 msgstr "Transferir seleção para outra camada?"
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr ""
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr ""
@@ -3460,6 +3468,14 @@ msgstr "Não foi possível salvar o arquivo : "
 msgid "Unknown command : "
 msgstr "Comando desconhecido : "
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr ""
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr ""
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr ""

+ 16 - 0
lazpaint/release/i18n/lazpaint.ru.po

@@ -3305,6 +3305,10 @@ msgstr ""
 msgid "RAM disk"
 msgstr ""
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr ""
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr ""
@@ -3434,6 +3438,10 @@ msgstr ""
 msgid "Transfer selection to other layer?"
 msgstr "Перенести выделение на другой слой?"
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr ""
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr ""
@@ -3454,6 +3462,14 @@ msgstr "Не удается сохранить файл:"
 msgid "Unknown command : "
 msgstr "Неизвестная команда:"
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr ""
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr ""
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr ""

+ 16 - 0
lazpaint/release/i18n/lazpaint.sv.po

@@ -3292,6 +3292,10 @@ msgstr ""
 msgid "RAM disk"
 msgstr ""
 
+#: uresourcestrings.rsrasterlayer
+msgid "Raster layer"
+msgstr ""
+
 #: uresourcestrings.rsrecentdirectories
 msgid "Recent directories:"
 msgstr ""
@@ -3421,6 +3425,10 @@ msgstr ""
 msgid "Transfer selection to other layer?"
 msgstr ""
 
+#: uresourcestrings.rstransformedrasterlayer
+msgid "Transformed raster layer"
+msgstr ""
+
 #: uresourcestrings.rstransformselectioncontent
 msgid "Do you want to transform content of the selection?"
 msgstr ""
@@ -3441,6 +3449,14 @@ msgstr "Kunde inte spara fil :"
 msgid "Unknown command : "
 msgstr "Okänt kommando :"
 
+#: uresourcestrings.rsunknownoriginal
+msgid "Unknown original"
+msgstr ""
+
+#: uresourcestrings.rsvectoriallayer
+msgid "Vectorial layer"
+msgstr ""
+
 #: uresourcestrings.rsyes
 msgid "Yes"
 msgstr ""

+ 41 - 23
lazpaint/ulayerstack.pas

@@ -14,6 +14,12 @@ type
     PreviewPts: array of TPointF;
     NameRect,OpacityBar: TRect;
   end;
+  TLayerItemInfo = record
+    RightPart: TDrawLayerItemResult;
+    VisibleCheckbox: TRect;
+    KindIcon: TRect;
+    KindIconHint: string;
+  end;
 
   { TFLayerStack }
 
@@ -69,8 +75,7 @@ type
     VolatileHorzScrollBar, VolatileVertScrollBar: TVolatileScrollBar;
     ScrollButtonRect: TRect;
     InterruptorWidth,InterruptorHeight: integer;
-    interruptors: array of TRect;
-    LayerInfo: array of TDrawLayerItemResult;
+    LayerInfo: array of TLayerItemInfo;
     movingItemStart: boolean;
     movingItem: TBGRABitmap;
     movingItemSourceIndex: integer;
@@ -302,7 +307,7 @@ procedure TFLayerStack.HandleChangeLayerOpacity(X, Y: integer);
 var newOpacity: integer;
 begin
   if (changingLayerOpacity <> -1) and (changingLayerOpacity <= high(LayerInfo)) then
-  with LayerInfo[changingLayerOpacity] do
+  with LayerInfo[changingLayerOpacity].RightPart do
   begin
     if changingLayerOpacity >= LazPaintInstance.Image.NbLayers then exit;
     newOpacity := round((X-(OpacityBar.left+1))/(OpacityBar.right-OpacityBar.left-2)*255);
@@ -396,7 +401,6 @@ end;
 procedure TFLayerStack.ComputeLayout(ABitmap: TBGRABitmap);
 var i,temp,h: integer;
 begin
-  interruptors:= nil;
   LayerInfo := nil;
   LayerRectWidth := round(100*zoomFactor);
   LayerRectHeight := round(50*zoomFactor);
@@ -545,10 +549,10 @@ var i: integer;
   layerPos: TPoint;
   lSelected: boolean;
   y: integer;
-  clipping, rKind: TRect;
+  clipping: TRect;
   lColor, lColorTrans: TBGRAPixel;
 
-  procedure DrawKindUnknown;
+  procedure DrawKindUnknown(rKind: TRect; out HintText: string);
   var
     eb: TEasyBezierCurve;
     w: single;
@@ -562,9 +566,10 @@ var i: integer;
     w := max(1,rKind.Height/10);
     Bitmap.DrawPolyLineAntialias(eb.ToPoints, lColor, w, true);
     Bitmap.FillEllipseAntialias((rKind.Left+rKind.Right)/2, rKind.Bottom - 1 - (w-1)/2, w*0.6,w*0.6, lColor);
+    HintText := rsUnknownOriginal;
   end;
 
-  procedure DrawKind(AClass: TBGRALayerOriginalAny);
+  procedure DrawKind(AClass: TBGRALayerOriginalAny; rKind: TRect; out HintText: string);
   var
     eb: TEasyBezierCurve;
     w: single;
@@ -577,6 +582,7 @@ var i: integer;
       Bitmap.Rectangle(rKind, lColor,lColorTrans, dmDrawWithTransparency);
       Bitmap.HorizLine(rKind.Left+1,rKind.Top+(rKind.Height-1) div 2,rKind.Right-2, lColor, dmDrawWithTransparency);
       Bitmap.VertLine(rKind.Left+(rKind.Width-1) div 2,rKind.Top+1,rKind.Bottom-2, lColor, dmDrawWithTransparency);
+      HintText := rsRasterLayer;
     end else
     if AClass = TBGRALayerImageOriginal then
     begin
@@ -592,6 +598,7 @@ var i: integer;
       Bitmap.DrawPolyLineAntialias(eb.ToPoints, lColor, w);
       Bitmap.Arrow.StartAsNone;
       Bitmap.Arrow.EndAsNone;
+      HintText := rsTransformedRasterLayer;
     end else
     if AClass = TBGRALayerSVGOriginal then
     begin
@@ -607,6 +614,7 @@ var i: integer;
       eb.CurveMode[eb.PointCount-2] := cmAngle;
       for i := 0 to eb.PointCount-1 do eb.Point[i] := m*eb.Point[i];
       Bitmap.DrawPolyLineAntialias(eb.ToPoints, lColor, w, true);
+      HintText := rsVectorialLayer;
     end else
     begin
       Bitmap.EllipseAntialias(rKind.Left+rKind.Width / 3, rKind.Top+rKind.Height / 3,rKind.Width / 3,rKind.Height / 3,
@@ -614,6 +622,7 @@ var i: integer;
       Bitmap.DrawPolygonAntialias([PointF(rKind.Left+rKind.Width/4,rKind.Bottom),
                                    PointF(rKind.Left+rKind.Width/2,rKind.Top+rKind.Height/4),
                                    PointF(rKind.Right,rKind.Bottom)],lColor,1, lColorTrans);
+      HintText := rsVectorialLayer;
     end;
   end;
 
@@ -625,7 +634,6 @@ begin
   end;
   layerPos.x := -Offset.X;
   layerPos.y := -Offset.Y;
-  SetLength(interruptors,LazPaintInstance.Image.NbLayers);
   SetLength(LayerInfo,LazPaintInstance.Image.NbLayers);
   clipping := EmptyRect;
   for i := LazPaintInstance.Image.NbLayers-1 downto 0 do
@@ -646,7 +654,7 @@ begin
         end;
         if UpdateItem <> -1 then clipping := rect(layerPos.X,layerPos.Y,layerPos.X+StackWidth,layerPos.Y+LayerRectHeight);
 
-        interruptors[i] := RectWithSize(layerPos.X+InterruptorWidth div 5,layerpos.Y+(LayerRectHeight-5*InterruptorHeight div 2) div 2,
+        LayerInfo[i].VisibleCheckbox := RectWithSize(layerPos.X+InterruptorWidth div 5,layerpos.Y+(LayerRectHeight-5*InterruptorHeight div 2) div 2,
                                         InterruptorWidth, InterruptorHeight);
 
         if (layerpos.Y+LayerRectHeight > 0) and (layerpos.Y < Bitmap.Height) then
@@ -659,9 +667,9 @@ begin
           lColorTrans := lColor;
           lColorTrans.alpha := lColorTrans.alpha div 3;
 
-          Bitmap.Rectangle(interruptors[i],lColor,dmDrawWithTransparency);
+          Bitmap.Rectangle(LayerInfo[i].VisibleCheckbox,lColor,dmDrawWithTransparency);
           if LayerVisible[i] then
-          with interruptors[i] do
+          with LayerInfo[i].VisibleCheckbox do
           begin
             Bitmap.DrawPolyLineAntialias(Bitmap.ComputeBezierSpline([
 
@@ -672,17 +680,17 @@ begin
                   PointF(right-2,top-2))]),lColor,1.5);
           end;
 
-          rKind := interruptors[i];
-          rKind.Offset(0, InterruptorHeight*3 div 2);
+          LayerInfo[i].KindIcon := LayerInfo[i].VisibleCheckbox;
+          LayerInfo[i].KindIcon.Offset(0, InterruptorHeight*3 div 2);
           if LayerOriginalDefined[i] then
           begin
             if LayerOriginalKnown[i] then
-              DrawKind(LayerOriginalClass[i])
+              DrawKind(LayerOriginalClass[i], LayerInfo[i].KindIcon, LayerInfo[i].KindIconHint)
             else
-              DrawKindUnknown;
+              DrawKindUnknown(LayerInfo[i].KindIcon, LayerInfo[i].KindIconHint);
           end
           else
-            DrawKind(nil);
+            DrawKind(nil, LayerInfo[i].KindIcon, LayerInfo[i].KindIconHint);
 
           inc(layerPos.X,InterruptorWidth);
           if movingItemStart and (i= movingItemSourceIndex) then
@@ -697,7 +705,7 @@ begin
             movingItemStart:= false;
           end;
 
-          LayerInfo[i] := DrawLayerItem(Bitmap,layerPos,i,lSelected);
+          LayerInfo[i].RightPart := DrawLayerItem(Bitmap,layerPos,i,lSelected);
           dec(layerPos.X,InterruptorWidth);
         end;
       end;
@@ -856,8 +864,8 @@ begin
       BGRALayerStack.RedrawBitmap;
       exit;
     end;
-    for i := 0 to high(interruptors) do
-      if PtInRect(Point(x,Y),interruptors[i]) then
+    for i := 0 to high(LayerInfo) do
+      if PtInRect(Point(x,Y),LayerInfo[i].VisibleCheckbox) then
       begin
         if i < LazPaintInstance.Image.NbLayers then
         begin
@@ -869,13 +877,13 @@ begin
         exit;
       end;
     for i := 0 to high(LayerInfo) do
-      if IsPointInPolygon(LayerInfo[i].PreviewPts,pointF(x,y),true) then
+      if IsPointInPolygon(LayerInfo[i].RightPart.PreviewPts,pointF(x,y),true) then
       begin
         HandleSelectLayer(i,x,y);
         exit;
       end;
     for i := 0 to high(LayerInfo) do
-      if PtInRect(Point(x,Y),LayerInfo[i].NameRect) then
+      if PtInRect(Point(x,Y),LayerInfo[i].RightPart.NameRect) then
       begin
         if i < LazPaintInstance.Image.NbLayers then
         begin
@@ -896,8 +904,8 @@ begin
         exit;
       end;
     for i := 0 to high(LayerInfo) do
-      if PtInRect(Point(x,Y),LayerInfo[i].OpacityBar) or PtInRect(Point(x+4,Y),LayerInfo[i].OpacityBar) or
-        PtInRect(Point(x-4,Y),LayerInfo[i].OpacityBar) then
+      if PtInRect(Point(x,Y),LayerInfo[i].RightPart.OpacityBar) or PtInRect(Point(x+4,Y),LayerInfo[i].RightPart.OpacityBar) or
+        PtInRect(Point(x-4,Y),LayerInfo[i].RightPart.OpacityBar) then
       begin
         if i < LazPaintInstance.Image.NbLayers then
         begin
@@ -911,6 +919,8 @@ end;
 
 procedure TFLayerStack.BGRALayerStackMouseMove(Sender: TObject;
   Shift: TShiftState; X, Y: Integer);
+var
+  i: Integer;
 begin
   if movingItem <> nil then
   begin
@@ -931,6 +941,14 @@ begin
     HandleChangeLayerOpacity(X,Y);
     exit;
   end;
+  for i := 0 to high(LayerInfo) do
+    if LayerInfo[i].KindIcon.Contains(Point(X,Y)) then
+    begin
+      BGRALayerStack.Hint := LayerInfo[i].KindIconHint;
+      BGRALayerStack.ShowHint:= true;
+      exit;
+    end;
+  BGRALayerStack.ShowHint:= false;
 end;
 
 procedure TFLayerStack.BGRALayerStackMouseUp(Sender: TObject;

+ 4 - 0
lazpaint/uresourcestrings.pas

@@ -31,6 +31,10 @@ resourcestring
   rsFileExtensionNotSupported='This file extension is not supported.';
   rsFileFormatNotRecognized='The file format has not been recognized.';
   rsErrorLoadingOriginal='Error while loading original however layer can be rasterized.';
+  rsRasterLayer = 'Raster layer';
+  rsTransformedRasterLayer = 'Transformed raster layer';
+  rsVectorialLayer = 'Vectorial layer';
+  rsUnknownOriginal = 'Unknown original';
   rsFileName = 'Filename';
   rsFileSize = 'Size';
   rsFileType = 'Type';