00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __LGI_MAC_OS_DEFS_H
00012 #define __LGI_MAC_OS_DEFS_H
00013
00014 #include <string.h>
00015 #include <stdarg.h>
00016 #include <stdio.h>
00017 #include <Carbon/Carbon.h>
00018 #include "LgiInc.h"
00019 #include "LgiDefs.h"
00020 #include "GAutoPtr.h"
00021 #include "LgiClass.h"
00022 #include "pthread.h"
00023
00025
00026 #include "LgiInc.h"
00027
00029
00030 typedef int int32;
00031 typedef unsigned int uint32;
00032 typedef unsigned char uchar;
00033
00034 typedef WindowRef OsWindow;
00035 typedef ControlRef OsView;
00036 typedef pthread_t OsThread;
00037 typedef UniChar OsChar;
00038 typedef ATSUStyle OsFont;
00039 typedef CGContextRef OsPainter;
00040 typedef CGContextRef OsBitmap;
00041 typedef int OsProcessId;
00042
00043 class LgiClass GMessage
00044 {
00045 public:
00046 typedef int Param;
00047
00048 int m;
00049 Param a;
00050 Param b;
00051
00052 GMessage()
00053 {
00054 m = a = b = 0;
00055 }
00056
00057 GMessage(int M, Param A = 0, Param B = 0)
00058 {
00059 m = M;
00060 a = A;
00061 b = B;
00062 }
00063 };
00064
00065 class OsAppArguments
00066 {
00067 struct OsAppArgumentsPriv *d;
00068
00069 public:
00070 int Args;
00071 char **Arg;
00072
00073 OsAppArguments(int args = 0, char **arg = 0);
00074 ~OsAppArguments();
00075
00076 void Set(char *CmdLine);
00077 OsAppArguments &operator =(OsAppArguments &a);
00078 };
00079
00081
00082 #define MsgCode(msg) (msg->m)
00083 #define MsgA(msg) (msg->a)
00084 #define MsgB(msg) (msg->b)
00085 LgiFunc GMessage CreateMsg(int m, int a = 0, int b = 0);
00086
00087
00088 #define POSIX 1
00089
00090
00091 typedef int OsProcess;
00092 typedef int OsProcessId;
00093
00094
00095 typedef pthread_t OsThreadId;
00096 typedef pthread_mutex_t OsSemaphore;
00097 #define LgiGetCurrentThread() pthread_self()
00098
00099
00100 #define ValidSocket(s) ((s)>=0)
00101 #define INVALID_SOCKET -1
00102 typedef int OsSocket;
00103
00104
00105 LgiFunc void LgiSleep(int i);
00106
00107
00108 #define LgiYield() GApp::ObjInstance()->Run(false)
00109
00110 #define LGI_GViewMagic 0x14412662
00111 #define LGI_FileDropFormat "furl"
00112 #define LGI_LgiDropFormat "lgi "
00113 #define LGI_WideCharset "utf-32"
00114 #define LGI_PrintfInt64 "%lli"
00115 #define atoi64 atoll
00116 #define LGI_IllegalFileNameChars "/" // FIXME: what other characters should be in here?
00117
00118
00119 #define GWF_VISIBLE 0x00000001
00120 #define GWF_DISABLED 0x00000002
00121 #define GWF_FOCUS 0x00000004
00122 #define GWF_OVER 0x00000008
00123 #define GWF_DROP_TARGET 0x00000010
00124 #define GWF_SUNKEN 0x00000020
00125 #define GWF_FLAT 0x00000040
00126 #define GWF_RAISED 0x00000080
00127 #define GWF_BORDER 0x00000100
00128 #define GWF_DIALOG 0x00000200
00129 #define GWF_DESTRUCTOR 0x00000400
00130 #define GWF_QUIT_WND 0x00000800
00131
00132
00133 #define ODS_SELECTED 0x1
00134 #define ODS_DISABLED 0x2
00135 #define ODS_CHECKED 0x4
00136
00138 #define SUNKEN 1
00140 #define RAISED 2
00142 #define CHISEL 3
00144 #define FLAT 4
00145
00147 #define DIR_CHAR '/'
00149 #define DIR_STR "/"
00151 #define EOL_SEQUENCE "\n"
00153 #define IsSlash(c) (((c)=='/')OR((c)=='\\'))
00155 #define IsQuote(c) (((c)=='\"')OR((c)=='\''))
00157 #define LGI_PATH_SEPARATOR ":"
00159 #define LGI_ALL_FILES "*"
00161 #define LGI_LIBRARY_EXT "dylib"
00162
00163
00164 #define GViewThisPtr 'gvtp'
00165 #define kEventClassUser 'user'
00166 #define kEventUser 1
00167 #define kEventParamLgiEvent 'Lgie'
00168 #define kEventParamLgiA 'Lgia'
00169 #define kEventParamLgiB 'Lgib'
00171 #define M_SYSTEM 0
00173 #define M_CLOSE (M_SYSTEM+92)
00174
00176 #define M_USER (M_SYSTEM+1000)
00177
00182 #define M_MOUSEENTER (M_USER+100)
00183
00188 #define M_MOUSEEXIT (M_USER+101)
00189
00194 #define M_CHANGE (M_USER+102)
00195
00200 #define M_DESCRIBE (M_USER+103)
00201
00202
00203 #define M_WANT_DIALOG_PROC (M_USER+104)
00204
00205 #define M_MENU (M_USER+105)
00206 #define M_COMMAND (M_USER+106)
00207 #define M_DRAG_DROP (M_USER+107)
00208
00209 #define M_TRAY_NOTIFY (M_USER+108)
00210 #define M_CUT (M_USER+109)
00211 #define M_COPY (M_USER+110)
00212 #define M_PASTE (M_USER+111)
00213 #define M_PULSE (M_USER+112)
00214 #define M_DELETE (M_USER+113)
00215
00220 #define M_GTHREADWORK_COMPELTE (M_USER+114)
00221
00224 #define IDOK 1
00227 #define IDCANCEL 2
00230 #define IDYES 3
00233 #define IDNO 4
00234
00237 #define MB_OK 5
00240 #define MB_OKCANCEL 6
00243 #define MB_YESNO 7
00246 #define MB_YESNOCANCEL 8
00247
00248 #define MB_SYSTEMMODAL 0x1000
00249
00252 #define LGI_VKEY_CTRL 0x001
00255 #define LGI_VKEY_ALT 0x002
00258 #define LGI_VKEY_SHIFT 0x004
00259
00262 #define LGI_VMOUSE_LEFT 0x008
00265 #define LGI_VMOUSE_MIDDLE 0x010
00268 #define LGI_VMOUSE_RIGHT 0x020
00271 #define LGI_VMOUSE_CTRL 0x040
00274 #define LGI_VMOUSE_ALT 0x080
00277 #define LGI_VMOUSE_SHIFT 0x100
00280 #define LGI_VMOUSE_DOWN 0x200
00283 #define LGI_VMOUSE_DOUBLE 0x400
00284
00285
00286 #define VK_F1 1
00287 #define VK_F2 2
00288 #define VK_ENTER 3
00289 #define VK_F3 4
00290 #define VK_F4 5
00291 #define VK_F5 6
00292 #define VK_F6 7
00293 #define VK_BACKSPACE 8
00294 #define VK_TAB 9
00295 #define VK_F7 11
00296 #define VK_F8 12
00297 #define VK_RETURN 13
00298 #define VK_F9 14
00299 #define VK_F10 15
00300 #define VK_F11 16
00301 #define VK_F12 17
00302 #define VK_SHIFT 18
00303 #define VK_PAGEUP 19
00304 #define VK_PAGEDOWN 20
00305 #define VK_HOME 21
00306 #define VK_END 22
00307 #define VK_INSERT 23
00308 #define VK_DELETE 24
00309 #define VK_APPS 25
00310
00311 #define VK_ESCAPE 27
00312 #define VK_LEFT 28
00313 #define VK_RIGHT 29
00314 #define VK_UP 30
00315 #define VK_DOWN 31
00316
00317
00319
00320 LgiFunc GView *GWindowFromHandle(OsView hWnd);
00321 LgiFunc int GetMouseWheelLines();
00322 LgiFunc int WinPointToHeight(int Pt);
00323 LgiFunc int WinHeightToPoint(int Ht);
00324 LgiFunc int stricmp(const char *a, const char *b);
00325 LgiFunc char *strlwr(char *a);
00326 LgiFunc char *strupr(char *a);
00327 LgiFunc char *p2c(unsigned char *s);
00328 LgiFunc void c2p255(Str255 &d, char *s);
00329 LgiFunc char *CFStringToUtf8(CFStringRef r);
00330 LgiFunc CFStringRef Utf8ToCFString(char *s, int len = -1);
00331
00333 LgiFunc int FormatToInt(char *s);
00335 LgiFunc char *FormatToStr(int f);
00336
00337
00338 #endif