/* * Copyright 2010-2017, Haiku, Inc. All Rights Reserved. * Copyright 2009, Pier Luigi Fiorini. * Distributed under the terms of the MIT License. */ #ifndef _APPS_VIEW_H #define _APPS_VIEW_H #include #include #include #include #include "AppRefFilter.h" #include "SettingsPane.h" typedef std::map appusage_t; class BButton; class BCheckBox; class BTextControl; class BStringColumn; class BDateColumn; class AppRow : public BRow { public: AppRow(const char* name, const char* signature, bool allowed); const char* Name() const { return fName.String(); } const char* Signature() { return fSignature.String(); }; void SetAllowed(bool allowed); bool Allowed() { return fAllowed; }; void RefreshEnabledField(); private: BString fName; BString fSignature; bool fAllowed; }; class NotificationsView : public SettingsPane { public: NotificationsView(SettingsHost* host); ~NotificationsView(); virtual void AttachedToWindow(); virtual void MessageReceived(BMessage* msg); status_t Revert(); bool RevertPossible(); status_t Defaults(); bool DefaultsPossible(); bool UseDefaultRevertButtons(); private: status_t Load(BMessage&); status_t Save(BMessage&); void _ClearItemSettings(); void _UpdateSelectedItem(); void _RecallItemSettings(); void _PopulateApplications(); appusage_t fAppFilters; AppRefFilter* fPanelFilter; BFilePanel* fAddAppPanel; BButton* fAddButton; BButton* fRemoveButton; BCheckBox* fMuteAll; BColumnListView* fApplications; AppRow* fSelectedRow; BStringColumn* fAppCol; BStringColumn* fAppEnabledCol; }; #endif // _APPS_VIEW_H