protected virtual MouseScrolledEventArgs GetScrollEventArgs(Gtk.ScrollEventArgs args) { var direction = args.Event.Direction.ToXwtValue(); var pointer_coords = EventsRootWidget.CheckPointerCoordinates(args.Event.Window, args.Event.X, args.Event.Y); return(new MouseScrolledEventArgs((long)args.Event.Time, pointer_coords.X, pointer_coords.Y, direction)); }
protected override void OnSetBackgroundColor(Xwt.Drawing.Color color) { base.OnSetBackgroundColor(color); Widget.SetBackgroundColor(color); Widget.SetChildBackgroundColor(color); EventsRootWidget.SetBackgroundColor(color); }
protected void AllocEventBox(bool visibleWindow = false) { // Wraps the widget with an event box. Required for some // widgets such as Label which doesn't have its own gdk window if (!NeedsEventBox) { return; } if (eventBox == null && !EventsRootWidget.GetHasWindow()) { if (EventsRootWidget is Gtk.EventBox) { ((Gtk.EventBox)EventsRootWidget).VisibleWindow = true; return; } eventBox = new Gtk.EventBox(); eventBox.Visible = Widget.Visible; eventBox.Sensitive = Widget.Sensitive; eventBox.VisibleWindow = visibleWindow; GtkEngine.ReplaceChild(Widget, eventBox); eventBox.Add(Widget); } }
protected override void OnSetBackgroundColor(Xwt.Drawing.Color color) { if (EventsRootWidget != null) { EventsRootWidget.SetBackgroundColor(color); } base.OnSetBackgroundColor(color); }
protected virtual ButtonEventArgs GetButtonReleaseEventArgs(Gtk.ButtonReleaseEventArgs args) { var a = new ButtonEventArgs(); var pointer_coords = EventsRootWidget.CheckPointerCoordinates(args.Event.Window, args.Event.X, args.Event.Y); a.X = pointer_coords.X; a.Y = pointer_coords.Y; a.Button = (PointerButton)args.Event.Button; return(a); }
void EnableLinkEvents() { if (!linkEventEnabled) { linkEventEnabled = true; AllocEventBox(); EventsRootWidget.AddEvents((int)Gdk.EventMask.PointerMotionMask); EventsRootWidget.MotionNotifyEvent += HandleMotionNotifyEvent; EventsRootWidget.AddEvents((int)Gdk.EventMask.ButtonReleaseMask); EventsRootWidget.ButtonReleaseEvent += HandleButtonReleaseEvent; EventsRootWidget.AddEvents((int)Gdk.EventMask.LeaveNotifyMask); EventsRootWidget.LeaveNotifyEvent += HandleLeaveNotifyEvent; } }
void SubscribeCursorEnterLeaveEvent() { if (!cursorEnterLeaveSubscribed) { cursorEnterLeaveSubscribed = true; // subscribe only once EventsRootWidget.AddEvents((int)Gdk.EventMask.EnterNotifyMask); EventsRootWidget.AddEvents((int)Gdk.EventMask.LeaveNotifyMask); EventsRootWidget.EnterNotifyEvent += (o, args) => { immediateCursorChange = true; if (gdkCursor != null) { ((Gtk.Widget)o).GdkWindow.Cursor = gdkCursor; } }; EventsRootWidget.LeaveNotifyEvent += (o, args) => { immediateCursorChange = false; ((Gtk.Widget)o).GdkWindow.Cursor = null; }; } }
protected virtual ButtonEventArgs GetButtonPressEventArgs(Gtk.ButtonPressEventArgs args) { var a = new ButtonEventArgs(); var pointer_coords = EventsRootWidget.CheckPointerCoordinates(args.Event.Window, args.Event.X, args.Event.Y); a.X = pointer_coords.X; a.Y = pointer_coords.Y; a.Button = (PointerButton)args.Event.Button; if (args.Event.Type == Gdk.EventType.TwoButtonPress) { a.MultiplePress = 2; } else if (args.Event.Type == Gdk.EventType.ThreeButtonPress) { a.MultiplePress = 3; } else { a.MultiplePress = 1; } return(a); }
protected virtual MouseMovedEventArgs GetMouseMovedEventArgs(Gtk.MotionNotifyEventArgs args) { var pointer_coords = EventsRootWidget.CheckPointerCoordinates(args.Event.Window, args.Event.X, args.Event.Y); return(new MouseMovedEventArgs((long)args.Event.Time, pointer_coords.X, pointer_coords.Y)); }
public virtual void EnableEvent(object eventId) { if (eventId is WidgetEvent) { WidgetEvent ev = (WidgetEvent)eventId; switch (ev) { case WidgetEvent.DragLeave: AllocEventBox(); EventsRootWidget.DragLeave += HandleWidgetDragLeave; break; case WidgetEvent.DragStarted: AllocEventBox(); EventsRootWidget.DragBegin += HandleWidgetDragBegin; break; case WidgetEvent.KeyPressed: Widget.KeyPressEvent += HandleKeyPressEvent; break; case WidgetEvent.KeyReleased: Widget.KeyReleaseEvent += HandleKeyReleaseEvent; break; case WidgetEvent.GotFocus: EventsRootWidget.AddEvents((int)Gdk.EventMask.FocusChangeMask); Widget.FocusGrabbed += HandleWidgetFocusInEvent; break; case WidgetEvent.LostFocus: EventsRootWidget.AddEvents((int)Gdk.EventMask.FocusChangeMask); Widget.FocusOutEvent += HandleWidgetFocusOutEvent; break; case WidgetEvent.MouseEntered: AllocEventBox(); EventsRootWidget.AddEvents((int)Gdk.EventMask.EnterNotifyMask); EventsRootWidget.EnterNotifyEvent += HandleEnterNotifyEvent; break; case WidgetEvent.MouseExited: AllocEventBox(); EventsRootWidget.AddEvents((int)Gdk.EventMask.LeaveNotifyMask); EventsRootWidget.LeaveNotifyEvent += HandleLeaveNotifyEvent; break; case WidgetEvent.ButtonPressed: AllocEventBox(); EventsRootWidget.AddEvents((int)Gdk.EventMask.ButtonPressMask); EventsRootWidget.ButtonPressEvent += HandleButtonPressEvent; break; case WidgetEvent.ButtonReleased: AllocEventBox(); EventsRootWidget.AddEvents((int)Gdk.EventMask.ButtonReleaseMask); EventsRootWidget.ButtonReleaseEvent += HandleButtonReleaseEvent; break; case WidgetEvent.MouseMoved: AllocEventBox(); EventsRootWidget.AddEvents((int)Gdk.EventMask.PointerMotionMask); EventsRootWidget.MotionNotifyEvent += HandleMotionNotifyEvent; break; case WidgetEvent.BoundsChanged: Widget.SizeAllocated += HandleWidgetBoundsChanged; break; case WidgetEvent.MouseScrolled: AllocEventBox(); EventsRootWidget.AddEvents((int)Gdk.EventMask.ScrollMask); Widget.ScrollEvent += HandleScrollEvent; break; } if ((ev & dragDropEvents) != 0 && (enabledEvents & dragDropEvents) == 0) { // Enabling a drag&drop event for the first time AllocEventBox(); EventsRootWidget.DragDrop += HandleWidgetDragDrop; EventsRootWidget.DragMotion += HandleWidgetDragMotion; EventsRootWidget.DragDataReceived += HandleWidgetDragDataReceived; } if ((ev & WidgetEvent.PreferredSizeCheck) != 0) { EnableSizeCheckEvents(); } enabledEvents |= ev; } }
protected virtual void OnSetBackgroundColor(Color color) { EventsRootWidget.SetBackgroundColor(color); }