xtd Framework

repository·master·Indexed 22 days ago

https://github.com/gammasoft71/xtd

A modern C++20 framework for building cross-platform CLI, GUI, and unit testing applications. It extends the C++ standard library with native classes for system functionality and user interfaces, featuring modules such as xtd.core, xtd.drawing, xtd.forms, and xtd.tunit. The framework includes the xtdc build tool and xtd.cmake for project configuration and assembly metadata management.

Tokens
267K
Snippets
717
Records
1.1K
Agent score
75%

What's inside xtd

  1. Overview of xtd dark theme components

    master
    The xtd dark theme package provides a collection of CSS files for styling various UI elements in a dark mode. It includes specific styles for buttons (default, flat, and popup), controls, forms, labels, panels, and system-level styling for colors and images.
  2. Overview of xtd framework

    master

    xtd (pronounced "extend") is a modern C++20 framework designed for creating multiplatform applications and libraries. It supports three main application types:

    • Console (CLI) applications.
    • Forms (GUI) applications.
    • Unit Test (xUnit) frameworks.

    Key features include:

    • Modern C++20: Written using C++20 with RAII programming idioms.
    • Portability: Highly portable across multiple platforms including Windows, macOS, Linux, iOS, Android, FreeBSD, Haiku, and SerenityOS.
    • Extends std: A collection of native C++ classes designed to extend the standard library.
    • GUI Styling: Supports managing GUI controls in pure native mode or via CSS styles.
    • Open Source: Distributed under the MIT License.
  3. Overview of xtd::drawing::drawing2d components

    master

    The xtd::drawing::drawing2d namespace contains advanced 2D drawing utilities, including gradients, transformations, and rendering quality settings. All components in this section are currently marked as Complete (100% progress).

    Key 2D Drawing Features

    • Gradients: linear_gradient_brush, radial_gradient_brush, conical_gradient_brush, and gradient_stop utilities.
    • Transformations: matrix for coordinate transformations and matrix_order.
    • Rendering Quality: smoothing_mode, interpolation_mode, compisiting_quality, and pixel_offset_mode.
    • Path & Shapes: graphics_path for complex shapes and fill_mode for defining how paths are filled.
    • Pen & Line Styling: dash_style, line_cap, line_join, and pen_alignment.
  4. Overview of xtd.core.native.haiku

    master
    The xtd.core.native.haiku package provides native support for the Haiku Operating System within the xtd.core ecosystem. While xtd.core is designed to be cross-platform (supporting Windows, Linux, macOS, etc.), this specific module contains the implementation details required to run xtd applications natively on Haiku.
  5. Overview of xtdc project management tool

    master
    xtdc is a command-line tool for managing projects. It allows you to create new projects using various templates, build, open, run, install, test, or uninstall existing projects. All projects created with xtdc use CMake and are configured to target your system's native environment (Visual Studio on Windows, Xcode on macOS, and Code::Blocks or makefile on Linux).
  6. Overview of xtd.forms dialog types

    master

    The xtd.forms library provides a wide variety of modal dialogs for common user interactions. These dialogs are typically modal, meaning they block other application actions until they are closed.

    Available dialog categories include:

    • Information & Messages: message_box, message_dialog, about_box, about_dialog, debug_message_box, debug_message_dialog, trace_message_box, trace_message_dialog.
    • User Input & Selection: input_box, input_dialog, font_dialog, color_dialog, folder_browser_dialog.
    • File Operations: open_file_dialog, save_file_dialog.
    • Search & Replace: find_dialog, find_box, replace_dialog, replace_box.
    • System & Error Handling: assert_dialog, assert_box, exception_dialog, exception_box.
    • Progress & Status: progress_dialog, progress_box (customizable via xtd::forms::progress_box_options), busy_dialog, busy_box.
  7. Overview of xtd.core.native.macos

    master
    The xtd.core.native.macos package provides macOS-specific implementations for the xtd.core library. While xtd.core is designed to support multiple operating systems (including Windows and Linux), this specific component is tailored for the macOS operating system to provide native functionality.
  8. Overview of xtd GUI tools

    master

    The xtd repository provides several graphical user interface (GUI) applications:

    • xtdc-gui: A GUI application for project management (companion to the xtdc CLI).
    • guidgen-gui: A GUI application for generating GUIDs (companion to the guidgen CLI).
    • keyccodes: A tool that displays information about the keys entered by the user.
  9. Overview of xtd Design Guidelines

    master

    The xtd design guidelines provide a unified programming model for developers creating libraries that extend or interact with the xtd framework. Following these guidelines ensures API consistency and ease of use, which are critical for developer productivity and library adoption.

    Guidelines are categorized into actionable recommendations using the following prefixes:

    • Do: Recommended practices.
    • Consider: Options to evaluate based on specific needs.
    • Avoid: Practices to steer clear of.
    • Do not: Strictly discouraged practices.

    These guidelines are adapted for modern C++ and follow the std standard, drawing inspiration from the Framework Design Guidelines by Krzysztof Cwalina and Brad Abrams.

  10. Overview of the xtd developer platform

    master

    xtd is a free, cross-platform, open-source developer platform designed for building a wide variety of applications. It provides a consistent set of base class libraries and APIs that can be reused across different application types and platforms.

    Supported Application Types

    You can use xtd to build:

    • Console applications
    • Desktop applications
    • Unit tests applications
    • Shared libraries
    • Static libraries

    Supported Languages

    • C++20 or above: Modern, object-oriented, and type-safe.
    • C: Via the xtd_c project for C bindings.

    Key Features

    • Cross-Platform: Code runs natively on compatible operating systems (mobile, desktop, IoT, etc.).
    • Performance: Designed to be fast, providing better response times and lower compute requirements.
    • Modern Tooling: Supports CMake and works across macOS, Windows, and Linux.
  11. Overview of the xtd framework libraries

    master

    The xtd framework is an open-source, cross-platform C++ framework designed to run on Windows, Linux, and macOS. It is composed of several specialized libraries depending on your application type:

    • xtd.core: A library for creating C++ console applications.
    • xtd.forms: A GUI (Graphical User Interface) toolkit for creating C++ desktop applications.
    • xtd.tunit: An xUnit-style library for creating C++ unit test applications.