xref: /haiku/src/apps/debugger/user_interface/gui/team_window/BreakpointsView.h (revision c3c2ab316943a85f189415961734382c71e24f23)
1 /*
2  * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef BREAKPOINTS_VIEW_H
6 #define BREAKPOINTS_VIEW_H
7 
8 
9 #include <GroupView.h>
10 
11 #include "BreakpointListView.h"
12 
13 
14 class BButton;
15 class BCheckBox;
16 
17 
18 class BreakpointsView : public BGroupView,
19 	private BreakpointListView::Listener {
20 public:
21 	class Listener;
22 
23 public:
24 								BreakpointsView(Team* team, Listener* listener);
25 								~BreakpointsView();
26 
27 	static	BreakpointsView*	Create(Team* team, Listener* listener);
28 									// throws
29 
30 			void				UnsetListener();
31 
32 			void				UserBreakpointChanged(
33 									UserBreakpoint* breakpoint);
34 			void				WatchpointChanged(
35 									Watchpoint* watchpoint);
36 
37 	virtual	void				MessageReceived(BMessage* message);
38 	virtual	void				AttachedToWindow();
39 
40 			void				LoadSettings(const BMessage& settings);
41 			status_t			SaveSettings(BMessage& settings);
42 
43 private:
44 	// BreakpointListView::Listener
45 	virtual	void				BreakpointSelectionChanged(
46 									BreakpointProxyList& proxies);
47 
48 			void				_Init();
49 
50 			void				_UpdateButtons();
51 
52 			void				_SetSelection(BreakpointProxyList& proxies);
53 			void				_HandleBreakpointAction(uint32 action);
54 private:
55 			Team*				fTeam;
56 			BreakpointListView*	fListView;
57 			BreakpointProxyList	fSelectedBreakpoints;
58 			BButton*			fToggleBreakpointButton;
59 			BButton*			fEditBreakpointButton;
60 			BButton*			fRemoveBreakpointButton;
61 			Listener*			fListener;
62 };
63 
64 
65 
66 class BreakpointsView::Listener {
67 public:
68 	virtual						~Listener();
69 
70 	virtual	void				BreakpointSelectionChanged(
71 									BreakpointProxyList& proxies) = 0;
72 	virtual	void				SetBreakpointEnabledRequested(
73 									UserBreakpoint* breakpoint,
74 									bool enabled) = 0;
75 	virtual	void				ClearBreakpointRequested(
76 									UserBreakpoint* breakpoint) = 0;
77 
78 	virtual	void				SetWatchpointEnabledRequested(
79 									Watchpoint* breakpoint,
80 									bool enabled) = 0;
81 	virtual	void				ClearWatchpointRequested(
82 									Watchpoint* watchpoint) = 0;
83 };
84 
85 
86 #endif	// BREAKPOINT_LIST_VIEW_H
87