Lightweight cross platform GUI library
C++ Makefile Shell C Objective-C++ M4 Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Code
GtkTest
HtmlEditor
HtmlTest
Ide
LgiTest Db table impl. Feb 8, 2018
Lvc
ResourceEditor
ScriptingUnitTests
Updater
VsLaunch
docs
include
src
templates
tests
CMakeLists.txt
Installer.nsi
LICENSE.txt
Lgi.proj
Lgi.xml
LgiStatic_vs2013.vcxproj
Lgi_vs2013.sln
Lgi_vs2013.vcxproj
Lgi_vs2013.vcxproj.filters
MODULE_LICENCES.txt
Makefile.cygwin
Makefile.haiku
Makefile.linux
Makefile.windows
Release.make
Release.py
readme.txt

readme.txt

	    Lightweight GUI Library
	    -----------------------

The primary aim of LGI is to abstract away the differences between
operating system's and provide a consistent API that applications
can target.

As a secondary goal the library should strive to be compact for easy
distribution with an application without bloating out the download.
Also the API is designed to be as simple as possible for the programmer
to use, without sacrificing functionality on the various platforms
supported.

The library is not intended to be shared between applications
as there is too much change in the API and object size to warrant a
shared library approach. In the future this may change if compatibility
can be improved.

Compiling LGI
-------------

    Open '[lgi]/include/common/Lgi.h' and check through any compile time
    options there. You may want to switch things on or off to get it to
    compile.

    Win32:
    	Load  [lgi]/Lgi_vc9.sln into Visual C++ 2008 and build it.
    
    Linux:
    	make -f [lgi]/Makefile.linux
    		-or-
    	make -f [lgi]/LgiIde/Makefile.linux (builds both Lgi and the IDE)
    
    Cygwin:
    	make -f [lgi]/Makefile.win32
    		-or-
    	make -f [lgi]/LgiIde/Makefile.win32 (builds both Lgi and the IDE)
    
    Mac:
    	Open [lgi]/src/mac/carbon/Lgi.xcode in XCode and run the build command. 

	
	Add build folders so the OS can find the shared libraries:

		* For Windows add these to your path:
			- [lgi]/lib
		* For Cygwin add these to your path:
			- [lgi]/DebugX
			- [lgi]/ReleaseX
		* On Linux, create symlinks in /usr/lib to the files:
			- [lgi]/DebugX/liblgid.so
			- [lgi]/ReleaseX/liblgi.so

Building Your App
-----------------
    Win32: Add the project [lgi]/Lgi_vc9.vxproj to your workspace. Then in your 
    new project you'll need to set these settings:
	    * C/C++ tab
			- C++ Language
			    - RTTI on.
			- Code Generation
			    - [Debug] Run time library: Debug Multithreaded DLL
			    - [Release] Run time library: Multithreaded DLL
			- Preprocessor
			    - Define: LGI_STATIC (if your using LgiStatic version)
			    - Include path: [Lgi]/include/common
			    - Include path: [Lgi]/include/win32
		* Link tab
			- Object/library modules:
				- Add 'imm32.lib' (if you use GTextView3.cpp)

    Linux/Cygwin:
    	* Add to your library string:
    		- [Debug] '-L[Lgi]/DebugX -llgid'
    		- [Release] '-L[Lgi]/ReleaseX -llgi'
    	* Add to your compile flags:
    		- '-i[Lgi]/include/common -i[Lgi]/include/linux/X'

	Mac:
		* Include the lgi.framework into your app
		* Add the these folders to your include path:
			- [Lgi]/include/common
			- [Lgi]/include/mac

Usage
-----
    In most cases just:

	#include "Lgi.h"

    But you can also include "Gdc2.h" for just graphics support without all
    the GUI stuff.

    The naming conventions for container methods are:
	- "Delete(...)" removes from the container and frees the object.
	- "Remove(...)" just removes from the container.

Documentation
-------------
    
    See: [Lgi]/docs/html/index.html.

	Which you may have to generate with doxygen if you are building from the
	repository.