1 /* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef STACK_TRACE_VIEW_H 6 #define STACK_TRACE_VIEW_H 7 8 #include <GroupView.h> 9 10 #include "table/Table.h" 11 #include "Team.h" 12 13 14 class StackFrame; 15 16 17 class StackTraceView : public BGroupView, private TableListener { 18 public: 19 class Listener; 20 21 public: 22 StackTraceView(Listener* listener); 23 ~StackTraceView(); 24 25 static StackTraceView* Create(Listener* listener); 26 // throws 27 28 void UnsetListener(); 29 30 void SetStackTrace(StackTrace* stackTrace); 31 void SetStackFrame(StackFrame* stackFrame); 32 33 void LoadSettings(const BMessage& settings); 34 status_t SaveSettings(BMessage& settings); 35 36 private: 37 class FramesTableModel; 38 39 private: 40 // TableListener 41 virtual void TableSelectionChanged(Table* table); 42 43 void _Init(); 44 45 private: 46 StackTrace* fStackTrace; 47 Table* fFramesTable; 48 FramesTableModel* fFramesTableModel; 49 Listener* fListener; 50 }; 51 52 53 class StackTraceView::Listener { 54 public: 55 virtual ~Listener(); 56 57 virtual void StackFrameSelectionChanged( 58 StackFrame* frame) = 0; 59 }; 60 61 62 #endif // STACK_TRACE_VIEW_H 63