internal override void CreateCaret (IntPtr handle, int width, int height)
{
XGCValues gc_values;
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
if (Caret.Hwnd != IntPtr.Zero) {
DestroyCaret(Caret.Hwnd);
}
Caret.Hwnd = handle;
Caret.Window = hwnd.client_window;
Caret.Width = width;
Caret.Height = height;
Caret.Visible = false;
Caret.On = false;
gc_values = new XGCValues();
gc_values.line_width = width;
Caret.gc = XCreateGC(DisplayHandle, Caret.Window, new IntPtr ((int)GCFunction.GCLineWidth), ref gc_values);
if (Caret.gc == IntPtr.Zero) {
Caret.Hwnd = IntPtr.Zero;
return;
}
XSetFunction(DisplayHandle, Caret.gc, GXFunction.GXinvert);
}