本文整理汇总了C#中Cairo.ToGdkPoint方法的典型用法代码示例。如果您正苦于以下问题:C# Cairo.ToGdkPoint方法的具体用法?C# Cairo.ToGdkPoint怎么用?C# Cairo.ToGdkPoint使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cairo
的用法示例。
在下文中一共展示了Cairo.ToGdkPoint方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnMouseMove
protected override void OnMouseMove(object o, MotionNotifyEventArgs args, Cairo.PointD point)
{
ctrlKey = (args.Event.State & ModifierType.ControlMask) != 0;
lastMousePosition = point.ToGdkPoint();
// If we're dragging the text around, do that
if (tracking)
{
Cairo.PointD delta = new Cairo.PointD(point.X - startMouseXY.X, point.Y - startMouseXY.Y);
clickPoint = new Point((int)(startClickPoint.X + delta.X), (int)(startClickPoint.Y + delta.Y));
CurrentTextEngine.Origin = clickPoint;
RedrawText(true, true);
}
else
{
UpdateMouseCursor();
}
}
示例2: OnMouseDown
protected override void OnMouseDown(Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point)
{
Document doc = PintaCore.Workspace.ActiveDocument;
// We only do stuff with the left mouse button
if (args.Event.Button != 1)
return;
// Ctrl click is set origin, regular click is begin drawing
if (!args.Event.IsControlPressed ()) {
if (origin.IsNotSet ())
return;
painting = true;
if (offset.IsNotSet ())
offset = new Point ((int)point.X - origin.X, (int)point.Y - origin.Y);
doc.ToolLayer.Clear ();
doc.ToolLayer.Hidden = false;
surface_modified = false;
undo_surface = doc.CurrentLayer.Surface.Clone ();
} else {
origin = point.ToGdkPoint ();
}
}
示例3: OnMouseDown
protected override void OnMouseDown(DrawingArea canvas, ButtonPressEventArgs args, Cairo.PointD point)
{
ctrlKey = (args.Event.State & ModifierType.ControlMask) != 0;
//Store the mouse position.
Point pt = point.ToGdkPoint();
// Grab focus so we can get keystrokes
PintaCore.Chrome.Canvas.GrabFocus();
// A right click allows you to move the text around
if (args.Event.Button == 3)
{
//The user is dragging text with the right mouse button held down, so track the mouse as it moves.
tracking = true;
//Remember the position of the mouse before the text is dragged.
startMouseXY = point;
startClickPoint = clickPoint;
//Change the cursor to indicate that the text is being dragged.
SetCursor(cursor_hand);
return;
}
// The user clicked the left mouse button
if (args.Event.Button == 1)
{
// If the user is [editing or holding down Ctrl] and clicked
//within the text, move the cursor to the click location
if ((is_editing || ctrlKey) && CurrentTextBounds.ContainsCorrect(pt))
{
StartEditing();
//Change the position of the cursor to where the mouse clicked.
Position p = CurrentTextEngine.PointToTextPosition(pt);
CurrentTextEngine.SetCursorPosition(p);
//Redraw the text with the new cursor position.
RedrawText(true, true);
return;
}
// We're already editing and the user clicked outside the text,
// commit the user's work, and start a new edit
switch (CurrentTextEngine.EditMode)
{
// We were editing, save and stop
case EditingMode.Editing:
StopEditing(true);
break;
// We were editing, but nothing had been
// keyed. Stop editing.
case EditingMode.EmptyEdit:
StopEditing(false);
break;
}
if (ctrlKey)
{
//Go through every UserLayer.
foreach (UserLayer ul in PintaCore.Workspace.ActiveDocument.UserLayers)
{
//Check each UserLayer's editable text boundaries to see if they contain the mouse position.
if (ul.textBounds.ContainsCorrect(pt))
{
//The mouse clicked on editable text.
//Change the current UserLayer to the Layer that contains the text that was clicked on.
PintaCore.Workspace.ActiveDocument.SetCurrentUserLayer(ul);
//The user is editing text now.
is_editing = true;
//Set the cursor in the editable text where the mouse was clicked.
Position p = CurrentTextEngine.PointToTextPosition(pt);
CurrentTextEngine.SetCursorPosition(p);
//Redraw the editable text with the cursor.
RedrawText(true, true);
//Don't check any more UserLayers - stop at the first UserLayer that has editable text containing the mouse position.
return;
}
}
}
else
{
if (CurrentTextEngine.textMode == TextMode.NotFinalized)
{
//The user is making a new text and the old text hasn't been finalized yet.
FinalizeText();
}
if (!is_editing)
{
// Start editing at the cursor location
//.........这里部分代码省略.........
示例4: OnMouseDown
protected override void OnMouseDown(DrawingArea canvas, ButtonPressEventArgs args, Cairo.PointD point)
{
Point pt = point.ToGdkPoint ();
// Grab focus so we can get keystrokes
PintaCore.Chrome.Canvas.GrabFocus ();
// If we're in editing mode, a right click
// allows you to move the text around
if (is_editing && (args.Event.Button == 3)) {
tracking = true;
startMouseXY = point;
startClickPoint = clickPoint;
SetCursor (cursor_hand);
return;
}
// The user clicked the left mouse button
if (args.Event.Button == 1) {
// If we're editing and the user clicked within the text,
// move the cursor to the click location
if (is_editing && old_bounds.ContainsCorrect (pt)) {
Position p = engine.PointToTextPosition (pt);
engine.SetCursorPosition (p);
RedrawText (true, true);
return;
}
// We're already editing and the user clicked outside the text,
// commit the user's work, and start a new edit
if (is_editing) {
switch (engine.EditMode) {
// We were editing, save and stop
case EditingMode.Editing:
StopEditing ();
break;
// We were editing, but nothing had been
// keyed. Stop editing.
case EditingMode.EmptyEdit:
StopEditing ();
break;
}
}
// Start editing at the cursor location
clickPoint = pt;
StartEditing ();
engine.Origin = clickPoint;
RedrawText (true, true);
PintaCore.Workspace.Invalidate ();
}
}