Bookmark undo works
This commit is contained in:
parent
0e22c8ac3e
commit
974985ffcd
10 changed files with 353 additions and 148 deletions
|
|
@ -9,6 +9,13 @@ void DrawingProgramLayer::draw(SkCanvas* canvas, const DrawData& drawData) const
|
|||
p.obj->draw(canvas, drawData);
|
||||
}
|
||||
|
||||
DrawingProgramLayerInitData DrawingProgramLayer::get_init_data() const {
|
||||
DrawingProgramLayerInitData toRet;
|
||||
for(auto& p : *components)
|
||||
toRet.components.emplace_back(p.obj->get_data_copy());
|
||||
return toRet;
|
||||
}
|
||||
|
||||
void DrawingProgramLayer::set_component_list_callbacks(DrawingProgramLayerListItem& layerListItem, DrawingProgramLayerManager& layerMan) {
|
||||
auto insertCallback = [&](const CanvasComponentContainer::ObjInfoIterator& c) {
|
||||
c->obj->objInfo = c;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,10 @@
|
|||
class DrawingProgramLayerListItem;
|
||||
class DrawingProgramLayerManager;
|
||||
|
||||
struct DrawingProgramLayerInitData {
|
||||
std::vector<std::shared_ptr<CanvasComponentContainer::CopyData>> components;
|
||||
};
|
||||
|
||||
class DrawingProgramLayer {
|
||||
public:
|
||||
void draw(SkCanvas* canvas, const DrawData& drawData) const;
|
||||
|
|
@ -13,6 +17,7 @@ class DrawingProgramLayer {
|
|||
void get_flattened_component_list(std::vector<CanvasComponentContainer::ObjInfo*>& objList) const;
|
||||
void set_to_erase();
|
||||
void scale_up(const WorldScalar& scaleUpAmount);
|
||||
DrawingProgramLayerInitData get_init_data() const;
|
||||
|
||||
CanvasComponentContainer::NetListOwnerPtr components;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,10 @@
|
|||
class DrawingProgramLayerListItem;
|
||||
class DrawingProgramLayerManager;
|
||||
|
||||
struct DrawingProgramLayerFolderInitData {
|
||||
std::vector<DrawingProgramLayerFolderInitData> folderList;
|
||||
};
|
||||
|
||||
class DrawingProgramLayerFolder {
|
||||
public:
|
||||
void draw(SkCanvas* canvas, const DrawData& drawData) const;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,23 @@ class DrawingProgramLayer;
|
|||
class World;
|
||||
class DrawingProgramLayerManager;
|
||||
|
||||
struct DrawingProgramLayerListItemMetaInfoInitData {
|
||||
std::string name;
|
||||
float alpha = 1.0f;
|
||||
SerializedBlendMode blendMode = SerializedBlendMode::SRC_OVER;
|
||||
};
|
||||
|
||||
struct DrawingProgramLayerListItemInitData {
|
||||
DrawingProgramLayerListItemMetaInfoInitData metaInfo;
|
||||
std::optional<DrawingProgramLayerFolderInitData> folderData;
|
||||
std::optional<DrawingProgramLayerInitData> layerData;
|
||||
};
|
||||
|
||||
class DrawingProgramLayerListItem {
|
||||
public:
|
||||
DrawingProgramLayerListItem();
|
||||
DrawingProgramLayerListItem(NetworkingObjects::NetObjManager& netObjMan, const std::string& initName, bool isFolder);
|
||||
DrawingProgramLayerListItem(NetworkingObjects::NetObjManager& netObjMan, const DrawingProgramLayerListItemInitData& initData);
|
||||
bool is_folder() const;
|
||||
DrawingProgramLayerFolder& get_folder() const;
|
||||
DrawingProgramLayer& get_layer() const;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue