summaryrefslogtreecommitdiffstats
path: root/drw.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--drw.h63
1 files changed, 23 insertions, 40 deletions
diff --git a/drw.h b/drw.h
index e3b8515..4c67419 100644
--- a/drw.h
+++ b/drw.h
@@ -1,29 +1,19 @@
/* See LICENSE file for copyright and license details. */
-#define DRW_FONT_CACHE_SIZE 32
-
-typedef struct {
- unsigned long pix;
- XftColor rgb;
-} Clr;
typedef struct {
Cursor cursor;
} Cur;
-typedef struct {
+typedef struct Fnt {
Display *dpy;
- int ascent;
- int descent;
unsigned int h;
XftFont *xfont;
FcPattern *pattern;
+ struct Fnt *next;
} Fnt;
-typedef struct {
- Clr *fg;
- Clr *bg;
- Clr *border;
-} ClrScheme;
+enum { ColFg, ColBg }; /* Clr scheme index */
+typedef XftColor Clr;
typedef struct {
unsigned int w, h;
@@ -32,43 +22,36 @@ typedef struct {
Window root;
Drawable drawable;
GC gc;
- ClrScheme *scheme;
- size_t fontcount;
- Fnt *fonts[DRW_FONT_CACHE_SIZE];
+ Clr *scheme;
+ Fnt *fonts;
} Drw;
-typedef struct {
- unsigned int w;
- unsigned int h;
-} Extnts;
-
/* Drawable abstraction */
-Drw *drw_create(Display *, int, Window, unsigned int, unsigned int);
-void drw_resize(Drw *, unsigned int, unsigned int);
-void drw_free(Drw *);
+Drw *drw_create(Display *dpy, int screen, Window win, unsigned int w, unsigned int h);
+void drw_resize(Drw *drw, unsigned int w, unsigned int h);
+void drw_free(Drw *drw);
/* Fnt abstraction */
-Fnt *drw_font_create(Drw *, const char *);
-void drw_load_fonts(Drw *, const char *[], size_t);
-void drw_font_free(Fnt *);
-void drw_font_getexts(Fnt *, const char *, unsigned int, Extnts *);
-unsigned int drw_font_getexts_width(Fnt *, const char *, unsigned int);
+Fnt *drw_fontset_create(Drw* drw, const char *fonts[], size_t fontcount);
+void drw_fontset_free(Fnt* set);
+unsigned int drw_fontset_getwidth(Drw *drw, const char *text);
+void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned int *w, unsigned int *h);
-/* Colour abstraction */
-Clr *drw_clr_create(Drw *, const char *);
-void drw_clr_free(Clr *);
+/* Colorscheme abstraction */
+void drw_clr_create(Drw *drw, Clr *dest, const char *clrname);
+Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount);
/* Cursor abstraction */
-Cur *drw_cur_create(Drw *, int);
-void drw_cur_free(Drw *, Cur *);
+Cur *drw_cur_create(Drw *drw, int shape);
+void drw_cur_free(Drw *drw, Cur *cursor);
/* Drawing context manipulation */
-void drw_setfont(Drw *, Fnt *);
-void drw_setscheme(Drw *, ClrScheme *);
+void drw_setfontset(Drw *drw, Fnt *set);
+void drw_setscheme(Drw *drw, Clr *scm);
/* Drawing functions */
-void drw_rect(Drw *, int, int, unsigned int, unsigned int, int, int, int);
-int drw_text(Drw *, int, int, unsigned int, unsigned int, const char *, int);
+void drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int invert);
+int drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lpad, const char *text, int invert);
/* Map functions */
-void drw_map(Drw *, Window, int, int, unsigned int, unsigned int);
+void drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h);
2d7d4d9d0b1ea851e77f342b45de8&follow=1'>added better demo to readmeGravatar BanceDev 2-0/+10 2024-09-10added handling for when prompt gets longer than terminal widthGravatar BanceDev 1-0/+36 2024-09-10added support for multiline promptsGravatar BanceDev 1-4/+35 2024-09-10lua api functions for getting terminal width and heightGravatar BanceDev 4-0/+46 2024-09-09added coloring to help commandGravatar BanceDev 1-2/+2 2024-09-09add aliasing to init.luaGravatar BanceDev 9-14/+258 2024-09-09bugfix to inline backspace and delete on multiline bufferGravatar BanceDev 1-7/+23 2024-09-09fixed line wrapping when deleting inlineGravatar BanceDev 1-0/+8 2024-09-09updated gitignoreGravatar BanceDev 2-1/+2 2024-09-09fixed wrapping bug due to not using updated prompt_lengthGravatar BanceDev 1-3/+6 2024-09-09added stripping of escape sequences from prompt size to allow for coloringGravatar BanceDev 1-5/+26 2024-09-09added support for init.lua for configuring shellGravatar BanceDev 8-38/+180 2024-09-09docs: update pathGravatar Christopher Lane 1-1/+1 Updated the path to the example script and fixed a typo in the readme 2024-09-08added getenv and putenv to Lua APIGravatar BanceDev 2-5/+33 fixed bug where terminal closed upon encountering Lua error 2024-09-08added lua api functions for indexing historyGravatar BanceDev 2-0/+35 2024-09-08added support for cli args for lua scriptsGravatar BanceDev 4-3/+28 2024-09-07added --version flagGravatar BanceDev 1-1/+9 2024-09-07fixed error in install.sh instructionsGravatar BanceDev 1-1/+1 2024-09-07fixed bug with cursor alignment when adding text within the bufferGravatar BanceDev 1-1/+11 2024-09-06added API guide to readmeGravatar BanceDev 1-1/+5 2024-09-06Update README.mdGravatar Lance Borden 1-1/+1 2024-09-06better readmeGravatar BanceDev 2-2/+14