summaryrefslogtreecommitdiff
path: root/src/xpm_w32.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2004-06-13 20:20:40 +0000
committerBram Moolenaar <Bram@vim.org>2004-06-13 20:20:40 +0000
commit071d4279d6ab81b7187b48f3a0fc61e587b6db6c (patch)
tree221cbe3c40e043163c06f61c52a7ba2eb41e12ce /src/xpm_w32.c
parentb4210b3bc14e2918f153a7307530fbe6eba659e1 (diff)
downloadvim-git-071d4279d6ab81b7187b48f3a0fc61e587b6db6c.tar.gz
updated for version 7.0001v7.0001
Diffstat (limited to 'src/xpm_w32.c')
-rw-r--r--src/xpm_w32.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/xpm_w32.c b/src/xpm_w32.c
new file mode 100644
index 000000000..45765e1f1
--- /dev/null
+++ b/src/xpm_w32.c
@@ -0,0 +1,60 @@
+/*
+ * Load XPM image.
+ *
+ * This function is placed in separate file because Xpm headers conflict with
+ * Vim ones :(
+ *
+ * Written by Sergey Khorev.
+ * http://iamphet.nm.ru/vim/index.html
+ */
+
+#ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+#endif
+#include <windows.h>
+
+/* reduced def from Vim.h */
+#ifndef __ARGS
+# if defined(__STDC__) || defined(__GNUC__) || defined(WIN3264)
+# define __ARGS(x) x
+# else
+# define __ARGS(x) ()
+# endif
+#endif
+
+#include "xpm_w32.h"
+
+/* Engage Windows support in libXpm */
+#define FOR_MSW
+
+#include "xpm.h"
+
+/*
+ * Tries to load Xpm image from file 'filename'.
+ * If fails return -1.
+ * success - 0 and image and mask BITMAPS
+ */
+ int
+LoadXpmImage(filename, hImage, hShape)
+ char *filename;
+ HBITMAP *hImage;
+ HBITMAP *hShape;
+{
+ XImage *img; /* loaded image */
+ XImage *shp; /* shapeimage */
+ XpmAttributes attr;
+ int res;
+ HDC hdc = CreateCompatibleDC(NULL);
+
+ attr.valuemask = 0;
+ res = XpmReadFileToImage(&hdc, filename, &img, &shp, &attr);
+ DeleteDC(hdc);
+ if (res < 0)
+ return -1;
+ else
+ {
+ *hImage = img->bitmap;
+ *hShape = shp->bitmap;
+ return 0;
+ }
+}