Move window-manipulating functions into x.c

xresize is now internal to x.c

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
This commit is contained in:
Devin J. Pohly 2017-10-10 12:46:53 -05:00
parent a09138afa5
commit a8314643b1
4 changed files with 45 additions and 46 deletions

36
st.c
View file

@ -165,7 +165,6 @@ static void tnewline(int);
static void tputtab(int); static void tputtab(int);
static void tputc(Rune); static void tputc(Rune);
static void treset(void); static void treset(void);
static void tresize(int, int);
static void tscrollup(int, int); static void tscrollup(int, int);
static void tscrolldown(int, int); static void tscrolldown(int, int);
static void tsetattr(int *, int); static void tsetattr(int *, int);
@ -419,24 +418,6 @@ selinit(void)
sel.clipboard = NULL; sel.clipboard = NULL;
} }
int
x2col(int x)
{
x -= borderpx;
x /= win.cw;
return LIMIT(x, 0, term.col-1);
}
int
y2row(int y)
{
y -= borderpx;
y /= win.ch;
return LIMIT(y, 0, term.row-1);
}
int int
tlinelen(int y) tlinelen(int y)
{ {
@ -2620,20 +2601,3 @@ kmap(KeySym k, uint state)
return NULL; return NULL;
} }
void
cresize(int width, int height)
{
int col, row;
if (width != 0)
win.w = width;
if (height != 0)
win.h = height;
col = (win.w - 2 * borderpx) / win.cw;
row = (win.h - 2 * borderpx) / win.ch;
tresize(col, row);
xresize(col, row);
}

9
st.h
View file

@ -80,11 +80,6 @@ enum selection_snap {
SNAP_LINE = 2 SNAP_LINE = 2
}; };
enum window_state {
WIN_VISIBLE = 1,
WIN_FOCUSED = 2
};
typedef unsigned char uchar; typedef unsigned char uchar;
typedef unsigned int uint; typedef unsigned int uint;
typedef unsigned long ulong; typedef unsigned long ulong;
@ -186,6 +181,7 @@ void redraw(void);
int tattrset(int); int tattrset(int);
void tnew(int, int); void tnew(int, int);
void tresize(int, int);
void tsetdirt(int, int); void tsetdirt(int, int);
void tsetdirtattr(int); void tsetdirtattr(int);
int match(uint, uint); int match(uint, uint);
@ -198,15 +194,12 @@ void ttywrite(const char *, size_t);
void resettitle(void); void resettitle(void);
char *kmap(KeySym, uint); char *kmap(KeySym, uint);
void cresize(int, int);
void selclear(void); void selclear(void);
void selinit(void); void selinit(void);
void selnormalize(void); void selnormalize(void);
int selected(int, int); int selected(int, int);
char *getsel(void); char *getsel(void);
int x2col(int);
int y2row(int);
size_t utf8decode(char *, Rune *, size_t); size_t utf8decode(char *, Rune *, size_t);
size_t utf8encode(Rune, char *); size_t utf8encode(Rune, char *);

1
win.h
View file

@ -16,7 +16,6 @@ void xloadcols(void);
int xsetcolorname(int, const char *); int xsetcolorname(int, const char *);
void xsettitle(char *); void xsettitle(char *);
void xsetpointermotion(int); void xsetpointermotion(int);
void xresize(int, int);
void xselpaste(void); void xselpaste(void);
void xsetsel(char *, Time); void xsetsel(char *, Time);
void zoom(const Arg *); void zoom(const Arg *);

45
x.c
View file

@ -88,12 +88,16 @@ static void xclear(int, int, int, int);
static void xdrawcursor(void); static void xdrawcursor(void);
static int xgeommasktogravity(int); static int xgeommasktogravity(int);
static void xinit(void); static void xinit(void);
static void cresize(int, int);
static void xresize(int, int);
static int xloadfont(Font *, FcPattern *); static int xloadfont(Font *, FcPattern *);
static void xloadfonts(char *, double); static void xloadfonts(char *, double);
static void xunloadfont(Font *); static void xunloadfont(Font *);
static void xunloadfonts(void); static void xunloadfonts(void);
static void xsetenv(void); static void xsetenv(void);
static void xseturgency(int); static void xseturgency(int);
static int x2col(int);
static int y2row(int);
static void expose(XEvent *); static void expose(XEvent *);
static void visibility(XEvent *); static void visibility(XEvent *);
@ -109,7 +113,6 @@ static void propnotify(XEvent *);
static void selnotify(XEvent *); static void selnotify(XEvent *);
static void selclear_(XEvent *); static void selclear_(XEvent *);
static void selrequest(XEvent *); static void selrequest(XEvent *);
static void selcopy(Time); static void selcopy(Time);
static void getbuttoninfo(XEvent *); static void getbuttoninfo(XEvent *);
static void mousereport(XEvent *); static void mousereport(XEvent *);
@ -148,6 +151,11 @@ static DC dc;
static XWindow xw; static XWindow xw;
static XSelection xsel; static XSelection xsel;
enum window_state {
WIN_VISIBLE = 1,
WIN_FOCUSED = 2
};
/* Font Ring Cache */ /* Font Ring Cache */
enum { enum {
FRC_NORMAL, FRC_NORMAL,
@ -200,6 +208,24 @@ zoomreset(const Arg *arg)
} }
} }
int
x2col(int x)
{
x -= borderpx;
x /= win.cw;
return LIMIT(x, 0, term.col-1);
}
int
y2row(int y)
{
y -= borderpx;
y /= win.ch;
return LIMIT(y, 0, term.row-1);
}
void void
getbuttoninfo(XEvent *e) getbuttoninfo(XEvent *e)
{ {
@ -596,6 +622,23 @@ bmotion(XEvent *e)
tsetdirt(MIN(sel.nb.y, oldsby), MAX(sel.ne.y, oldsey)); tsetdirt(MIN(sel.nb.y, oldsby), MAX(sel.ne.y, oldsey));
} }
void
cresize(int width, int height)
{
int col, row;
if (width != 0)
win.w = width;
if (height != 0)
win.h = height;
col = (win.w - 2 * borderpx) / win.cw;
row = (win.h - 2 * borderpx) / win.ch;
tresize(col, row);
xresize(col, row);
}
void void
xresize(int col, int row) xresize(int col, int row)
{ {