summaryrefslogtreecommitdiff
path: root/src/screen.h
blob: 5d0837ef923c9c21b7c15490ac202ae44012574a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#ifndef __SLOTS__SCREEN_H__184802466018249
#define __SLOTS__SCREEN_H__184802466018249

#include <curses.h>

#define STATIC_ARRSIZE(arr) (sizeof((arr)) / sizeof((arr)[0]))

#define RGB_MIN 0
#define RGB_MAX 255
#define CURSESCOLOR_MIN 0
#define CURSESCOLOR_MAX 1000

#define FUCKED_UP_ENTER 10

enum custom_colors {
    // Unspecified color
    CC_UNSPEC = -1,

    /* The standard curses colors are defined here as to prevent custom colors from reusing pre-existing 
    // colors, in case the defaults are to be used */

    CURSES_BLACK    = COLOR_BLACK,      // ncurses' default black
    CURSES_RED      = COLOR_RED,        // ncurses' default red
    CURSES_GREEN    = COLOR_GREEN,      // ncurses' default green
    CURSES_YELLOW   = COLOR_YELLOW,     // ncurses' default yellow
    CURSES_BLUE     = COLOR_BLUE,       // ncurses' default blue
    CURSES_MAGENTA  = COLOR_MAGENTA,    // ncurses' default magenta
    CURSES_CYAN     = COLOR_CYAN,       // ncurses' default cyan
    CURSES_WHITE    = COLOR_WHITE,      // ncurses' default white

    /* Start custom color definitions */

    CC_RED,     // RGB: 255,    0,      0
    CC_ORANGE,  // RGB: 255,    128,    0
    CC_YELLOW,  // RGB: 255,    255,    0
    CC_GREEN,   // RGB: 0,      255,    0
    CC_BLUE,    // RGB: 0,      0,      255
    CC_PURPLE,  // RGB: 155,    0,      255
    CC_MAGENTA, // RGB: 255,    0,      255
    CC_WHITE,   // RGB: 255,    255,    255

    // This isn't actually a color, even if you try to use it as one
    CC_TOOBIG
};

enum customcolor_pairs {
    CCP_UNDEFINED,

    CCP_BANNER,
    CCP_TESTING,

    CCP_TOOBIG
};

struct funcholder {
    int (*callback)(void);
    
};

// Converts value from within the range of [oldmin, oldmax] to a value within the range [newmin, newmax]
static float normalize(float value, float oldmin, float oldmax, float newmin, float newmax);

// Initialize a new curses color using standard rgb values (0-255) instead of curses' 0-1000 range
static int init_rgb_color(int colornum, int red, int green, int blue);

int spin(void);
int buy(void);
int quit(void);
#define USERFUNCS (int (* [])(void)){spin, buy, quit}

#endif