start work on cmenu

alternative to raymenu with own application layer
This commit is contained in:
2026-07-17 16:02:19 +02:00
parent 20aedb5caf
commit 9186d50d6d
3 changed files with 60 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
// Opens a fuzzy finding window with the given array of strings.
// Returns the index of the picked element.
// Returns -1 on no selection.
int picker(char const *strings, int strings_len, char const *prompt) {
}
+51
View File
@@ -0,0 +1,51 @@
#ifndef PLATFORM
#define PLATFORM
#include <stdint.h>
#include <stdbool.h>
typedef struct Color {
uint8_t r, g, b;
} Color;
#define WHITE ((Color){255,255,255})
#define BLACK ((Color){0,0,0})
typedef enum Key {
Key_backspace,
Key_ctrl,
Key_enter,
Key_h,
Key_n,
Key_p,
Key_y,
Count_Key
} Key;
bool KeyIsDown(Key key);
bool KeyIsUp(Key key);
bool KeyIsJustPressedOrRepeat(Key key);
bool KeyIsJustPressed(Key key);
bool KeyIsJustReleased(Key key);
bool InputGetNextPrintable(char const *out_key);
typedef struct Screen {
void *handle;
} Screen;
typedef struct Window {
int width;
int height;
void *handle;
Screen screen;
} Window;
Screen ScreenGetFocused();
int ScreenGetWidth(Screen screen);
int ScreenGetHeight(Screen screen);
// Make a window specifically suitable for tools like launchers.
// Always on top, not resizable, closes on lost focus.
Window ScreenMakeStaticWindow(int x, int y, int width, int height);
void WindowClear(Color color);
#endif /* PLATFORM */
View File