summaryrefslogtreecommitdiff
path: root/ldmicro/lib/linuxUI/linuxLD.h
blob: e204c638844d6324ca5afed3ff5c64fc625d637e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#ifndef __LINUX_LD__
#define __LINUX_LD__

#include "linuxUI.h"
#include <ctype.h>
#include <vector>
#include <algorithm>
#include <sys/mman.h>

/// common windows referances for linux

/// definitions
#define MAX_PATH PATH_MAX
/// CALLBACK or __stdcall os defined empty
#define CALLBACK
#define CONST const

#define HEAP_ZERO_MEMORY 0x00000008

/// Typedefs
//typedef int64_t __int64;
typedef bool BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned int DWORD;
typedef unsigned int UINT;
typedef size_t SIZE_T;
typedef long LONG;
typedef wchar_t WCHAR;
typedef char CHAR;

typedef CONST WCHAR *LPCWSTR;
typedef CONST CHAR *LPCSTR; /// should be __nullterminated

#ifdef UNICODE
 typedef LPCWSTR LPCTSTR; 
#else
 typedef LPCSTR LPCTSTR;
#endif

typedef WCHAR *LPWSTR;
typedef CHAR *LPSTR;

#ifdef UNICODE
 typedef LPWSTR LPTSTR;
#else
 typedef LPSTR LPTSTR;
#endif

typedef void *PVOID;
typedef void *LPVOID;
typedef PVOID HFONT;
typedef PVOID HMODULE;
typedef PVOID HHOOK;
typedef PVOID HBRUSH;
typedef PVOID HFONT;
typedef PVOID HANDLE;
typedef HANDLE HINSTANCE;
typedef HANDLE HDC;

typedef GtkWidget *HWID;
typedef GtkWidget *HMENU;
typedef GtkWindow *HWND;
typedef GtkApplication *HAPP;

/// Check if system is x64 or x86
#if defined(__UNIX64)
typedef uint64_t UINT_PTR;
#else 
typedef unsigned int UINT_PTR;
#endif
 
typedef UINT_PTR WPARAM;

#if defined(__UNIX64)
 typedef __int64_t LONG_PTR; 
#else
 typedef long LONG_PTR;
#endif

typedef LONG_PTR LPARAM;
typedef LONG_PTR LRESULT;

/// Custom classes
class COLORREF : public GdkRGBA{
    public:
    COLORREF()
    {
        this->red = 0.0;
        this->green = 0.0;
        this->blue = 0.0;
        this->alpha = 1.0;
    }
    COLORREF(int r, int g, int b)
    {
        this->red = r/255.0;
        this->green = g/255.0;
        this->blue = b/255.0;
        this->alpha = 1.0;
    }
};

/// Custom structures
typedef struct HeapRecordChunckTag{
    PVOID Chunck;
    SIZE_T dwSize;
} HEAPCHUNCK;

typedef struct HeapRecordTag{
    PVOID hHeap;
    DWORD HeapID;
    std::vector<HEAPCHUNCK> Element;
    SIZE_T dwMaximumSize;
    SIZE_T dwSize;
    SIZE_T dwAllocatedSizeOffset;
} HEAPRECORD;

typedef struct tagSCROLLINFO {
  UINT cbSize;
  UINT fMask;
  int  nMin;
  int  nMax;
  UINT nPage;
  int  nPos;
  int  nTrackPos;
} SCROLLINFO, *LPCSCROLLINFO;

typedef struct tagNMHDR {
  HWND     hwndFrom;
  UINT_PTR idFrom;
  UINT     code;
} NMHDR;

/// Variables
extern std::vector<HEAPRECORD> HeapRecord;

/// Functions
HANDLE HeapCreate(
    DWORD  flOptions,
    SIZE_T dwInitialSize,
    SIZE_T dwMaximumSize);

LPVOID HeapAlloc(
    HANDLE hHeap,
    DWORD  dwFlags,
    SIZE_T dwBytes);

BOOL HeapFree(
    HANDLE hHeap,
    DWORD  dwFlags,
    LPVOID lpMem);

/// functions to be ported
void OutputDebugString(char*);
double GetTickCount(void);

#endif