1/* 2 * Copyright 2019, Haiku, Inc. 3 * Distributed under the terms of the MIT License. 4 * 5 * Author: 6 * Preetpal Kaur <preetpalok123@gmail.com> 7 */ 8 9 10#ifndef _INPUT_DEVICE_VIEW_H 11#define _INPUT_DEVICE_VIEW_H 12 13#include <ListItem.h> 14#include <ListView.h> 15#include <Message.h> 16#include <ScrollBar.h> 17#include <ScrollView.h> 18#include <String.h> 19#include <StringItem.h> 20#include <View.h> 21 22#include "InputIcons.h" 23#include "InputTouchpadPref.h" 24#include "MouseSettings.h" 25 26 27#define ITEM_SELECTED 'I1s' 28 29#define kITEM_MARGIN 1 30#define GREATER_THAN -1 31#define LESS_THAN 1 32 33 34class InputIcons; 35class TouchpadPref; 36class MouseSettings; 37 38enum input_type { 39 MOUSE_TYPE, 40 TOUCHPAD_TYPE, 41 KEYBOARD_TYPE 42}; 43 44class DeviceListItemView : public BListItem { 45public: 46 DeviceListItemView(BString title, input_type type); 47 48 void Update(BView* owner, const BFont* font); 49 void DrawItem(BView* owner, BRect frame, 50 bool complete = false); 51 52 const char* Label() { return fTitle.String();} 53 54 55 static InputIcons* Icons() { return sIcons; } 56 static void SetIcons(InputIcons* icons) { sIcons = icons; } 57 58protected: 59 struct Renderer; 60 61 void SetRenderParameters(Renderer& renderer); 62 63private: 64 static InputIcons* sIcons; 65 BString fTitle; 66 input_type fInputType; 67}; 68 69 70#endif // _INPUT_DEVICE_VIEW_H */ 71