Revert "Move code to separate modules"

This reverts commit 875e8c9d4d.
This commit is contained in:
Alex Kotov 2022-09-10 02:02:45 +04:00
parent 875e8c9d4d
commit 9202316ece
Signed by: kotovalexarian
GPG key ID: 553C0EBBEB5D5F08
8 changed files with 42 additions and 45 deletions

View file

@ -27,7 +27,6 @@ RUST_APIS = \
src/settings.h src/settings.h
MODULES_SRC = \ MODULES_SRC = \
src/config/cursors.c \
src/config/keys.c \ src/config/keys.c \
src/config/buttons.c \ src/config/buttons.c \
src/config/layouts.c \ src/config/layouts.c \

View file

@ -1,21 +0,0 @@
#include "cursors.h"
#include <X11/cursorfont.h>
const Cursor cursors[CURSORS_COUNT] = { 0, 0, 0 };
void cursors_create(Display *const display)
{
Cursor *const cursors_ptr = (Cursor*)cursors;
cursors_ptr[CURSOR_NORMAL] = XCreateFontCursor(display, XC_left_ptr);
cursors_ptr[CURSOR_RESIZE] = XCreateFontCursor(display, XC_sizing);
cursors_ptr[CURSOR_MOVE] = XCreateFontCursor(display, XC_fleur);
}
void cursors_destroy(Display *const display)
{
Cursor *const cursors_ptr = (Cursor*)cursors;
XFreeCursor(display, cursors_ptr[CURSOR_NORMAL]);
XFreeCursor(display, cursors_ptr[CURSOR_RESIZE]);
XFreeCursor(display, cursors_ptr[CURSOR_MOVE]);
}

View file

@ -1,17 +0,0 @@
#ifndef _CONFIG_CURSORS_H
#define _CONFIG_CURSORS_H
#include <X11/Xlib.h>
#define CURSOR_NORMAL 0
#define CURSOR_RESIZE 1
#define CURSOR_MOVE 2
#define CURSORS_COUNT 3
extern const Cursor cursors[CURSORS_COUNT];
void cursors_create(Display *display);
void cursors_destroy(Display *display);
#endif // _CONFIG_CURSORS_H

View file

@ -65,3 +65,26 @@ drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount)
drw_clr_create(drw, &ret[i], clrnames[i]); drw_clr_create(drw, &ret[i], clrnames[i]);
return ret; return ret;
} }
Cur *
drw_cur_create(Drw *drw, int shape)
{
Cur *cur;
if (!drw || !(cur = ecalloc(1, sizeof(Cur))))
return NULL;
cur->cursor = XCreateFontCursor(drw->dpy, shape);
return cur;
}
void
drw_cur_free(Drw *drw, Cur *cursor)
{
if (!cursor)
return;
XFreeCursor(drw->dpy, cursor->cursor);
free(cursor);
}

View file

@ -1,6 +1,10 @@
#ifndef _DRW_H #ifndef _DRW_H
#define _DRW_H #define _DRW_H
typedef struct {
Cursor cursor;
} Cur;
enum { ColFg, ColBg, ColBorder }; /* Clr scheme index */ enum { ColFg, ColBg, ColBorder }; /* Clr scheme index */
typedef XftColor Clr; typedef XftColor Clr;
@ -21,4 +25,8 @@ void drw_free(Drw *drw);
/* Colorscheme abstraction */ /* Colorscheme abstraction */
Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount); Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount);
/* Cursor abstraction */
Cur *drw_cur_create(Drw *drw, int shape);
void drw_cur_free(Drw *drw, Cur *cursor);
#endif // _DRW_H #endif // _DRW_H

View file

@ -154,6 +154,7 @@ static Unit global_unit = NULL;
static const char broken[] = "broken"; static const char broken[] = "broken";
static unsigned int numlockmask = 0; static unsigned int numlockmask = 0;
static int running = 1; static int running = 1;
static Cur *cursor[CurLast];
static Clr **scheme; static Clr **scheme;
static Drw *drw; static Drw *drw;
static Monitor *mons, *selmon; static Monitor *mons, *selmon;
@ -224,7 +225,9 @@ int dwm_main(const char *const new_program_title)
updategeom(); updategeom();
/* init cursors */ /* init cursors */
cursors_create(drw->dpy); cursor[CurNormal] = drw_cur_create(drw, XC_left_ptr);
cursor[CurResize] = drw_cur_create(drw, XC_sizing);
cursor[CurMove] = drw_cur_create(drw, XC_fleur);
/* init appearance */ /* init appearance */
scheme_create(); scheme_create();
@ -249,7 +252,7 @@ int dwm_main(const char *const new_program_title)
); );
/* select events */ /* select events */
wa.cursor = cursors[CURSOR_NORMAL]; wa.cursor = cursor[CurNormal]->cursor;
wa.event_mask = wa.event_mask =
SubstructureRedirectMask | SubstructureNotifyMask | ButtonPressMask | SubstructureRedirectMask | SubstructureNotifyMask | ButtonPressMask |
PointerMotionMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask | EnterWindowMask | LeaveWindowMask |
@ -286,7 +289,10 @@ int dwm_main(const char *const new_program_title)
monitor_destroy(mons); monitor_destroy(mons);
} }
cursors_destroy(drw->dpy); for (size_t i = 0; i < CurLast; i++) {
drw_cur_free(drw, cursor[i]);
}
scheme_destroy(); scheme_destroy();
wmcheckwin_destroy(); wmcheckwin_destroy();

View file

@ -2,7 +2,6 @@
#define _DWM_H #define _DWM_H
#include "config/buttons.h" #include "config/buttons.h"
#include "config/cursors.h"
#include "config/keys.h" #include "config/keys.h"
#include "config/layouts.h" #include "config/layouts.h"

View file

@ -126,7 +126,7 @@ void movemouse(__attribute__((unused)) const Arg *arg)
GrabModeAsync, GrabModeAsync,
GrabModeAsync, GrabModeAsync,
None, None,
cursors[CURSOR_MOVE], cursor[CurMove]->cursor,
CurrentTime CurrentTime
) != GrabSuccess ) != GrabSuccess
) { ) {
@ -357,7 +357,7 @@ void resizemouse(__attribute__((unused)) const Arg *arg)
GrabModeAsync, GrabModeAsync,
GrabModeAsync, GrabModeAsync,
None, None,
cursors[CURSOR_RESIZE], cursor[CurResize]->cursor,
CurrentTime CurrentTime
) != GrabSuccess ) != GrabSuccess
) { ) {