mirror of
https://gitea.nishi.boats/pyrite-dev/milsko
synced 2026-01-08 18:33:30 +00:00
add more cursor
git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@181 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
@@ -324,7 +324,11 @@ void MwLLSetCursor(MwLL handle, MwCursor* image, MwCursor* mask) {
|
||||
HCURSOR cursor;
|
||||
BYTE* dmask = malloc((MwCursorDataHeight / 8) * MwCursorDataHeight);
|
||||
BYTE* dimage = malloc((MwCursorDataHeight / 8) * MwCursorDataHeight);
|
||||
int y, x;
|
||||
int y, x, ys, xs;
|
||||
|
||||
xs = -mask->x + image->x;
|
||||
ys = MwCursorDataHeight + mask->y;
|
||||
ys = MwCursorDataHeight + image->y - ys;
|
||||
|
||||
memset(dmask, 0xff, (MwCursorDataHeight / 8) * MwCursorDataHeight);
|
||||
memset(dimage, 0, (MwCursorDataHeight / 8) * MwCursorDataHeight);
|
||||
@@ -343,19 +347,19 @@ void MwLLSetCursor(MwLL handle, MwCursor* image, MwCursor* mask) {
|
||||
}
|
||||
|
||||
for(y = 0; y < image->height; y++) {
|
||||
BYTE* l = &dimage[(y + (MwCursorDataHeight + mask->y)) * (MwCursorDataHeight / 8)];
|
||||
BYTE* l = &dimage[(y + ys) * (MwCursorDataHeight / 8)];
|
||||
unsigned int n = image->data[y];
|
||||
|
||||
for(x = image->width - 1; x >= 0; x--) {
|
||||
if(n & 1) {
|
||||
l[(x - mask->x) / 8] |= (1 << (7 - ((x - mask->x) % 8)));
|
||||
l[(x + xs) / 8] |= (1 << (7 - ((x + xs) % 8)));
|
||||
}
|
||||
|
||||
n = n >> 1;
|
||||
}
|
||||
}
|
||||
|
||||
cursor = CreateCursor(GetModuleHandle(NULL), -mask->x, MwCursorDataHeight + mask->y, MwCursorDataHeight, MwCursorDataHeight, dmask, dimage);
|
||||
cursor = CreateCursor(GetModuleHandle(NULL), xs, ys, MwCursorDataHeight, MwCursorDataHeight, dmask, dimage);
|
||||
|
||||
SetClassLongPtr(handle->hWnd, GCLP_HCURSOR, (LONG_PTR)cursor);
|
||||
SetCursor(cursor);
|
||||
|
||||
@@ -338,10 +338,14 @@ void MwLLForceRender(MwLL handle) {
|
||||
void MwLLSetCursor(MwLL handle, MwCursor* image, MwCursor* mask) {
|
||||
XcursorImage* img = XcursorImageCreate(MwCursorDataHeight, MwCursorDataHeight);
|
||||
Cursor cur;
|
||||
int y, x;
|
||||
int y, x, ys, xs;
|
||||
|
||||
img->xhot = -mask->x;
|
||||
img->yhot = MwCursorDataHeight + mask->y;
|
||||
xs = -mask->x + image->x;
|
||||
ys = MwCursorDataHeight + mask->y;
|
||||
ys = MwCursorDataHeight + image->y - ys;
|
||||
|
||||
img->xhot = xs;
|
||||
img->yhot = ys;
|
||||
|
||||
memset(img->pixels, 0, MwCursorDataHeight * MwCursorDataHeight * sizeof(XcursorPixel));
|
||||
for(y = 0; y < mask->height; y++) {
|
||||
@@ -358,7 +362,7 @@ void MwLLSetCursor(MwLL handle, MwCursor* image, MwCursor* mask) {
|
||||
for(x = image->width - 1; x >= 0; x--) {
|
||||
int px = 0;
|
||||
if(l & 1) px = 255;
|
||||
img->pixels[(img->yhot + y) * MwCursorDataHeight + (img->xhot + x)] |= (px << 16) | (px << 8) | (px);
|
||||
img->pixels[(ys + y) * MwCursorDataHeight + (xs + x)] |= (px << 16) | (px << 8) | (px);
|
||||
|
||||
l = l >> 1;
|
||||
}
|
||||
|
||||
44
src/cursor/cross.c
Normal file
44
src/cursor/cross.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* $Id$ */
|
||||
#include <Mw/Milsko.h>
|
||||
|
||||
/**
|
||||
* Created by bitmaptobdf
|
||||
*
|
||||
* Copyright notice:
|
||||
* These ""glyphs"" are unencumbered
|
||||
*/
|
||||
MwCursor MwCursorCross = {
|
||||
14, 14, -6, -8, {14343, /* ###........### */
|
||||
15375, /* ####......#### */
|
||||
15903, /* #####....##### */
|
||||
7998, /* .#####..#####. */
|
||||
4092, /* ..##########.. */
|
||||
2040, /* ...########... */
|
||||
1008, /* ....######.... */
|
||||
1008, /* ....######.... */
|
||||
2040, /* ...########... */
|
||||
4092, /* ..##########.. */
|
||||
7998, /* .#####..#####. */
|
||||
15903, /* #####....##### */
|
||||
15375, /* ####......#### */
|
||||
14343, /* ###........### */
|
||||
0, 0}};
|
||||
MwCursor MwCursorCrossMask = {
|
||||
16, 16, -7, -9, {
|
||||
61455, /* ####........#### */
|
||||
63519, /* #####......##### */
|
||||
64575, /* ######....###### */
|
||||
65151, /* #######..####### */
|
||||
32766, /* .##############. */
|
||||
16380, /* ..############.. */
|
||||
8184, /* ...##########... */
|
||||
4080, /* ....########.... */
|
||||
4080, /* ....########.... */
|
||||
8184, /* ...##########... */
|
||||
16380, /* ..############.. */
|
||||
32766, /* .##############. */
|
||||
65151, /* #######..####### */
|
||||
64575, /* ######....###### */
|
||||
63519, /* #####......##### */
|
||||
61455 /* ####........#### */
|
||||
}};
|
||||
Reference in New Issue
Block a user