summaryrefslogtreecommitdiff
path: root/ldmicro/lib/linuxUI/linuxLD.h
diff options
context:
space:
mode:
Diffstat (limited to 'ldmicro/lib/linuxUI/linuxLD.h')
-rw-r--r--ldmicro/lib/linuxUI/linuxLD.h248
1 files changed, 248 insertions, 0 deletions
diff --git a/ldmicro/lib/linuxUI/linuxLD.h b/ldmicro/lib/linuxUI/linuxLD.h
new file mode 100644
index 0000000..f1abbaf
--- /dev/null
+++ b/ldmicro/lib/linuxUI/linuxLD.h
@@ -0,0 +1,248 @@
+#ifndef __LINUX_LD__
+#define __LINUX_LD__
+
+#include "linuxUI.h"
+#include <ctype.h>
+#include <vector>
+#include <math.h>
+#include <algorithm>
+#include <QAction>
+#include <QTreeWidget>
+#include <QSplitter>
+#include <Qt>
+#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
+
+/// Meamory flags
+#define HEAP_ZERO_MEMORY 0x00000008
+
+/// Image loading flags
+#define IMAGE_ICON 1
+#define LDMICRO_ICON "../ldmicro.ico"
+
+/// Macro functions
+#define max(_A, _B) std::max(_A, _B)
+
+/// 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
+typedef WORD ATOM;
+
+#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 HMODULE;
+typedef PVOID HHOOK;
+
+typedef PVOID HANDLE;
+typedef HANDLE HINSTANCE;
+typedef HANDLE HGDIOBJ;
+
+typedef cairo_t *HCRDC;
+typedef QWidget* HWID;
+typedef QWidget* HWND;
+typedef QTreeWidget *HLIST;
+typedef GtkTreeIter ITLIST;
+typedef GtkApplication *HAPP;
+typedef GtkTreeViewColumn *HTVC;
+typedef GdkPixbuf *HICON;
+typedef GdkRectangle GDRECT;
+typedef GDRECT *PGDRECT;
+typedef QMenu* HMENU;
+typedef ITLIST *HITLIST;
+
+/// 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;
+
+/// Classes
+typedef class tagColorReferance: public QColor{
+ public:
+ tagColorReferance()
+ {
+ this->setRgb(0,0,0);
+ }
+
+ tagColorReferance(int r, int g, int b)
+ {
+ this->setRgb(r,g,b);
+ }
+
+ bool operator== (tagColorReferance& arg1)
+ {
+ if( (arg1.red() == this->red()) &&
+ (arg1.green() == this->green()) &&
+ (arg1.blue() == this->blue()) )
+ return true;
+ else
+ return false;
+ }
+
+} COLORREF, *HBRUSH;
+
+/// 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 {
+ UINT mask;
+ int iItem;
+ int iSubItem;
+// UINT state;
+// UINT stateMask;
+ LPTSTR pszText;
+// int cchTextMax;
+// int iImage;
+// LPARAM lParam;
+// int iIndent;
+// int iGroupId;
+// UINT cColumns;
+// PUINT puColumns;
+// int *piColFmt;
+// int iGroup;
+} LVITEM, *LPLVITEM;
+
+typedef struct tagNMHDR {
+ HLIST hlistFrom;
+ HITLIST hlistIter;
+ UINT code;
+ LVITEM item;
+} NMHDR;
+
+typedef struct FontTag {
+ int nHeight;
+ int nWidth;
+ int nOrientation;
+ int fnWeight;
+ DWORD fdwItalic;
+ LPTSTR lpszFace;
+} *HFONT, FONT;
+
+typedef struct tagLOGBRUSH {
+ UINT lbStyle;
+ COLORREF lbColor;
+// ULONG_PTR lbHatch;
+} LOGBRUSH, *PLOGBRUSH;
+
+typedef struct _RECT {
+ LONG left;
+ LONG top;
+ LONG right;
+ LONG bottom;
+} RECT, *PRECT;
+
+typedef struct SimpleDialogDataTag {
+ UINT uflag;
+ int boxes;
+ char **dests;
+ char *str1;
+ char *str2;
+ char *str3;
+ int *num1;
+ int *num2;
+} SimpleDialogData;
+
+/// 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);
+
+HICON LoadImage(
+ HINSTANCE hinst,
+ LPCTSTR lpszName,
+ UINT uType,
+ int cxDesired,
+ int cyDesired,
+ UINT fuLoad
+);
+
+void RECT_to_GDRECT(
+ const RECT *rc,
+ GDRECT *gdrc);
+
+/// functions to be ported
+void OutputDebugString(char*);
+double GetTickCount(void);
+
+#endif \ No newline at end of file