Skip to content

Roderik11/Squid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Squid UI framework

What is Squid?

SQUID is a framework to create user interfaces for games and other 2D/3D realtime applications, using a Retained Mode system. SQUID does not depend on a certain rendering engine, you can use it with any engine you like, on any platform that supports the .NET 2.0 framework.

  • it's a UI blackbox
  • it's easy to integrate
  • it is engine agnostic
  • it is unaware of texture or font resources, only integers and strings
  • it doesn’t draw anything; you do

All you need to do is to implement a single interface - the ISquidRenderer.

Getting started: https://github.com/Roderik11/Squid/wiki/Using-Squid

Complex example that covers all areas of Squid: https://github.com/Roderik11/Spark/tree/main/Spark.Editor

Example Screenshots

Sample Arrangement

image

Custom Game Engine

image image

Features:

  • scale9 texture grid
  • docking, anchoring
  • margin,padding
  • z-order, clipping, scissoring
  • hierarchical opacity
  • input event handlers
  • international keyboard support
  • custom mouse cursors
  • tooltips
  • drag & drop
  • snapping windows
  • modal windows
  • control state fading
  • easy skinning via styles
  • automatic batching
  • easy to extend
  • it’s fast

Standard Controls:

  • Button
  • CheckBox
  • DropDownList
  • Dialog
  • FlowLayoutFrame
  • Frame
  • ImageControl
  • Label
  • ListBox
  • ListView
  • Panel
  • RadioButton
  • Resizer
  • Scrollbar
  • Slider
  • SplitContainer
  • TabControl
  • TextArea
  • TextBox
  • TreeView
  • VirtualList
  • Window

TODOs:

  • merge TextBox (single line) and TextArea (multi line)
  • remove Xml namespace, classes and serializer. should be external (json/yaml/etc)
  • clean up comments and commented code