Giter Site home page Giter Site logo

uiuiui's People

Contributors

burksbuilds avatar dirkhillbrecht avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

uiuiui's Issues

can not work on hardware I2C?

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

UIEnvelope requests too little space

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.

Horizontal and Vertical lines impact group sizing

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.

Add Progress Bar Widget

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.

Add Border Widget

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.

Conflicting Enums in global scope

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:

UITextIcon becomes a fixed-width string with more characters

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.