Code Monkey home page Code Monkey logo

rpaint's Introduction

Independent ReactOS Paint

This is "Independent ReactOS Paint" from ReactOS.

(The screenshot)

It's a free and open source software for Windows XP and later.

ReactOS

Donate Follow on Twitter

Main code contributors

Translators

How to build?

Please use ReactOS Build Environment (RosBE).

git clone --recursive https://github.com/katahiromz/RPaint
cd RPaint
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release .
ninja
strip mspaint.exe

Tested on RosBE, Visual Studio 2015, and Visual Studio 2019.

License

  • LGPL 2.0 and later

rpaint's People

Contributors

katahiromz avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

rpaint's Issues

Problems with painting scrollbars and calculating the size of the image (?) under Windows10

Problem show themselves as:

  1. 'view inheritance' - newly opened images inherit the position in the image area being shown and the postion of scrollbars fron the previously opened image, this result in glitches as unnecessary scrollbars in small images which fit the program window's size, or unnecessary scrollbars+new image scrolled out of the program's window;
  2. 'missing scrollbars' in large images (perhaps it's another instance of 'view inheritance', when a larger image is opened after a smaller image) - an image which exceeds the size of the program window is initially displayed without scrollbars; the appear only upon resizing the program window, scrolling the image with the mouse wheel or repainting the window when it gets covered by anothe one;
  3. "file .. cannot be loaded' message - if you opened an image with 'missing toolbars' effect and resized the window, scrolled the image so that the toolbars appeared, and then you try to open another larger image, you may get a message "file ... cannot be loaded", this happens with some images, it seems that with large ones, like 7600x6500px.
    They seem interrelated, seems like some inconsistences in the messaging mechanism or GUI behaviour between Win and ROS and not mspaint itself.
    VIEWS OF THE GLITCHES:

01a_ms_paint_on_Win10_view_inheritance_unnecessary_scrollbars_shown

02_mspaint_on_Win10_missing_scrollbars_on_large_image

03_mspaint_on_Win10_file_cannont_be_loaded

01b_mspaint_on_Win10_view_inheritance_new image scrolled out of the window

Layers support?

MS Paint in Win11 supports Layers, I wonder if ROS Paint will add layers (for providing a better Paint for ROS/older windows)?

and there is some more features in post-XP/Vista Paint that may worth providing in ROS Paint:

  • Shapes
  • Brushes
  • Crop canvas to selection size

Few points in mouse capture compared to MSPaint

Drawing in XP MSPaint feels snappier. This is made evident when zooming in and rubbing pencil tool with speed, across canvas.
Two things are seen:

  • a perceptible lag between drawing and mouse cursor, as RPaint waits for latest point to complete a line segment.
  • coarser lines with fewer segments in RPaint compared to MSPaint.

Methinks that MSPaint samples mouse more often.

MSPaint easter eggs and lesser known features

Original MSPaint has some nifty and not so obvious behaviours. Maybe they can make their way into RPaint(as-is or refined).

  • the zoom has a 10x level. You have to click pixel perfect at bottom of zoom selector. Or can cheat and lengthen the zoom selector to have more area to click(windowspy or hexedit exe).

  • Shift + (L or R)Click + Drag has meanings depending on context.

    • With a pencil/brush, it locks drawing in straight line(hor, vert, diag).
    • With line, it does same locking, except you can rotate it in 45deg angles.
    • With selection, it stamps that selection down like a brush.
    • Eraser R click(colour mask eraser) already implemented.
  • Ctrl + NumPlus/NumMinus changes the size of brush, including those that don't have size option.

    • Makes pencil/brush nib smaller or bigger.
    • Resizes selection by 2x or 0.5x.
    • Plays poorly with undo.
  • There's probably more, but I forgets.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.