ObjectivelyMVC
Object oriented MVC framework for SDL3 and GNU C
Loading...
Searching...
No Matches
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 78 of file TableHeaderView.c.

78 {
79 static Class *clazz;
80 static Once once;
81
82 do_once(&once, {
83 clazz = _initialize(&(const ClassDef) {
84 .name = "TableHeaderView",
85 .superclass = _TableRowView(),
86 .instanceSize = sizeof(TableHeaderView),
87 .interfaceOffset = offsetof(TableHeaderView, interface),
88 .interfaceSize = sizeof(TableHeaderViewInterface),
90 });
91 });
92
93 return clazz;
94}
static void initialize(Class *clazz)
Class * _TableRowView(void)
The header row is a specialized TableRow depicting the TableColumn handles.

◆ initialize()

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

Definition at line 67 of file TableHeaderView.c.

67 {
68
69 ((ViewInterface *) clazz->interface)->render = render;
70
71 ((TableHeaderViewInterface *) clazz->interface)->initWithTableView = initWithTableView;
72}
static TableHeaderView * initWithTableView(TableHeaderView *self, TableView *tableView)
static void render(View *self, Renderer *renderer)

◆ initWithTableView()

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

Definition at line 58 of file TableHeaderView.c.

58 {
59 return (TableHeaderView *) super(TableRowView, self, initWithTableView, tableView);
60}
Rows for TableViews.

◆ 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 SDL_Point points[2];
42
43 points[0].x = frame.x;
44 points[0].y = frame.y + frame.h;
45
46 points[1].x = frame.x + frame.w;
47 points[1].y = frame.y + frame.h;
48
49 $(renderer, drawLine, points, &self->borderColor);
50}
static void drawLine(const Renderer *self, const SDL_Point *points, const SDL_Color *color)
Definition Renderer.c:114
static SDL_Rect renderFrame(const View *self)
Definition View.c:1455
Views are the fundamental building blocks of ObjectivelyMVC user interfaces.
Definition View.h:134
SDL_Color borderColor
The border color.
Definition View.h:165