private void InitializeDisplay () { display = new X11Display (Xlib.XOpenDisplay(IntPtr.Zero)); Graphics.FromHdcInternal (display.Handle); }
public X11RootHwnd (X11Display display, IntPtr window_handle) : base (display) { WholeWindow = ClientWindow = window_handle; Xlib.XSelectInput(display.Handle, WholeWindow, new IntPtr ((int)EventMask.PropertyChangeMask)); }
internal override void ShutdownDriver(IntPtr token) { lock (this) { if (display != null) { display.Close (); display = null; } } }
internal override IntPtr InitializeDriver () { lock (this) { if (display == null) display = new X11Display (Xlib.XOpenDisplay(IntPtr.Zero)); } return IntPtr.Zero; }
public X11Atoms (X11Display display) { // make sure this array stays in sync with the statements below string [] atom_names = new string[] { "WM_PROTOCOLS", "WM_DELETE_WINDOW", "WM_TAKE_FOCUS", "_NET_SUPPORTED", "_NET_CLIENT_LIST", "_NET_NUMBER_OF_DESKTOPS", "_NET_DESKTOP_GEOMETRY", "_NET_DESKTOP_VIEWPORT", "_NET_CURRENT_DESKTOP", "_NET_DESKTOP_NAMES", "_NET_ACTIVE_WINDOW", "_NET_WORKAREA", "_NET_SUPPORTING_WM_CHECK", "_NET_VIRTUAL_ROOTS", "_NET_DESKTOP_LAYOUT", "_NET_SHOWING_DESKTOP", "_NET_CLOSE_WINDOW", "_NET_MOVERESIZE_WINDOW", "_NET_WM_MOVERESIZE", "_NET_RESTACK_WINDOW", "_NET_REQUEST_FRAME_EXTENTS", "_NET_WM_NAME", "_NET_WM_VISIBLE_NAME", "_NET_WM_ICON_NAME", "_NET_WM_VISIBLE_ICON_NAME", "_NET_WM_DESKTOP", "_NET_WM_WINDOW_TYPE", "_NET_WM_STATE", "_NET_WM_ALLOWED_ACTIONS", "_NET_WM_STRUT", "_NET_WM_STRUT_PARTIAL", "_NET_WM_ICON_GEOMETRY", "_NET_WM_ICON", "_NET_WM_PID", "_NET_WM_HANDLED_ICONS", "_NET_WM_USER_TIME", "_NET_FRAME_EXTENTS", "_NET_WM_PING", "_NET_WM_SYNC_REQUEST", "_NET_SYSTEM_TRAY_OPCODE", "_NET_SYSTEM_TRAY_ORIENTATION", "_NET_WM_STATE_MAXIMIZED_HORZ", "_NET_WM_STATE_MAXIMIZED_VERT", "_NET_WM_STATE_HIDDEN", "_XEMBED", "_XEMBED_INFO", "_MOTIF_WM_HINTS", "_NET_WM_STATE_SKIP_TASKBAR", "_NET_WM_STATE_ABOVE", "_NET_WM_STATE_MODAL", "_NET_WM_CONTEXT_HELP", "_NET_WM_WINDOW_OPACITY", "_NET_WM_WINDOW_TYPE_DESKTOP", "_NET_WM_WINDOW_TYPE_DOCK", "_NET_WM_WINDOW_TYPE_TOOLBAR", "_NET_WM_WINDOW_TYPE_MENU", "_NET_WM_WINDOW_TYPE_UTILITY", "_NET_WM_WINDOW_TYPE_DIALOG", "_NET_WM_WINDOW_TYPE_SPLASH", "_NET_WM_WINDOW_TYPE_NORMAL", "CLIPBOARD", "PRIMARY", "COMPOUND_TEXT", "UTF8_STRING", "TARGETS", "_SWF_AsyncAtom", "_SWF_PostMessageAtom", "_SWF_HoverAtom" }; IntPtr[] atoms = new IntPtr [atom_names.Length];; Xlib.XInternAtoms (display.Handle, atom_names, atom_names.Length, false, atoms); int off = 0; WM_PROTOCOLS = atoms [off++]; WM_DELETE_WINDOW = atoms [off++]; WM_TAKE_FOCUS = atoms [off++]; _NET_SUPPORTED = atoms [off++]; _NET_CLIENT_LIST = atoms [off++]; _NET_NUMBER_OF_DESKTOPS = atoms [off++]; _NET_DESKTOP_GEOMETRY = atoms [off++]; _NET_DESKTOP_VIEWPORT = atoms [off++]; _NET_CURRENT_DESKTOP = atoms [off++]; _NET_DESKTOP_NAMES = atoms [off++]; _NET_ACTIVE_WINDOW = atoms [off++]; _NET_WORKAREA = atoms [off++]; _NET_SUPPORTING_WM_CHECK = atoms [off++]; _NET_VIRTUAL_ROOTS = atoms [off++]; _NET_DESKTOP_LAYOUT = atoms [off++]; _NET_SHOWING_DESKTOP = atoms [off++]; _NET_CLOSE_WINDOW = atoms [off++]; _NET_MOVERESIZE_WINDOW = atoms [off++]; _NET_WM_MOVERESIZE = atoms [off++]; _NET_RESTACK_WINDOW = atoms [off++]; _NET_REQUEST_FRAME_EXTENTS = atoms [off++]; _NET_WM_NAME = atoms [off++]; _NET_WM_VISIBLE_NAME = atoms [off++]; _NET_WM_ICON_NAME = atoms [off++]; _NET_WM_VISIBLE_ICON_NAME = atoms [off++]; _NET_WM_DESKTOP = atoms [off++]; _NET_WM_WINDOW_TYPE = atoms [off++]; _NET_WM_STATE = atoms [off++]; _NET_WM_ALLOWED_ACTIONS = atoms [off++]; _NET_WM_STRUT = atoms [off++]; _NET_WM_STRUT_PARTIAL = atoms [off++]; _NET_WM_ICON_GEOMETRY = atoms [off++]; _NET_WM_ICON = atoms [off++]; _NET_WM_PID = atoms [off++]; _NET_WM_HANDLED_ICONS = atoms [off++]; _NET_WM_USER_TIME = atoms [off++]; _NET_FRAME_EXTENTS = atoms [off++]; _NET_WM_PING = atoms [off++]; _NET_WM_SYNC_REQUEST = atoms [off++]; _NET_SYSTEM_TRAY_OPCODE = atoms [off++]; _NET_SYSTEM_TRAY_ORIENTATION = atoms [off++]; _NET_WM_STATE_MAXIMIZED_HORZ = atoms [off++]; _NET_WM_STATE_MAXIMIZED_VERT = atoms [off++]; _NET_WM_STATE_HIDDEN = atoms [off++]; _XEMBED = atoms [off++]; _XEMBED_INFO = atoms [off++]; _MOTIF_WM_HINTS = atoms [off++]; _NET_WM_STATE_SKIP_TASKBAR = atoms [off++]; _NET_WM_STATE_ABOVE = atoms [off++]; _NET_WM_STATE_MODAL = atoms [off++]; _NET_WM_CONTEXT_HELP = atoms [off++]; _NET_WM_WINDOW_OPACITY = atoms [off++]; _NET_WM_WINDOW_TYPE_DESKTOP = atoms [off++]; _NET_WM_WINDOW_TYPE_DOCK = atoms [off++]; _NET_WM_WINDOW_TYPE_TOOLBAR = atoms [off++]; _NET_WM_WINDOW_TYPE_MENU = atoms [off++]; _NET_WM_WINDOW_TYPE_UTILITY = atoms [off++]; _NET_WM_WINDOW_TYPE_DIALOG = atoms [off++]; _NET_WM_WINDOW_TYPE_SPLASH = atoms [off++]; _NET_WM_WINDOW_TYPE_NORMAL = atoms [off++]; CLIPBOARD = atoms [off++]; PRIMARY = atoms [off++]; OEMTEXT = atoms [off++]; UNICODETEXT = atoms [off++]; TARGETS = atoms [off++]; AsyncAtom = atoms [off++]; PostAtom = atoms [off++]; display.HoverState.Atom = atoms [off++]; DIB = XA_PIXMAP; // XXX multi screen stuff here _NET_SYSTEM_TRAY_S = Xlib.XInternAtom (display.Handle, "_NET_SYSTEM_TRAY_S" + display.DefaultScreen.ToString(), false); }
public X11Hwnd (X11Display display, IntPtr handle) : this (display) { if (handle == IntPtr.Zero) throw new ArgumentNullException ("handle"); WholeWindow = ClientWindow = handle; }
public X11Hwnd (X11Display display) { this.display = display; Queue = XplatUIX11_new.GetInstance().ThreadQueue(Thread.CurrentThread); }