xaizek / tos (License: GPLv3 only) (since 2018-12-07)
This is an alternative version of sources presented as part of Write Your Own OS video tutorial by Viktor Engelmann.
<root> / src / gui / Window.cpp (3a79251194f502613aa0f584a2c642c1f9fa3554) (666B) (mode 100644) [raw]
#include "gui/Window.hpp"

#include <cstdint>

using namespace gui;

Window::Window(Widget *parent, Position pos, Dimentions size, Color color)
    : CompositeWidget(parent, pos, size, color), dragging(false)
{
}

void
Window::onMouseDown(Position p, std::uint8_t button)
{
    dragging = (button == 1);
    CompositeWidget::onMouseDown(p, button);
}

void
Window::onMouseUp(Position p, std::uint8_t button)
{
    dragging = false;
    CompositeWidget::onMouseUp(p, button);
}

void
Window::onMouseMove(Position oldPos, Position newPos)
{
    if (dragging) {
        pos += newPos - oldPos;
    } else {
        CompositeWidget::onMouseMove(oldPos, newPos);
    }
}
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/tos

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/tos

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master