dirkhillbrecht / uiuiui Goto Github PK
View Code? Open in Web Editor NEWLibrary for graphical user interface for Arduino/ESP32/ESP8266 programs
License: Other
Library for graphical user interface for Arduino/ESP32/ESP8266 programs
License: Other
plateform: esp32
screen: 0.96inch, ssd1306_128X64, i2c
work with soft I2C
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ 26, /* data=*/ 27, /* reset=*/ U8X8_PIN_NONE);
not work with hardware I2C (clock = 22, data = 21):
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
U8G2_SSD1306_128X64_NONAME_1_HW_I2C works well in u8g2 example sketchs
The UIEnvelope class requests a preferred size based on calling the UISize.cumulateBoth() function to add together the content preferred size and the width/height specified in the 'border' UISize field. The cumulateBoth function adds the width and height of the input UISize once to the output UISize. However, the 'width' and 'height' fields of the UISize border field represent a symmetric thickness that should be applied to both sides of the contained widget, so they should actually be added TWICE to the output UISize.
It's hour=minute/60
, not /24
UIHorizontalLine and UIVerticalLine currently request infinite (UISize::MAX_LEN) space in their 'axial' direction. The effect of this when they are grouped, perhaps as a visual divider, between widgets that request a finite size in that direction is that the layout engine over-allocates space to the entire group. Because the lines will draw along the entire length allocated to them they already effectively 'grow' in their 'axial' direction, so they do not need to request that extra space.
From the README:
A progress bar which shows the progress of some operation. If it changes its setting gradually, it would be possible to render it extremely efficient by updating only the tiles of the framebuffer where the bar actually has changed. UITextLine performs similar computations on text updates.
Methods should be structured more flexible
A border around a widget. Some example sketches implement this with two horizontal and two vertical lines. I have also thought about adding this capability to UIEnvelope, but the reflections about combination over capabilities speak against this idea.
It is impossible to use s00500/ESPUI
and dirkhillbrecht/UiUiUi
in a single project because both define global constants.
.pio/libdeps/nodemcu/UiUiUi/src/UIEnums.h:12:20: error: 'None' conflicts with a previous declaration
12 | enum UIExpansion { None,Horizontal,Vertical,Both };
| ^~~~
In file included from .pio/libdeps/nodemcu/ESPUI/src/ESPUI.h:22,
from lib/WebAdmin/WebAdmin.h:7,
from src/main.cpp:7:
Currently, UITextIcon is designed to carry only one character. There is no real need for this limitation. It it were more like a "UIFixedWidthText" (or so) and carried multiple characters, it could be used to concat text line of smaller parts. This in turn helps sending only updates for the changed parts of the "whole" String to the display.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.