private FilterReturn FilterFunc(IntPtr xevent, Event evnt) { if (xevent == IntPtr.Zero) return FilterReturn.Continue; var e = (X11.XEvent)Marshal.PtrToStructure(xevent, typeof(X11.XEvent)); // Dropping these events is non standard but so is embeding a Gtk into // a X11 Window. if (e.type == X11.XEventName.FocusOut || e.type == X11.XEventName.LeaveNotify) { return FilterReturn.Remove; } // Ensure Mouse clicks and Button go to the right place if (e.type == X11.XEventName.ButtonPress || e.type == X11.XEventName.KeyPress) { // TODO: possibly cancel any tooltip windows. this.m_parent.Focus(); return FilterReturn.Continue; } // Everything else just process as normal return FilterReturn.Continue; }
public override CellEditable StartEditing(Gdk.Event ev, Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, CellRendererState flags) { if (property == null || editorCell == null || !sensitive) { return(null); } StateType state = GetState(flags); EditSession session = editorCell.StartEditing(cell_area, state); if (session == null) { return(null); } Gtk.Widget propEditor = (Gtk.Widget)session.Editor; propEditor.Show(); HackEntry e = new HackEntry(session, propEditor); e.Show(); session.Changed += delegate { ((InternalTree)widget).PropertyTree.NotifyChanged(); }; TreeIter it; ((InternalTree)widget).Model.GetIterFromString(out it, path); ((InternalTree)widget).EditingIter = it; return(e); }
protected override bool OnDeleteEvent (Event evnt) { var documents = IdeApp.Workbench.Documents.Where (IsChildOfMe).ToList (); int howManyDirtyFiles = documents.Count (doc => doc.IsDirty); if (howManyDirtyFiles > 1) { using (var dlg = new DirtyFilesDialog (documents, closeWorkspace: false, groupByProject: false)) { dlg.Modal = true; if (MessageService.ShowCustomDialog (dlg) != (int)Gtk.ResponseType.Ok) return true; } } else if (howManyDirtyFiles == 1) { // Ensure dirty file is closed first. This prevents saved files being closed // if the save is cancelled. documents.Sort (DirtyFilesFirst); } foreach (var d in documents) { if (howManyDirtyFiles > 1) d.Window.CloseWindow (true); else if (!d.Close ()) return true; } return base.OnDeleteEvent (evnt); }
protected override bool OnWidgetEvent(Gdk.Event evnt) { // This method is hooked to block the event as soon as possible if required if (evnt.Window.Equals(this.GdkWindow)) { switch (evnt.Type) { case Gdk.EventType.ButtonPress: case Gdk.EventType.ButtonRelease: case Gdk.EventType.ThreeButtonPress: case Gdk.EventType.TwoButtonPress: Gdk.EventButton eb = new Gdk.EventButton(evnt.Handle); return(PropagateEventGivenCoordinate(evnt, eb.X, eb.XRoot, eb.Y, eb.YRoot)); case Gdk.EventType.MotionNotify: Gdk.EventMotion em = new Gdk.EventMotion(evnt.Handle); return(PropagateEventGivenCoordinate(evnt, em.X, em.XRoot, em.Y, em.YRoot)); case Gdk.EventType.LeaveNotify: foreach (Widget w in lastHoveredWidgets) { w.ProcessEvent(evnt); } lastHoveredWidgets.Clear(); return(base.OnWidgetEvent(evnt)); } } return(base.OnWidgetEvent(evnt)); }
protected override bool OnDeleteEvent(Gdk.Event evnt) { if (timeout_id > 0) { GLib.Timeout.Remove(timeout_id); } return(base.OnDeleteEvent(evnt)); }
protected override bool OnDeleteEvent(Gdk.Event evnt) { if (SaveCheckDialogResult.Cancel != this.Quit()) { return(base.OnDeleteEvent(evnt)); } return(true); }
protected override bool OnDeleteEvent (Event evnt) { var documents = IdeApp.Workbench.Documents.Where (IsChildOfMe).ToList (); foreach (var d in documents) { if (!d.Close ()) return true; } return base.OnDeleteEvent (evnt); }
protected override bool OnDeleteEvent (Event evnt) { foreach (var notebook in Container.GetNotebooks ().ToList ()) foreach (var tab in notebook.Tabs.ToList ()) if (!notebook.OnCloseTab (tab)) return true; return base.OnDeleteEvent (evnt); }
public override CellEditable StartEditing (Gdk.Event evnt, Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, CellRendererState flags) { CellEditEntry text = new CellEditEntry (); text.EditingDone += OnEditDone; text.Text = source.Name; text.path = path; text.Show (); view.EditingRow = true; return text; }
public override CellEditable StartEditing(Gdk.Event evnt, Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, CellRendererState flags) { if (VisibilityChanged != null) { VisibilityChanged(this, null); } return(null); }
public override CellEditable StartEditing(Gdk.Event ev, Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, CellRendererState flags) { this.path = path; Gtk.ComboBox combo = Gtk.ComboBox.NewText(); foreach (string s in values) { combo.AppendText(s); } combo.Active = Array.IndexOf(values, Text); combo.Changed += new EventHandler(SelectionChanged); return(new TreeViewCellContainer(combo)); }
protected override bool OnDeleteEvent(Gdk.Event ev) { if (!LeftSpliter.Sensitive && !RigthSpliter.Sensitive && !bntCreateMirror.Visible) { var Msg = Message("Save the progress?", "DriveMirror", MessageType.Question, ButtonsType.YesNo); if (Msg == ResponseType.Yes) { MirrorWorker.SaveProgress(); } } Application.Quit(); return(true); }
public override CellEditable StartEditing(Gdk.Event ev, Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, CellRendererState flags) { if (property == null || editorCell == null || !sensitive) { return(null); } StateType state = GetState(flags); EditSession session = editorCell.StartEditing(cell_area, state); if (session == null) { return(null); } Gtk.Widget propEditor = (Gtk.Widget)session.Editor; propEditor.Show(); HackEntry e = new HackEntry(propEditor, session); e.Show(); return(e); }
private FilterReturn FilterFunc(IntPtr xevent, Event evnt) { if (xevent == IntPtr.Zero) return FilterReturn.Continue; var e = (X11.XEvent)Marshal.PtrToStructure(xevent, typeof(X11.XEvent)); if (e.type == X11.XEventName.PropertyNotify) { var actWin = Screen.Default.ActiveWindow; if (actWin != null) { if (lastActive == null || actWin.Handle != lastActive.Handle) { lastActive = actWin; var win = Windows.GetOrCreate(actWin.Handle); RaiseWindowActivated(win); } } } // Everything else just process as normal return FilterReturn.Continue; }
protected override bool OnDeleteEvent(Event evnt) { CloseAndQuit (); return true; }
protected override bool OnDeleteEvent(Event ev) { Application.Quit (); return true; }
public MouseEvent(IDrawingView view, Gdk.Event gdkEvent, PointD point) : base(view, gdkEvent) { _drawingPoint = point; }
private bool PropagateEventGivenCoordinate(Gdk.Event evnt, double X, double XRoot, double Y, double YRoot) { int x = (int)X, y = (int)Y; Container current = this; // Current container containing the coordinate Widget match = this; // Current match for the position int matchedPos = 0; // Current position in lastHoveredWidgets while (matchedPos < lastHoveredWidgets.Count) { Widget candidate = lastHoveredWidgets[matchedPos]; if (candidate.Parent == current) // Is it still a child of the current container ? { Gdk.Rectangle alloc = candidate.Allocation; if (!alloc.Contains(x, y)) // Does it contain the coordinate ? { break; } } current = candidate as Container; match = candidate; ++matchedPos; } if (matchedPos < lastHoveredWidgets.Count) // Not all widgets match { // Send a leave notify SendSyntheticEvent(EventType.LeaveNotify, evnt, X, XRoot, Y, YRoot, lastHoveredWidgets, matchedPos); // Remove them lastHoveredWidgets.RemoveRange(matchedPos, lastHoveredWidgets.Count - matchedPos); } while (current != null) { Container next = null; foreach (Widget child in current.Children) { if (child.IsNoWindow) { Gdk.Rectangle alloc = child.Allocation; if (alloc.Contains(x, y)) { lastHoveredWidgets.Add(child); match = child; next = child as Container; break; } } } current = next; } if (matchedPos < lastHoveredWidgets.Count) // New widgets have been found { // Send an enter notify SendSyntheticEvent(EventType.EnterNotify, evnt, X, XRoot, Y, YRoot, lastHoveredWidgets, matchedPos); } if (match == this) // No widget found, the window keeps the event { return(base.OnWidgetEvent(evnt)); } else // A widget has been found, let's send it the event { match.ProcessEvent(evnt); return(true); } }
/// <summary> /// Handles X events. Gets first and second selection points and sets selected screen region as clipboard content. /// </summary> /// <param name="xEvent">X event.</param> /// <param name="gdkEvent">Gdk event.</param> private FilterReturn OnScreenshotMouseChanged(IntPtr xEvent, Event gdkEvent) { try { IXButtonEvent evnt = null; switch (this.architecture) { case Architectures.X86: evnt = (XButtonEvent32)Marshal.PtrToStructure(xEvent, typeof(XButtonEvent32)); break; case Architectures.X86_64: evnt = (XButtonEvent64)Marshal.PtrToStructure(xEvent, typeof(XButtonEvent64)); break; } switch (evnt.Type) { case EventType.ButtonPress: this.rectangle = new Rectangle(evnt.X, evnt.Y); this.pixbuf = Pixbuf.FromDrawable(this.rootWindow, this.rootWindow.Colormap, 0, 0, 0, 0, this.rootWindow.Screen.Width, this.rootWindow.Screen.Height); this.CreateWindow(); break; case EventType.ButtonRelease: this.rectangle.SetEndPoint(evnt.X, evnt.Y); Pixbuf pb = this.GetPixmapFromRectangle(); this.Ungrab(); this.rectangle = null; if (pb != null) { new ImageWindow(pb).ShowAll(); pb.Dispose(); } break; case EventType.MotionNotify: if (this.rectangle != null && this.rectangle.X2 != evnt.X && this.rectangle.Y2 != evnt.Y) { this.rectangle.SetEndPoint(evnt.X, evnt.Y); this.window.Move(this.rectangle.X1 < this.rectangle.X2 ? this.rectangle.X1 : this.rectangle.X2, this.rectangle.Y1 < this.rectangle.Y2 ? this.rectangle.Y1 : this.rectangle.Y2); this.window.Resize(this.rectangle.Width, this.rectangle.Height); } break; case EventType.KeyPress: case EventType.KeyRelease: this.Ungrab(); this.rectangle = null; break; } } catch (Exception ex) { this.Ungrab(); Tools.PrintInfo(ex, this.GetType()); } return FilterReturn.Continue; }
private FilterReturn ManagerFilter(IntPtr xevent, Event evnt) { //TODO: Implement; return FilterReturn.Continue; }
private void SendSyntheticEvent (EventType Type, Event OriginalEvent, double X, double XRoot, double Y, double YRoot, IList<Widget> Widgets, int Index) { SyntheticEventCrossing se = new SyntheticEventCrossing(); se.Detail = NotifyType.Ancestor; se.Focus = false; se.Mode = CrossingMode.Normal; se.SendEvent = false; se.State = ModifierType.None; se.Subwindow = null; //se.Time = DateTime.Now.Ticks / 10000; // TODO: the real value shoud be the uptime I think se.Time = 0; se.Type = Type; se.Window = OriginalEvent.Window; se.X = X; se.XRoot = XRoot; se.Y = Y; se.YRoot = YRoot; unsafe { Event managedEvent = new Event(new IntPtr(&se)); for(int i = Index ; i < Widgets.Count ; ++i) { Widgets[i].ProcessEvent (managedEvent); } } }
public void StartEditing(Gdk.Event evnt) { System.Console.WriteLine("StartEditing() " + evnt.Window.GetType()); }
protected override bool OnDeleteEvent(Gdk.Event evnt) { App.Current.GUIToolkit.Quit(); return(true); }
private FilterReturn ManagerFilter(IntPtr xevent, Event evnt) { return FilterReturn.Continue; }
private FilterReturn ManagerFilter (IntPtr xevent, Event evnt) { XAnyEvent xev = (XAnyEvent) Marshal.PtrToStructure (xevent, typeof(XAnyEvent)); if (xev.type == XEventName.ClientMessage){ XClientMessageEvent xclient = (XClientMessageEvent) Marshal.PtrToStructure (xevent, typeof(XClientMessageEvent)); if (xclient.message_type == manager_atom && xclient.data.ptr2 == selection_atom) { UpdateManagerWindow (true); return FilterReturn.Continue; } } if (xev.window == manager_window) { if (xev.type == XEventName.PropertyNotify){ XPropertyEvent xproperty = (XPropertyEvent) Marshal.PtrToStructure (xevent, typeof(XPropertyEvent)); if (xproperty.atom == orientation_atom) { GetOrientationProperty(); return FilterReturn.Continue; } } if (xev.type == XEventName.DestroyNotify) { ManagerWindowDestroyed(); } } return FilterReturn.Continue; }
protected override bool OnDeleteEvent (Event evnt) { Hide (); ActiveDock = null; return true; }
protected override bool OnDeleteEvent(Gdk.Event ev) { Gtk.Application.Quit(); return(true); }
protected override bool OnDeleteEvent(Gdk.Event evt) { Destroy(); return(true); }
public void StartEditing (Event evnt) { System.Console.WriteLine("DateEntry.StartEditing()"); // throw new System.NotImplementedException(); }
public KeyEvent(IDrawingView view, Gdk.Event gdkEvent) : base(view, gdkEvent) { }
protected override bool OnUnmapEvent(Event evnt) { Hide(); return base.OnUnmapEvent(evnt); }
/// <summary> /// Matches catched key combination to hotkey and executes it's action. /// </summary> /// <param name="xEvent">X event arguments.</param> /// <param name="gdkEvent">Gdk event arguments.</param> private FilterReturn OnHotkeyPressed(IntPtr xEvent, Event gdkEvent) { try { IXKeyEvent evnt = null; ModifierType modifiers; switch (this.Architecture) { case Architectures.X86: evnt = (XKeyEvent32)Marshal.PtrToStructure(xEvent, typeof(XKeyEvent32)); break; case Architectures.X86_64: evnt = (XKeyEvent64)Marshal.PtrToStructure(xEvent, typeof(XKeyEvent64)); break; } if (evnt.Type == XEventTypeKeyPress) { modifiers = evnt.Modifiers; if (modifiers.ToString().Contains(ModifierType.LockMask.ToString())) modifiers = (ModifierType)((int)modifiers - (int)ModifierType.LockMask); if (modifiers.ToString().Contains(ModifierType.Mod2Mask.ToString())) modifiers = (ModifierType)((int)modifiers - (int)ModifierType.Mod2Mask); Hotkey hotkey = this.grabbedHotkeys.FirstOrDefault(h => h.KeyCode == evnt.KeyCode && h.Modifiers == modifiers); if (hotkey != null && hotkey.OnHotkeyPressed != null) hotkey.OnHotkeyPressed(); } } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } return FilterReturn.Continue; }
public StartDragArgs(uint but, Event evt) { this.Button = but; this.Event = evt; }
protected override bool OnDeleteEvent(Gdk.Event evnt) { CloseAndQuit(); return(true); }
public StartDragArgs(uint but, Event evt) { Button = but; Event = evt; }
protected Event(IDrawingView view, Gdk.Event gdkEvent) { _gdkEvent = gdkEvent; _view = view; }
/// <summary> /// Handles X events. Gets point and reads it's color. /// </summary> /// <param name="xEvent">X event.</param> /// <param name="gdkEvent">Gdk event.</param> private FilterReturn OnColorMouseChanged(IntPtr xEvent, Event gdkEvent) { try { IXButtonEvent evnt = null; switch (this.architecture) { case Architectures.X86: evnt = (XButtonEvent32)Marshal.PtrToStructure(xEvent, typeof(XButtonEvent32)); break; case Architectures.X86_64: evnt = (XButtonEvent64)Marshal.PtrToStructure(xEvent, typeof(XButtonEvent64)); break; } switch (evnt.Type) { case EventType.ButtonRelease: this.pixbuf = Pixbuf.FromDrawable(this.rootWindow, this.rootWindow.Colormap, evnt.X, evnt.Y, 0, 0, 1, 1); byte r, g, b; unsafe { byte* ptr = (byte*)this.pixbuf.Pixels.ToPointer(); r = *ptr; g = *(++ptr); b = *(++ptr); } this.Ungrab(); new ColorWindow(r, g, b).ShowAll(); break; case EventType.KeyPress: case EventType.KeyRelease: this.Ungrab(); break; } } catch (Exception ex) { this.Ungrab(); Tools.PrintInfo(ex, this.GetType()); } return FilterReturn.Continue; }
private FilterReturn FilterFunc (IntPtr xevent, Event evnt) { if (xevent == IntPtr.Zero) return FilterReturn.Continue; var e = (X11.XEvent)Marshal.PtrToStructure(xevent, typeof(X11.XEvent)); // Dropping these events is non standard but so is embeding a Gtk into // a X11 Window. if (e.type == X11.XEventName.FocusOut || e.type == X11.XEventName.LeaveNotify) { return FilterReturn.Remove; } // Everything else just process as normal return FilterReturn.Continue; }
/// <summary> /// Catches key combination end emits HotkeyGrabbed event. /// </summary> /// <param name="xEvent">X event arguments.</param> /// <param name="gdkEvent">Gdk event arguments.</param> /// <returns>Filter state.</returns> private FilterReturn OnHotkeyGrabbed(IntPtr xEvent, Event gdkEvent) { try { IXKeyEvent evnt = null; Key key; ModifierType modifiers = ModifierType.None; switch (this.Architecture) { case Architectures.X86: evnt = (XKeyEvent32)Marshal.PtrToStructure(xEvent, typeof(XKeyEvent32)); break; case Architectures.X86_64: evnt = (XKeyEvent64)Marshal.PtrToStructure(xEvent, typeof(XKeyEvent64)); break; } key = (Key)XKeycodeToKeysym(this.XDisplay, evnt.KeyCode, 0); modifiers = evnt.Modifiers; if (key == Key.Escape || key == Key.BackSpace) { this.UngrabKeyboard(); if (this.hotkeyGrabbedFunc != null) this.hotkeyGrabbedFunc(this, null); return FilterReturn.Continue; } if (OmittedModifiers.Contains(modifiers) || OmittedKeys.Contains(key)) return FilterReturn.Continue; if (modifiers.ToString().Contains(ModifierType.LockMask.ToString())) modifiers = (ModifierType)((int)modifiers - (int)ModifierType.LockMask); if (modifiers.ToString().Contains(ModifierType.Mod2Mask.ToString())) modifiers = (ModifierType)((int)modifiers - (int)ModifierType.Mod2Mask); if (this.hotkeyGrabbedFunc != null) this.hotkeyGrabbedFunc(this, new HotkeyGrabbedArgs(modifiers, key)); this.UngrabKeyboard(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } return FilterReturn.Continue; }
protected override bool OnWidgetEvent(Event evnt) { if(evnt.Window.Equals (this.GdkWindow)) { if(evnt.Type != Gdk.EventType.Expose) { if(Child != null) Child.ProcessEvent (evnt); } } return base.OnWidgetEvent (evnt); }