Mercurial > dwindows
diff dw.h @ 2473:aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
but this should be a framework for adding Android support via JNI/NDK.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 18 Apr 2021 01:28:55 +0000 |
parents | 44b77654c406 |
children | a13e6db064f4 |
line wrap: on
line diff
--- a/dw.h Thu Apr 15 02:11:04 2021 +0000 +++ b/dw.h Sun Apr 18 01:28:55 2021 +0000 @@ -123,7 +123,7 @@ # endif #endif -#if defined(__OS2__) || (defined(__WIN32__) && !defined(GDK_WINDOWING_WIN32)) || defined(__MAC__) || defined(__IOS__) || defined(__EMX__) || defined(__TEMPLATE__) +#if defined(__OS2__) || (defined(__WIN32__) && !defined(GDK_WINDOWING_WIN32)) || defined(__MAC__) || defined(__IOS__) || defined(__EMX__) || defined(__ANDROID__) || defined(__TEMPLATE__) /* OS/2, Windows or MacOS */ #ifdef __OS2__ @@ -723,6 +723,221 @@ typedef HWND HMENUI; #endif +/* Android section */ +#if defined(__ANDROID__) +#include <stdio.h> +#include <stdlib.h> +#include <stdarg.h> +#include <limits.h> + +/* Can remove this for your port when you know where MAX_PATH is */ +#ifndef MAX_PATH +#define MAX_PATH 260 +#endif + +#define TRUE 1 +#define FALSE 0 + +typedef void *HWND; + +typedef unsigned long ULONG; +typedef long LONG; +typedef unsigned short USHORT; +typedef short SHORT; +typedef unsigned short UWORD; +typedef short WORD ; +typedef unsigned char UCHAR; +typedef char CHAR; +typedef unsigned UINT; +typedef int INT; +typedef void *HMTX; +typedef void *HEV; +typedef void *HSHM; +typedef void *HMOD; +typedef void *HTREEITEM; +typedef HWND HMENUI; +typedef int DWTID; +typedef unsigned long HICN; + +typedef struct _window_data { + UserData *root; + HWND clickdefault; + ULONG flags; + void *data; +} WindowData; + +typedef struct _hpixmap { + unsigned long width, height; + /* ?? *pixmap; */ + HWND handle; +} *HPIXMAP; + +#define DW_DT_LEFT 0 +#define DW_DT_QUERYEXTENT 0 +#define DW_DT_UNDERSCORE 0 +#define DW_DT_STRIKEOUT 0 +#define DW_DT_TEXTATTRS 0 +#define DW_DT_EXTERNALLEADING 0 +#define DW_DT_CENTER 0 +#define DW_DT_RIGHT 0 +#define DW_DT_TOP 0 +#define DW_DT_VCENTER 0 +#define DW_DT_BOTTOM 0 +#define DW_DT_HALFTONE 0 +#define DW_DT_MNEMONIC 0 +#define DW_DT_WORDBREAK 0 +#define DW_DT_ERASERECT 0 + +#define DW_FCF_CLOSEBUTTON 0 +#define DW_FCF_TITLEBAR 0 +#define DW_FCF_SYSMENU 0 +#define DW_FCF_MENU 0 +#define DW_FCF_SIZEBORDER 0 +#define DW_FCF_MINBUTTON 0 +#define DW_FCF_MAXBUTTON 0 +#define DW_FCF_MINMAX (DW_FCF_MINBUTTON|DW_FCF_MAXBUTTON) +#define DW_FCF_DLGBORDER 0 +#define DW_FCF_BORDER 0 +#define DW_FCF_TASKLIST 0 +#define DW_FCF_NOMOVEWITHOWNER 0 +#define DW_FCF_SYSMODAL 0 +#define DW_FCF_HIDEBUTTON 0 +#define DW_FCF_HIDEMAX 0 +#define DW_FCF_AUTOICON 0 +#define DW_FCF_MAXIMIZE 0 +#define DW_FCF_MINIMIZE 0 +#define DW_FCF_TEXTURED 0 +#define DW_FCF_FULLSCREEN 0 + +#define DW_CFA_BITMAPORICON 1 +#define DW_CFA_STRING (1 << 1) +#define DW_CFA_ULONG (1 << 2) +#define DW_CFA_TIME (1 << 3) +#define DW_CFA_DATE (1 << 4) +#define DW_CFA_CENTER (1 << 5) +#define DW_CFA_LEFT (1 << 6) +#define DW_CFA_RIGHT (1 << 7) +#define DW_CFA_STRINGANDICON (1 << 8) +#define DW_CFA_HORZSEPARATOR 0 +#define DW_CFA_SEPARATOR 0 + +#define DW_CRA_SELECTED 1 +#define DW_CRA_CURSORED (1 << 1) + +#define DW_CR_RETDATA (1 << 10) + +#define DW_LS_MULTIPLESEL 1 + +#define DW_LIT_NONE -1 + +#define DW_MLE_CASESENSITIVE 0 + +#define DW_BS_NOBORDER 0 + +#define DW_POINTER_DEFAULT 0 +#define DW_POINTER_ARROW 0 +#define DW_POINTER_CLOCK 0 +#define DW_POINTER_QUESTION 0 + +#define HWND_DESKTOP ((HWND)0) + +/* flag values for dw_messagebox() */ +#define DW_MB_OK (1 << 1) +#define DW_MB_OKCANCEL (1 << 2) +#define DW_MB_YESNO (1 << 3) +#define DW_MB_YESNOCANCEL (1 << 4) + +#define DW_MB_WARNING (1 << 10) +#define DW_MB_ERROR (1 << 11) +#define DW_MB_INFORMATION (1 << 12) +#define DW_MB_QUESTION (1 << 13) + +/* Virtual Key Codes */ +#define VK_LBUTTON 0 +#define VK_RBUTTON 1 +#define VK_CANCEL 2 +#define VK_MBUTTON 3 +#define VK_BACK 4 +#define VK_TAB 5 +#define VK_CLEAR 6 +#define VK_RETURN 7 +#define VK_MENU 8 +#define VK_PAUSE 9 +#define VK_CAPITAL 10 +#define VK_ESCAPE 11 +#define VK_SPACE 12 +#define VK_PRIOR 13 +#define VK_NEXT 14 +#define VK_END 15 +#define VK_HOME 16 +#define VK_LEFT 17 +#define VK_UP 18 +#define VK_RIGHT 19 +#define VK_DOWN 20 +#define VK_SELECT 21 +#define VK_PRINT 22 +#define VK_EXECUTE 23 +#define VK_SNAPSHOT 24 +#define VK_INSERT 25 +#define VK_DELETE 26 +#define VK_HELP 27 +#define VK_LWIN 28 +#define VK_RWIN 29 +#define VK_NUMPAD0 30 +#define VK_NUMPAD1 31 +#define VK_NUMPAD2 32 +#define VK_NUMPAD3 33 +#define VK_NUMPAD4 34 +#define VK_NUMPAD5 35 +#define VK_NUMPAD6 36 +#define VK_NUMPAD7 37 +#define VK_NUMPAD8 38 +#define VK_NUMPAD9 39 +#define VK_MULTIPLY 40 +#define VK_ADD 41 +#define VK_SEPARATOR 42 +#define VK_SUBTRACT 43 +#define VK_DECIMAL 44 +#define VK_DIVIDE 45 +#define VK_F1 46 +#define VK_F2 47 +#define VK_F3 48 +#define VK_F4 49 +#define VK_F5 50 +#define VK_F6 51 +#define VK_F7 52 +#define VK_F8 53 +#define VK_F9 54 +#define VK_F10 55 +#define VK_F11 56 +#define VK_F12 57 +#define VK_F13 58 +#define VK_F14 59 +#define VK_F15 60 +#define VK_F16 61 +#define VK_F17 62 +#define VK_F18 63 +#define VK_F19 64 +#define VK_F20 65 +#define VK_F21 66 +#define VK_F22 67 +#define VK_F23 68 +#define VK_F24 69 +#define VK_NUMLOCK 70 +#define VK_SCROLL 71 +#define VK_LSHIFT 72 +#define VK_RSHIFT 73 +#define VK_LCONTROL 74 +#define VK_RCONTROL 75 +#define VK_LMENU 76 +#define VK_RMENU 77 + +/* Key Modifiers */ +#define KC_CTRL (1) +#define KC_SHIFT (1 << 1) +#define KC_ALT (1 << 2) +#endif + /* Template section, framework for new platform ports */ #if defined(__TEMPLATE__) #include <stdio.h>