2 * Copyright 2008-2009 Haiku Inc. All rights reserved.
3 * Distributed under the terms of the MIT license.
12 #include <MenuField.h>
14 #include <OutlineListView.h>
15 #include <PopUpMenu.h>
22 #include "DevicePCI.h"
23 #include "DeviceACPI.h"
24 #include "DeviceSCSI.h"
25 #include "PropertyList.h"
26 #include "PropertyListPlain.h"
28 static const uint32 kMsgRefresh
= 'refr';
29 static const uint32 kMsgReportCompatibility
= 'repo';
30 static const uint32 kMsgGenerateSysInfo
= 'sysi';
31 static const uint32 kMsgSelectionChanged
= 'selc';
32 static const uint32 kMsgOrderCategory
= 'ocat';
33 static const uint32 kMsgOrderConnection
= 'ocon';
40 typedef std::map
<Category
, Device
*> CategoryMap
;
41 typedef std::map
<Category
, Device
*>::const_iterator CategoryMapIterator
;
43 typedef std::vector
<Device
*> Devices
;
46 class DevicesView
: public BView
{
51 virtual void CreateLayout();
53 virtual void MessageReceived(BMessage
* msg
);
54 virtual void RescanDevices();
55 virtual void CreateCategoryMap();
56 virtual void DeleteCategoryMap();
58 virtual void DeleteDevices();
59 virtual void RebuildDevicesOutline();
60 virtual void AddChildrenToOutlineByConnection(Device
* parent
);
61 virtual void AddDeviceAndChildren(device_node_cookie
* node
,
63 static int SortItemsCompare(const BListItem
*, const BListItem
*);
66 BOutlineListView
* fDevicesOutline
;
67 PropertyListPlain
* fBasicView
;
68 PropertyListPlain
* fBusView
;
69 PropertyList
* fAttributesView
;
70 BMenuField
* fOrderByMenu
;
74 CategoryMap fCategoryMap
;
81 #endif /* DEVICESVIEW_H */