/* * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. * Copyright 2013, Rene Gollent, rene@gollent.com. * Distributed under the terms of the MIT License. */ #ifndef IMAGE_FUNCTIONS_VIEW_H #define IMAGE_FUNCTIONS_VIEW_H #include #include "table/TreeTable.h" #include "Team.h" class BTextControl; class FunctionInstance; class ImageFunctionsView : public BGroupView, private TreeTableListener { public: class Listener; public: ImageFunctionsView(Listener* listener); ~ImageFunctionsView(); static ImageFunctionsView* Create(Listener* listener); // throws void UnsetListener(); void SetImageDebugInfo( ImageDebugInfo* imageDebugInfo); void SetFunction(FunctionInstance* function); virtual void AttachedToWindow(); virtual void MessageReceived(BMessage* message); void LoadSettings(const BMessage& settings); status_t SaveSettings(BMessage& settings); private: class FunctionsTableModel; class HighlightingTableColumn; class SourcePathComponentNode; private: // TreeTableListener virtual void TreeTableSelectionChanged(TreeTable* table); void _Init(); void _ExpandFilteredNodes(); private: ImageDebugInfo* fImageDebugInfo; BTextControl* fFilterField; TreeTable* fFunctionsTable; FunctionsTableModel* fFunctionsTableModel; Listener* fListener; HighlightingTableColumn* fHighlightingColumn; bigtime_t fLastFilterKeypress; }; class ImageFunctionsView::Listener { public: virtual ~Listener(); virtual void FunctionSelectionChanged( FunctionInstance* function) = 0; }; #endif // IMAGE_FUNCTIONS_VIEW_H