-
Notifications
You must be signed in to change notification settings - Fork 3
small, simple, <insert other words for s here> cross platform GUI library
License
AgentD/sgui
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
What is this? ************* This (sgui) is a miniature cross platform GUI library that originally started out as an overgrown Xlib play pen. The whole library is written in plain ANSI C (C89) with minimalistic, simple, lightweight desing in mind. The main motivation was to write a simple, small GUI systems for small aplications that need a simple, "just works" GUI, after being unsatisfied with existing GUI solutions that are incredibly huge, bloated, resource hogging monsters that tend to be hard to use, if not even forcing a specific structure to your code and requiring a custom pre-preprocessor (you know the one I mean^^). It should be simple, small and easy to use. The 's' in "sgui" was intended to mean "small" and "simple", but over time, lots of other possible meanings for the letter 's' came to my mind, so the 's' stands for whatever you want it to. The sgui library offers a range of features: - Lightweight - Comparatively small size - Comparatively small memory footprint - Easy to use aplication programming interface - Object-oriented desing - Written entirely in ANSI C89 - Cross platform - Tested on various GNU/Linux distributions, 32 and 64 bit x86 - Tested on Mircrosoft Windows(R) 98, XP and 7 (32 bit and 64 bit) - Threadsafe - Interacts with OS clipboard (copy/cut & paste) - Supports keyboard only user interaction - Handwritten manual with example application in addition to doxygen reference - Optional OpenGL(R) support - core profile as well as compatibillity profile - OpenGL(R) widget for rendering inside a normal GUI application - can create a window with OpenGL(R) context - Optional Direct3D(R) support (9 and 11, feature levels 9.0 to 11.0) - Permissive Free Software (aka "Open Source") license - X11, aka MIT license (License text added below) - Allows you to do whatever you want, as long as credit is given What's the status? ****************** The library core (OS abstraction, backend implementation, fundementals) with the features as stated above is currently nearing its completion. Some basic widgets have been implemented. The functionallity offered by library in its current state mostly works, but it is by no means ready for production use as is. If you have any comments, suggestions, complaints, patches, cookies or whatever, I would be glad about hearing from you. If you are interested in my what's going on, you may also want to take a look at https://github.com/AgentD/sgui/issues/milestones Compiling sgui from source ************************** The sgui library uses a CMake based build system. CMake is a cross platform tool to generate platform dependend files for compiling source code (e.g. it can generate a Makefile or an MSVC solution file). For more information on CMake, see: http://www.cmake.org/ To compile sgui on a Unix(R) like OS (Unix(R), GNU/Linux, or similar), execute the following commands in the directory that this file is in: $ cd build $ cmake .. $ make If you replace "cmake" in the above commands with "ccmake", you will get a text based user interface. Pressing [c] will configure the build system and give you a screen with lots of compilation options. Pressing [c] again and then [g] generates the build system and you will return to the shell where you can run make to compile sgui. On Windows(R), start the CMake gui program. There should be a field labeled "Where is the source code". Enter the path where this README file is located. In an other field, labeled "Where to build the binaries", enter the path to the "build" directory within the directory where this README file is located. When clicking configure, a dialog should pop open where the target build system can be selected (e.g. which version of MSVC to use) and the main dialog should be filled with lots of configuration options. Pressing "configure" again and then "generate" should generate the build system (e.g. An MSVC Solution file) which can then be used to compile sgui. For further information on the build system, the compilation options, or cross compiling, please refere to the section "The SGUI build system" in the documentation. License ******* Copyright (C) 2012 - David Oberhollenzer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
About
small, simple, <insert other words for s here> cross platform GUI library
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published