aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2018-11-15 20:22:59 -0500
committerRuss Cox <rsc@swtch.com>2018-11-15 20:39:35 -0500
commit8581c2b56763d7787604c8c833d2bd78bdc6a466 (patch)
tree921221af510ad74a89731d9d9cb308e375039f06 /include
parent9af9ceca26596d562a3ae89fda70bad9f8822ab0 (diff)
downloadplan9port-8581c2b56763d7787604c8c833d2bd78bdc6a466.tar.gz
plan9port-8581c2b56763d7787604c8c833d2bd78bdc6a466.tar.bz2
plan9port-8581c2b56763d7787604c8c833d2bd78bdc6a466.zip
libdraw: add Cursor2, a 32x32 high-res cursor
Also add setcursor2, esetcursor2, and draw protocol encoding. Calls to the old setcursor, esetcursor create a 32x32 by pixel doubling when needed.
Diffstat (limited to 'include')
-rw-r--r--include/cursor.h10
-rw-r--r--include/draw.h3
-rw-r--r--include/drawfcall.h6
-rw-r--r--include/event.h2
-rw-r--r--include/mouse.h2
5 files changed, 22 insertions, 1 deletions
diff --git a/include/cursor.h b/include/cursor.h
index d53baf81..e39d2ea5 100644
--- a/include/cursor.h
+++ b/include/cursor.h
@@ -12,6 +12,16 @@ struct Cursor
uchar set[2*16];
};
+typedef struct Cursor2 Cursor2;
+struct Cursor2
+{
+ Point offset;
+ uchar clr[4*32];
+ uchar set[4*32];
+};
+
+void scalecursor(Cursor2*, Cursor*);
+
#if defined(__cplusplus)
}
#endif
diff --git a/include/draw.h b/include/draw.h
index 3a012959..2f283bdf 100644
--- a/include/draw.h
+++ b/include/draw.h
@@ -568,9 +568,10 @@ int mousescrollsize(int);
*/
struct Mouse;
struct Cursor;
+struct Cursor2;
int _displaybouncemouse(Display *d, struct Mouse *m);
int _displayconnect(Display *d);
-int _displaycursor(Display *d, struct Cursor *c);
+int _displaycursor(Display *d, struct Cursor *c, struct Cursor2 *c2);
int _displayinit(Display *d, char *label, char *winsize);
int _displaylabel(Display *d, char *label);
int _displaymoveto(Display *d, Point p);
diff --git a/include/drawfcall.h b/include/drawfcall.h
index fb339919..acab98c5 100644
--- a/include/drawfcall.h
+++ b/include/drawfcall.h
@@ -13,6 +13,9 @@ tag[1] Rmoveto
tag[1] Tcursor cursor[]
tag[1] Rcursor
+tag[1] Tcursor2 cursor[]
+tag[1] Rcursor2
+
tag[1] Tbouncemouse x[4] y[4] button[4]
tag[1] Rbouncemouse
@@ -89,6 +92,8 @@ enum {
Rtop,
Tresize = 26,
Rresize,
+ Tcursor2 = 28,
+ Rcursor2,
Tmax,
};
@@ -104,6 +109,7 @@ struct Wsysmsg
Mouse mouse;
int resized;
Cursor cursor;
+ Cursor2 cursor2;
int arrowcursor;
Rune rune;
char *winsize;
diff --git a/include/event.h b/include/event.h
index 09cb5c78..e66bf117 100644
--- a/include/event.h
+++ b/include/event.h
@@ -61,7 +61,9 @@ extern int emenuhit(int, Mouse*, Menu*);
extern int eatomouse(Mouse*, char*, int);
extern Rectangle getrect(int, Mouse*);
struct Cursor;
+struct Cursor2;
extern void esetcursor(struct Cursor*);
+extern void esetcursor2(struct Cursor*, struct Cursor2*);
extern void emoveto(Point);
extern Rectangle egetrect(int, Mouse*);
extern void edrawgetrect(Rectangle, int);
diff --git a/include/mouse.h b/include/mouse.h
index 3d5c975f..c46d51e9 100644
--- a/include/mouse.h
+++ b/include/mouse.h
@@ -38,7 +38,9 @@ extern void moveto(Mousectl*, Point);
extern int readmouse(Mousectl*);
extern void closemouse(Mousectl*);
struct Cursor;
+struct Cursor2;
extern void setcursor(Mousectl*, struct Cursor*);
+extern void setcursor2(Mousectl*, struct Cursor*, struct Cursor2*);
extern void drawgetrect(Rectangle, int);
extern Rectangle getrect(int, Mousectl*);
extern int menuhit(int, Mousectl*, Menu*, Screen*);