ObjectivelyMVC
Object oriented MVC framework for SDL3 and GNU C
Loading...
Searching...
No Matches
TabViewItem.h
Go to the documentation of this file.
1/*
2 * Objectively: Ultra-lightweight object oriented framework for GNU 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/Object.h>
27
30
44
45typedef struct TabViewItem TabViewItem;
46typedef struct TabViewItemInterface TabViewItemInterface;
47
53
57 Object object;
58
63 TabViewItemInterface *interface;
64
69
74
78 int state;
79
84};
85
89struct TabViewItemInterface {
90
94 ObjectInterface objectInterface;
95
105 TabViewItem *(*initWithIdentifier)(TabViewItem *self, const char *identifier);
106
115 TabViewItem *(*initWithView)(TabViewItem *self, View *view);
116
125 void (*setState)(TabViewItem *self, int state);
126};
127
The Label type.
OBJECTIVELYMVC_EXPORT Class * _TabViewItem(void)
TabState
Tab states, which are bit-masked.
Definition TabViewItem.h:39
@ TabStateSelected
Definition TabViewItem.h:41
@ TabStateDefault
Definition TabViewItem.h:40
@ TabStateDisabled
Definition TabViewItem.h:42
#define OBJECTIVELYMVC_EXPORT
Definition Types.h:40
A ViewController manages a View and its descendants.
Labels provide a configurable container for Text.
Definition Label.h:40
TabViewItems embed Views in a TabView.
Definition TabViewItem.h:52
int state
The bit mask of TabState.
Definition TabViewItem.h:78
View * view
The View this TabViewItem embeds.
Definition TabViewItem.h:83
Label * label
The Label used to select this tab.
Definition TabViewItem.h:73
char * identifier
The identifier.
Definition TabViewItem.h:68
TabViewItemInterface * interface
The interface.
Definition TabViewItem.h:63
Object object
The superclass.
Definition TabViewItem.h:57
Views are the fundamental building blocks of ObjectivelyMVC user interfaces.
Definition View.h:134