mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 02:27:35 +00:00

Lasso selection works by allowing the user to draw an arbitrary shape much like the pen tool and ensuring the shape is closed by connecting the start/end points when the user is done drawing. Everything inside the shape becomes the selection. Selection is determined via an outer flood fill. We begin a flood fill from a point that is guaranteed to be outside of the drawn shape, and anything the fill doesn't touch is determined to be the selection region.
87 lines
2.3 KiB
CMake
87 lines
2.3 KiB
CMake
serenity_component(
|
|
PixelPaint
|
|
RECOMMENDED
|
|
TARGETS PixelPaint
|
|
DEPENDS ImageDecoder FileSystemAccessServer
|
|
)
|
|
|
|
compile_gml(PixelPaintWindow.gml PixelPaintWindowGML.h pixel_paint_window_gml)
|
|
compile_gml(EditGuideDialog.gml EditGuideDialogGML.h edit_guide_dialog_gml)
|
|
compile_gml(FilterGallery.gml FilterGalleryGML.h filter_gallery_gml)
|
|
compile_gml(ResizeImageDialog.gml ResizeImageDialogGML.h resize_image_dialog_gml)
|
|
compile_gml(LevelsDialog.gml LevelsDialogGML.h levels_dialog_gml)
|
|
compile_gml(Filters/MedianSettings.gml Filters/MedianSettingsGML.h median_settings_gml)
|
|
|
|
set(SOURCES
|
|
CreateNewImageDialog.cpp
|
|
CreateNewLayerDialog.cpp
|
|
EditGuideDialog.cpp
|
|
FilterGallery.cpp
|
|
FilterTreeModel.cpp
|
|
FilterPreviewWidget.cpp
|
|
Filters/Bloom.cpp
|
|
Filters/BoxBlur3.cpp
|
|
Filters/BoxBlur5.cpp
|
|
Filters/Filter.cpp
|
|
Filters/FastBoxBlur.cpp
|
|
Filters/HueAndSaturation.cpp
|
|
Filters/GaussBlur3.cpp
|
|
Filters/GaussBlur5.cpp
|
|
Filters/Grayscale.cpp
|
|
Filters/Invert.cpp
|
|
Filters/LaplaceCardinal.cpp
|
|
Filters/LaplaceDiagonal.cpp
|
|
Filters/Median.cpp
|
|
Filters/Sepia.cpp
|
|
Filters/Sharpen.cpp
|
|
HistogramWidget.cpp
|
|
IconBag.cpp
|
|
Image.cpp
|
|
ImageEditor.cpp
|
|
ImageProcessor.cpp
|
|
Layer.cpp
|
|
LayerListWidget.cpp
|
|
LayerPropertiesWidget.cpp
|
|
LevelsDialog.cpp
|
|
MainWidget.cpp
|
|
Mask.cpp
|
|
PaletteWidget.cpp
|
|
ProjectLoader.cpp
|
|
ResizeImageDialog.cpp
|
|
ScopeWidget.cpp
|
|
Selection.cpp
|
|
ToolPropertiesWidget.cpp
|
|
ToolboxWidget.cpp
|
|
Tools/BrushTool.cpp
|
|
Tools/BucketTool.cpp
|
|
Tools/CloneTool.cpp
|
|
Tools/EllipseTool.cpp
|
|
Tools/EraseTool.cpp
|
|
Tools/GuideTool.cpp
|
|
Tools/LassoSelectTool.cpp
|
|
Tools/LineTool.cpp
|
|
Tools/MoveTool.cpp
|
|
Tools/PenTool.cpp
|
|
Tools/PickerTool.cpp
|
|
Tools/PolygonalSelectTool.cpp
|
|
Tools/RectangleSelectTool.cpp
|
|
Tools/RectangleTool.cpp
|
|
Tools/SprayTool.cpp
|
|
Tools/Tool.cpp
|
|
Tools/WandSelectTool.cpp
|
|
Tools/ZoomTool.cpp
|
|
VectorscopeWidget.cpp
|
|
main.cpp
|
|
)
|
|
|
|
set(GENERATED_SOURCES
|
|
EditGuideDialogGML.h
|
|
FilterGalleryGML.h
|
|
Filters/MedianSettingsGML.h
|
|
LevelsDialogGML.h
|
|
PixelPaintWindowGML.h
|
|
ResizeImageDialogGML.h
|
|
)
|
|
|
|
serenity_app(PixelPaint ICON app-pixel-paint)
|
|
target_link_libraries(PixelPaint PRIVATE LibCore LibImageDecoderClient LibGUI LibGfx LibFileSystemAccessClient LibConfig LibMain LibThreading)
|