You are browsing as a guest. Sign up (or log in) to start making projects!

Blank - C UI Library

  • 3 Devlogs
  • 11 Total hours

Blank is a modern, minimalist ui library with a flexible backend. It is implemented in c with minimal dependencies and build requirements.

Open comments for this post

2h 20m 58s logged

Devlog - Adding groups with nested layouts

Groups

Groups allow you to group elements with a custom layout. They are stored in an array and then submitted to the regular layout, while still stored in the group component.

To achieve nested layouts i rewrote the way layouts are built to have them first calculate the minimum size of each component, then see what share of the screen they take up and then scale them so the entire screen is covered. While this is not fully functional yet, it allows for nested layouts in the first place. The group components are then flattened and submitted to the regular renderable ui components for rendering.

Next up im gonna work on polishing this, adding vertical support and refining the system to properly calculate how much of the screen gets taken up.

0
0
2
Open comments for this post

6h 38m 52s logged

Devlog - Adding ui elements, layouts, refreshing and event handling

UI Elements

The basic system for ui-elements is now in place as can be seen by the button example. UI Elements need to be submitted, then the layout will be rebuilt and they are assigned their positions and sizes, unless specified directly. They are then rendered.

Some of the next ui components will be labels, text-fields and groups

UI Layouts

Layouts allow you to customise the placement of components in a group or at the base ui building.

Right now, only the linear layout is implemented, but in the future i plan on adding grid-layouts and more probably lol

Event handling

You are now able to handle events like window closing and window resizing in the app thread to rebuild the ui when required.

Next up, im gonna be working on implementing ui-groups and inner layouts for them.

0
0
5
Open comments for this post

2h 8m 53s logged

Devlog: Implementing blank’s basic infrastructure

I started by adding a relatively flexible backend system, that allows you to use any backend for rendering, thread-handling… by passing in a single initializer function.

I also implemented very basic multi-threading, and task separation since the intention is to make it a ui with state.

Next up, I will probably work on getting basic ui element submission and rendering working.

0
0
3

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…