Skip to content
This repository has been archived by the owner on Aug 29, 2024. It is now read-only.

Commit

Permalink
Update the README
Browse files Browse the repository at this point in the history
  • Loading branch information
xparq authored Aug 29, 2024
1 parent 9a6c2a8 commit 73c5722
Showing 1 changed file with 21 additions and 18 deletions.
39 changes: 21 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## *** UNFINISHED, EXPERIMENTAL, PROTOTYPE-QUALITY CODE! ***

- _The last version (0.6.0) was built against SFML@698f265 (and is incompatible with most other SFML versions!)._
- _A successor is being worked on, which will be published if/when sufficiently matured._

-------

[![Build](https://github.com/xparq/sfw/actions/workflows/build.yml/badge.svg)](https://github.com/xparq/sfw/actions/workflows/build.yml)

sfw::GUI - A fork of "SFML Widgets", a small & simple SFML-based GUI
Expand All @@ -7,27 +14,27 @@ Original (upstream) author: Alexandre Bodelot <alexandre.bodelot@gmail.com>

License: [MIT License](http://opensource.org/licenses/MIT) (See the `LICENSE` file.)


## Changes to the original:

- Adapted to the upcoming SFML v3 API
- Compiling as C++20 now (to embrace recent C++ features; SFML3 is C++17 already)
- Richer, more flexible API, new features, bugfixes, improvements
- Richer, more flexible API, new features, improvements, bugfixes
- Default quick-start assets included (and removed the non-free ones)
- Windows build (MSVC & GCC (via [w64devkit](https://github.com/skeeto/w64devkit), so MingW should also work))
- Auto download & setup the latest SFML-master locally (mostly for GitHub workflows)
- Reshuffled repo tree (to allow growth & to help integrating into other projects)
- Requires some C++23 features (e.g. std::expected)

_For other (both planned and completed) changes see the [issues](https://github.com/xparq/sfw/issues)!_

## Quick Summary
## Main features:

- Moderately sized package with no external dependencies beyond SFML
- Simple, straightforward, but versatile API
- Simple, but versatile API
- Visual styling via spritesheets (small image files to customize borders, markers etc.)
- Simple optional callbacks for "update" actions (supporting both `[]()` and `[](Widget*)` lambda signatures)
_(Any other event handlers can also be overridden in derived widgets, of course.)_
- Easy layouts: automatically (and dynamically re)align widgets
- No CMake. (Well, since I never got to learn it, now I just declare this a feature. ;)
- Optional callbacks for widget updates (supporting both `[]()` and `[](Widget*)` lambda signatures)
_(Other event handlers can also be overridden via inheritance.)_
- Easy layouts: automatically (and dynamically re)positioned/sized widgets
- Translucent wallpapers, tooltips
- No CMake. (Well, since I never got to learn it, I just declare this a feature now. ;)
Use e.g. TGUI if you don't feel warm and cozy without CMake.)


Expand All @@ -36,15 +43,11 @@ _For other (both planned and completed) changes see the [issues](https://github.

## Build

### GCC/CLANG:

- Run `make` to build the lib (in the `lib` folder) and the example/demo/test executables.

### MSVC (Windows):

- Run `nmake -f Makefile.msvc` for the same.
- Run `build` on Windows, or `make` on Linux, to create the lib + the example/demo/test executables.
- MSVC and GCC (both on Linux and w64devkit/MinGW) are auto-detected. (CLANG support has kinda rotted away by now.)
- The GCC option supports header auto-dependency tracking yet. (No working `clean` rule currently: delete `tmp/build` and the lib binaries under `lib/`)

(See the Makefiles for options.)
_(See the Makefiles for options.)_


## Use
Expand Down

0 comments on commit 73c5722

Please sign in to comment.