xref: /haiku/src/tests/servers/app/playground/ObjectView.h (revision fef6144999c2fa611f59ee6ffe6dd7999501385c)
1 // ObjectView.h
2 
3 #ifndef OBJECT_VIEW_H
4 #define OBJECT_VIEW_H
5 
6 #include <List.h>
7 #include <View.h>
8 
9 class State;
10 
11 enum {
12 	MSG_OBJECT_COUNT_CHANGED = 'obcc',
13 };
14 
15 class ObjectView : public BView {
16  public:
17 							ObjectView(BRect frame, const char* name,
18 									   uint32 resizeFlags, uint32 flags);
19 
20 							// BView
21 	virtual	void			AttachedToWindow();
22 
23 	virtual	void			Draw(BRect updateRect);
24 
25 	virtual	void			MouseDown(BPoint where);
26 	virtual	void			MouseUp(BPoint where);
27 	virtual	void			MouseMoved(BPoint where, uint32 transit,
28 								   const BMessage* dragMessage);
29 
30 							// ObjectView
31 			void			SetState(State* state);
32 
33 			void			SetObjectType(int32 type);
34 			int32			ObjectType() const
35 								{ return fObjectType; }
36 
37 			void			AddObject(State* state);
38 			int32			CountObjects() const;
39 			void			MakeEmpty();
40 
41 			void			SetStateColor(rgb_color color);
42 			rgb_color		StateColor() const
43 								{ return fColor; }
44 
45 			void			SetStateDrawingMode(drawing_mode mode);
46 			drawing_mode	StateDrawingMode() const
47 								{ return fDrawingMode; }
48 
49 			void			SetStateFill(bool fill);
50 			bool			StateFill() const
51 								{ return fFill; }
52 
53 			void			SetStatePenSize(float penSize);
54 			float			StatePenSize() const
55 								{ return fPenSize; }
56 
57  private:
58 			State*			fState;
59 			int32			fObjectType;
60 
61 			BList			fStateList;
62 
63 			rgb_color		fColor;
64 			drawing_mode	fDrawingMode;
65 			bool			fFill;
66 			float			fPenSize;
67 
68 			bool			fScrolling;
69 			BPoint			fLastMousePos;
70 };
71 
72 #endif // OBJECT_VIEW_H
73