Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - zwcloud

Pages: [1]
1
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();
            }
        }

    }
}
 

2
Window / How to get clientrect position or the rect size of titlebar?
« on: November 01, 2015, 02:46:00 pm »
I want to show a borderless window located precisely at a certain position of another window which has a titlebar. But without the ClientRect Position or the rect size, I think, there is no way to do that.

By the way, The search system of SFML forum is awful. @Laurent I think you'd better place a google search box instead.

Using SFML.Net 2.2.

Pages: [1]