xref: /haiku/src/preferences/appearance/CursorWhichItem.cpp (revision 68ea01249e1e2088933cb12f9c28d4e5c5d1c9ef)
1 //------------------------------------------------------------------------------
2 //	Copyright (c) 2001-2002, OpenBeOS
3 //
4 //	Permission is hereby granted, free of charge, to any person obtaining a
5 //	copy of this software and associated documentation files (the "Software"),
6 //	to deal in the Software without restriction, including without limitation
7 //	the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 //	and/or sell copies of the Software, and to permit persons to whom the
9 //	Software is furnished to do so, subject to the following conditions:
10 //
11 //	The above copyright notice and this permission notice shall be included in
12 //	all copies or substantial portions of the Software.
13 //
14 //	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 //	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 //	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 //	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 //	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 //	FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 //	DEALINGS IN THE SOFTWARE.
21 //
22 //	File Name:		CursorWhichItem.cpp
23 //	Author:			DarkWyrm <bpmagic@columbus.rr.com>
24 //	Description:	ListItem class for managing cursor_which specifiers
25 //
26 //------------------------------------------------------------------------------
27 #include "CursorWhichItem.h"
28 #include <stdio.h>
29 
30 CursorWhichItem::CursorWhichItem(cursor_which which)
31  : BStringItem(NULL,0,false)
32 {
33 	SetAttribute(which);
34 	image=NULL;
35 }
36 
37 CursorWhichItem::~CursorWhichItem(void)
38 {
39 	// Empty, but exists for just-in-case
40 	if(image)
41 		delete image;
42 }
43 
44 void CursorWhichItem::SetAttribute(cursor_which which)
45 {
46 	switch(which)
47 	{
48 		// cases not existing in R5 which exist in OpenBeOS
49 		case B_CURSOR_DEFAULT:
50 		{
51 			attribute=which;
52 			SetText("Default");
53 			break;
54 		}
55 		case B_CURSOR_TEXT:
56 		{
57 			attribute=which;
58 			SetText("Text");
59 			break;
60 		}
61 		case B_CURSOR_MOVE:
62 		{
63 			attribute=which;
64 			SetText("Move");
65 			break;
66 		}
67 		case B_CURSOR_DRAG:
68 		{
69 			attribute=which;
70 			SetText("Drag");
71 			break;
72 		}
73 		case B_CURSOR_RESIZE:
74 		{
75 			attribute=which;
76 			SetText("Resize");
77 			break;
78 		}
79 		case B_CURSOR_RESIZE_NWSE:
80 		{
81 			attribute=which;
82 			SetText("Diagonal Resize NW-SE");
83 			break;
84 		}
85 		case B_CURSOR_RESIZE_NESW:
86 		{
87 			attribute=which;
88 			SetText("Diagonal Resize NE-SW");
89 			break;
90 		}
91 		case B_CURSOR_RESIZE_NS:
92 		{
93 			attribute=which;
94 			SetText("Vertical Resize");
95 			break;
96 		}
97 		case B_CURSOR_RESIZE_EW:
98 		{
99 			attribute=which;
100 			SetText("Horizontal Resize");
101 			break;
102 		}
103 		case B_CURSOR_OTHER:
104 		{
105 			attribute=which;
106 			SetText("Other");
107 			break;
108 		}
109 		case B_CURSOR_INVALID:
110 		{
111 			break;
112 		}
113 		default:
114 		{
115 			printf("unknown code '%c%c%c%c'\n",(char)((which & 0xFF000000) >>  24),
116 				(char)((which & 0x00FF0000) >>  16),
117 				(char)((which & 0x0000FF00) >>  8),
118 				(char)((which & 0x000000FF)) );
119 			break;
120 		}
121 	}
122 }
123 
124 cursor_which CursorWhichItem::GetAttribute(void)
125 {
126 	return attribute;
127 }
128 
129