ObjectivelyMVC
Object oriented MVC framework for SDL3 and GNU C
Loading...
Searching...
No Matches
Control.h
Go to the documentation of this file.
1
/*
2
* ObjectivelyMVC: Object oriented MVC framework for SDL3 and C.
3
* Copyright (C) 2014 Jay Dolan <jay@jaydolan.com>
4
*
5
* This software is provided 'as-is', without any express or implied
6
* warranty. In no event will the authors be held liable for any damages
7
* arising from the use of this software.
8
*
9
* Permission is granted to anyone to use this software for any purpose,
10
* including commercial applications, and to alter it and redistribute it
11
* freely, subject to the following restrictions:
12
*
13
* 1. The origin of this software must not be misrepresented; you must not
14
* claim that you wrote the original software. If you use this software
15
* in a product, an acknowledgment in the product documentation would be
16
* appreciated but is not required.
17
*
18
* 2. Altered source versions must be plainly marked as such, and must not be
19
* misrepresented as being the original software.
20
*
21
* 3. This notice may not be removed or altered from any source distribution.
22
*/
23
24
#pragma once
25
26
#include <Objectively/Array.h>
27
28
#include <
ObjectivelyMVC/Text.h
>
29
43
typedef
enum
{
44
ControlBevelNone
,
45
ControlBevelInset
,
46
ControlBevelOutset
47
}
ControlBevel
;
48
49
OBJECTIVELYMVC_EXPORT
const
EnumName
ControlBevelNames
[];
50
54
typedef
enum
{
55
ControlSelectionNone
,
56
ControlSelectionSingle
,
57
ControlSelectionMultiple
58
}
ControlSelection
;
59
60
OBJECTIVELYMVC_EXPORT
const
EnumName
ControlSelectionNames
[];
61
65
typedef
enum
{
66
ControlStateDefault
= 0x0,
67
ControlStateHighlighted
= 0x1,
68
ControlStateSelected
= 0x2,
69
ControlStateFocused
= 0x4,
70
ControlStateDisabled
= 0x10,
71
}
ControlState
;
72
73
OBJECTIVELYMVC_EXPORT
const
EnumName
ControlStateNames
[];
74
75
typedef
struct
Control
Control
;
76
typedef
struct
ControlInterface ControlInterface;
77
83
struct
Control
{
84
88
View
view
;
89
94
ControlInterface *
interface
;
95
99
ControlBevel
bevel
;
100
104
unsigned
int
state
;
105
109
ControlSelection
selection
;
110
};
111
115
struct
ControlInterface {
116
120
ViewInterface viewInterface;
121
131
bool (*captureEvent)(
Control
*self,
const
SDL_Event *event);
132
141
Control
*(*initWithFrame)(
Control
*self,
const
SDL_Rect *frame);
142
149
bool (*isDisabled)(
const
Control
*self);
150
157
bool (*isFocused)(
const
Control
*self);
158
165
bool (*isHighlighted)(
const
Control
*self);
166
173
bool (*isSelected)(
const
Control
*self);
174
182
void (*stateDidChange)(
Control
*self);
183
};
184
191
OBJECTIVELYMVC_EXPORT
Class *
_Control
(
void
);
_Control
OBJECTIVELYMVC_EXPORT Class * _Control(void)
Definition
Control.c:391
ControlBevel
ControlBevel
Control bevel styles, for drawing depressed or raised bevels.
Definition
Control.h:43
ControlBevelNone
@ ControlBevelNone
Definition
Control.h:44
ControlBevelInset
@ ControlBevelInset
Definition
Control.h:45
ControlBevelOutset
@ ControlBevelOutset
Definition
Control.h:46
ControlSelection
ControlSelection
Control selection styles, for Controls that support user selection.
Definition
Control.h:54
ControlSelectionMultiple
@ ControlSelectionMultiple
Definition
Control.h:57
ControlSelectionSingle
@ ControlSelectionSingle
Definition
Control.h:56
ControlSelectionNone
@ ControlSelectionNone
Definition
Control.h:55
ControlBevelNames
OBJECTIVELYMVC_EXPORT const EnumName ControlBevelNames[]
Definition
Control.h:49
ControlStateNames
OBJECTIVELYMVC_EXPORT const EnumName ControlStateNames[]
Definition
Control.h:73
ControlSelectionNames
OBJECTIVELYMVC_EXPORT const EnumName ControlSelectionNames[]
Definition
Control.h:60
ControlState
ControlState
Control states, which are bit-masked.
Definition
Control.h:65
ControlStateDefault
@ ControlStateDefault
Definition
Control.h:66
ControlStateFocused
@ ControlStateFocused
Definition
Control.h:69
ControlStateHighlighted
@ ControlStateHighlighted
Definition
Control.h:67
ControlStateDisabled
@ ControlStateDisabled
Definition
Control.h:70
ControlStateSelected
@ ControlStateSelected
Definition
Control.h:68
Text.h
Text rendered with TrueType fonts.
OBJECTIVELYMVC_EXPORT
#define OBJECTIVELYMVC_EXPORT
Definition
Types.h:40
Control
Controls are Views which capture and respond to events.
Definition
Control.h:83
Control::state
unsigned int state
The bit mask of ControlState.
Definition
Control.h:104
Control::bevel
ControlBevel bevel
The ControlBevel.
Definition
Control.h:99
Control::interface
ControlInterface * interface
The interface.
Definition
Control.h:94
Control::view
View view
The superclass.
Definition
Control.h:88
Control::selection
ControlSelection selection
The ControlSelection.
Definition
Control.h:109
View
Views are the fundamental building blocks of ObjectivelyMVC user interfaces.
Definition
View.h:134
Sources
ObjectivelyMVC
Control.h
Generated on Mon Jul 6 2026 21:12:10 for ObjectivelyMVC by
1.9.8