Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
UppHub
Status & Roadmap
FAQ
Authors & License
Forums
Funding U++
Search on this site











SourceForge.net Logo

SourceForge.net Logo

GitHub Logo

Discord Logo

Documentation

On this page you can find documentation for U++ framework. It is organized thematically. Each major package has a dedicated section. Not everything is documented as we want. However, during the last few years we have made significant progress in covering white stains. Enjoy your reading!

If you find that something is missing and you have questions. U++ community is ready to provide excellent support on the forum.


Table of Contents

 

1. Installation and Configuration

2. TheIDE Documentation

3. U++ Essentials

3.1 Overview

3.2 Tutorials

3.3. U++ Packages

4.1 Core

4.2 Core/POP3

4.3 Core/SMTP

4.4 Core/SSH

4.5 Draw

4.6 CtrlCore

4.7 CtrlLib

4.8 RichText

4.9 Sql

4.10 Docking

4.11 Esc

4.12 GLCtrl

4.13 GridCtrl

4.14 MySql

4.15 Painter

4.16 RasterPlayer

4.17 Report

4.18 SqlCtrl

4.19 VirtualGui

4.20 plugin/bz2

4.21 plugin/jpg

4.22 plugin/lz4

4.23 plugin/lzma

4.24 plugin/md

4.25 plugin/zstd

4.26 plugin/zstd legacy

 


1. Installation and Configuration

 

Win32 Installation guide

POSIX Installation guide

macOS Installation guide

 

U++ usage and development cycle guide

 


2. TheIDE Documentation

 

Getting started with TheIDE

TheIDE beginner guide

 

Packages, Assemblies and Nests

Configuring Packages and Assemblies

Command line arguments

Code Formatting

Assist++

BLITZ

File types

Keys

Build flags

Topic++

Macros

Macro Manager

Layout Designer

Icon Designer

Special features

Advanced Find and Replace

Finding specific file in project (Find File)

Importing external libraries in source form

 

U++ package/project templates

U++ package file description

 

UMK - command line builder

UppHub - additional packages from the Internet

Using TheIDE as a Cross Development Tool

 

Working with Android builder

 


3. U++ Essentials

3.1 Overview

 

Overview

 

Standard U++  packages

List of all widgets

 

Coding style

 

Supporting UHD displays and Dark theme

 

3.2 Tutorials

 

Core Tutorial - the introduction to the foundations behind the framework.

GUI Tutorial - learn how to build graphical user interfaces with the U++.

Draw Tutorial - get knowledge about drawing custom content inside window or control.

Image Tutorial - check out the mechanism behind the image manipulation.

Network Tutorial - learn how to use U++ core components for network application creation.

Sql Tutorial - introduction to using databases within U++ framework.

 


4 U++ Packages

4.1 Core 📦

Non-GUI code. Streams, NTL containers, concrete types, Value, XML, C parsing etc...

 

Using Core

        About storing configuration

        About Stream

        Charset and encoding issues

        Design decisions and tradeoffs

        Including binary data using .brc files

        Internationalization and translation files

        NTL and standard library

        NTL vs STL

        New features of U++ Core 2016 (C++11)

        Resolving memory leaks in U++ applications

        Rules for references to Value internal maps elements

        Runtime dynamic linking using .dli files

        Standard U++  packages

        Storing custom data types in Values

        Transfer semantics

        Translating U++

        Trivially relocatable types (Moveable)

        U++ traps and pitfalls

        U++ Containers overview - NTL

        U++ Core Tutorial

        U++ Network Tutorial

 

Core reference

        AMap

        AProcess and LocalProcess

        Any

        Application & environment utility

        Array

        ArrayMap

        AsyncWork and Async

        BiArray

        BiVector

        Bits

        Buffer

        CParser

        Callbacks

        Character set support

        CoWork

        Color

        ConditionVariable

        Convert

        Date formatting and scanning

        Date and Time

        Fast compression routines

        File path utilities

        FindFile

        FixedAMap

        Format - text formatting

        Formatting functions

        Function

        Global Value Cache

        Heap functions

        HttpCookie

        HttpHeader

        HttpRequest

        Huge

        Id

        InArray

        InFilterStream

        InVector

        Index

        InetHeader

        Internet utility

        IpAddrInfo

        JSON support

        JsonIO and Jsonize framework

        LRUCache

        LazyUpdate

        Low Level Data Functions

        Math utility

        Miscellaneous

        Mutex

        NetNode

        Numeric Conversions

        One

        OutFilterStream

        Parallel algorithms

        Parallel Sorting Template Functions

        ParseXmlFilter and IgnoreXmlPaths

        Point

        Primitive Data Types

        Ptr and Pte

        RGBA

        RWMutex

        Range

        Rect

        Ref

        SHA-2 functions

        Semaphore

        Serialization utilities

        Size

        Small utility functions

        SocketWaitEvent

        SortedAMap

        SortedArrayMap

        SortedIndex

        SortedVectorMap

        Sorting template functions

        SpinLock

        Split, Join, Merge

        Stream utilities

        Streams

        String and WString

        String utility functions

        StringBuffer and WStringBuffer

        TcpSocket

        Template Algorithms

        Template Algorithms For Sorted Sets

        Thread

        Thread synchronization primitives

        U++ Logging

        Unicode UTF[8,16,32] support

        UrlInfo

        Utilities

        Value

        ValueArray

        ValueGen

        ValueMap

        Vector

        VectorMap

        WebSocket

        XML output

        XmlIO

        XmlNode

        XmlParser

        Zlib encapsulation

        topic://Core/src/FileMapping_en-us

        xxHash

 

 

4.2 Core/POP3 📦

Post Office Protocol, version 3 encapsulation. Author: İsmail Yılmaz

 

Core/POP3 reference

        POP3

        struct InetMessage

 

 

4.3 Core/SMTP 📦

Simple Mail Transfer Protocol

 

Core/SMTP reference

        SMTP

 

 

4.4 Core/SSH 📦

SSH2 protocol encapsulation, using libssh2.

 

Core/SSH reference

        Base

        Channels: Scp, Exec, Tunnel, Shell

        Known Hosts

        SFtp

        SFtpStream

        Session

 

 

4.5 Draw 📦

Fundamental graphics operations, including raster image processing

 

Using Draw

        Draw Tutorial

        Draw

        Image Tutorial

        Supporting UHD displays and Dark theme

 

Draw reference

        Common Raster classes

        DDA Rasterizer

        DataDrawer

        Display

        Draw

        Draw Colors

        Drawing

        DrawingDraw

        Font and Text Routines

        Font

        Image Utility Functions

        Image and ImageBuffer

        ImageBuffer

        ImageEncoder

        ImageMaker - image cache system

        Iml and image list class methods

        PaintRect

        Raster

        RasterEncoder

        RasterFormat

        StreamRasterEncoder

        Ultra High Definition Displays support

 

 

4.6 CtrlCore 📦

GUI core system

 

Using CtrlCore

        About Frames

        About modal loops and periodic timer events

        Cameleon Rendering & Creating own chameleonized Ctrl's

        Ctrl Design Concepts

        GUI programming and multithreading

        Logical positions

        Reacting to resolution

 

CtrlCore reference

        ClipData

        Ctrl

        Frame

        Function to support actual resolution

        GUI Mutex operations

        Layout functions

        MacOS menu support

        PasteClip basic formats support functions

        RectTracker

        SystemDraw utility functions

        TopWindow

 

 

4.7 CtrlLib 📦

Basic library of GUI elements

 

Using CtrlLib

        About Updater

        About Callbacks and Bars

        About rounding double values

        GUI Tutorial

        Tips & tricks

 

CtrlLib reference

        ArrayCtrl

        Bar

        BarCtrl

        Button

        ButtonOption

        Color widgets

        ColumnList

        CtrlLib widgets

        CtrlMapper

        CtrlRetriever

        DataPusher

        DocEdit

        DropList

        DropTree

        EditField

        EditField derived classes

        FileList

        FileSel utilities

        FileSel

        HeaderCtrl

        IdCtrls

        LabelBase - basic label routines

        LineEdit

        MenuBar

        Message Boxes

        Option

        OptionTree

        Progress

        ProgressIndicator

        Pusher

        Simple single-value dialogs

        Slider

        SpinButtons

        Splitter

        SplitterFrame

        Static widgets

        StatusBar and related widgets

        SuggestCtrl

        Switch

        TabCtrl

        TabDlg

        TextCtrl

        ToolBar

        TreeCtrl

        WithDropChoice

        WithSpin template and Value editors with spin buttons

 

 

4.8 RichText 📦

Rich-text data structures and painting, including RTF and HTML export/import

 

Using RichText

        QTF - Quixotic Text Format

 

RichText reference

        RichText to HTML output

        Utilities

 

 

4.9 Sql 📦

Fundamental SQL classes - session, cursor, SQL language expressions, DB schemas

 

Using Sql

        Basic Use and Description

        Incremental Development of Database Models/Schemas

        SQL Tutorial

        U++ SQL Basics

 

Sql reference

        S_type structures

        Schema introspection

        Sql

        SqlColumnInfo

        SqlExp in examples

        SqlMassInsert

        SqlRaw

        SqlSession

        .sch SQL schema files

 

 

4.10 Docking 📦

Window Docking framework

 

Docking reference

        DockMenu

        DockWindow

        DockableCtrl

 

 

4.11 Esc 📦

Esc scripting language interpreter

 

Using Esc

        Esc scripting language

 

 

4.12 GLCtrl 📦

OpenGL widget base class

 

GLCtrl reference

        GLCtrl

 

 

4.13 GridCtrl 📦

Grid control

 

GridCtrl reference

        API

        Tutorial

 

 

4.14 MySql 📦

MySQL interface

 

Using MySql

        Native MySql connection

 

 

4.15 Painter 📦

2D software rendering with PDF/SVG strength

 

Painter reference

        BufferPainter

        Painter

        SVG support

 

 

4.16 RasterPlayer 📦

Control to show animated GIF and multipage TIFF files

 

RasterPlayer reference

        RasterPlayer

 

 

4.17 Report 📦

Preview and printing of reports

 

Using Report

        Tutorial

 

 

4.18 SqlCtrl 📦

GUI widgets and routines for SQL

 

SqlCtrl reference

        SqlArray

        topic://SqlCtrl/src/SqlCtrls_en-us

 

 

4.19 VirtualGui 📦

Abstract GUI implementation, with window manager, with minimal implemenation requirements

 

VirtualGui reference

        VirtualGui

 

 

4.20 plugin/bz2 📦

BZ2 compressor/decompressor

 

plugin/bz2 reference

        BZ2 Compression

 

 

4.21 plugin/jpg 📦

JPEG image file format

 

plugin/jpg reference

        JPGRaster

 

 

4.22 plugin/lz4 📦

LZ4 compressor (lower compression but very fast)

 

plugin/lz4 reference

        LZ4 compression

 

 

4.23 plugin/lzma 📦

LZMA compressor (slow, but very good ratio)

 

plugin/lzma reference

        LZMA

 

 

4.24 plugin/md 📦

Markdown to QTF converter, based on MD4C library

 

plugin/md reference

        MarkdownConverter

 

 

4.25 plugin/zstd 📦

zstd compressor (good ratio, very good speed)

 

plugin/zstd reference

        Zstd compression

 

 

4.26 plugin/zstd legacy 📦

Support for older zstd format. Do not use with new applications.

 

plugin/zstd legacy reference

        Zstd compression

 

Do you want to contribute?