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;
			}
		}
Пример #2
0
		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); 
				}
			}
		}
Пример #3
0
        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;
            }
        }