ObjectivelyMVC
Object oriented MVC framework for SDL3 and GNU C
Loading...
Searching...
No Matches
Button.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 <
ObjectivelyMVC/Control.h
>
27
#include <
ObjectivelyMVC/ImageView.h
>
28
34
typedef
struct
ButtonDelegate
ButtonDelegate
;
35
36
typedef
struct
Button
Button
;
37
typedef
struct
ButtonInterface ButtonInterface;
38
39
typedef
void (*
ButtonDelegateFunction
)(
Button
*button);
40
44
struct
ButtonDelegate
{
45
49
ident
self
;
50
54
ident
data
;
55
60
void (*
didClick
)(
Button
*);
61
};
62
68
struct
Button
{
69
73
Control
control
;
74
79
ButtonInterface *
interface
;
80
84
ButtonDelegate
delegate
;
85
89
ImageView
*
image
;
90
94
Text
*
title
;
95
};
96
100
struct
ButtonInterface {
101
105
ControlInterface controlInterface;
106
115
Button
*(*initWithFrame)(
Button
*self,
const
SDL_Rect *frame);
116
125
Button
*(*initWithImage)(
Button
*self,
Image
*image);
126
135
Button
*(*initWithTitle)(
Button
*self,
const
char
*title);
136
};
137
144
OBJECTIVELYMVC_EXPORT
Class *
_Button
(
void
);
_Button
OBJECTIVELYMVC_EXPORT Class * _Button(void)
Definition
Button.c:206
ButtonDelegateFunction
void(* ButtonDelegateFunction)(Button *button)
Definition
Button.h:39
Control.h
Controls are Views which capture and respond to events.
ImageView.h
ImageViews render an Image in the context of a View hierarchy.
OBJECTIVELYMVC_EXPORT
#define OBJECTIVELYMVC_EXPORT
Definition
Types.h:40
ButtonDelegate
The Button delegate protocol.
Definition
Button.h:44
ButtonDelegate::didClick
void(* didClick)(Button *)
Called when the Button is clicked.
Definition
Button.h:60
ButtonDelegate::data
ident data
The user data.
Definition
Button.h:54
ButtonDelegate::self
ident self
The delegate self-reference.
Definition
Button.h:49
Button
Buttons are Controls that respond to click events.
Definition
Button.h:68
Button::interface
ButtonInterface * interface
The interface.
Definition
Button.h:79
Button::control
Control control
The superclass.
Definition
Button.h:73
Button::title
Text * title
The title.
Definition
Button.h:94
Button::delegate
ButtonDelegate delegate
The ButtonDelegate.
Definition
Button.h:84
Button::image
ImageView * image
The image.
Definition
Button.h:89
Control
Controls are Views which capture and respond to events.
Definition
Control.h:83
Image
Image loading.
Definition
Image.h:38
ImageView
ImageViews render an Image in the context of a View hierarchy.
Definition
ImageView.h:45
Text
Text rendered with TrueType fonts.
Definition
Text.h:69
Sources
ObjectivelyMVC
Button.h
Generated on Mon Jul 6 2026 21:12:10 for ObjectivelyMVC by
1.9.8