ObjectivelyMVC 0.1.0
Object oriented MVC framework for OpenGL, SDL2 and GNU C
Macros | Functions
TableHeaderView.c File Reference
#include <assert.h>
#include "TableHeaderView.h"

Go to the source code of this file.

Macros

#define _Class   _TableHeaderView
 

Functions

Class * _TableHeaderView (void)
 
static void initialize (Class *clazz)
 
static TableHeaderViewinitWithTableView (TableHeaderView *self, TableView *tableView)
 
static void render (View *self, Renderer *renderer)
 

Macro Definition Documentation

◆ _Class

#define _Class   _TableHeaderView

Definition at line 28 of file TableHeaderView.c.

Function Documentation

◆ _TableHeaderView()

Class * _TableHeaderView ( void  )

Definition at line 82 of file TableHeaderView.c.

82 {
83 static Class *clazz;
84 static Once once;
85
86 do_once(&once, {
87 clazz = _initialize(&(const ClassDef) {
88 .name = "TableHeaderView",
89 .superclass = _TableRowView(),
90 .instanceSize = sizeof(TableHeaderView),
91 .interfaceOffset = offsetof(TableHeaderView, interface),
92 .interfaceSize = sizeof(TableHeaderViewInterface),
94 });
95 });
96
97 return clazz;
98}
static void initialize(Class *clazz)
The header row is a specialized TableRow depicting the TableColumn handles.
Class * _TableRowView(void)
The TableRowView archetype.
Definition: TableRowView.c:162

◆ initialize()

static void initialize ( Class *  clazz)
static
See also
Class::initialize(Class *)

Definition at line 71 of file TableHeaderView.c.

71 {
72
73 ((ViewInterface *) clazz->interface)->render = render;
74
75 ((TableHeaderViewInterface *) clazz->interface)->initWithTableView = initWithTableView;
76}
TableHeaderView * initWithTableView(TableHeaderView *self, TableView *tableView)
Initializes this TableHeaderView with the give table.
void render(View *self, Renderer *renderer)
Renders this View using the given renderer.
Definition: Control.c:131

◆ initWithTableView()

static TableHeaderView * initWithTableView ( TableHeaderView self,
TableView tableView 
)
static

Definition at line 62 of file TableHeaderView.c.

62 {
63 return (TableHeaderView *) super(TableRowView, self, initWithTableView, tableView);
64}
Rows for TableViews.
Definition: TableRowView.h:44

◆ render()

static void render ( View self,
Renderer renderer 
)
static
See also
View::render(View *, Renderer *)

Definition at line 35 of file TableHeaderView.c.

35 {
36
37 super(View, self, render, renderer);
38
39 const SDL_Rect frame = $(self, renderFrame);
40
41 $(renderer, setDrawColor, &self->borderColor);
42
43 SDL_Point points[2];
44
45 points[0].x = frame.x;
46 points[0].y = frame.y + frame.h;
47
48 points[1].x = frame.x + frame.w;
49 points[1].y = frame.y + frame.h;
50
51 $(renderer, drawLine, points);
52
53 $(renderer, setDrawColor, &Colors.White);
54}
W3C Color constants.
Definition: Colors.h:37
SDL_Color White
Definition: Colors.h:185
void drawLine(const Renderer *self, const SDL_Point *points)
Draws a line segment between two points using GL_LINE_STRIP.
Definition: Renderer.c:94
void setDrawColor(Renderer *self, const SDL_Color *color)
Sets the primary color for drawing operations.
Definition: Renderer.c:281
Views are the fundamental building blocks of ObjectivelyMVC user interfaces.
Definition: View.h:133
SDL_Color borderColor
The border color.
Definition: View.h:164
SDL_Rect renderFrame(const View *self)
Definition: View.c:1275