Git Product home page Git Product logo

docs_old's Introduction

English | 中文 | Português do Brasil | 日本語


 

 

Light and Versatile Graphics Library

 

   

Website | Docs | Forum | Demos | Services


📒 Overview

Mature and Well-known
LVGL is the most popular free and open source embedded graphics library to create beautiful UIs for any MCU, MPU and display type. It's supported by industry leading vendors and projects like  Arm, STM32, NXP, Espressif, Nuvoton, Arduino, RT-Thread, Zephyr, NuttX, Adafruit and many more.

Feature Rich
It has all the features to create modern and beautiful GUIs: 30+ built-in widgets, a powerful style system, web inspired layout managers, and a typography system supporting many languages. To integrate LVGL into your platform, all you need is at least 32kB RAM and 128 kB Flash, a C compiler, a frame buffer, and at least an 1/10 screen sized buffer for rendering.

Services
Our team is ready to help you with graphics design, UI implementation and consulting services. Contact us if you need some support during the development of your next GUI project.

🚀 Features

Free and Portable

  • A fully portable C (C++ compatible) library with no external dependencies.
  • Can be compiled to any MCU or MPU, with any (RT)OS.
  • Supports monochrome, ePaper, OLED or TFT displays, or even monitors. Porting Guide
  • Distributed under the MIT license, so you can easily use it in commercial projects too.
  • Needs only 32kB RAM and 128 kB Flash, a frame buffer, and at least an 1/10 screen sized buffer for rendering.
  • OS, External memory and GPU are supported but not required.

Widgets, Styles, Layouts and more

  • 30+ built-in Widgets:  Button, Label, Slider, Chart, Keyboard, Meter, Arc, Table and many more.
  • Flexible Style system with  ~100 style properties to customize any part of the widgets in any state.
  • Flexbox and Grid-like layouts engines to automatically size and position the widgets in a responsive way.
  • Texts are rendered with UTF-8 encoding supporting CJK, Thai, Hindi, Arabic, Persian writing systems.
  • Word wrapping, kerning, text scrolling, sub-pixel rendering, Pinyin-IME Chinese input, Emojis in texts.
  • Rendering engine supporting animations, anti-aliasing, opacity, smooth scrolling, shadows, image transformation, etc  
  • Supports Mouse, Touchpad, Keypad, Keyboard, External buttons, Encoder Input devices.
  • Multiple display support.

Binding and Build Support

  • MicroPython Binding exposes LVGL API
  • PikaScript Binding python on MCU lighter and easier.
  • No custom build system is used. You can build LVGL as you build the other files of your project.
  • Support for Make and CMake is included out of the box.
  • Develop on PC and use the same UI code on embedded hardware.
  • Convert the C UI code to HTML file with our Emscripten port.

Docs, Tools, and Services

❤️ Sponsor

If LVGL saved you a lot of time and money or you just had fun using it, consider Supporting its Development.

How do we spend the donations?
Our goal is to provide financial compensation for people who do the most for LVGL. It means not only the maintainers but anyone who implements a great feature should get a payment from the accumulated money. We use the donations to cover our operational costs like servers and related services.

How to donate?
We use GitHub Sponsors where you can easily send one time or recurring donations. You can also see all of our expenses in a transparent way.

How to get paid for your contribution?
If someone implements or fixes an issue labeled as Sponsored he or she will get a payment for that work. We estimate the required time, complexity and importance of the issue and set a price accordingly. To jump in just comment on a Sponsored issue saying "Hi, I'd like to deal with it. This is how I'm planning to fix/implement it...". A work is considered ready when it's approved and merged by a maintainer. After that you can submit and expense at opencollective.com and you will receive the payment in a few days.

Organizations supporting LVGL
Sponsors of LVGL

Individuals supporting LVGL
Backers of LVGL

📦 Packages

LVGL is available as:

🤖 Examples

See some examples of creating widgets, using layouts and applying styles. You will find C and MicroPython code, and links to try out or edit the examples in an online MicroPython editor.

For more examples check out the Examples folder.

Hello world label

Simple Hello world label example in LVGL

C code
/*Change the active screen's background color*/
lv_obj_set_style_bg_color(lv_screen_active(), lv_color_hex(0x003a57), LV_PART_MAIN);

/*Create a white label, set its text and align it to the center*/
lv_obj_t * label = lv_label_create(lv_screen_active());
lv_label_set_text(label, "Hello world");
lv_obj_set_style_text_color(label, lv_color_hex(0xffffff), LV_PART_MAIN);
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
MicroPython code | Online Simulator
# Change the active screen's background color
scr = lv.screen_active()
scr.set_style_bg_color(lv.color_hex(0x003a57), lv.PART.MAIN)

# Create a white label, set its text and align it to the center
label = lv.label(lv.screen_active())
label.set_text("Hello world")
label.set_style_text_color(lv.color_hex(0xffffff), lv.PART.MAIN)
label.align(lv.ALIGN.CENTER, 0, 0)

Button with Click Event

LVGL button with label example

C code
lv_obj_t * button = lv_button_create(lv_screen_active());                   /*Add a button to the current screen*/
lv_obj_center(button);                                             /*Set its position*/
lv_obj_set_size(button, 100, 50);                                  /*Set its size*/
lv_obj_add_event_cb(button, button_event_cb, LV_EVENT_CLICKED, NULL); /*Assign a callback to the button*/

lv_obj_t * label = lv_label_create(button);                        /*Add a label to the button*/
lv_label_set_text(label, "Button");                             /*Set the labels text*/
lv_obj_center(label);                                           /*Align the label to the center*/
...

void button_event_cb(lv_event_t * e)
{
  printf("Clicked\n");
}
MicroPython code | Online Simulator
def button_event_cb(e):
  print("Clicked")

# Create a Button and a Label
button = lv.button(lv.screen_active())
button.center()
button.set_size(100, 50)
button.add_event_cb(button_event_cb, lv.EVENT.CLICKED, None)

label = lv.label(button)
label.set_text("Button")
label.center()

Checkboxes with Layout

Checkboxes with layout in LVGL

C code
lv_obj_set_flex_flow(lv_screen_active(), LV_FLEX_FLOW_COLUMN);
lv_obj_set_flex_align(lv_screen_active(), LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER);

lv_obj_t * cb;
cb = lv_checkbox_create(lv_screen_active());
lv_checkbox_set_text(cb, "Apple");
lv_obj_add_event_cb(cb, event_handler, LV_EVENT_ALL, NULL);

cb = lv_checkbox_create(lv_screen_active());
lv_checkbox_set_text(cb, "Banana");
lv_obj_add_state(cb, LV_STATE_CHECKED);
lv_obj_add_event_cb(cb, event_handler, LV_EVENT_ALL, NULL);

cb = lv_checkbox_create(lv_screen_active());
lv_checkbox_set_text(cb, "Lemon");
lv_obj_add_state(cb, LV_STATE_DISABLED);
lv_obj_add_event_cb(cb, event_handler, LV_EVENT_ALL, NULL);

cb = lv_checkbox_create(lv_screen_active());
lv_obj_add_state(cb, LV_STATE_CHECKED | LV_STATE_DISABLED);
lv_checkbox_set_text(cb, "Melon\nand a new line");
lv_obj_add_event_cb(cb, event_handler, LV_EVENT_ALL, NULL);
MicroPython code | Online Simulator
def event_handler(e):
    code = e.get_code()
    obj = e.get_target_obj()
    if code == lv.EVENT.VALUE_CHANGED:
        txt = obj.get_text()
        if obj.get_state() & lv.STATE.CHECKED:
            state = "Checked"
        else:
            state = "Unchecked"
        print(txt + ":" + state)


lv.screen_active().set_flex_flow(lv.FLEX_FLOW.COLUMN)
lv.screen_active().set_flex_align(lv.FLEX_ALIGN.CENTER, lv.FLEX_ALIGN.START, lv.FLEX_ALIGN.CENTER)

cb = lv.checkbox(lv.screen_active())
cb.set_text("Apple")
cb.add_event_cb(event_handler, lv.EVENT.ALL, None)

cb = lv.checkbox(lv.screen_active())
cb.set_text("Banana")
cb.add_state(lv.STATE.CHECKED)
cb.add_event_cb(event_handler, lv.EVENT.ALL, None)

cb = lv.checkbox(lv.screen_active())
cb.set_text("Lemon")
cb.add_state(lv.STATE.DISABLED)
cb.add_event_cb(event_handler, lv.EVENT.ALL, None)

cb = lv.checkbox(lv.screen_active())
cb.add_state(lv.STATE.CHECKED | lv.STATE.DISABLED)
cb.set_text("Melon")
cb.add_event_cb(event_handler, lv.EVENT.ALL, None)

Styling a Slider

Styling a slider with LVGL

C code
lv_obj_t * slider = lv_slider_create(lv_screen_active());
lv_slider_set_value(slider, 70, LV_ANIM_OFF);
lv_obj_set_size(slider, 300, 20);
lv_obj_center(slider);

/*Add local styles to MAIN part (background rectangle)*/
lv_obj_set_style_bg_color(slider, lv_color_hex(0x0F1215), LV_PART_MAIN);
lv_obj_set_style_bg_opa(slider, 255, LV_PART_MAIN);
lv_obj_set_style_border_color(slider, lv_color_hex(0x333943), LV_PART_MAIN);
lv_obj_set_style_border_width(slider, 5, LV_PART_MAIN);
lv_obj_set_style_pad_all(slider, 5, LV_PART_MAIN);

/*Create a reusable style sheet for the INDICATOR part*/
static lv_style_t style_indicator;
lv_style_init(&style_indicator);
lv_style_set_bg_color(&style_indicator, lv_color_hex(0x37B9F5));
lv_style_set_bg_grad_color(&style_indicator, lv_color_hex(0x1464F0));
lv_style_set_bg_grad_dir(&style_indicator, LV_GRAD_DIR_HOR);
lv_style_set_shadow_color(&style_indicator, lv_color_hex(0x37B9F5));
lv_style_set_shadow_width(&style_indicator, 15);
lv_style_set_shadow_spread(&style_indicator, 5);
4
/*Add the style sheet to the slider's INDICATOR part*/
lv_obj_add_style(slider, &style_indicator, LV_PART_INDICATOR);

/*Add the same style to the KNOB part too and locally overwrite some properties*/
lv_obj_add_style(slider, &style_indicator, LV_PART_KNOB);

lv_obj_set_style_outline_color(slider, lv_color_hex(0x0096FF), LV_PART_KNOB);
lv_obj_set_style_outline_width(slider, 3, LV_PART_KNOB);
lv_obj_set_style_outline_pad(slider, -5, LV_PART_KNOB);
lv_obj_set_style_shadow_spread(slider, 2, LV_PART_KNOB);
MicroPython code | Online Simulator
# Create a slider and add the style
slider = lv.slider(lv.screen_active())
slider.set_value(70, lv.ANIM.OFF)
slider.set_size(300, 20)
slider.center()

# Add local styles to MAIN part (background rectangle)
slider.set_style_bg_color(lv.color_hex(0x0F1215), lv.PART.MAIN)
slider.set_style_bg_opa(255, lv.PART.MAIN)
slider.set_style_border_color(lv.color_hex(0x333943), lv.PART.MAIN)
slider.set_style_border_width(5, lv.PART.MAIN)
slider.set_style_pad_all(5, lv.PART.MAIN)

# Create a reusable style sheet for the INDICATOR part
style_indicator = lv.style_t()
style_indicator.init()
style_indicator.set_bg_color(lv.color_hex(0x37B9F5))
style_indicator.set_bg_grad_color(lv.color_hex(0x1464F0))
style_indicator.set_bg_grad_dir(lv.GRAD_DIR.HOR)
style_indicator.set_shadow_color(lv.color_hex(0x37B9F5))
style_indicator.set_shadow_width(15)
style_indicator.set_shadow_spread(5)

# Add the style sheet to the slider's INDICATOR part
slider.add_style(style_indicator, lv.PART.INDICATOR)
slider.add_style(style_indicator, lv.PART.KNOB)

# Add the same style to the KNOB part too and locally overwrite some properties
slider.set_style_outline_color(lv.color_hex(0x0096FF), lv.PART.KNOB)
slider.set_style_outline_width(3, lv.PART.KNOB)
slider.set_style_outline_pad(-5, lv.PART.KNOB)
slider.set_style_shadow_spread(2, lv.PART.KNOB)

English, Hebrew (mixed LTR-RTL) and Chinese texts

English, Hebrew and Chinese texts with LVGL

C code
lv_obj_t * ltr_label = lv_label_create(lv_screen_active());
lv_label_set_text(ltr_label, "In modern terminology, a microcontroller is similar to a system on a chip (SoC).");
lv_obj_set_style_text_font(ltr_label, &lv_font_montserrat_16, 0);
lv_obj_set_width(ltr_label, 310);
lv_obj_align(ltr_label, LV_ALIGN_TOP_LEFT, 5, 5);

lv_obj_t * rtl_label = lv_label_create(lv_screen_active());
lv_label_set_text(rtl_label,"מעבד, או בשמו המלא יחידת עיבוד מרכזית (באנגלית: CPU - Central Processing Unit).");
lv_obj_set_style_base_dir(rtl_label, LV_BASE_DIR_RTL, 0);
lv_obj_set_style_text_font(rtl_label, &lv_font_dejavu_16_persian_hebrew, 0);
lv_obj_set_width(rtl_label, 310);
lv_obj_align(rtl_label, LV_ALIGN_LEFT_MID, 5, 0);

lv_obj_t * cz_label = lv_label_create(lv_screen_active());
lv_label_set_text(cz_label,
                  "嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。");
lv_obj_set_style_text_font(cz_label, &lv_font_simsun_16_cjk, 0);
lv_obj_set_width(cz_label, 310);
lv_obj_align(cz_label, LV_ALIGN_BOTTOM_LEFT, 5, -5);
MicroPython code | Online Simulator
ltr_label = lv.label(lv.screen_active())
ltr_label.set_text("In modern terminology, a microcontroller is similar to a system on a chip (SoC).")
ltr_label.set_style_text_font(lv.font_montserrat_16, 0);

ltr_label.set_width(310)
ltr_label.align(lv.ALIGN.TOP_LEFT, 5, 5)

rtl_label = lv.label(lv.screen_active())
rtl_label.set_text("מעבד, או בשמו המלא יחידת עיבוד מרכזית (באנגלית: CPU - Central Processing Unit).")
rtl_label.set_style_base_dir(lv.BASE_DIR.RTL, 0)
rtl_label.set_style_text_font(lv.font_dejavu_16_persian_hebrew, 0)
rtl_label.set_width(310)
rtl_label.align(lv.ALIGN.LEFT_MID, 5, 0)

font_simsun_16_cjk = lv.font_load("S:../../assets/font/lv_font_simsun_16_cjk.fnt")

cz_label = lv.label(lv.screen_active())
cz_label.set_style_text_font(font_simsun_16_cjk, 0)
cz_label.set_text("嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。")
cz_label.set_width(310)
cz_label.align(lv.ALIGN.BOTTOM_LEFT, 5, -5)

▶️ Get started

This list will guide you to get started with LVGL step-by-step.

Get Familiar with LVGL

  1. Check the Online demos to see LVGL in action (3 minutes)
  2. Read the Introduction page of the documentation (5 minutes)
  3. Get familiar with the basics on the Quick overview page (15 minutes)

Start to Use LVGL

  1. Set up a Simulator (10 minutes)
  2. Try out some Examples
  3. Port LVGL to a board. See the Porting guide or check the ready to use Projects

Become a Pro

  1. Read the Overview page to get a better understanding of the library (2-3 hours)
  2. Check the documentation of the Widgets to see their features and usage

Get Help and Help Others

  1. If you have questions go to the Forum
  2. Read the Contributing guide to see how you can help to improve LVGL (15 minutes)

🤝 Services

LVGL LLC was established to provide a solid background for LVGL library and to offer several type of services to help you in UI development. With 15+ years of experience in the user interface and graphics industry we can help you the bring your UI to the next level.

  • Graphics design Our in-house graphics designers are experts in creating beautiful modern designs which fit to your product and the resources of your hardware.
  • UI implementation We can also implement your UI based on the design you or we have created. You can be sure that we will make the most out of your hardware and LVGL. If a feature or widget is missing from LVGL, don't worry, we will implement it for you.
  • Consulting and Support We can support you with consulting as well to avoid pricey and time consuming mistakes during the UI development.
  • Board certification For companies who are offering development boards, or production ready kits we do board certification which shows how board can run LVGL.

Check out our Demos as reference. For more information take look at the Services page.

Contact us and tell how we can help.

🌟 Contributing

LVGL is an open project and contribution is very welcome. There are many ways to contribute from simply speaking about your project, through writing examples, improving the documentation, fixing bugs or even hosting your own project under the LVGL organization.

For a detailed description of contribution opportunities visit the Contributing section of the documentation.

More than 300 people already left their fingerprint in LVGL. Be one them! See you here! 🙂

... and many other.

docs_old's People

Contributors

ajithpv avatar amirgon avatar arjanmels avatar boredfishre avatar c47d avatar danyhm avatar deonmarais64 avatar devfabiosilva avatar dhebbeker avatar diegoherranz avatar embeddedt avatar fhorinek avatar flossandmeditate avatar il3ven avatar incity avatar kisvegabor avatar livesparks avatar manison avatar mibcat avatar peejii73 avatar rohmer avatar seyyah avatar shinjile avatar valeh2012 avatar xiongyumail avatar xqdd 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

docs_old's Issues

Some examples not showing in online documentation

Describe the bug

The example section in the online documentation (containing the example image and code fragments) is not currently being displayed for some widget types.

To Reproduce

These don't work:

https://docs.littlevgl.com/en/html/object-types/ddlist.html
https://docs.littlevgl.com/en/html/object-types/list.html
https://docs.littlevgl.com/en/html/object-types/page.html

These do:

https://docs.littlevgl.com/en/html/object-types/win.html
https://docs.littlevgl.com/en/html/object-types/table.html

Expected behavior

The example sections were working until very recently.

Screenshots

Lvgl-Missing-Example 2020-05-16a

Additional context

I tried this in Chrome 81 and Firefox 76 and also tried emptying the browser cache and doing a hard refresh.

Automatic rebuilds

I have been working for the past few hours on the necessary Actions infrastructure for the documentation to rebuild itself whenever a commit is pushed to the dev, latest, or release/v7 branches.

That logic is functioning for the most part now, so I am trying to switch docs.lvgl.io to serve pages from the gh-pages branch. Unfortunately, GitHub Pages is doing some strange caching and refuses to properly pick up on the CSS from gh-pages (it works fine from master).

Any ideas why this might be happening? I believe everything has been set up on the automation end correctly; this seems to be a Pages issue.

Issue About the Label Object

I have a question about the using of label widget in Arduino. I created a label that uses the following code in "setup" function:
lv_obj_t * label1 = lv_label_create(scr1, NULL); // yeah I created a screen and acted it.
lv_label_set_long_mode(label1, LV_LABEL_LONG_BREAK); /Break the long lines/
lv_label_set_align(label1, LV_LABEL_ALIGN_RIGHT); /Center aligned lines/
lv_label_set_text(label1, temperchar);
lv_obj_add_style(label1, LV_LABEL_PART_MAIN, &label_style);
lv_obj_set_width(label1, 150);
lv_obj_align(label1, NULL, LV_ALIGN_CENTER, -10, 80);

And then, I want to change the text using "lv_label_set_text(label1, temperchar);" in the "Loop" function, but the debug program says that I didn't define the "label1".

I tried to create the label behind the "setup" function using "lv_obj_t * label1 = lv_label_create(scr1, NULL); ". However, when I upload my program to the ESP32 board, it has frozen, and the serial said the following:

rst:0x10 (RTCWDT_RTC_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5856
entry 0x400806a8

I don't know how to solve this problem. I hope you can help me with this problem.

[Container] Does the function to change style exist or the docs weren't updated?

Hi,

I'm using a container inside another container and would like to remove the border of it or make it the same color as the background (highlighted in yellow):
imagen

So I looked up in the docs and could't find the refered lv_cont_set_style function. I checked the lv_examples demo widgets example and the container style are being edited like so (with lv_obj_add_style):

    lv_obj_t * h = lv_cont_create(parent, NULL);
    lv_cont_set_layout(h, LV_LAYOUT_PRETTY_MID);
    lv_obj_add_style(h, LV_CONT_PART_MAIN, &style_box);
    lv_obj_set_drag_parent(h, true);

    lv_obj_set_style_local_value_str(h, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, "Basics");

So my question:
Is the lv_cont_set_style function deprecated and should we use lv_obj_add_style instead?

EDIT
Got it working with lv_obj_set_style_local_border_opa(pulses_buttons_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_0);, I don't know if only the container docs should be updated or all of the widgets.

imagen

Wrong links on Spinbox documentation

When clicking on the Generic Events (and Special Events) hyperlink of the Spinbox documentation
imagen

I get a 404 page
imagen

The link is https://docs.lvgl.io/overview/event.html#generic-events, the correct link seems to be https://docs.lvgl.io/latest/en/html/overview/event.html#generic-events and https://docs.lvgl.io/overview/event.html#special-events should be replaced with https://docs.lvgl.io/latest/en/html/overview/event.html#special-events.

Translating for v6.0

Hi,

v6.0 and the new docs have been released. Translating the docs has now started.

If you are interested in the translation please volunteer here to discuss the details.

When you read the English documentation you will surely find typos, grammatical errors, or maybe sentences which don't make sense at all. In this case please send PRs.

If a part was difficult to understand please also notify about it.

Unify conf.py files

Currently, we have a conf.py file for each language. There doesn't seem to be anything language-specific within each file, so can we symlink them and only have one actual conf.py being used?

I came across this while looking for the spot to update the documentation's version number (as it still says 6.0 rather than 6.1).

change button label

i i had created below button how to change its font size?

// create button lv_obj_t * btnSystemOnOFF = lv_btn_create(window, NULL); lv_obj_align(btnSystemOnOFF, NULL, LV_ALIGN_IN_TOP_RIGHT, -24, 40); lv_obj_set_size(btnSystemOnOFF, 125, 40); lv_btn_set_toggle(btnSystemOnOFF, true); lv_btn_toggle(btnSystemOnOFF); // button label ButtonLabel = lv_label_create(btnSystemOnOFF, NULL); lv_label_set_text(ButtonLabel, "System ON"); // button action lv_imgbtn_set_action(btnSystemOnOFF, LV_BTN_ACTION_CLICK, btn_click_SystemOnOFF);

font converter

hi,
how to use font converter to get arial 15 font size?

Automatic documentation generation

I am concerned that people will submit pull requests without regenerating the documentation. How do you plan to handle that?

I was thinking that having some method of auto-generating documentation after a push would be nice, but I'm not sure if that can be done without a server running 24/7. 😕

Generate and update sitemap

The current DuckDuckGo/Bing/Google index state is rather sad, it would be reasonable to autogenerate a sitemap and publish that to make the documentation more accessible.

Charts: I need a clarification about styles

The docs says:
The Chart’s main part is called LV_CHART_PART_BG and it uses all the typical background properties. The text style properties determine the style of the axis texts and the line properties determine ticks’ style. Padding values add some space on the sides thus it makes series area smaller. Padding also can be used to make space for axis texts and ticks.
The background of the series is called LV_CHART_PART_SERIES_BG and it’s placed on the main background. The division lines, and series data is drawn on this part. Besides the typical background style properties the line style properties are used by the division lines. The padding values tells the space between the this part and the axis texts.

Long question: for the 3rd element (LV_CHART_PART_SERIES) it's easy to see what styles can be changed as they are clearly listed. But for above first 2 (LV_CHART_PART_BG and LV_CHART_PART_SERIES_BG) it's not. It is said that they use typical background properties.

In the Style chapter, 4.4.9 Properties these categories are listed:

  • Mixed properties
  • Padding and margin properties
  • Background properties
  • Border properties
  • Outline properties
  • Shadow properties
  • Pattern properties
  • Value properties
  • Text properties
  • Line properties
  • Image properties
  • Transition properties
  • Scale properties
    And in the end says:
    The ”typical background” properties are:
    • Background
    • Border
    • Outline
    • Shadow
    • Pattern
    • Value

Which implies that these are not among ”typical background” properties, right?

  • Mixed properties
  • Padding and margin properties
  • Text properties
  • Line properties
  • Image properties
  • Transition properties
  • Scale properties

But then for LV_CHART_PART_BG and LV_CHART_PART_SERIES_BG is mentioned also "text style" and "Padding values" respectively "line style" and "padding values".
So do I understand it right that for LV_CHART_PART_BG can be applied:
• Background
• Border
• Outline
• Shadow
• Pattern
• Value
• + Text
• + Padding and margin
And for LV_CHART_PART_SERIES_BG can be applied:
• Background
• Border
• Outline
• Shadow
• Pattern
• Value
• + Line
• + Padding and margin

Kindly please confirm. Thank you.

Where is the <sys/mman.h>?

Hi,

I appreciate the LittlevGL. Regarding the PC simulator, I have followed the steps and succeed in running make all. However, I got the following error.

make all
'Building file: ../lv_drivers/display/fbdev.c'
../lv_drivers/display/fbdev.c:17:10: fatal error: sys/mman.h: No such file or directory
#include <sys/mman.h>
^~~~~~~~~~~~

I can hardly find the "mman.h" in MinGW, SDL, and the simulator source itself. Would you help me to figure out this error?

Thanks,
Joshua

Setting list layout to LV_LAYOUT_ROW_M does not create a horizontal list

With the following code in place, my list does not function in the horizontal layout. I've tried numerous solutions found in other posts on issues here, with no luck. The only thing I can assume is that the LV_LAYOUT_ROW_M is broken/not working as intended for list objects.
2019-12-19_08h04_00

My screen ends up looking like this:
2019-12-19_08h06_09

This is being tested on a simulated version, not running on my actual embedded device (currently not possible as it is highly custom, display drivers still WIP).

Add tutorials

  • Create objects
  • Multi screen
  • Styling (button examples)
  • Responsive, layout, fit
  • Animations, style animations
  • Monochrome
  • GPU
  • Rotate screen
  • lv_task
  • Internationalization (lv_i18n)
  • bidi
  • ext_data, signal/design_event_cb
  • New obejct type

Code snippets need a license

I'm not a lawyer, but I think there are legal ramifications to using code snippets that are not licensed from documentation.

Is it possible to add a statement below the copyright saying that "Code snippets are licensed under the MIT license"?

Styles: minor issues

Padding and margin properties:
the properties (pad_top, pad_bottom, etc) are not bulleted.

Border properties:
The border in drawn on to of the background. => The border is drawn on top of the background. (please check if it's true)

Border properties:
border_post (bool): If true the border will be drawn all children has been drawn. => If true the border will be drawn when all children have been drawn.

Shadow properties:
shadow_spread: ake => make

Value properties:
values_str: Only the pointer is saved. => Only the pointer is saved! Don't use local variable with lv_style_set_value_str, else use lv_obj_set_style_local_value_str.

Transition properties:
transition_1 to transition_6: an other => another
Question: should be transition_prop_1? Because the macros are called lv_style_set_transition_prop_1 ...

These are all findings plus the questions

default value

Hi
In the Style part of the documentation, not all of the properties has the default value.
For example, if we see the shadow part, only the shadow_blend_mode has the default value.
I think it's a good idea to write their default values. I have no idea how to get them easily. If you tell me I can help you with this.

How to rebuild?

The description on how to rebuild the docs is wrong. What do I have to do to rebuild the docs?

spinner or preload widget?

On the spinner docs the example creates a spinner widget named preload, from that point forward most of the spinner related functions talks about a preload object but I think it refers to the spinner instead.

Or should the spinner widget be renamed to preload?

From:

Functions

lv_obj_t *lv_spinner_create(lv_obj_t *par, const lv_obj_t *copy)

Create a pre loader objects

Return

    pointer to the created pre loader
Parameters

        par: pointer to an object, it will be the parent of the new pre loader

        copy: pointer to a pre loader object, if not NULL then the new object will be copied from it

void lv_spinner_set_arc_length(lv_obj_t *preload, lv_anim_value_t deg)

Set the length of the spinning arc in degrees

Parameters

        preload: pointer to a preload object

        deg: length of the arc

To:

Functions

lv_obj_t *lv_spinner_create(lv_obj_t *par, const lv_obj_t *copy)

Create a spinner object

Return

    pointer to the created spinner
Parameters

        par: pointer to an object, it will be the parent of the new spinner

        copy: pointer to a spinner object, if not NULL then the new object will be copied from it

void lv_spinner_set_arc_length(lv_obj_t *spinner, lv_anim_value_t deg)

Set the length of the spinning arc in degrees

Parameters

        spinner: pointer to a spinner object

        deg: length of the arc

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.