Adds support for alpha while drawing rectangles in the icon editor

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1306 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
sekelsenmat
2010-08-31 15:46:01 +00:00
parent c5465cfa33
commit f8f7003fb8
5 changed files with 692 additions and 625 deletions

View File

@@ -38,7 +38,7 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item3> </Item3>
</RequiredPackages> </RequiredPackages>
<Units Count="138"> <Units Count="141">
<Unit0> <Unit0>
<Filename Value="laziconeditor.lpr"/> <Filename Value="laziconeditor.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
@@ -47,7 +47,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="4"/> <TopLine Value="4"/>
<CursorPos X="77" Y="11"/> <CursorPos X="77" Y="11"/>
<UsageCount Value="148"/> <UsageCount Value="149"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit0> </Unit0>
@@ -57,12 +57,11 @@
<ComponentName Value="MainForm"/> <ComponentName Value="MainForm"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="Main"/> <UnitName Value="Main"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="821"/> <TopLine Value="255"/>
<CursorPos X="24" Y="835"/> <CursorPos X="22" Y="269"/>
<UsageCount Value="148"/> <UsageCount Value="149"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit1> </Unit1>
@@ -83,7 +82,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="58"/> <TopLine Value="58"/>
<CursorPos X="23" Y="66"/> <CursorPos X="23" Y="66"/>
<UsageCount Value="148"/> <UsageCount Value="149"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
@@ -94,7 +93,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="238"/> <TopLine Value="238"/>
<CursorPos X="35" Y="252"/> <CursorPos X="35" Y="252"/>
<UsageCount Value="148"/> <UsageCount Value="149"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
@@ -123,9 +122,9 @@
<UnitName Value="PictureCtrls"/> <UnitName Value="PictureCtrls"/>
<EditorIndex Value="10"/> <EditorIndex Value="10"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="513"/> <TopLine Value="840"/>
<CursorPos X="36" Y="516"/> <CursorPos X="28" Y="848"/>
<UsageCount Value="146"/> <UsageCount Value="147"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
@@ -184,7 +183,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="64"/> <TopLine Value="64"/>
<CursorPos X="11" Y="79"/> <CursorPos X="11" Y="79"/>
<UsageCount Value="145"/> <UsageCount Value="146"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit16> </Unit16>
@@ -436,7 +435,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="20"/> <TopLine Value="20"/>
<CursorPos X="31" Y="34"/> <CursorPos X="31" Y="34"/>
<UsageCount Value="106"/> <UsageCount Value="107"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit53> </Unit53>
<Unit54> <Unit54>
@@ -449,7 +448,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<UsageCount Value="104"/> <UsageCount Value="105"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit54> </Unit54>
@@ -459,11 +458,11 @@
<ComponentName Value="ResizePaperDialogForm"/> <ComponentName Value="ResizePaperDialogForm"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ResizePaperDialog"/> <UnitName Value="ResizePaperDialog"/>
<EditorIndex Value="11"/> <EditorIndex Value="14"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="69"/> <TopLine Value="69"/>
<CursorPos X="50" Y="83"/> <CursorPos X="50" Y="83"/>
<UsageCount Value="104"/> <UsageCount Value="105"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit55> </Unit55>
@@ -516,7 +515,7 @@
<UnitName Value="PictureDialog"/> <UnitName Value="PictureDialog"/>
<TopLine Value="39"/> <TopLine Value="39"/>
<CursorPos X="65" Y="60"/> <CursorPos X="65" Y="60"/>
<UsageCount Value="98"/> <UsageCount Value="99"/>
</Unit62> </Unit62>
<Unit63> <Unit63>
<Filename Value="..\fpc\rtl\inc\objpash.inc"/> <Filename Value="..\fpc\rtl\inc\objpash.inc"/>
@@ -733,7 +732,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<CursorPos X="40" Y="27"/> <CursorPos X="40" Y="27"/>
<UsageCount Value="68"/> <UsageCount Value="69"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit94> </Unit94>
@@ -1025,127 +1024,158 @@
<UsageCount Value="10"/> <UsageCount Value="10"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit137> </Unit137>
<Unit138>
<Filename Value="..\..\components\rgbgraphics\rgbgraphics.pas"/>
<UnitName Value="RGBGraphics"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="11"/>
<WindowIndex Value="0"/>
<TopLine Value="777"/>
<CursorPos X="50" Y="804"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit138>
<Unit139>
<Filename Value="..\..\components\rgbgraphics\rgbroutines.pas"/>
<UnitName Value="RGBRoutines"/>
<EditorIndex Value="13"/>
<WindowIndex Value="0"/>
<TopLine Value="843"/>
<CursorPos X="1" Y="851"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit139>
<Unit140>
<Filename Value="..\..\..\lazarussvn\lcl\graphics.pp"/>
<UnitName Value="Graphics"/>
<EditorIndex Value="12"/>
<WindowIndex Value="0"/>
<TopLine Value="1867"/>
<CursorPos X="20" Y="1882"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit140>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="picturemanager.pas"/> <Filename Value="main.pas"/>
<Caret Line="247" Column="34" TopLine="235"/> <Caret Line="835" Column="24" TopLine="821"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="picturemanager.pas"/> <Filename Value="main.pas"/>
<Caret Line="254" Column="15" TopLine="242"/> <Caret Line="836" Column="24" TopLine="822"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="picturemanager.pas"/> <Filename Value="main.pas"/>
<Caret Line="247" Column="31" TopLine="241"/> <Caret Line="835" Column="24" TopLine="821"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="picturemanager.pas"/> <Filename Value="main.pas"/>
<Caret Line="238" Column="13" TopLine="226"/> <Caret Line="836" Column="24" TopLine="822"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="picturemanager.pas"/> <Filename Value="main.pas"/>
<Caret Line="238" Column="13" TopLine="226"/> <Caret Line="837" Column="24" TopLine="823"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="picturemanager.pas"/> <Filename Value="main.pas"/>
<Caret Line="247" Column="26" TopLine="235"/> <Caret Line="836" Column="24" TopLine="822"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="picturemanager.pas"/> <Filename Value="main.pas"/>
<Caret Line="80" Column="46" TopLine="68"/> <Caret Line="837" Column="24" TopLine="823"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="picturemanager.pas"/> <Filename Value="main.pas"/>
<Caret Line="184" Column="29" TopLine="182"/> <Caret Line="836" Column="24" TopLine="822"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="picturemanager.pas"/> <Filename Value="main.pas"/>
<Caret Line="51" Column="67" TopLine="39"/> <Caret Line="837" Column="24" TopLine="823"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="picturemanager.pas"/> <Filename Value="picturectrls.pas"/>
<Caret Line="380" Column="19" TopLine="368"/> <Caret Line="516" Column="36" TopLine="513"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="picturectrls.pas"/> <Filename Value="picturectrls.pas"/>
<Caret Line="160" Column="47" TopLine="148"/> <Caret Line="625" Column="20" TopLine="611"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="picturectrls.pas"/> <Filename Value="picturectrls.pas"/>
<Caret Line="713" Column="19" TopLine="711"/> <Caret Line="845" Column="16" TopLine="828"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="picturectrls.pas"/> <Filename Value="..\..\components\rgbgraphics\rgbgraphics.pas"/>
<Caret Line="86" Column="47" TopLine="74"/> <Caret Line="223" Column="28" TopLine="209"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="picturectrls.pas"/> <Filename Value="..\..\components\rgbgraphics\rgbgraphics.pas"/>
<Caret Line="516" Column="36" TopLine="513"/> <Caret Line="156" Column="20" TopLine="142"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="picturemanager.pas"/> <Filename Value="..\..\components\rgbgraphics\rgbgraphics.pas"/>
<Caret Line="380" Column="19" TopLine="368"/> <Caret Line="777" Column="56" TopLine="771"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="picturemanager.pas"/> <Filename Value="..\..\components\rgbgraphics\rgbgraphics.pas"/>
<Caret Line="256" Column="18" TopLine="242"/> <Caret Line="750" Column="8" TopLine="744"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="picturemanager.pas"/> <Filename Value="..\..\components\rgbgraphics\rgbroutines.pas"/>
<Caret Line="252" Column="35" TopLine="238"/> <Caret Line="843" Column="64" TopLine="828"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="main.pas"/> <Filename Value="..\..\components\rgbgraphics\rgbgraphics.pas"/>
<Caret Line="313" Column="26" TopLine="306"/> <Caret Line="796" Column="73" TopLine="772"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="main.pas"/> <Filename Value="..\..\components\rgbgraphics\rgbgraphics.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="780" Column="6" TopLine="778"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="main.pas"/> <Filename Value="picturectrls.pas"/>
<Caret Line="310" Column="29" TopLine="304"/> <Caret Line="845" Column="16" TopLine="828"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="main.pas"/> <Filename Value="picturectrls.pas"/>
<Caret Line="320" Column="24" TopLine="302"/> <Caret Line="625" Column="22" TopLine="611"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="698" Column="30" TopLine="693"/> <Caret Line="533" Column="25" TopLine="524"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="main.pas"/> <Filename Value="picturectrls.pas"/>
<Caret Line="48" Column="44" TopLine="33"/> <Caret Line="845" Column="1" TopLine="837"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="main.pas"/> <Filename Value="picturectrls.pas"/>
<Caret Line="44" Column="20" TopLine="33"/> <Caret Line="625" Column="20" TopLine="611"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="44" Column="1" TopLine="23"/> <Caret Line="532" Column="3" TopLine="530"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="706" Column="3" TopLine="692"/> <Caret Line="1088" Column="28" TopLine="1085"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="37" Column="58" TopLine="37"/> <Caret Line="1094" Column="28" TopLine="1091"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="..\..\components\colorpalette\colorpalette.pas"/> <Filename Value="picturectrls.pas"/>
<Caret Line="331" Column="1" TopLine="317"/> <Caret Line="213" Column="18" TopLine="195"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="..\..\components\colorpalette\colorpalette.pas"/> <Filename Value="picturectrls.pas"/>
<Caret Line="327" Column="20" TopLine="317"/> <Caret Line="848" Column="28" TopLine="840"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="main.pas"/> <Filename Value="..\..\components\rgbgraphics\rgbgraphics.pas"/>
<Caret Line="37" Column="58" TopLine="37"/> <Caret Line="797" Column="22" TopLine="783"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>

View File

@@ -1196,6 +1196,26 @@ object MainForm: TMainForm
Wrap = False Wrap = False
end end
end end
object LabelTolerance1: TLabel
Left = 447
Height = 34
Top = 0
Width = 47
Align = alLeft
Caption = 'Fill Alpha:'
Constraints.MinHeight = 32
Layout = tlCenter
ParentColor = False
end
object spinFillAlpha: TSpinEdit
Left = 504
Height = 21
Top = 5
Width = 51
OnChange = spinFillAlphaChange
TabOrder = 4
Value = 100
end
end end
end end
object PanelPictures: TPanel object PanelPictures: TPanel

File diff suppressed because it is too large Load Diff

View File

@@ -31,7 +31,7 @@ interface
uses uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Menus, Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Menus,
ExtCtrls, ComCtrls, ActnList, StdActns, ExtDlgs, Buttons, StdCtrls, ExtCtrls, ComCtrls, ActnList, StdActns, ExtDlgs, Buttons, StdCtrls, Spin,
NewDialog, ResizeDialog, ResizePaperDialog, AboutDialog, Preview, NewDialog, ResizeDialog, ResizePaperDialog, AboutDialog, Preview,
PictureManager, RGBGraphics, PictureCtrls, ColorPalette; PictureManager, RGBGraphics, PictureCtrls, ColorPalette;
@@ -41,9 +41,11 @@ type
{ TMainForm } { TMainForm }
TMainForm = class(TForm) TMainForm = class(TForm)
LabelTolerance1: TLabel;
Palette: TColorPalette; Palette: TColorPalette;
MenuItemShowGrid: TMenuItem; MenuItemShowGrid: TMenuItem;
MenuItemShowPreview: TMenuItem; MenuItemShowPreview: TMenuItem;
spinFillAlpha: TSpinEdit;
ViewShowPreview: TAction; ViewShowPreview: TAction;
ViewShowMask: TAction; ViewShowMask: TAction;
ViewShowGrid: TAction; ViewShowGrid: TAction;
@@ -250,6 +252,7 @@ type
procedure Rotate180Execute(Sender: TObject); procedure Rotate180Execute(Sender: TObject);
procedure Rotate270Execute(Sender: TObject); procedure Rotate270Execute(Sender: TObject);
procedure Rotate90Execute(Sender: TObject); procedure Rotate90Execute(Sender: TObject);
procedure spinFillAlphaChange(Sender: TObject);
procedure ToolCircleShapeClick(Sender: TObject); procedure ToolCircleShapeClick(Sender: TObject);
procedure ToolColorPickClick(Sender: TObject); procedure ToolColorPickClick(Sender: TObject);
procedure ToolEllClick(Sender: TObject); procedure ToolEllClick(Sender: TObject);
@@ -441,6 +444,12 @@ begin
ActivePictureEdit.Rotate90Clockwise; ActivePictureEdit.Rotate90Clockwise;
end; end;
procedure TMainForm.spinFillAlphaChange(Sender: TObject);
begin
if not Pictures.CanEdit then Exit;
ActivePictureEdit.FillAlpha := spinFillAlpha.Value;
end;
procedure TMainForm.ToolCircleShapeClick(Sender: TObject); procedure TMainForm.ToolCircleShapeClick(Sender: TObject);
begin begin
if not Pictures.CanEdit then Exit; if not Pictures.CanEdit then Exit;

View File

@@ -121,6 +121,7 @@ type
TCustomPictureEdit = class(TCustomPictureView) TCustomPictureEdit = class(TCustomPictureView)
private private
FDrawMode: TDrawMode; FDrawMode: TDrawMode;
FFillAlpha: Integer;
FFillAndOutline: TDrawMode; FFillAndOutline: TDrawMode;
FFillColor: TColor; FFillColor: TColor;
FFloodFillTolerance: Single; FFloodFillTolerance: Single;
@@ -211,6 +212,7 @@ type
property FloodFillTolerance: Single read FFloodFillTolerance write FFloodFillTolerance; property FloodFillTolerance: Single read FFloodFillTolerance write FFloodFillTolerance;
property Size: Integer read FSize write FSize; property Size: Integer read FSize write FSize;
property Tool: TPictureEditTool read FTool write SetTool; property Tool: TPictureEditTool read FTool write SetTool;
property FillAlpha: Integer read FFillAlpha write FFillAlpha;
property Modified: Boolean read FModified; property Modified: Boolean read FModified;
property OnChange: TNotifyEvent read FOnChange write FOnChange; property OnChange: TNotifyEvent read FOnChange write FOnChange;
@@ -679,6 +681,7 @@ begin
ControlStyle := ControlStyle + [csCaptureMouse]; ControlStyle := ControlStyle + [csCaptureMouse];
CaptureMouseButtons := [mbLeft, mbMiddle, mbRight]; CaptureMouseButtons := [mbLeft, mbMiddle, mbRight];
FFillAlpha := 100;
FFillColor := clGray; FFillColor := clGray;
FOutlineColor := clBlack; FOutlineColor := clBlack;
FPaperColor := clWhite; FPaperColor := clWhite;
@@ -842,7 +845,7 @@ begin
BeginDraw; BeginDraw;
if not (ssLeft in Shift) then Picture.Canvas.EraseMode := ermErase; if not (ssLeft in Shift) then Picture.Canvas.EraseMode := ermErase;
try try
Picture.Canvas.Rectangle(X1, Y1, X2, Y2); Picture.Canvas.AlphaRectangle(X1, Y1, X2, Y2, FFillAlpha);
finally finally
Picture.Canvas.EraseMode := ermNone; Picture.Canvas.EraseMode := ermNone;
EndDraw; EndDraw;