mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:17:35 +00:00
PixelPaint: Keep track of and expose the type of the edited bitmap
This can be either the content bitmap or the mask bitmap.
This commit is contained in:
parent
a180b5f442
commit
96829565d8
2 changed files with 33 additions and 0 deletions
|
@ -179,4 +179,25 @@ void Layer::create_mask()
|
|||
update_cached_bitmap();
|
||||
}
|
||||
|
||||
Gfx::Bitmap& Layer::currently_edited_bitmap()
|
||||
{
|
||||
switch (edit_mode()) {
|
||||
case EditMode::Mask:
|
||||
if (is_masked())
|
||||
return *mask_bitmap();
|
||||
[[fallthrough]];
|
||||
case EditMode::Content:
|
||||
return content_bitmap();
|
||||
}
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
void Layer::set_edit_mode(Layer::EditMode mode)
|
||||
{
|
||||
if (m_edit_mode == mode)
|
||||
return;
|
||||
|
||||
m_edit_mode = mode;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -74,6 +74,16 @@ public:
|
|||
|
||||
bool is_masked() { return !m_mask_bitmap.is_null(); }
|
||||
|
||||
enum class EditMode {
|
||||
Content,
|
||||
Mask,
|
||||
};
|
||||
|
||||
EditMode edit_mode() { return m_edit_mode; }
|
||||
void set_edit_mode(EditMode mode);
|
||||
|
||||
Gfx::Bitmap& currently_edited_bitmap();
|
||||
|
||||
private:
|
||||
Layer(Image&, NonnullRefPtr<Gfx::Bitmap>, String name);
|
||||
|
||||
|
@ -90,6 +100,8 @@ private:
|
|||
|
||||
int m_opacity_percent { 100 };
|
||||
|
||||
EditMode m_edit_mode { EditMode::Content };
|
||||
|
||||
void update_cached_bitmap();
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue