The Application Framework for the Orion Operating System

Overview

Welcome to OrionAPI. Luxury + Linux, for everyone.

The Application Framework for the Orion Operating System

This toolkit is in development and currently does not work!

What is the OrionAPI?

The OrionAPI is a bundle of different frameworks used for creating Applications native to the Orion Operating System, handling basic Orion-Native Application management for its sub-libraries.

OrionAPI contains the following frameworks:

  • OSL - The Orion Standard Library
  • OKit - The Window Widget Toolkit for the Orion Operating System

These frameworks make development for the Orion Operating System easier than ever, and easier than using the alternatives. Some frameworks, such as OKit and parts of OSL, work perfectly on non-Orion systems, such as Ubuntu or Debian.

What is OSL?

OSL is a set of functions and classes built as a replacement or wrapper to some functions and classes found in C and C++, including things like OStrings, and logging functionality Currently incomplete, but will serve as the basis for all of OrionAPI's sub-libraries.

What is OKit?

OKit is OrionAPI's implementation for a graphical user interface. It allows for making easy GUI-based Applications with minimal overhead and quick boot times. OKit is meant to be Orion's replacement for GTK and Qt. Built from the ground up using Xlib, it is highly minimal and designed for performance and network transparency. Alongside performance, Applications made with OKit will look and feel just like the rest of the Orion Operating System, because the entirety of Orion's UI will be made using OKit!

Could I see a code sample?

Writing a graphical Application using OKit is very simple. The following code is all that is required to get a Window on the screen:

#include <OrionAPI>

int main(void){
	OAppStart(); /* Initialises the OrionAPI Service. */

	/* Creates a Window 450px wide and 300px tall in the centre of the screen. */
	OWindow myWindow(CENTRE,CENTRE,450,300,"My Window");

	OAppEnd(); /* Runs OKit, and ends the OrionAPI Service. */
}

Why should I use OKit?

OKit is designed for extreme ease of use, but also maximum performance. OKit is a brand new widget toolkit utilising the least amount of code possible internally while providing the highest abstraction for the developer. Making useful graphical Applications will be a breeze when using OKit. Follow the documentation for examples and tutorials! OKit isn't Orion-Exclusive either, it can be used on other Linux-based systems as well, although it will match the theme of Orion the best.

How do I start developing with the OrionAPI?

If you're on an Orion-based operating system, your system automatically comes with all libraries required for developing with OrionAPI. Follow the tutorials and compile your Applications with the following library flag:

-lO

When will the OrionAPI be complete?

There is no known time at the moment, however keep an eye on this repository as updates are very frequent to OrionAPI and its sub-frameworks. New features and elements are being added daily, progress is steady!

Issues
  • Make OKit build on FreeBSD and OpenBSD

    Make OKit build on FreeBSD and OpenBSD

    Hi! I'm the FreeBSD /g/ poster who commented in your thread, and I made a GitHub account just for this! (I'll likely delete my account in a month) These patches make OKit build on FreeBSD and OpenBSD. They also add a -q flag to INSTALL.sh and UNINSTALL.sh that lets users use those scripts without ASCII art if they so request. I also made most of the y/n questions default to No. I'm a C and Unix programmer, and I DO NOT know C++, so please check the C++ diffs carefully. I can set up Travis CI and Cirrus CI if you'd like, to have this repository automatically get built on GNU/Linux and FreeBSD, for free, if you'd like. Please read the commit description for each of the seven commits.

    opened by ghost 13
  • Use make's double-suffix rules to simplify Makefile

    Use make's double-suffix rules to simplify Makefile

    This requires moving Makefile into the src/ directory, but it lets use use .cpp.o: and opens the ability to use %.o: %.cpp in the future, even on FreeBSD and OpenBSD. Test that it works on your system, please! (btw, this is something CI would automatically test) As always, read the individual commit messages for more details.

    opened by ghost 4
  • Add CI to the OKit repository

    Add CI to the OKit repository

    This adds both Travis CI and Cirrus CI. This lets the OKit repository be automatically built after every commit, and after every pull request submission (even before it's merged or rejected!) The Travis CI builds on Ubuntu Focal Fossa, on AMD64 and ARM64, presumably using GCC. The Cirrus CI builds on FreeBSD 12.1 using Clang, presumably on AMD64. Not only does it give a whole success/fail for 'make', but you can look into each build to peruse for warnings. Right now, success/fail is based only on the build succeeding or failing, as the produced binary is not run or tested.

    edit: This will require enabling Travis CI and Cirrus CI to use. Both are available in the GitHub Marketplace, and both are free for open-source projects, meaning it'll be entirely free. But enabling those is something you (the repo owner) have to do yourself.

    opened by ghost 3
  • Simplify SRCS variable in Makefile

    Simplify SRCS variable in Makefile

    The SRCS variable is retained.

    opened by ghost 1
Owner
Rosetta H&S
Luxury + Linux, the gold standard for Linux-powered hardware and software.
Rosetta H&S
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.4k Feb 18, 2021
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

Dear ImGui (This library is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addit

omar 27.7k Feb 19, 2021
DeskGap is a framework for building cross-platform desktop apps with web technologies (JavaScript, HTML and CSS).

A cross-platform desktop app framework based on Node.js and the system webview

Wang, Chi 1.6k Mar 17, 2021
RmlUi - The HTML/CSS User Interface library evolved

RmlUi - The HTML/CSS User Interface Library Evolved RmlUi - now with added boosters taking control of the rocket, targeting your games and application

Michael R. P. Ragazzon 478 Feb 19, 2021
Minimalistic C++/Python GUI library for OpenGL, GLES2/3, Metal, and WebAssembly/WebGL

NanoGUI NanoGUI is a minimalistic cross-platform widget library for OpenGL 3+, GLES 2/3, and Metal. It supports automatic layout generation, stateful

Mitsuba Physically Based Renderer 614 Feb 14, 2021
Advanced 2D Plotting for Dear ImGui

ImPlot ImPlot is an immediate mode, GPU accelerated plotting library for Dear ImGui. It aims to provide a first-class API that ImGui fans will love. I

Evan Pezent 1.3k Feb 19, 2021
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 9.8k Feb 17, 2021
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 14 Feb 7, 2021
Elements C++ GUI library

Elements C++ GUI library Introduction Elements is a lightweight, fine-grained, resolution independent, modular GUI library. Elements is designed with

Cycfi Research 1.6k Feb 17, 2021
A single-header ANSI C immediate mode cross-platform GUI library

Nuklear This is a minimal-state, immediate-mode graphical user interface toolkit written in ANSI C and licensed under public domain. It was designed a

Immediate Mode UIs, Nuklear, etc. 2.7k Feb 19, 2021
NWM is a simple window manager for linux which uses Xlib for managing windows

NWM is a simple window manager for linux which uses Xlib for managing windows.

Kumar Gaurav Pandey 10 Apr 26, 2021
A barebones single-header GUI library for Win32 and X11.

luigi A barebones single-header GUI library for Win32 and X11. Building example Windows Update luigi_example.c to #define UI_WINDOWS at the top of the

Nakst 13 Feb 13, 2021
GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features.

GacUI GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features. Read the LICENSE first

Vczh Libraries 1.9k Feb 18, 2021
onnxruntime C Api wrapped for nim

onnxruntime-nim onnxruntime C Api wrapped for nim Wrapped C Api is generated using c2nim Onnxruntime Home Page Onnxruntime Github Header file onnxrunt

null 12 Mar 4, 2021