Archeus 0.0.0
A C library and game engine that focuses on documentation
Loading...
Searching...
No Matches
element.c File Reference
#include "arc/console/element.h"
#include "arc/console/view.h"
#include <stdlib.h>
#include <ncurses.h>

Go to the source code of this file.

Functions

void ARC_ConsoleElement_Create (ARC_ConsoleElement **element, uint32_t type, uint8_t flags, ARC_String *string, ARC_Point pos, ARC_ConsoleElement_RenderFn renderFn)
 
void ARC_ConsoleElement_Destroy (ARC_ConsoleElement *element)
 
void ARC_ConsoleElement_DefaultRenderFn (ARC_ConsoleView *view, ARC_ConsoleElement *element)
 
ARC_Bool ARC_ConsoleElement_IsSelectable (ARC_ConsoleElement *element)
 
void ARC_ConsoleElement_SetSelected (ARC_ConsoleElement *element, ARC_Bool selected)
 
void ARC_NCursesElement_ToggleSelected (ARC_ConsoleElement *element)
 

Function Documentation

◆ ARC_ConsoleElement_Create()

void ARC_ConsoleElement_Create ( ARC_ConsoleElement ** element,
uint32_t type,
uint8_t flags,
ARC_String * string,
ARC_Point pos,
ARC_ConsoleElement_RenderFn renderFn )

Definition at line 7 of file element.c.

7 {
8 *element = (ARC_ConsoleElement *)malloc(sizeof(ARC_ConsoleElement));
9
10 (*element)->type = type;
11 (*element)->flags = flags;
12 (*element)->string = string;
13 (*element)->pos = pos;
14 (*element)->renderFn = renderFn;
15}
uint32_t type
Definition element.h:28

References ARC_ConsoleElement::type.

◆ ARC_ConsoleElement_DefaultRenderFn()

void ARC_ConsoleElement_DefaultRenderFn ( ARC_ConsoleView * view,
ARC_ConsoleElement * element )

Definition at line 21 of file element.c.

21 {
24 }
25
26 ARC_ConsoleView_RenderStringAt(view, element->string, element->pos);
27
30 }
31}
void ARC_ConsoleView_RenderStringAt(ARC_ConsoleView *view, ARC_String *text, ARC_Point pos)
Definition view.c:109
#define ARC_CONSOLE_VIEW_ATTRIBUTE_REVERSE
Definition view.h:253
#define ARC_CONSOLE_VIEW_ATTRIBUTE_NONE
border options
Definition view.h:252
void ARC_ConsoleView_SetAttribute(ARC_ConsoleView *view, uint32_t attribute)
sets a border on the ARC_ConsoleView
Definition view.c:259
#define ARC_CONSOLE_ELEMENT_FLAG_SELECTED
Definition element.h:42
ARC_String * string
Definition element.h:30
ARC_Point pos
Definition element.h:32

References ARC_CONSOLE_ELEMENT_FLAG_SELECTED, ARC_CONSOLE_VIEW_ATTRIBUTE_NONE, ARC_CONSOLE_VIEW_ATTRIBUTE_REVERSE, ARC_ConsoleView_RenderStringAt(), ARC_ConsoleView_SetAttribute(), ARC_ConsoleElement::flags, ARC_ConsoleElement::pos, and ARC_ConsoleElement::string.

◆ ARC_ConsoleElement_Destroy()

void ARC_ConsoleElement_Destroy ( ARC_ConsoleElement * element)

Definition at line 17 of file element.c.

17 {
18 free(element);
19}

◆ ARC_ConsoleElement_IsSelectable()

ARC_Bool ARC_ConsoleElement_IsSelectable ( ARC_ConsoleElement * element)
Parameters

Definition at line 33 of file element.c.

33 {
35 return ARC_True;
36 }
37
38 return ARC_False;
39}
#define ARC_False
Definition bool.h:12
#define ARC_True
Definition bool.h:11
#define ARC_CONSOLE_ELEMENT_FLAG_SELECTABLE
Definition element.h:41

References ARC_CONSOLE_ELEMENT_FLAG_SELECTABLE, ARC_False, ARC_True, and ARC_ConsoleElement::flags.

◆ ARC_ConsoleElement_SetSelected()

void ARC_ConsoleElement_SetSelected ( ARC_ConsoleElement * element,
ARC_Bool selected )
Parameters

Definition at line 41 of file element.c.

41 {
42 if(selected){
44 return;
45 }
46
47 element->flags &= ~ARC_CONSOLE_ELEMENT_FLAG_SELECTED;
48}

References ARC_CONSOLE_ELEMENT_FLAG_SELECTED, and ARC_ConsoleElement::flags.

◆ ARC_NCursesElement_ToggleSelected()

void ARC_NCursesElement_ToggleSelected ( ARC_ConsoleElement * element)

Definition at line 50 of file element.c.

50 {
52}

References ARC_CONSOLE_ELEMENT_FLAG_SELECTED, and ARC_ConsoleElement::flags.