protected override bool OnKeyPressEvent(Gdk.EventKey evnt) { switch (evnt.Key) { case Gdk.Key.Left: SelectPrev(); return(true); case Gdk.Key.Right: SelectNext(); return(true); case Gdk.Key.BackSpace: if (CurrentPart != "") { CurrentPart = CurrentPart.Remove(CurrentPart.Length - 1, 1); } else { CurrentPart = atStart.ToString().Remove(atStart.ToString().Length - 1, 1); } break; } return(base.OnKeyPressEvent(evnt)); }
/// <summary> /// Handles KeyPress event /// </summary> /// <param name="evnt"> /// Arguments <see cref="Gdk.EventKey"/> /// </param> /// <returns> /// true if handled, false if not <see cref="System.Boolean"/> /// </returns> protected override bool OnKeyPressEvent(Gdk.EventKey evnt) { switch (evnt.Key) { case Gdk.Key.Tab: return(base.OnKeyPressEvent(evnt)); } if (Editable == false) { return(true); } switch (evnt.Key) { case Gdk.Key.Left: SelectPrev(); return(true); case Gdk.Key.Right: SelectNext(); return(true); case Gdk.Key.BackSpace: if (CurrentPart != "") { CurrentPart = CurrentPart.Remove(CurrentPart.Length - 1, 1); } else { CurrentPart = atStart.ToString().Remove(atStart.ToString().Length - 1, 1); } break; case Gdk.Key.Insert: if ((evnt.State & ModifierType.ControlMask) == ModifierType.ControlMask) { CopyToClipboard((evnt.State & ModifierType.ShiftMask) == ModifierType.ShiftMask); return(true); } if ((evnt.State & ModifierType.ShiftMask) == ModifierType.ShiftMask) { ResetEditing(); PasteFromClipboard(); return(true); } return(false); case Gdk.Key.C: case Gdk.Key.c: if ((evnt.State & ModifierType.ControlMask) != ModifierType.ControlMask) { return(false); } ResetEditing(); CopyToClipboard(false); return(true); case Gdk.Key.X: case Gdk.Key.x: if ((evnt.State & ModifierType.ControlMask) != ModifierType.ControlMask) { return(false); } ResetEditing(); CopyToClipboard(true); return(true); case Gdk.Key.V: case Gdk.Key.v: if ((evnt.State & ModifierType.ControlMask) != ModifierType.ControlMask) { return(false); } ResetEditing(); PasteFromClipboard(); return(true); case Gdk.Key.Up: case Gdk.Key.Down: int inc = (evnt.Key == Gdk.Key.Down) ? -1 : 1; ResetEditing(); switch (Selected) { case DataPart.Hour: if (((Time.Hour + inc) >= 0) && ((Time.Hour + inc) <= MaxNumber)) { SetTime(Time.Hour + inc, Time.Minute, Time.Second, Time.Millisecond); } break; case DataPart.Minute: if (((Time.Minute + inc) >= 0) && ((Time.Minute + inc) <= MaxNumber)) { SetTime(Time.Hour, Time.Minute + inc, Time.Second, Time.Millisecond); } break; case DataPart.Second: if (((Time.Second + inc) >= 0) && ((Time.Second + inc) <= MaxNumber)) { SetTime(Time.Hour, Time.Minute, Time.Second + inc, Time.Millisecond); } break; case DataPart.Millisecond: if (((Time.Millisecond + inc) >= 0) && ((Time.Millisecond + inc) <= MaxNumber)) { SetTime(Time.Hour, Time.Minute, Time.Second, Time.Millisecond + inc); } break; } return(true); } return(base.OnKeyPressEvent(evnt)); }
/// <summary> /// Handles KeyPress event /// </summary> /// <param name="evnt"> /// Arguments <see cref="Gdk.EventKey"/> /// </param> /// <returns> /// true if handled, false if not <see cref="System.Boolean"/> /// </returns> protected override bool OnKeyPressEvent(Gdk.EventKey evnt) { switch (evnt.Key) { case Gdk.Key.Tab: return(base.OnKeyPressEvent(evnt)); break; } if (Editable == false) { return(true); } switch (evnt.Key) { case Gdk.Key.Escape: if (IsCellRenderer == true) { System.Console.WriteLine("Escape"); } return(false); break; case Gdk.Key.Left: SelectPrev(); return(true); case Gdk.Key.Right: SelectNext(); return(true); case Gdk.Key.BackSpace: if (CurrentPart != "") { CurrentPart = CurrentPart.Remove(CurrentPart.Length - 1, 1); } else { CurrentPart = atStart.ToString().Remove(atStart.ToString().Length - 1, 1); } break; case Gdk.Key.Insert: if ((evnt.State & ModifierType.ControlMask) == ModifierType.ControlMask) { CopyToClipboard((evnt.State & ModifierType.ShiftMask) == ModifierType.ShiftMask); return(true); } if ((evnt.State & ModifierType.ShiftMask) == ModifierType.ShiftMask) { ResetEditing(); PasteFromClipboard(); return(true); } return(false); case Gdk.Key.C: case Gdk.Key.c: if ((evnt.State & ModifierType.ControlMask) != ModifierType.ControlMask) { return(false); } ResetEditing(); CopyToClipboard(false); return(true); case Gdk.Key.X: case Gdk.Key.x: if ((evnt.State & ModifierType.ControlMask) != ModifierType.ControlMask) { return(false); } ResetEditing(); CopyToClipboard(true); return(true); case Gdk.Key.V: case Gdk.Key.v: if ((evnt.State & ModifierType.ControlMask) != ModifierType.ControlMask) { return(false); } ResetEditing(); PasteFromClipboard(); return(true); case Gdk.Key.Up: case Gdk.Key.Down: int inc = (evnt.Key == Gdk.Key.Down) ? -1 : 1; ResetEditing(); switch (Selected) { case DataPart.Day: if (((Date.Day + inc) > 0) && ((Date.Day + inc) <= MaxDaysInCurrentMonth)) { SetCorrectDateTime(Date.Year, Date.Month, Date.Day + inc); } break; case DataPart.Month: if (((Date.Month + inc) > 0) && ((Date.Month + inc) <= MaxNumber)) { SetCorrectDateTime(Date.Year, Date.Month + inc, Date.Day); } break; case DataPart.Year: if (((Date.Year + inc) > 0) && ((Date.Year + inc) <= MaxNumber)) { SetCorrectDateTime(Date.Year + inc, Date.Month, Date.Day); } break; } return(true); } return(base.OnKeyPressEvent(evnt)); }