Skip to content
/ sgui Public

small, simple, <insert other words for s here> cross platform GUI library

License

Notifications You must be signed in to change notification settings

AgentD/sgui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No packages published

Languages