Banjo API 0.0.1
Multi-purpose C99 API
Loading...
Searching...
No Matches
window.c

How to open and close windows.

How to open and close windows.

#define BJ_AUTOMAIN_CALLBACKS
#include <banjo/log.h>
#include <banjo/main.h>
#include <banjo/system.h>
#include <banjo/window.h>
bj_window* window = 0;
void key_event(bj_window* p_window, bj_event_action mode, bj_key key, int scancode) {
(void)key;
(void)p_window;
(void)scancode;
switch(mode) {
case BJ_PRESS:
bj_info("Pressed");
break;
case BJ_RELEASE:
bj_info("Released");
break;
case BJ_REPEAT:
bj_info("Repeat");
break;
}
}
int bj_app_begin(void** user_data, int argc, char* argv[]) {
(void)user_data; (void)argc; (void)argv;
bj_error* p_error = 0;
if(!bj_begin(&p_error)) {
bj_err("Error 0x%08X: %s", p_error->code, p_error->message);
return bj_callback_exit_error;
}
window = bj_window_new("Simple Banjo Window", 100, 100, 800, 600, 0);
bj_window_set_key_event(window, key_event);
return bj_callback_continue;
}
int bj_app_iterate(void* user_data) {
(void)user_data;
return bj_window_should_close(window)
? bj_callback_exit_success
: bj_callback_continue;
}
int bj_app_end(void* user_data, int status) {
(void)user_data;
bj_window_del(window);
bj_end(0);
return status;
}
uint32_t code
Error code.
Definition error.h:132
char message[BJ_ERROR_MESSAGE_MAX_LEN+1]
Optional error description.
Definition error.h:133
Error structure.
Definition error.h:131
enum bj_event_action_t bj_event_action
Event action type enumeration.
enum bj_key_t bj_key
List of possible keys on a keyboard.
@ BJ_PRESS
The button/key is pressed.
Definition input.h:20
@ BJ_REPEAT
The button/key is kept being pressed.
Definition input.h:21
@ BJ_RELEASE
The button/key is released.
Definition input.h:19
#define bj_info(...)
Log a message using the BJ_LOG_INFO level.
Definition log.h:103
#define bj_err(...)
Log a message using the BJ_LOG_ERROR level.
Definition log.h:131
void bj_end(bj_error **p_error)
De-initializes the system.
bj_bool bj_begin(bj_error **p_error)
Initializes the system.
bj_window * bj_window_new(const char *p_title, uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint8_t flags)
Create a new bj_window with the specified attributes.
bj_bool bj_window_should_close(bj_window *p_window)
Get the close flag state of a window.
struct bj_window_t bj_window
Opaque typedef for the window type.
Definition window.h:18
void bj_poll_events(void)
Polls all pending events and dispatch them to callbacks.
void bj_window_set_should_close(bj_window *p_window)
Flag a given window to be closed.
void bj_window_del(bj_window *p_window)
Deletes a bj_window object and releases associated memory.
bj_window_key_event_t bj_window_set_key_event(bj_window *p_window, bj_window_key_event_t p_callback)
Set the callback for key events.
Logging utility functions.
Header file for system interactions.
Header file for bj_window type.