All Projects → Neko-Box-Coder → ssGUI

Neko-Box-Coder / ssGUI

Licence: Apache-2.0 license
◀️ Super Simple GUI Library for C++ ▶️

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to ssGUI

Azul
Azul is a library for creating graphical user interfaces in Rust and C. It mixes paradigms from functional, reactive and data-oriented programming with an API suitable for developing cross-platform desktop applications. The two core principles of Azul is to not render objects that aren't visible and to use composition of DOM trees over inheritance.
Stars: ✭ 4,937 (+23409.52%)
Mutual labels:  gui-framework, gui-library
illuxUI
Future Home of illuxUI, C++ GUI Library/Framework
Stars: ✭ 30 (+42.86%)
Mutual labels:  gui-framework, gui-library
SpinyGUI
(WIP) Java OpenGL GUI library. Created for using with latest LWJGL (LWJGL 3).
Stars: ✭ 21 (+0%)
Mutual labels:  gui-framework, gui-library
Glass
Gui Library written in Crystal
Stars: ✭ 24 (+14.29%)
Mutual labels:  sfml, gui-library
widgets
🚀 Dojo - UI widgets.
Stars: ✭ 82 (+290.48%)
Mutual labels:  widgets
cornerstone widget
A jupyter widget for the cornerstone library to make showing flashy images with nice tools easier.
Stars: ✭ 25 (+19.05%)
Mutual labels:  widgets
conan-sfml
[OBSOLETE] The recipe is now in https://github.com/bincrafters/community
Stars: ✭ 13 (-38.1%)
Mutual labels:  sfml
content-aware-sidebars
WordPress Plugin to create and display custom sidebars according to the content being viewed. Fast and powerful.
Stars: ✭ 21 (+0%)
Mutual labels:  widgets
PygameWidgets
A module for use with Pygame. Includes fully customisable buttons, textboxes, sliders and many more, as well as the ability to create and run animations on these widgets.
Stars: ✭ 34 (+61.9%)
Mutual labels:  widgets
QWidgetsCollection
A collection of customized Qt widgets
Stars: ✭ 28 (+33.33%)
Mutual labels:  widgets
widgets
Widgets for blockchain data visualizations
Stars: ✭ 94 (+347.62%)
Mutual labels:  widgets
catui
A very light-weight GUI library for the Löve2D
Stars: ✭ 84 (+300%)
Mutual labels:  gui-library
black hole flutter
🛠 A package absorbing all Flutter utility functions, including extension functions and commonly used widgets
Stars: ✭ 18 (-14.29%)
Mutual labels:  widgets
KinectToVR
KinectToVR EX (Official)
Stars: ✭ 163 (+676.19%)
Mutual labels:  sfml
Swoosh
SFML Activity and Segue Mini Library
Stars: ✭ 63 (+200%)
Mutual labels:  sfml
cala
Cross-platform system interface for hardware IO
Stars: ✭ 46 (+119.05%)
Mutual labels:  gui-library
qt-ribbon
A ribbon bar implementation for Qt widgets applications
Stars: ✭ 43 (+104.76%)
Mutual labels:  widgets
fltk-rs
Rust bindings for the FLTK GUI library.
Stars: ✭ 929 (+4323.81%)
Mutual labels:  widgets
Venus
A Windows Dock Widget Written in Pure Python
Stars: ✭ 17 (-19.05%)
Mutual labels:  widgets
ceed-cpp
CEGUI unified editor (CEED) for editing layout files and more
Stars: ✭ 44 (+109.52%)
Mutual labels:  widgets

Note

This library is constantly changing & incomplete until v1.00 . However, feel free to star or bookmark this project.

What is ssGUI?

ssGUI stands for Super Simple GUI. The goal for this library is "Simple to Use, Simple to Customize, Simple to Extend".

This library can be used for both graphical intensive applications such as games or 2D/3D applications or normal day to day GUI applications.

Allowing user to build GUI with ease, customize it with Extension, extend it by creating custom Extension, Widget, Window and porting to other backends.

You can visit the amazing documentation here

Currently, ssGUI only supports SFML but it is very easy to port to other backends. There's a dedicated documentation (WIP) for it.

_

What makes ssGUI special?

Simple To Use.

Cross Platform. (Depends on Backend)

Awesome Documentations.

Customization With Extensions.

Source Compatible Compatible (WIP).

GUI Code Is Independent From Backend.

Easy Swappable Backends.

Code Templates For Creating Widgets, Windows, Extensions And EventCallbacks.

GUI Builder (WIP).

_

Cool Features

Window Docking & Auto Layout:

Mask:

Text Alignment:

Text Character Level Customization:

Extension To Provide Modularity:

And more to come...

_

Okay, what does it look like in code?

#include "ssGUI/HeaderGroups/StandardGroup.hpp"
#include "ssGUI/DebugAndBuild/ssGUIBuildAndDebugConfig.hpp"

//Readme example
int main()
{
    //Create the main window
    ssGUI::MainWindow mainWindow;
    mainWindow.SetSize(glm::vec2(450, 110));
    mainWindow.SetResizeType(ssGUI::Enums::ResizeType::NONE);

    //Create a text widget and set the respective properties
    ssGUI::Text text;
    text.SetSize(glm::vec2(450, 45));
    text.SetText("Click on the button to show the message");
    text.SetHorizontalAlignment(ssGUI::Enums::TextAlignmentHorizontal::CENTER);
    text.SetVerticalAlignment(ssGUI::Enums::TextAlignmentVertical::BOTTOM);

    //Create a button and set an event callback to change the text when it is clicked
    ssGUI::Button button;
    button.SetSize(glm::vec2(50, 30));
    button.SetPosition(glm::vec2(200, 60));
    button.GetEventCallback(ssGUI::EventCallbacks::ButtonStateChangedEventCallback::EVENT_NAME)->AddEventListener
    (
        [&](ssGUI::GUIObject* src, ssGUI::GUIObject* container, ssGUI::ObjectsReferences* refs)
        {
            if(((ssGUI::Button*)src)->GetButtonState() == ssGUI::Enums::ButtonState::CLICKED)
                text.SetText("(`oωo´)");
        }
    );

    button.SetParent(&mainWindow);
    text.SetParent(&mainWindow);

    //Create the GUIManager, add the main window and start running
    ssGUI::ssGUIManager guiManager;
    guiManager.AddGUIObject((ssGUI::GUIObject*)&mainWindow);
    guiManager.StartRunning();
    return 0;
}

_

Licenses:

This project is under Apache-2.0 License. Licenses for resoureces used by testing and examples are stored as "Credits.txt" under the same folder.

GLM:

  • The Happy Bunny License or MIT License

SFML:

  • zlib/png license
  • Components used by ssGUI:
    • freetype is under the FreeType license or the GPL license
    • stb_image and stb_image_write are public domain
  • If you want to use other components, please visit https://github.com/SFML/SFML/blob/master/license.md for their licenses

_

What's the progress status of the current library

https://ssGUI.nekoboxcoder.dev/b/ckQsLZToXDPFzsAzx/ssgui

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].