Welcome,
Guest
. Please
login
or
register
. Did you miss your
activation email?
French forum
Home
Help
Search
Login
Register
SFML community forums
»
Bindings - other languages
»
DotNet
»
Here is a demo to create a dragable borderless window with SFML.NET.
Print
Pages: [
1
]
Author
Topic: Here is a demo to create a dragable borderless window with SFML.NET. (Read 3379 times)
0 Members and 1 Guest are viewing this topic.
zwcloud
Newbie
Posts: 4
Here is a demo to create a dragable borderless window with SFML.NET.
«
on:
December 06, 2015, 05:33:03 am »
https://gist.github.com/zwcloud/0c0e9f52d8010e1d5164
using
System
;
using
SFML.System
;
using
SFML.Window
;
namespace
DragableWindow
{
class
DragableWindow
:
Window
{
private
Vector2i grabbedOffset
;
private
bool
grabbedWindow
;
private
void
WindowOnClosed
(
object
sender, EventArgs eventArgs
)
{
Window window
=
(
Window
)
sender
;
window
.
Close
(
)
;
}
private
void
OnMouseButtonPressed
(
object
sender, MouseButtonEventArgs e
)
{
Window window
=
(
Window
)
sender
;
if
(
e
.
Button
==
Mouse
.
Button
.
Left
)
{
grabbedOffset
=
window
.
Position
-
Mouse
.
GetPosition
(
)
;
grabbedWindow
=
true
;
}
}
private
void
OnMouseMoved
(
object
sender, MouseMoveEventArgs e
)
{
Window window
=
(
Window
)
sender
;
if
(
grabbedWindow
)
{
var
position
=
Mouse
.
GetPosition
(
)
;
var
newPosition
=
position
+
grabbedOffset
;
if
(
window
.
Position
!=
newPosition
)
{
window
.
Position
=
newPosition
;
System.
Diagnostics
.
Debug
.
WriteLine
(
"offset: {0}, position: {1}"
, grabbedOffset, window
.
Position
)
;
}
}
}
private
void
OnMouseButtonReleased
(
object
sender, MouseButtonEventArgs e
)
{
if
(
e
.
Button
==
Mouse
.
Button
.
Left
)
{
grabbedWindow
=
false
;
}
}
public
DragableWindow
(
VideoMode mode,
string
title, Styles style
)
:
base
(
mode, title, style
)
{
this
.
Closed
+=
WindowOnClosed
;
this
.
MouseButtonPressed
+=
OnMouseButtonPressed
;
this
.
MouseMoved
+=
OnMouseMoved
;
this
.
MouseButtonReleased
+=
OnMouseButtonReleased
;
}
}
static
class
Program
{
[
STAThread
]
public
static
void
Main
(
)
{
Window window
=
new
DragableWindow
(
new
VideoMode
(
512
,
512
)
,
"SFML Dragable Window"
, Styles
.
None
)
;
// Start game loop
while
(
window
.
IsOpen
)
{
// Process events
window
.
DispatchEvents
(
)
;
// Display the rendered frame on screen
window
.
Display
(
)
;
}
}
}
}
Logged
Print
Pages: [
1
]
SFML community forums
»
Bindings - other languages
»
DotNet
»
Here is a demo to create a dragable borderless window with SFML.NET.