xref: /haiku/src/apps/icon-o-matic/shape/commands/RemovePointsCommand.h (revision c6408ada23f556f853eeca2b374130d8b5781ff7)
1128277c9SStephan Aßmus /*
2128277c9SStephan Aßmus  * Copyright 2006, Haiku.
3128277c9SStephan Aßmus  * Distributed under the terms of the MIT License.
4128277c9SStephan Aßmus  *
5128277c9SStephan Aßmus  * Authors:
6128277c9SStephan Aßmus  *		Stephan Aßmus <superstippi@gmx.de>
7128277c9SStephan Aßmus  */
8128277c9SStephan Aßmus 
9128277c9SStephan Aßmus #ifndef REMOVE_POINTS_COMMAND_H
10128277c9SStephan Aßmus #define REMOVE_POINTS_COMMAND_H
11128277c9SStephan Aßmus 
12128277c9SStephan Aßmus #include "PathCommand.h"
13128277c9SStephan Aßmus 
14*c6408adaSAxel Dörfler class BPoint;
15*c6408adaSAxel Dörfler 
16128277c9SStephan Aßmus class RemovePointsCommand : public PathCommand {
17128277c9SStephan Aßmus  public:
18128277c9SStephan Aßmus 								// for removing the point clicked on
19128277c9SStephan Aßmus 								// independent of selection
20128277c9SStephan Aßmus 								RemovePointsCommand(VectorPath* path,
21128277c9SStephan Aßmus 													int32 index,
22128277c9SStephan Aßmus 													const int32* selection,
23128277c9SStephan Aßmus 													int32 count);
24128277c9SStephan Aßmus 								// for removing the selection
25128277c9SStephan Aßmus 								RemovePointsCommand(VectorPath* path,
26128277c9SStephan Aßmus 													const int32* selection,
27128277c9SStephan Aßmus 													int32 count);
28128277c9SStephan Aßmus 	virtual						~RemovePointsCommand();
29128277c9SStephan Aßmus 
30128277c9SStephan Aßmus 	virtual	status_t			InitCheck();
31128277c9SStephan Aßmus 
32128277c9SStephan Aßmus 	virtual	status_t			Perform();
33128277c9SStephan Aßmus 	virtual status_t			Undo();
34128277c9SStephan Aßmus 	virtual status_t			Redo();
35128277c9SStephan Aßmus 
36128277c9SStephan Aßmus 	virtual void				GetName(BString& name);
37128277c9SStephan Aßmus 
38128277c9SStephan Aßmus  private:
39128277c9SStephan Aßmus 			void				_Init(const int32* indices, int32 count,
40128277c9SStephan Aßmus 									  const int32* selection,
41128277c9SStephan Aßmus 									  int32 selectionCount);
42128277c9SStephan Aßmus 
43128277c9SStephan Aßmus 			int32*				fIndex;
44128277c9SStephan Aßmus 			BPoint*				fPoint;
45128277c9SStephan Aßmus 			BPoint*				fPointIn;
46128277c9SStephan Aßmus 			BPoint*				fPointOut;
47128277c9SStephan Aßmus 			bool*				fConnected;
48128277c9SStephan Aßmus 			int32				fCount;
49128277c9SStephan Aßmus 
50128277c9SStephan Aßmus 			bool				fWasClosed;
51128277c9SStephan Aßmus 
52128277c9SStephan Aßmus 			int32*				fOldSelection;
53128277c9SStephan Aßmus 			int32				fOldSelectionCount;
54128277c9SStephan Aßmus };
55128277c9SStephan Aßmus 
56128277c9SStephan Aßmus #endif // REMOVE_POINTS_COMMAND_H
57