I'm looking for a open source C# script editor to be embedded to MONO 2 application.
I found SyntaxBox in http://www.puzzleframework.com/wikiengine/WikiPageViewer.aspx?ID=90 (last link). SyntaxBox uses DllImports in 3 files (NativeMethods.cs, AutoListForm.cs, InfoTipform.cs) , code shown below. What to you think which is best way to solve this: 1. Change SyntaxBox source code not to use direct WinAPI calls when running under MONO. Is it possible/reasonable to try it to port this MONO ? 2. Use Scincilla or FireBall Editorcontrol. 3. Create new implementation form scratch. Andrus. DllImport occurances: NativeMethods.cs: [DllImport("uxtheme.dll", SetLastError = true, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr OpenThemeData(IntPtr hwnd, [MarshalAs(UnmanagedType.LPWStr)] string pszClassList); [DllImport("uxtheme.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr CloseThemeData(IntPtr hTheme); [DllImport("uxtheme.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern bool IsThemeActive(); [DllImport("uxtheme.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int DrawThemeBackground(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref APIRect rect, ref APIRect clipRect); [DllImport("uxtheme.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int DrawThemeText(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, string pszText, int iCharCount, uint dwTextFlags, uint dwTextFlags2, [MarshalAs(UnmanagedType.Struct)] ref APIRect rect); [DllImport("uxtheme.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int GetThemeColor(IntPtr hTheme, int iPartId, int iStateId, int iPropId, out ulong color); [DllImport("imm32.dll")] public static extern IntPtr ImmGetDefaultIMEWnd(IntPtr hWnd); [DllImport("user32.dll")] public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, COMPOSITIONFORM lParam); [DllImport("user32.dll")] public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, LogFont lParam); [DllImport("user32.DLL", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int DrawText(IntPtr hDC, string lpString, int nCount, ref APIRect Rect, int wFormat); public const int GWL_STYLE = -16; public const int WS_CHILD = 0x40000000; [DllImport("gdi32", SetLastError = true, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int EnumFontFamiliesEx(IntPtr hDC, [MarshalAs(UnmanagedType.LPStruct)] LogFont lf, FONTENUMPROC proc, Int64 LParam, Int64 DW); [DllImport("shlwapi.dll", SetLastError = true)] public static extern int SHAutoComplete(IntPtr hWnd, UInt32 flags); [DllImport("user32.dll")] public static extern IntPtr GetDesktopWindow(); [DllImport("user32.DLL")] public static extern IntPtr GetWindowRect(IntPtr hWND, ref APIRect Rect); [DllImport("user32.dll", EntryPoint = "SendMessage")] public static extern int SendMessage(IntPtr hWND, int message, int WParam, int LParam); [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong); [DllImport("gdi32.DLL", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int SetBkColor(IntPtr hDC, int crColor); [DllImport("gdi32.DLL", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int SetBkMode(IntPtr hDC, int Mode); [DllImport("user32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr ReleaseDC(IntPtr hWND, IntPtr hDC); [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr DeleteDC(IntPtr hDC); [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr GdiFlush(); [DllImport("user32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr GetWindowDC(IntPtr hWND); [DllImport("user32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr GetDC(IntPtr hWND); [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr CreateCompatibleBitmap(IntPtr hDC, int nWidth, int nHeight); [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr CreateCompatibleDC(IntPtr hDC); [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject); [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr DeleteObject(IntPtr hObject); [DllImport("gdi32.DLL", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int GetTextColor(IntPtr hDC); [DllImport("gdi32.DLL", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int SetTextColor(IntPtr hDC, int crColor); [DllImport("gdi32.DLL", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int GetBkColor(IntPtr hDC); [DllImport("gdi32.DLL", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int GetBkMode(IntPtr hDC); [DllImport("user32", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int DrawFocusRect(IntPtr hDC, ref APIRect rect); [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr CreateSolidBrush(int crColor); [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int Rectangle(IntPtr hDC, int left, int top, int right, int bottom); [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr CreateHatchBrush(int Style, int crColor); [DllImport("user32.DLL", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int TabbedTextOut(IntPtr hDC, int x, int y, string lpString, int nCount, int nTabPositions, ref int lpnTabStopPositions, int nTabOrigin); [DllImport("gdi32.dll", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr BitBlt(IntPtr hDestDC, int x, int y, int nWidth, int nHeight, IntPtr hSrcDC, int xSrc, int ySrc, int dwRop); [DllImport("user32.dll", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int FillRect(IntPtr hDC, ref APIRect rect, IntPtr hBrush); [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int GetTextFace(IntPtr hDC, int nCount, string lpFacename); [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int GetTextMetrics(IntPtr hDC, ref GDITextMetric TextMetric); [DllImport("gdi32.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr CreateFontIndirect([MarshalAs(UnmanagedType.LPStruct)]LogFont LogFont); [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] public static extern int GetTabbedTextExtent(IntPtr hDC, string lpString, int nCount, int nTabPositions, ref int lpnTabStopPositions); [DllImport("user32.dll", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int InvertRect(IntPtr hDC, ref APIRect rect); [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr CreatePen(int nPenStyle, int nWidth, int crColor); [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int SetBrushOrgEx(IntPtr hDC, int x, int y, ref APIPoint p); [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr CreatePatternBrush(IntPtr hBMP); [DllImport("User32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int ShowWindow(IntPtr hWnd, short cmdShow); [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr MoveToEx(IntPtr hDC, int x, int y, ref APIPoint lpPoint); [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern IntPtr LineTo(IntPtr hDC, int x, int y); [DllImport("user32", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern UInt16 GetAsyncKeyState(int vKey); AutoListForm.cs, InfoTipform.cs: [DllImport("user32.dll", EntryPoint = "SendMessage")] private static extern int SendMessage(IntPtr hWnd, int message, int _data, int _id); _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
