| 
									
										
										
										
											2018-07-07 13:47:42 +08:00
										 |  |  | // Aseprite
 | 
					
						
							| 
									
										
										
										
											2021-10-12 21:45:33 +08:00
										 |  |  | // Copyright (C) 2018-2021  Igara Studio S.A.
 | 
					
						
							| 
									
										
										
										
											2019-05-03 03:26:13 +08:00
										 |  |  | // Copyright (C) 2001-2018  David Capello
 | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  | //
 | 
					
						
							| 
									
										
										
										
											2018-07-07 13:47:42 +08:00
										 |  |  | // This program is distributed under the terms of
 | 
					
						
							|  |  |  | // the End-User License Agreement for Aseprite.
 | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-07 13:47:42 +08:00
										 |  |  | #ifndef APP_DOC_OBSERVER_H_INCLUDED
 | 
					
						
							|  |  |  | #define APP_DOC_OBSERVER_H_INCLUDED
 | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-07 13:47:42 +08:00
										 |  |  | namespace app { | 
					
						
							| 
									
										
										
										
											2018-07-07 22:54:44 +08:00
										 |  |  |   class Doc; | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  |   class DocEvent; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   class DocObserver { | 
					
						
							|  |  |  |   public: | 
					
						
							|  |  |  |     virtual ~DocObserver() { } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-19 23:43:56 +08:00
										 |  |  |     virtual void onCloseDocument(Doc* doc) { } | 
					
						
							| 
									
										
										
										
											2018-07-07 22:54:44 +08:00
										 |  |  |     virtual void onFileNameChanged(Doc* doc) { } | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // General update. If an observer receives this event, it's because
 | 
					
						
							|  |  |  |     // anything in the document could be changed.
 | 
					
						
							|  |  |  |     virtual void onGeneralUpdate(DocEvent& ev) { } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-19 02:29:16 +08:00
										 |  |  |     virtual void onColorSpaceChanged(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  |     virtual void onPixelFormatChanged(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2019-10-01 20:24:03 +08:00
										 |  |  |     virtual void onPaletteChanged(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual void onAddLayer(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onAddFrame(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onAddCel(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2019-05-03 03:26:13 +08:00
										 |  |  |     virtual void onAddSlice(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2019-10-02 01:55:08 +08:00
										 |  |  |     virtual void onAddTag(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual void onBeforeRemoveLayer(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onAfterRemoveLayer(DocEvent& ev) { } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Called when a frame is removed. It's called after the frame was
 | 
					
						
							|  |  |  |     // removed, and the sprite's total number of frames is modified.
 | 
					
						
							|  |  |  |     virtual void onRemoveFrame(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2019-10-02 01:55:08 +08:00
										 |  |  |     virtual void onRemoveTag(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2020-08-04 21:40:42 +08:00
										 |  |  |     virtual void onBeforeRemoveCel(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onAfterRemoveCel(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2019-05-03 03:26:13 +08:00
										 |  |  |     virtual void onRemoveSlice(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual void onSpriteSizeChanged(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onSpriteTransparentColorChanged(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onSpritePixelRatioChanged(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2019-10-11 02:08:59 +08:00
										 |  |  |     virtual void onSpriteGridBoundsChanged(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual void onLayerNameChange(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onLayerOpacityChange(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onLayerBlendModeChange(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onLayerRestacked(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onLayerMergedDown(DocEvent& ev) { } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual void onCelMoved(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onCelCopied(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onCelFrameChanged(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onCelPositionChanged(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onCelOpacityChange(DocEvent& ev) { } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-11 02:49:08 +08:00
										 |  |  |     virtual void onUserDataChange(DocEvent& ev) { } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  |     virtual void onFrameDurationChanged(DocEvent& ev) { } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual void onImagePixelsModified(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onSpritePixelsModified(DocEvent& ev) { } | 
					
						
							|  |  |  |     virtual void onExposeSpritePixels(DocEvent& ev) { } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // When the number of total frames available is modified.
 | 
					
						
							|  |  |  |     virtual void onTotalFramesChanged(DocEvent& ev) { } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // The selection has changed.
 | 
					
						
							|  |  |  |     virtual void onSelectionChanged(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2019-02-16 04:14:44 +08:00
										 |  |  |     virtual void onSelectionBoundariesChanged(DocEvent& ev) { } | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-28 05:17:48 +08:00
										 |  |  |     // Tags
 | 
					
						
							|  |  |  |     virtual void onTagChange(DocEvent& ev) { } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-07 21:28:37 +08:00
										 |  |  |     // Slices
 | 
					
						
							|  |  |  |     virtual void onSliceNameChange(DocEvent& ev) { } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-30 02:57:10 +08:00
										 |  |  |     // The tileset has changed.
 | 
					
						
							|  |  |  |     virtual void onTilesetChanged(DocEvent& ev) { } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-07 13:47:42 +08:00
										 |  |  | } // namespace app
 | 
					
						
							| 
									
										
										
										
											2018-07-07 08:06:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif
 |