protected override void OnButtonReleased (ButtonEventArgs args) { base.OnButtonReleased (args); if (args.Button == PointerButton.Left) { if (Expanded) { var headerRect = new Rectangle (0, 0, Size.Width, header.Size.Height + header.MarginTop + header.MarginBottom); if (!headerRect.Contains (args.Position)) return; } Expanded = !Expanded; } }
public void DrawCaret (Context ctx, Rectangle area) { if (!caretBlink || HexEditorData.IsSomethingSelected) return; long caretY = HexEditorData.Caret.Line * LineHeight - (long)HexEditorData.VAdjustment.Value; double caretX; char ch; if (HexEditorData.Caret.InTextEditor) { caretX = textEditorMargin.CalculateCaretXPos (out ch); } else { caretX = hexEditorMargin.CalculateCaretXPos (out ch); } if (!area.Contains (caretX, (int)caretY)) return; if (HexEditorData.Caret.IsInsertMode) { ctx.Rectangle (caretX, (int)caretY, 2, LineHeight); } else { ctx.Rectangle (caretX, (int)caretY, textEditorMargin.charWidth, LineHeight); } ctx.SetColor (HexEditorStyle.HexDigit); ctx.Fill (); if (!HexEditorData.Caret.IsInsertMode) { using (var layout = new TextLayout (this)) { layout.Font = Options.Font; layout.Text = ch.ToString (); ctx.SetColor (HexEditorStyle.HexDigitBg); ctx.DrawTextLayout (layout, caretX, caretY); } } }
protected override void OnButtonPressed(ButtonEventArgs args) { base.OnButtonPressed(args); switch (args.Button) { case PointerButton.Left: Rectangle closeRegion = new Rectangle( Size.Width - closeNormal.Width - (next == null ? padding.Right + Lean.Dx : 0), (Size.Height - closeNormal.Height) / 2, closeNormal.Width, closeNormal.Height ); if (closeRegion.Contains(args.Position)) { OnTabClosed(this, new CloseEventArgs()); } else { if (!Managed) { Active = !Active; } if (toggleEvent != null) { toggleEvent(this, EventArgs.Empty); } } break; } }