public TextEngine() { lines = new List<string> (); layout = new Pango.Layout (PintaCore.Chrome.Canvas.PangoContext); imContext = new Gtk.IMMulticontext (); imContext.Commit += OnCommit; }
public TextEngine() { lines = new List<string> (); lines.Add(string.Empty); textMode = TextMode.Unchanged; layout = new Pango.Layout (PintaCore.Chrome.Canvas.PangoContext); imContext = new Gtk.IMMulticontext (); imContext.Commit += OnCommit; }
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; case WidgetEvent.TextInput: if (EditableWidget != null) { EditableWidget.TextInserted += HandleTextInserted; } else { RunWhenRealized (delegate { if (IMContext == null) { IMContext = new Gtk.IMMulticontext (); IMContext.ClientWindow = EventsRootWidget.GdkWindow; IMContext.Commit += HandleImCommitEvent; } }); Widget.KeyPressEvent += HandleTextInputKeyPressEvent; Widget.KeyReleaseEvent += HandleTextInputKeyReleaseEvent; } 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; } }