1/* 2 * Copyright 2008, Haiku. 3 * Distributed under the terms of the MIT license. 4 * 5 * Authors: 6 * Michael Pfeiffer <laplace@users.sourceforge.net> 7 */ 8 9#ifndef _PPD_CONFIG_VIEW_H 10#define _PPD_CONFIG_VIEW_H 11 12#include "PPD.h" 13 14#include <View.h> 15#include <ListItem.h> 16#include <OutlineListView.h> 17 18class CategoryItem : public BStringItem 19{ 20private: 21 Statement* fStatement; 22 23public: 24 CategoryItem(const char* text, Statement* statement, uint32 level) 25 : BStringItem(text, level) 26 , fStatement(statement) 27 { 28 } 29 30 Statement* GetStatement() { return fStatement; } 31}; 32 33class PPDConfigView : public BView { 34private: 35 PPD* fPPD; 36 37 BView* fDetails; 38 BMessage fSettings; 39 40 void SetupSettings(const BMessage& settings); 41 42 void BooleanChanged(BMessage* msg); 43 void StringChanged(BMessage* msg); 44 45public: 46 PPDConfigView(BRect rect, const char *name, uint32 resizeMask, uint32 flags); 47 48 // The view has to be attached to a window when this 49 // method is called. 50 void Set(const char* ppdFile, const BMessage& settings); 51 const BMessage& GetSettings(); 52 53 void FillCategories(); 54 void FillDetails(Statement* statement); 55 void MessageReceived(BMessage* msg); 56}; 57#endif 58