All Projects → sanette → Bogue

sanette / Bogue

Licence: other
GUI library for ocaml based on SDL2

Programming Languages

ocaml
1615 projects

Projects that are alternatives of or similar to Bogue

Litegui.js
Javascript Library to create webapps with a desktop look-alike interface. All the widgets are created from Javascript instead of using HTML.
Stars: ✭ 131 (+172.92%)
Mutual labels:  gui, widgets
Assortedwidgets
OpenGL GUI library
Stars: ✭ 92 (+91.67%)
Mutual labels:  sdl, gui
Libs Gui
The GNUstep gui library is a library of graphical user interface classes written completely in the Objective-C language; the classes are based upon Apple's Cocoa framework (which came from the OpenStep specification). *** Larger patches require copyright assignment to FSF. please file bugs here. ***
Stars: ✭ 148 (+208.33%)
Mutual labels:  gui, widgets
Ttkwidgets
A collection of widgets for Tkinter's ttk extensions by various authors
Stars: ✭ 57 (+18.75%)
Mutual labels:  gui, widgets
Orbtk
The Rust UI-Toolkit.
Stars: ✭ 3,460 (+7108.33%)
Mutual labels:  gui, widgets
Horus ui
HorusUI Immediate Mode Graphical User Interface
Stars: ✭ 106 (+120.83%)
Mutual labels:  gui, widgets
Fltk Rs
Rust bindings for the FLTK GUI library.
Stars: ✭ 241 (+402.08%)
Mutual labels:  gui, widgets
Iced
A cross-platform GUI library for Rust, inspired by Elm
Stars: ✭ 12,176 (+25266.67%)
Mutual labels:  gui, widgets
Lagrange
A Beautiful Gemini Client
Stars: ✭ 238 (+395.83%)
Mutual labels:  sdl, gui
Libagar
Cross-Platform GUI Toolkit (stable)
Stars: ✭ 212 (+341.67%)
Mutual labels:  sdl, gui
Qml Creative Controls
QML controls for creative applications and creative coding
Stars: ✭ 199 (+314.58%)
Mutual labels:  gui, widgets
Clui
Command Line User Interface (Console UI inspired by TurboVision)
Stars: ✭ 561 (+1068.75%)
Mutual labels:  gui, widgets
Gwork
Skinnable GUI with useful widget collection. Fork of GWEN.
Stars: ✭ 179 (+272.92%)
Mutual labels:  sdl, gui
Guislice
GUIslice drag & drop embedded GUI in C for touchscreen TFT on Arduino, Raspberry Pi, ARM, ESP8266 / ESP32 / M5stack using Adafruit-GFX / TFT_eSPI / UTFT / SDL
Stars: ✭ 534 (+1012.5%)
Mutual labels:  sdl, gui
Vim Quickui
The missing UI extensions for Vim 8.2 (and NeoVim 0.4) !! 😎
Stars: ✭ 714 (+1387.5%)
Mutual labels:  gui, widgets
Aquameta
Web development platform built entirely in PostgreSQL
Stars: ✭ 987 (+1956.25%)
Mutual labels:  widgets
Lognplot
Plotting and logging of real-time data for desktop.
Stars: ✭ 45 (-6.25%)
Mutual labels:  gui
Getbilibili C
Download Bilibili Ultra-Definition Video
Stars: ✭ 37 (-22.92%)
Mutual labels:  gui
Cl Pkr
Cross-Platform Color Picker Written in Common Lisp
Stars: ✭ 37 (-22.92%)
Mutual labels:  gui
Easychart
A visual editor for the world's best web charting tool: Highcharts.
Stars: ✭ 45 (-6.25%)
Mutual labels:  gui

Bogue bogue-icon

bogue is a GUI library for ocaml, with animations, based on SDL2.

This library can be used for games or for adding GUI elements to any ocaml program.

It uses the SDL2 renderer library, which makes it quite fast.

It is themable, and does not try to look like your desktop. Instead, it will look the same on every platform.

Graphics output is scalable, and hence easily adapts to Hi-DPI displays.

Programming with bogue is easy if you're used to GUIs with widgets, layouts, callbacks, and of course it has a functional flavor. ​It uses Threads when non-blocking reactions are needed.

Features

Widgets

Widgets are the building bricks, reponsible for graphic elements that respond to events (mouse, touchscreen, keyboard, etc.).

For a more functional use, they can be "connected" (by pairs at this moment) instead of reacting with callbacks (see examples).

  • check box
  • push button (with labels or images)
  • rich text display
  • image (all usual formats)
  • slider (horizontal, vertical, or circular)
  • text input

Layouts

widgets can be combined in various ways into layouts. For instance, a check box followed by a text label is a common layout.

Several predefined layouts are available:

  • scrollable list (that can easily handle a large number of elements)
  • multi-column table
  • tabs
  • popup
  • various menus (menu bar, drop down menus with submenus)
  • select list
  • radio list

Layouts can be animated (slide-in, transparency, rotation)

Screenshots

demo

Videos

randomize, demo 1907

Installation

Using the opam package

This is the easiest way unless you want to try out the development version.

opam install bogue

That's it.

Bulding from sources

Prerequisites

You need a working ocaml installation with opam, see the ocaml doc. Then, make sure you have dune, tsdl, tsdl-image and tsdl-ttf:

opam install dune tsdl tsdl-image tsdl-ttf

Get the latest source

Download the git archive, unzip it, cd into the bogue-master dir, and then:

dune build
opam install .

Documentation

It's good to first have a look at Bogue's general principles.

A much more complete doc can be found here. It does not cover all available features (yet), but it's already a good start.

Examples

You should first try a minimal example.

The examples directory contains more sophisticated examples. If you installed the bogue package with opam (as described above), these examples are available via the boguex program. For instance, run examples 34 and 41 by:

boguex 34 41

Type boguex -h to have the list of all examples.

A minimal app using Bogue

See here.

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].