mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 11:57: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();
|
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(); }
|
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:
|
private:
|
||||||
Layer(Image&, NonnullRefPtr<Gfx::Bitmap>, String name);
|
Layer(Image&, NonnullRefPtr<Gfx::Bitmap>, String name);
|
||||||
|
|
||||||
|
@ -90,6 +100,8 @@ private:
|
||||||
|
|
||||||
int m_opacity_percent { 100 };
|
int m_opacity_percent { 100 };
|
||||||
|
|
||||||
|
EditMode m_edit_mode { EditMode::Content };
|
||||||
|
|
||||||
void update_cached_bitmap();
|
void update_cached_bitmap();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue