@@ -18,6 +18,7 @@ use log::warn;
18
18
use std:: collections:: VecDeque ;
19
19
20
20
use super :: movement_handler:: { MovementMessage , MovementMessageHandler } ;
21
+ use super :: transform_layer_handler:: { TransformLayerMessage , TransformLayerMessageHandler } ;
21
22
22
23
type DocumentSave = ( InternalDocument , HashMap < Vec < LayerId > , LayerData > ) ;
23
24
@@ -63,6 +64,7 @@ pub struct DocumentMessageHandler {
63
64
pub name : String ,
64
65
pub layer_data : HashMap < Vec < LayerId > , LayerData > ,
65
66
movement_handler : MovementMessageHandler ,
67
+ transform_layer_handler : TransformLayerMessageHandler ,
66
68
}
67
69
68
70
impl Default for DocumentMessageHandler {
@@ -74,6 +76,7 @@ impl Default for DocumentMessageHandler {
74
76
name : String :: from ( "Untitled Document" ) ,
75
77
layer_data : vec ! [ ( vec![ ] , LayerData :: new( true ) ) ] . into_iter ( ) . collect ( ) ,
76
78
movement_handler : MovementMessageHandler :: default ( ) ,
79
+ transform_layer_handler : TransformLayerMessageHandler :: default ( ) ,
77
80
}
78
81
}
79
82
}
@@ -83,6 +86,8 @@ impl Default for DocumentMessageHandler {
83
86
pub enum DocumentMessage {
84
87
#[ child]
85
88
Movement ( MovementMessage ) ,
89
+ #[ child]
90
+ TransformLayers ( TransformLayerMessage ) ,
86
91
DispatchOperation ( Box < DocumentOperation > ) ,
87
92
SetSelectedLayers ( Vec < Vec < LayerId > > ) ,
88
93
AddSelectedLayers ( Vec < Vec < LayerId > > ) ,
@@ -260,6 +265,7 @@ impl DocumentMessageHandler {
260
265
name,
261
266
layer_data : vec ! [ ( vec![ ] , LayerData :: new( true ) ) ] . into_iter ( ) . collect ( ) ,
262
267
movement_handler : MovementMessageHandler :: default ( ) ,
268
+ transform_layer_handler : TransformLayerMessageHandler :: default ( ) ,
263
269
}
264
270
}
265
271
@@ -361,6 +367,7 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
361
367
use DocumentMessage :: * ;
362
368
match message {
363
369
Movement ( message) => self . movement_handler . process_action ( message, ( layer_data ( & mut self . layer_data , & [ ] ) , & self . document , ipp) , responses) ,
370
+ TransformLayers ( message) => self . transform_layer_handler . process_action ( message, ( & mut self . layer_data , & mut self . document , ipp) , responses) ,
364
371
DeleteLayer ( path) => responses. push_back ( DocumentOperation :: DeleteLayer { path } . into ( ) ) ,
365
372
StartTransaction => self . backup ( ) ,
366
373
RollbackTransaction => {
@@ -710,6 +717,7 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
710
717
common. extend ( select) ;
711
718
}
712
719
common. extend ( self . movement_handler . actions ( ) ) ;
720
+ common. extend ( self . transform_layer_handler . actions ( ) ) ;
713
721
common
714
722
}
715
723
}
0 commit comments