Code Monkey home page Code Monkey logo

lcui's Introduction

The LCUI Project

LCUI Logo

Join the chat at https://gitter.im/lc-soft/LCUI 加入讨论组 https://lcsoft.bearychat.com/apply Build Status Coverage Status Github All Releases License OpenCollective OpenCollective

Description

中文版说明文档

LCUI is a freely available software library to create GUI application.

It is written in C, support the use XML and CSS describe the graphical interface, you can use it to make some simple effects, like in this example:

example screenshot

Author is from China, but his English is not very good, so, some files will appear chinese character, please understand. thanks.

Please read the file docs/CHANGES.md, it contains IMPORTANT INFORMATION.

Read the file INSTALL for installation instructions.

See the file docs/LICENSE.TXT for the available licenses.

Documentation

Tutorial: https://lcui.lc-soft.io/guide/

API reference documentation has not yet been prepared, you can refer to the header files, source code, and sample programs.

Building

Bootstrap

To bootstrap the build you need to run ./configure (in the root of the source tree).

In the simplest case you would run:

git clone https://github.com/lc-soft/LCUI.git
cd LCUI
./autogen.sh
./configure

Prerequisites

If you want to build full-featured LCUI, we suggest you install the following dependent libraries:

  • libpng — PNG image compression library
  • libjpeg — JPEG image compression library
  • libxml2 — The XML C parser and toolkit
  • libx11 — X11 client-side library
  • freetype — Font engine

If you system is Ubuntu, you can run following command to install dependencies:

apt-get install libpng-dev libjpeg-dev libxml2-dev libfreetype6-dev libx11-dev

Building On Windows

LCUI is mainly develop in the Windows environment, you can use VisualStudio to open file build/windows/LCUI.sln and compile LCUI.

Bugs

Please report bugs by e-mail to [email protected]. Don't forget to send a detailed explanation of the problem -- there is nothing worse than receiving a terse message that only says it doesn't work.

Contributing

You can send pull requests via GitHub.

Patches should:

  1. Follow the style of the existing code.
  2. One commit should do exactly one thing.
  3. Commit messages should start with a summary line below 80 characters followed by a blank line, and then the reasoning/analysis for why the change was made (if appropriate).
  4. Commits that fix a bug in a previous commit (which has already been merged) should start with fixup! and then the summary line of the commit it fixes. If you are writing your commit message in LCUI then type fix⇥ to get the prefix and a menu allowing you to pick the summary line from one of the last 15 commits.
  5. Rebase your branch against the upstream’s master. We don’t want to pull redundant merge commits.
  6. Be clear about what license applies to your patch: The files with in this repository are under the [GPL 2][] (or later) but (as the original creator) we are still allowed to create non-free derivatives. However, if patches are given to us under GPL then those cannot make it into any non-free derivatives we may later wish to create. So to make it easier for us (and avoid any legal issues) we prefer if patches are released as public domain.

You can donate support the development of LCUI.

I'm currently an independent developer and your contributions are useful. I have setup an LCUI Patreon page if you want to donate and enable me to spend more time improving the library. One-off donations are also greatly appreciated. Thanks!

GitHub Workflow

Developing patches should follow this workflow:

Initial Setup

  1. Fork on GitHub (click Fork button)
  2. Clone to computer: git clone [email protected]:«github account»/LCUI.git
  3. cd into your repo: cd LCUI
  4. Set up remote upstream: git remote add -f upstream git://github.com/lc-soft/LCUI.git

Adding a Feature

  1. Create a branch for the new feature: git checkout -b my_new_feature
  2. Work on your feature, add and commit as usual

Creating a branch is not strictly necessary, but it makes it easy to delete your branch when the feature has been merged into upstream, diff your branch with the version that actually ended in upstream, and to submit pull requests for multiple features (branches).

Pushing to GitHub

  1. Push branch to GitHub: git push origin my_new_feature
  2. Issue pull request: Click Pull Request button on GitHub

Useful Commands

If a lot of changes has happened upstream you can replay your local changes on top of these, this is done with rebase, e.g.:

git fetch upstream
git rebase upstream/master

This will fetch changes and re-apply your commits on top of these.

This is generally better than merge, as it will give a clear picture of which commits are local to your branch. It will also “prune” any of your local commits if the same changes have been applied upstream.

You can use -i with rebase for an “interactive” rebase. This allows you to drop, re-arrange, merge, and reword commits, e.g.:

git rebase -i upstream/master

Legal

The LCUI Project is released under the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

Thanks to

Liu Chao [email protected]

Special thanks to Liu Chao for his great work on the LCUI's development.

Backers

Support us with a monthly donation and help us continue our activities. [Become a backer]

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]

--- end of README.md ---

lcui's People

Contributors

fakeguru avatar frankhb avatar gitter-badger avatar lc-soft avatar piamancini avatar

Watchers

 avatar  avatar  avatar

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.