Mercurial > vim
annotate src/xpm_w32.c @ 8242:1313d2e282dc v7.4.1414
commit https://github.com/vim/vim/commit/81275ca9ce3059148fdb65dff29f7ecdbca446fb
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Feb 24 21:02:20 2016 +0100
patch 7.4.1414
Problem: Appveyor only builds one feature set.
Solution: Build a combination of features and GUI/console. (Christian
Brabandt)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 24 Feb 2016 21:15:04 +0100 |
parents | 33ba2adb6065 |
children | 4aead6a9b7a9 |
rev | line source |
---|---|
3322 | 1 /* vi:set ts=8 sts=4 sw=4: |
2 * | |
7 | 3 * Load XPM image. |
4 * | |
5 * This function is placed in separate file because Xpm headers conflict with | |
6 * Vim ones :( | |
7 * | |
8 * Written by Sergey Khorev. | |
9 * http://iamphet.nm.ru/vim/index.html | |
10 */ | |
11 | |
12 #ifndef WIN32_LEAN_AND_MEAN | |
13 # define WIN32_LEAN_AND_MEAN | |
14 #endif | |
15 #include <windows.h> | |
16 | |
17 #include "xpm_w32.h" | |
18 | |
19 /* Engage Windows support in libXpm */ | |
20 #define FOR_MSW | |
21 | |
22 #include "xpm.h" | |
23 | |
24 /* | |
3322 | 25 * Tries to load an Xpm image from the file "filename". |
26 * Returns -1 on failure. | |
27 * Returns 0 on success and stores image and mask BITMAPS in "hImage" and | |
28 * "hShape". | |
7 | 29 */ |
30 int | |
7837
33ba2adb6065
commit https://github.com/vim/vim/commit/b638a7be952544ceb03052c25b84224577a6494b
Christian Brabandt <cb@256bit.org>
parents:
7807
diff
changeset
|
31 LoadXpmImage( |
33ba2adb6065
commit https://github.com/vim/vim/commit/b638a7be952544ceb03052c25b84224577a6494b
Christian Brabandt <cb@256bit.org>
parents:
7807
diff
changeset
|
32 char *filename, |
33ba2adb6065
commit https://github.com/vim/vim/commit/b638a7be952544ceb03052c25b84224577a6494b
Christian Brabandt <cb@256bit.org>
parents:
7807
diff
changeset
|
33 HBITMAP *hImage, |
33ba2adb6065
commit https://github.com/vim/vim/commit/b638a7be952544ceb03052c25b84224577a6494b
Christian Brabandt <cb@256bit.org>
parents:
7807
diff
changeset
|
34 HBITMAP *hShape) |
7 | 35 { |
3322 | 36 XImage *img; /* loaded image */ |
7 | 37 XImage *shp; /* shapeimage */ |
38 XpmAttributes attr; | |
39 int res; | |
40 HDC hdc = CreateCompatibleDC(NULL); | |
41 | |
42 attr.valuemask = 0; | |
43 res = XpmReadFileToImage(&hdc, filename, &img, &shp, &attr); | |
44 DeleteDC(hdc); | |
45 if (res < 0) | |
46 return -1; | |
3322 | 47 if (shp == NULL) |
7 | 48 { |
3935 | 49 if (img) |
3322 | 50 XDestroyImage(img); |
51 return -1; | |
7 | 52 } |
3322 | 53 *hImage = img->bitmap; |
54 *hShape = shp->bitmap; | |
55 return 0; | |
7 | 56 } |