Free open-source modern C++17 / C++20 framework to create console, forms (GUI like WinForms) and unit test applications on Microsoft Windows, Apple macOS and Linux.

Overview

xtd

Modern C++17/20 framework to create console (CLI), forms (GUI like WinForms) and tunit (unit tests like Microsoft Unit Testing Framework) applications on Windows, macOS, Linux, iOS and android (*).

logo

(*) See portability for more information.

License Language Reference Guide Download xtd

Continuous Integration build status

TEMPORARILY DISABLED.

We are actively looking for a solution.

Features

  • Free and open-source (MIT License);
  • a collection of native C++ classes libraries, to complete std;
  • API close to the .net API with a modern C++ approach and full integration with the std standard;
  • written in efficient, modern C++17 / C++20 with RAII programming idiom;
  • and highly portable and available on many different platforms;

For more information see

Examples

The classic first application 'Hello World'.

Console (CLI)

hello_world_console.cpp

#include <xtd/xtd>

using namespace xtd;

int main() {
  console::background_color(console_color::blue);
  console::foreground_color(console_color::white);
  console::write_line("Hello, World!");
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.3)

project(hello_world_console)
find_package(xtd REQUIRED)
add_sources(hello_world_console.cpp)
target_type(CONSOLE_APPLICATION)

Build and run

Open "Command Prompt" or "Terminal". Navigate to the folder that contains the project and type the following:

xtdc run

Output

Hello, World!

Forms (GUI like WinForms)

hello_world_forms.cpp

#include <xtd/xtd>

using namespace xtd::forms;

class main_form : public form {
public:
  main_form() {
    text("Hello world (message_box)");

    button1.location({10, 10});
    button1.parent(*this);
    button1.text("&Click me");
    button1.click += [] {
      message_box::show("Hello, World!");
    };
  }
  
private:
  button button1;
};

int main() {
  application::run(main_form());
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.3)

project(hello_world_forms)
find_package(xtd REQUIRED)
add_sources(hello_world_forms.cpp)
target_type(GUI_APPLICATION)

Build and run

Open "Command Prompt" or "Terminal". Navigate to the folder that contains the project and type the following:

xtdc run

Output

Windows

Screenshot

Screenshot

macOS

Screenshot

Screenshot

Linux Gnome

Screenshot

Screenshot

tunit (Unit tests like Microsoft Unit Testing Framework)

hello_world_test.cpp

#include <xtd/xtd>
#include <string>

using namespace std;
using namespace xtd::tunit;

namespace unit_tests {
  class test_class_(hello_world_test) {
  public:
    void test_method_(create_string_from_literal) {
      string s = "Hello, World!";
      valid::are_equal(13, s.size());
      assert::are_equal("Hello, World!", s);
    }
    
    void test_method_(create_string_from_chars) {
      string s = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!'};
      valid::are_equal(13, s.size());
      string_assert::starts_with("Hello,", s);
      string_assert::ends_with(" World!", s);
    }
  };
}

int main() {
  return console_unit_test().run();
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.3)

project(hello_world_test)
find_package(xtd REQUIRED)
add_sources(hello_world_test.cpp)
target_type(TEST_APPLICATION)

Build and run

Open "Command Prompt" or "Terminal". Navigate to the folder that contains the project and type the following:

xtdc run

Output

Start 2 tests from 1 test case
Run tests:
  SUCCEED hello_world_test.create_string_from_literal (0 ms total)
  SUCCEED hello_world_test.create_string_from_chars (0 ms total)

Test results:
  SUCCEED 2 tests.
End 2 tests from 1 test case ran. (0 ms total)

Getting Started

  • Installation provides download and install documentation.
  • Portability provides information about C++, libraries dependency, Operating System supported, Compilers and Development Environment tools.
  • Tutorials provides xtd tutorials.
  • Examples provides some examples.

Development status

This project is an open source project. The developers who participate do so on their own time. It is therefore difficult to fix realese dates.

But you can follow the evolution of the development. We keep the status up to date.

Contributing

The authors file lists contributors together with contact information. If you make a contribution, please add yourself to the list.

Your contributions are welcome.

  • First read Code of conduct and the design guidelines to make sure your contribution follows the rules.
  • Fork the project and use a pull request for adding your contribution.
  • If you face any problems feel free to open an issue at the issues tracker, If you feel like there is a missing feature, please raise a ticket on Github. Pull request are also welcome.

Your feedback is important for the evolution of the project.

Gallery

minesweeper

minesweeper (on Windows)


game_of_life

game_of_life (on macOS)


calculator

calculator (on Ubuntu)


stopwatch

stopwatch (on Windows)


xtdc-gui

xtdc-gui - Create a new project (on macOS)


painting

painting (on Ubuntu)

Comments
  • [BUG] xtd.tunit - Invalid links in xtd/examples/xtd.tunit.examples/README.md

    [BUG] xtd.tunit - Invalid links in xtd/examples/xtd.tunit.examples/README.md

    Describe the bug

    All links in xtd/examples/txd.tunit.examples/README.md to header files produce 404 error

    To Reproduce

    1. On Github, open gamasoft71/xtd/examples.xtd.tunit.examples//README.md
    2. Click on any of the links that begin with xtd::unit::
    3. Web page showing Github 404 error page is displayed.

    Expected behaviour

    Display appropriate header file

    Screenshots

    None

    Desktop (please complete the following information)

    N/A

    I will generate a pull request to fix this if this issue is accepted.

    bug Fixed 
    opened by jimorc 11
  • [BUG] xtd.forms - combo_box in vertical_layout_panel produces warning on macOS

    [BUG] xtd.forms - combo_box in vertical_layout_panel produces warning on macOS

    Describe the bug

    See the sample program below:

    #include <xtd/xtd>
    #include <iostream>
    
    using namespace xtd;
    using namespace xtd::forms;
    
    class form1 : public form
    {
        public:
            form1()
            {
                box.height(21);
                box.drop_down_style(combo_box_style::drop_down_list);
                box.items().push_back_range({"Item 3", "Item 4"});
    //            *this << box; //  activate this line
                vlp << box;     // and comment out this line
                *this << vlp;
            }
        private:
            vertical_layout_panel vlp;
            combo_box box;
    };
    int main()
    {
        form1 f;
        application::run(f);
        return EXIT_SUCCESS;
    }
    

    As written, the program outputs two messages on macOS when run:

    ...
    The domain/default pair of (kCFPreferencesAnyApplication, AppleInterfaceStyle) does not exist
    ... This application is trying to draw a very large combo box, 32 points tall.  Vertically resizable combo boxes are not supported,
     but it happens that 10.4 and previous drew something that looked kind of sort of okay.  The art in 10.5 does not break up in a
     way that supports that drawing.  This application should be revised to stop using large combo boxes.  This warning will appear
     once per app launch.
    

    If the line *this << box; is activated, and the line immediately below it is commented out, then only the first message is output. This holds as long as the combo_box height is set to 21 or less.

    To Reproduce

    Steps to reproduce the behavior:

    1. Build and execute the program. Messages as shown are printed.
    2. Activate *this << box; and comment out line below it.
    3. Build and execute the program. Only the first message is printed.

    Expected behaviour

    Only the first message should be printed.

    Screenshots

    N/A

    Desktop (please complete the following information)

    • OS: macOS
    • Version: 12.5.1
    • xtd version: master after fixes for issues 192, 193, 194.

    Additional context

    N/A

    Workaround

    Live with it.

    bug Fixed 
    opened by jimorc 9
  • [BUG] Problems of installing xtd in Arch linux and distributions that are based on it

    [BUG] Problems of installing xtd in Arch linux and distributions that are based on it

    The bug I have a problems with installing this framework in Arch linux and also the distributions that are based on it, i tried to install it on Manjaro and it fails, and now in Arch linux and it fails also.

    Expected behaviour I can use the xtd in Arch linux without any problems

    Desktop:

    • OS: Arch linux
    • Version: 1/02/2022
    • kernel : 5.16.4
    • xtd version: latest version
    bug Fixed 
    opened by Mamograg17 9
  • [QUESTION] Cmake Error install(error installing..)

    [QUESTION] Cmake Error install(error installing..)

    hi...i download it from sourceForge and ... but when i start file install(from cmd and with adminstor)i got Error Cmake and other error.... i have git,Vs Studio,Cmake(version 3.23.0-rc3(laset version)) and other reqiued for this. i really need this lib pls help me in fixing! ScreenShot: Capture list error in TXT file: Error install.txt

    Operation System: Windows 10 Home (ver 2004(AND LASSET UPDATE)) Viusal Studio Ver 2022 Community Cmake version 3.23.0-rc3(laset version) Help me!

    question Fixed 
    opened by mortzaLootTool 7
  • [BUG] can not build

    [BUG] can not build

    CMake Error at build/cmake/functions.cmake:596 (add_library): Cannot find source file:

    D:/xtd-master/build/3rdparty/wxWidgets/src/jpeg/jaricom.c
    

    Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc Call Stack (most recent call first): build/cmake/lib/jpeg.cmake:11 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): Cannot find source file:

    D:/xtd-master/build/3rdparty/wxWidgets/src/png/png.c
    

    Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc Call Stack (most recent call first): build/cmake/lib/png.cmake:21 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): Cannot find source file:

    D:/xtd-master/build/3rdparty/wxWidgets/src/tiff/libtiff/tif_win32.c
    

    Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc Call Stack (most recent call first): build/cmake/lib/tiff.cmake:19 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): No SOURCES given to target: wxregex Call Stack (most recent call first): build/cmake/lib/regex.cmake:13 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): No SOURCES given to target: wxzlib Call Stack (most recent call first): build/cmake/lib/zlib.cmake:13 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): No SOURCES given to target: wxexpat Call Stack (most recent call first): build/cmake/lib/expat.cmake:13 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): No SOURCES given to target: wxjpeg Call Stack (most recent call first): build/cmake/lib/jpeg.cmake:11 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): No SOURCES given to target: wxpng Call Stack (most recent call first): build/cmake/lib/png.cmake:21 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): No SOURCES given to target: wxtiff Call Stack (most recent call first): build/cmake/lib/tiff.cmake:19 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Generate step failed. Build files cannot be regenerated correctly. Installing xtd... 子目录或文件 build 已经存在。 -- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.19044. CMake Warning at scripts/cmake/xtd_commands.cmake:2167 (message): Doxygen not found try with set "XTD_DOWNLOAD_DOXYGEN" option to ON Call Stack (most recent call first): CMakeLists.txt:54 (include)

    CMake Error at C:/Program Files/CMake/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES wxWidgets_INCLUDE_DIRS) Call Stack (most recent call first): C:/Program Files/CMake/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) C:/Program Files/CMake/share/cmake-3.23/Modules/FindwxWidgets.cmake:1025 (find_package_handle_standard_args) src/xtd.drawing.native.wxwidgets/CMakeLists.txt:18 (find_package)

    invalid Fixed 
    opened by kkptm 6
  • [ENHANCEMENT] Add the ability to close a dropdown combo_box programmatically

    [ENHANCEMENT] Add the ability to close a dropdown combo_box programmatically

    Your question

    Here is a test program that displays a combo_box. The list is populated when the dropdown list is displayed, and an item is selected. I would like to close the dropdown list programmatically, but I have found no method to do so. Have I missed the method, is it not possible, or does this need to be an enhancement?

    #include <xtd/xtd>
    
    using namespace xtd;
    using namespace xtd::forms;
    
    class form1 : public form {
      public:
        form1() {
          box_.drop_down += event_handler(*this, &form1::box_drop_down);
          *this << box_;
        }
        void box_drop_down(object& sender, const event_args& e)
        {
          box_.items().clear();
          box_.items().push_back({"Item 1"});
          box_.selected_index(0);
        }
      private:
        combo_box box_;
    };
    
    int main()
    {
      application::run(form1 {} );
    }
    
    enhancement Fixed 
    opened by jimorc 5
  • [BUG] Path not updated with xtd install on Windows

    [BUG] Path not updated with xtd install on Windows

    Describe the bug

    I installed Visual Studio Community 2022 and cmake. I then cloned the xtd repository and attempted to build it. The build ran for a long time, then produced the following output;

    --snip--
     -- Up-to-date: C:/Program Files (x86)/xtd/share/xtd/themes/xtd_light/system-colors.css
      -- Up-to-date: C:/Program Files (x86)/xtd/share/xtd/themes/xtd_light/theme.css
    Microsoft (R) Windows Script Host Version 5.812
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    Microsoft (R) Windows Script Host Version 5.812
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    Microsoft (R) Windows Script Host Version 5.812
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    1024 was unexpected at this time.
    
    C:\Users\jimor\Projects\xtd>
    

    I tried to build a simple app using;

    xtdc build
    

    but I get;

    'xtdc' is not recognized as an internal or external command,
    operable program or batch file.
    

    To Reproduce

    As described above.

    Expected behaviour

    xtd install to complete without errors and simple xtd based app to build.

    Screenshots

    N/A

    Desktop (please complete the following information)

    • OS: Windows
    • Version: 10
    • xtd version: latest from master

    Additional context

    none

    Workaround

    None known

    bug Fixed 
    opened by jimorc 4
  • [BUG] When resizing xtdc-gui, the graphics get messed up

    [BUG] When resizing xtdc-gui, the graphics get messed up

    Describe the bug When resizing xtdc-gui, the graphics get messed up.

    To Reproduce Steps to reproduce the behavior:

    1. Resize form to minimum
    2. Resize form to the original size
    3. Do the operation several times
    4. Controls are misaligned

    Expected behaviour The controls must be aligned correctly.

    Screenshots image

    Desktop (please complete the following information):

    • OS: all OS
    • Version: any
    • xtd version: development version

    Additional context The error comes from wxWidgets, depending on the frequency of calls to GetClientSize and SetClientSize applying the difference between the previous size and the new size, it makes more and more errors when updating the sizes:

    • the width becomes bigger and bigger
    • the height becomes smaller and smaller

    POC :

    class MainFrame : public wxFrame {
    public:
      MainFrame() : wxFrame {nullptr, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize} {
        SetClientSize(300, 300);
        panelLeft->SetBackgroundColour({255, 0, 0});
        Show();
        parent_size_ = panel->GetClientSize();
        SetTitle(wxString::Format("diff = {%d, %d}", panel->GetSize().GetWidth() - panelLeft->GetSize().GetWidth(), panel->GetSize().GetHeight() - panelLeft->GetSize().GetHeight()));
    
        panel->Bind(wxEVT_SIZE, [&](wxSizeEvent& e) {
          auto diff = panel->GetClientSize() - parent_size_;
          panelLeft->SetSize(panelLeft->GetSize() + diff);
          parent_size_ = panel->GetSize();
          SetTitle(wxString::Format("diff = {%d, %d}", panel->GetSize().GetWidth() - panelLeft->GetSize().GetWidth(), panel->GetSize().GetHeight() - panelLeft->GetSize().GetHeight()));
        });
      }
      
    private:
      wxSize parent_size_ ;
      wxPanel* panel = new wxPanel(this, wxID_ANY);
      wxPanel* panelLeft = new wxPanel(panel, wxID_ANY, {50, 50}, {150, 150});
    };
    

    Workaround No workaround

    bug Fixed 
    opened by gammasoft71 4
  • [BUG] xtd-gui doesn't launch on Linux

    [BUG] xtd-gui doesn't launch on Linux

    Describe the bug The program crashes with SIGTRAP and:

    (xtdc-gui:15502): Gtk-ERROR **: 18:38:12.366: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
    

    To Reproduce Steps to reproduce the behavior:

    1. Install on linux (opensuse in my case)
    2. Try to launch the gui via terminal (to see the error message)

    Expected behaviour Gui should show up

    Desktop (please complete the following information):

    • OS: Linux, OpenSuSE
    • Version: Tumbleweed
    • xtd version: master (4d412ab046f51da2e5baf782f9f2f5bb23c49840)
    invalid 
    opened by niansa 4
  • little more adjustments

    little more adjustments

    opened by baderouaich 4
  • [QUESTION] Change required to xtd build or my toolset?

    [QUESTION] Change required to xtd build or my toolset?

    I recently upgraded from MacOS 12.3.6 to MacOS 13.0.1. Now when I attempt to build xtd, I get the following error:

    make[2]: *** No rule to make target /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/lib/libexpat.tbd', needed bytools/keycodes/keycodes.app/Contents/MacOS/keycodes'. Stop.

    This is repeated once or more per target.

    The SDK has changed to MacOSX13.0.sdk. Is a change required in xtd, or is it buried somewhere in my toolset? I don't currently know how to proceed.

    question Fixed 
    opened by jimorc 3
  • [ENHANCEMENT] xtd.forms - message_notifier

    [ENHANCEMENT] xtd.forms - message_notifier

    xtd.forms - xtd::forms::message_notifier

    Library

    xtd.forms

    Enhancement

    xtd::forms::message_notifier

    Description

    message_notifier is a small, nonblocking notification pop-up. A message_notifier is shown to users with readable message content at the bottom or top of the screen or at a specific target and disappears automatically after a few seconds (time-out). The control has various built-in options for customizing visual elements, durations, and dismissing toasts.

    • [ ] xtd::forms::message_notifier component

    First draft

    Unfortunately, the different OS don't manage the notifications in the same way. So, we should have as for the dialog box xtd::forms::about_dialog manage the two styles of dialog:

    • xtd::forms::dialog_style::standard (notification managed by xtd)
    • xtd::forms::dialog_style::system (notification system).

    Notification system :

    Use wxNotificationMessage whenever possible. But typically, on macOS it doesn't work (Maybe for a user right ?). And if the wxWidgets component doesn't match maybe call the native version for each OS (as I did for xtd::forms::message_box which was not implemented correctly in macOS and Windows).

    Standard notification :

    Implement our own xtd::forms::form (no border, no title and no controls). Add an image, a message and the possibility of 1, 2 or more buttons. Add an xtd::forms::timer for automatic closing.

    Common

    • Add asynchronous button events (like xtd::forms::show_sheet) which allows to know which button has been clicked.
    • Add a close event.
    • add properties for the message_notifier

    API

    Globally the API will be close to xtd::forms::message_dialog and xtd::forms::message_box with the possibility to have custom buttons and a timer to close the notification automatically.

    enhancement In progress 
    opened by gammasoft71 3
  • [ENHANCEMENT] xtd.forms - web_browser_renderer

    [ENHANCEMENT] xtd.forms - web_browser_renderer

    xtd.forms - web_browser_renderer

    Library

    xtd.forms

    Enhancement

    web_browser_renderer

    Description

    Provides xtd::forms:: web_browser renderer methods.

    • [ ] xtd::forms::web_browser_renderer
    enhancement 
    opened by gammasoft71 0
  • [ENHANCEMENT] xtd.forms - web_browser

    [ENHANCEMENT] xtd.forms - web_browser

    xtd.forms - web_browser

    Library

    xtd.forms

    Enhancement

    web_browser

    Description

    Enables the user to navigate Web pages inside your form.

    • [ ] xtd::forms:: web_browser control
    enhancement 
    opened by gammasoft71 0
  • [ENHANCEMENT] xtd.forms - status_strip_renderer

    [ENHANCEMENT] xtd.forms - status_strip_renderer

    xtd.forms - status_strip_renderer

    Library

    xtd.forms

    Enhancement

    status_strip_renderer

    Description

    Provides xtd::forms:: status_strip renderer methods.

    • [ ] xtd::forms::status_strip_renderer
    enhancement 
    opened by gammasoft71 0
  • [ENHANCEMENT] xtd.forms - status_strip

    [ENHANCEMENT] xtd.forms - status_strip

    xtd.forms - status_strip

    Library

    xtd.forms

    Enhancement

    status_strip

    Description

    Represents a Windows status bar control.

    • [ ] xtd::forms::status_strip control
    enhancement 
    opened by gammasoft71 0
  • [ENHANCEMENT] xtd.forms - menu_strip_renderer

    [ENHANCEMENT] xtd.forms - menu_strip_renderer

    xtd.forms - menu_strip_renderer

    Library

    xtd.forms

    Enhancement

    menu_strip_renderer

    Description

    Provides xtd::forms:: menu_strip renderer methods.

    • [ ] xtd::forms::menu_strip_renderer renderer
    enhancement 
    opened by gammasoft71 0
Releases(v0.1.0-beta)
Owner
Gammasoft
Aims to make c++ fun again.
Gammasoft
A library to create Windows, macOS, and Linux applications.

LAF: The Lost Application Framework A library to create Windows, macOS, and Linux applications. This library is under active development so we don't p

Aseprite 205 Nov 25, 2022
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.

libui: a portable GUI library for C This README is being written. Status It has come to my attention that I have not been particularly clear about how

Pietro Gagliardi 10.4k Dec 2, 2022
This is a collection of widgets and utilities for the immediate mode GUI (imgui) that I am developing for the critic2 GUI

ImGui Goodies This is a collection of widgets and utilities for the immediate mode GUI (imgui) that I am developing for the critic2 GUI. Currently, th

null 95 Nov 19, 2022
Framework Open EDA Gui

FOEDAG FOEDAG denotes Qt-based Framework Open EDA Gui Documentation FOEDAG's full documentation includes tutorials, tool options and contributor guide

The Open-Source FPGA Foundation 37 Nov 24, 2022
Create macOS universal binaries of your Qt apps

With Apple transition from Intel to Apple Silicon (arm64) CPUs, developers have to deal with Universal binaries in macOS (again) in order to support t

CrystalIDEA Software 57 Nov 9, 2022
Examples, tutorials and applications for the LVGL embedded GUI library

Examples, tutorials and applications for the LVGL embedded GUI library

LVGL 441 Nov 11, 2022
FlatUI is a immediate mode C++ GUI library for games and graphical applications.

FlatUI is a immediate mode C++ GUI library for games and graphical applications. Go to our landing page to browse our documentation.

Google 610 Nov 19, 2022
The HorusUI library allows you to quickly develop GUIs for your applications by leveraging the ease of use provided by immediate mode GUI concepts.

Immediate Mode Graphical User Interface for Tools OVERVIEW The HorusUI library allows you to quickly develop GUIs for your applications by leveraging

null 132 Nov 18, 2022
ChessBurger is a modern chess GUI written by Progmaster.

ChessBurger ChessBurger is a modern chess GUI written in C++. The reason I started working on a new chess GUI, is because the GUIs out there are somew

Progmaster 1 Nov 9, 2021
Nana is a C++ standard-like GUI library

Nana C++ Library Linux (gcc 8.3.0 and 9.2) including (nana-demos) Windows (Microsoft (R) Build Engine version 15.9.21) Nana is a C++ standard-like GUI

Jinhao 2.1k Nov 22, 2022
Lets try out a few ways to easily create a modern Win32 UI app

UI-Experiments Lets try out a few ways to easily create a modern Win32 UI app This is a VS2019 solution with a handful of single projects, each one tr

Tammo 'kb' Hinrichs 21 Dec 6, 2021
Build performant, native and cross-platform desktop applications with Node.js and CSS like styling. 🚀

NodeGui Build performant, native and cross-platform desktop applications with Node.js and CSS like styling. ?? NodeGUI is powered by Qt5 ?? which make

NodeGui 8.1k Nov 29, 2022
XClicker - Fast gui autoclicker for x11 linux desktops

What is XClicker? XClicker is an open-source, easy to use, feature-rich, blazing fast Autoclicker for linux desktops using x11. Main features Fairly s

Robiot 285 Nov 26, 2022
FLTK - Fast Light Tool Kit - a cross-platform C++ GUI toolkit for UNIX(r)/Linux(r) (X11)

FLTK - Fast Light Tool Kit - a cross-platform C++ GUI toolkit for UNIX(r)/Linux(r) (X11)

The FLTK Team 1k Nov 22, 2022
Purely native C++ cross-platform GUI framework for Android and iOS development. https://www.boden.io

BODEN CROSS-PLATFORM FRAMEWORK Build purely native cross-platform experiences with Boden Website ⬡ Getting Started ⬡ API Reference ⬡ Guides ⬡ Twitter

Ashampoo Systems GmbH & Co KG 1.6k Nov 24, 2022
U++ is a C++ cross-platform rapid application development framework focused on programmer's productivity. It includes a set of libraries (GUI, SQL, Network etc.), and integrated development environment (TheIDE).

Ultimate++ Ultimate++ is a C++ cross-platform rapid application development framework focused on programmers productivity. It includes a set of librar

Ultimate++ 524 Nov 24, 2022
win-vind provides a lightweight hybrid UI system of CUI and GUI for Windows

win-vind provides a lightweight hybrid UI system of CUI and GUI for Windows. And everything is inspired by Vim and its plugins. Simply put, it is a Vim-oriented toy box consisting of various useful features.

pit-ray 936 Nov 29, 2022
Proof-of-concept code to reconstruct the GUI of a Xen guest running Windows

vmi-reconstruct-gui A proof-of-concept to reconstruct the GUI of a Xen VM running Windows 7. ❗ Disclaimer This repository is work in progress. It curr

Jan 12 Aug 21, 2022
Windows GUI version of the age file encryption tool (built on rage, the Rust implementation)

Windows GUI version of the age file encryption tool (built on rage, the Rust implementation)

Theron Spiegl 41 Oct 15, 2022