ObjectivelyMVC 0.1.0
Object oriented MVC framework for OpenGL, SDL2 and GNU C
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
39typedef enum {
43
44typedef struct TabViewItem TabViewItem;
45typedef struct TabViewItemInterface TabViewItemInterface;
46
52
56 Object object;
57
62 TabViewItemInterface *interface;
63
68
73
77 int state;
78
83};
84
88struct TabViewItemInterface {
89
93 ObjectInterface objectInterface;
94
104 TabViewItem *(*initWithIdentifier)(TabViewItem *self, const char *identifier);
105
114 TabViewItem *(*initWithView)(TabViewItem *self, View *view);
115
124 void (*setState)(TabViewItem *self, int state);
125};
126
The Label type.
static void setState(TabViewItem *self, int state)
Definition: TabViewItem.c:92
TabState
Tab states, which are bit-masked.
Definition: TabViewItem.h:39
@ TabStateSelected
Definition: TabViewItem.h:41
@ TabStateDefault
Definition: TabViewItem.h:40
#define OBJECTIVELYMVC_EXPORT
Definition: Types.h:39
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:51
int state
The bit mask of TabState.
Definition: TabViewItem.h:77
View * view
The View this TabViewItem embeds.
Definition: TabViewItem.h:82
Class * _TabViewItem(void)
The TabViewItem archetype.
Definition: TabViewItem.c:121
Label * label
The Label used to select this tab.
Definition: TabViewItem.h:72
char * identifier
The identifier.
Definition: TabViewItem.h:67
TabViewItemInterface * interface
The interface.
Definition: TabViewItem.h:62
Object object
The superclass.
Definition: TabViewItem.h:56
Views are the fundamental building blocks of ObjectivelyMVC user interfaces.
Definition: View.h:133