Code Monkey home page Code Monkey logo

lecui's Introduction

Hi ๐Ÿ‘‹, my name is Alec

I'm a software developer; the author of the liblec libraries. I am an Oracle and VMware Spring Certified Professional.

GitHub User's stars GitHub followers

Top Competencies

Java C++ Python

Major Projects

leccore - liblec core library
GitHub release (latest by date) GitHub Release Date

lecui - liblec ui library
GitHub release (latest by date) GitHub Release Date

lecnet - liblec network library
GitHub release (latest by date) GitHub Release Date

cui framework - liblec legacy ui library
GitHub release (latest by date) GitHub Release Date

Featured Minor Projects

pc_info
GitHub release (latest by date) GitHub Release Date

spotlight_images
GitHub release (latest by date) GitHub Release Date

Trivia

lecui's People

Contributors

alecmus avatar mtnyoni avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

lecui's Issues

Table ID as part of the table_view_builder

I have a suggestion that if possible, add a table ID. The ID does not change when the user sorts the table. And the programmer can either choose to include it or not. I think it would be an amazing feature.

Simplify adding widget to a pane

To add a widget to a pane we need to pass a reference to the pane's page as a parameter to the widget's builder.

Why?

Suggestion: Simply pass a reference to the pane, let the widget's builder call the get() method

Instead of

lecui::widgets::label_builder label(pane_one.get(), "my_label");

allow

lecui::widgets::label_builder label(pane_one, "my_label");

Constructing widgets rather than widget builders

In your sample code you construct ( build ) widgets like this

lecui::widgets::label_builder label(pane_one.get(), "my_label");

This looks like it will call the widget's destructor when it goes out of scope. Usually people want to prevent this happening until the application ends, or when the container is destroyed.

A smaller point: it seems odd to me that you are constructing an instance of a widget builder, rather than an instance of a label.

So something like

lecui::widgets::label * plabel1 = lecui::widgets::label_builder( label(pane_one.get(), "my_label");

( the builder returns a pointer to the widget )

or

lecui::widgets::label& label1 = lecui::widgets::label_builder( label(pane_one.get(), "my_label");

( the builder returns a reference to the widget )

Personally, I prefer the second style.

Automatically generated pane alias

When no pane alias is specified by the user there is no mechanism for containers::pane::pane() to know the alias that is automatically generated in containers::pane::impl::add_pane() and so subsequent calls to containers::pane::get() fail as the alias_ field of containers::pane::impl remains empty.

Combobox selected method

The selected method on the combobox seems to be failing. May you please attend to it.

How I used it:

widgets::combobox_builder fueltype_cbo(page, "fueltype_cbo");
{
	std::vector<widgets::combobox_specs::combobox_item> fueltypes = {
		{  "Petrol " }, {"Diesel"}
	};

	fueltype_cbo()
		.items(fueltypes)
		.selected("Petrol")
		.color_fill({ 255,255,255,0 })
		.rect().size(200, 25)
		.snap_to(fueltype_caption().rect(), snap_type::bottom, 0);
		fueltype_cbo().events().selection = [](const std::string& selected) {};
}

Failing to change the background color of a label

I seem to be failing to change the colour of the label. I wonder if I am doing it wrong or there is a bug.

This is my code:

widgets::label_builder fuel_caption(coupon_details_pane.get());
	fuel_caption()
		.text("Fuel")
		.color_text(caption_color_)
		.color_fill().green();

I also tried:

.color_fill({0, 0, 0, 100});

And:

.color_fill().get_green();

Splash screen not dpi-aware

The liblec::lecui::splash loads images using their pixel-size, resulting in the image looking too small on high-dpi screens.

table_view_builder

the table_view_builder takes some time to render data after pushing a row into the table using the push_back function.

like so:

widgets::table_view_builder::specs(*this, main_page_name_ + "/main_tab/coupons/coupons_table")
.data().push_back({ { "#", "7"}, {"Date", "10-June-20"}, {"Issued to", "new"}, {"Serial Number", "added-for-testing"}});

And if you using values that are determined on runtime, the table sometimes doesn't render the data.

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.