PixelLightAPI  .
Classes | Enumerations | Functions
PLGui Namespace Reference

Classes

class  GuiApplication
 Gui application class. More...
class  GuiMessage
 GUI message/event. More...
class  MessageFilter
 Class to retrieve and filter GUI messages. More...
class  MessageFilterDebug
 Message filter that dumps all messages to the console. More...
class  MessageFilterRule
 Class that represents a filter rule. More...
class  WidgetFunctions
 Widget functions base class. More...
class  ClipBoard
 Clipboard. More...
class  CursorManager
 Cursor manager. More...
class  ButtonGroup
 Manages a button group. More...
class  DataObject
 Represents a data object, use e.g. for the clipboard and drag&drop events. More...
class  GraphicsHint
 Graphics hint base class. More...
class  LayoutHints
 Layout information for a widget. More...
class  SizeHint
 Size hint. More...
class  FontManager
 Font manager. More...
class  Gui
 Main GUI class. More...
class  Cursor
 Cursor class. More...
class  Font
 Font class. More...
class  FontInfo
 Font information. More...
class  Graphics
 Graphics class. More...
class  Image
 Image class. More...
class  Menu
 Abstract representation of a menu structure. More...
class  MenuItem
 Represents an item in a menu structure. More...
class  MenuSeparator
 Separator in a menu structure. More...
class  Timer
 Timer class. More...
class  TimerThread
 Timer operation thread. More...
class  Screen
 Screen class. More...
class  TrayIcon
 Tray icon class. More...
class  WidgetHandler
 Widget handler class. More...
class  Layout
 Layout base class. More...
class  LayoutBox
 Box layout. More...
class  ModBlend
 Modifier that blends a widget in and out according to the mouse cursor. More...
class  ModClose
 Modifier that adds actions to the close button (close window or exit application) More...
class  ModFullscreen
 Modifier that toggles a widgets fullscreen mode on 'ALT+ENTER'. More...
class  Modifier
 Modifier base class. More...
class  ModSnap
 Modifier that snaps a widget to window borders. More...
class  ModTimeout
 Modifier that closes the widget after a specific time. More...
class  ModTooltip
 Modifier that displays a tooltip for a widget. More...
class  Theme
 Theme. More...
class  ThemeDesktop
 PixelLight desktop theme. More...
class  ThemeIngame
 PixelLight ingame theme. More...
class  AppWindow
 An application window is usually a top-level window with a border and a title bar. More...
class  Dialog
 Base class for dialog windows. More...
class  MessageBox
 Message box. More...
class  TabBar
 Tab bar widget. More...
class  TabBarButton
 Tab bar button. More...
class  TabBarEntry
 Tab bar entry. More...
class  TabContainer
 Tab container. More...
class  WindowContainer
 Base class for window containers. More...
class  AbstractButton
 Abstract base class for all kind of buttons. More...
class  AbstractMenu
 Abstract base class for widgets that display a menu. More...
class  AbstractSlider
 Abstract base class for all kind of sliders, scrollbars etc. More...
class  AbstractToggleButton
 Abstract base class for toggle buttons (two or three states) More...
class  AbstractTooltip
 Base class for tooltip windows. More...
class  Border
 Container widget that displays a border around it's content. More...
class  ContainerWidget
 Base class for container widgets. More...
class  Panel
 Container widget that displays a raised or sunken panel. More...
class  ScrollWidget
 Container that allows it's content to be scrolled. More...
class  Splitter
 Container widget that splits an area into two sides. More...
class  Bitmap
 Widget that displays a static image. More...
class  BitmapButton
 A button that displays images for each state. More...
class  BitmapToggleButton
 A toggle button that displays images for each state. More...
class  Button
 Standard command button. More...
class  CheckBox
 A check box that can have two or three states. More...
class  Label
 Widget that displays a static text. More...
class  MenuBar
 Menu bar widget. More...
class  RadioButton
 A radio button. More...
class  ScrollBar
 Scroll bar widget. More...
class  Slider
 Slider widget. More...
class  SystemButton
 Button that represents a system button in a title bar (minimize, maximize, ...) More...
class  ToggleButton
 A standard button that can be toggled (binary state) More...
class  Box
 Box container widget (using LayoutBox) More...
class  PopupMenu
 Popup menu widget. More...
class  Tooltip
 A simple tooltip widget. More...
class  SlimEntry
 Slim widgets: Entry widget that can contain an image and a text. More...
class  Widget
 Widget class. More...
class  Window
 Base class for windows (widgets with a border and a title bar) More...

Enumerations

enum  EMessageType {
  MessageOnUnknown = 0, MessageOnInternalMessage, MessageOnWakeup, MessageOnExit,
  MessageOnTimer, MessageOnThemeChanged, MessageOnUpdateContent, MessageOnUpdateChildWidget,
  MessageOnAddChildWidget, MessageOnRemoveChildWidget, MessageOnClose, MessageOnCreate,
  MessageOnDestroy, MessageOnShow, MessageOnHide, MessageOnEnable,
  MessageOnDisable, MessageOnGetFocus, MessageOnLooseFocus, MessageOnActivate,
  MessageOnDrawBackground, MessageOnDraw, MessageOnMove, MessageOnSize,
  MessageOnWindowState, MessageOnEnterFullscreen, MessageOnLeaveFullscreen, MessageOnPreferredSize,
  MessageOnAdjustContent, MessageOnMouseEnter, MessageOnMouseLeave, MessageOnMouseOver,
  MessageOnMouseMove, MessageOnMouseHover, MessageOnMousePosUpdate, MessageOnMouseButtonDown,
  MessageOnMouseButtonUp, MessageOnMouseButtonClick, MessageOnMouseButtonDoubleClick, MessageOnMouseWheel,
  MessageOnKeyDown, MessageOnKeyUp, MessageOnHotkey, MessageOnDrop,
  MessageOnUserMessage
}
 Message type. More...
enum  EInternalMessage { InternalDummy = 1 }
 Internal message types. More...
enum  EMessageFilter { FilterInclusive = 0, FilterExclusive }
 Message type. More...
enum  EDebugMode { DebugModeOff = 0, DebugModeFocus, DebugModeAll }
 Debug modes. More...
enum  EOrientation { Horizontal = 0, Vertical }
 Orientation. More...
enum  EVAlign { AlignTop = 0, AlignBottom, AlignMiddle }
 Vertical alignment. More...
enum  EBorderStyle { FlatBorder = 0, RaisedBorder, SunkenBorder }
 Border styles. More...
enum  ELineStyle { SolidLine = 0, DashedLine, DottedLine }
 Line styles. More...
enum  EWindowState { StateNormal, StateMinimized, StateMaximized, StateFullscreen }
 Window state. More...
enum  EZPos { ZAbove, ZBehind, ZTop, ZBottom }
 Z position of window. More...
enum  ECenter { CenterScreen, CenterParent }
 Center modes. More...
enum  ETransparency { NoTransparency, ColorKeyTransparency, AlphaTransparency }
 Transparency modes. More...
enum  EFocusStyle { NoFocus = 0, ChildFocus, ChildFocusOrSelf, AcceptFocus }
 Focus styles. More...
enum  ESystemButton { SystemButtonMinimize = 1, SystemButtonMaximize = 2, SystemButtonClose = 4 }
 System buttons. More...
enum  ESystemCommand { CommandMinimize, CommandMaximize, CommandRestore, CommandClose }
 System commands. More...
enum  EMouseButton {
  LeftButton = 0, RightButton, MiddleButton, Button0 = 0,
  Button1, Button2, Button3, Button4,
  Button5, Button6, Button7, Button8,
  Button9, Button10, Button11, Button12,
  Button13, Button14, Button15
}
 Mouse buttons. More...
enum  EMouseCursor {
  CursorNone, CursorArrow, CursorUpArrow, CursorWaitStart,
  CursorWait, CursorHelp, CursorNo, CursorCrosshair,
  CursorHand, CursorText, CursorMove, CursorSize,
  CursorSizeTop, CursorSizeBottom, CursorSizeLeft, CursorSizeRight,
  CursorSizeTopBottom, CursorSizeLeftRight, CursorSizeTopLeft, CursorSizeTopRight,
  CursorSizeBottomLeft, CursorSizeBottomRight, CursorSizeTopLeftBottomRight, CursorSizeTopRightBottomLeft,
  CursorCustom, Cursor_Count
}
 Standard mouse cursors. More...
enum  EFontWeight { WeightLight = 25, WeightNormal = 50, WeightBold = 75 }
 Font weight. More...
enum  EFontStyle { StyleNormal = 0, StyleItalics }
 Font style. More...
enum  ECheckState { NotChecked = 0, Checked, PartiallyChecked }
 Check state. More...
enum  EMenuItemType { TypeMenuItem = 0, TypeMenu, TypeSeparator }
 Menu item type. More...
enum  ETabBarOption { TabOptionCreateTab = 1, TabOptionCloseTab = 2, TabOptionMoveTab = 4, TabOptionStaticSize = 8 }
 TabBar options. More...
enum  ETabBarFunction { TabFunctionCreateTab = 0, TabFunctionCloseTab, TabFunctionScrollNext, TabFunctionScrollPrev }
 TabBar functions. More...
enum  EMessageBox { MessageBoxOk = 0, MessageBoxOkCancel, MessageBoxYesNo, MessageBoxYesNoCancel }
 Message box types. More...
enum  EMessageBoxButton { MessageBoxButtonCancel = -1, MessageBoxButtonOk = 0, MessageBoxButtonYes, MessageBoxButtonNo }
 Message box buttons. More...
enum  EDataType {
  DataEmpty = 0, DataString, DataFiles, DataCustom,
  DataBinary
}
 Data type. More...

Functions

 pl_enum (EOrientation) pl_enum_value(Horizontal
Horizontal orientation pl_enum_value (Vertical,"Vertical orientation") pl_enum_endenum ESide
 Side.
 pl_enum (ESide) pl_enum_value(SideLeft
Left side pl_enum_value (SideRight,"Right side") pl_enum_value(SideTop
Left side Top side pl_enum_value (SideBottom,"Bottom side") pl_enum_endenum EAlign
 Alignment.
 pl_enum (EAlign) pl_enum_value(AlignLeft
Align elements at the left side pl_enum_value (AlignRight,"Align elements at the right side") pl_enum_value(AlignCenter
 pl_enum (EVAlign) pl_enum_value(AlignTop
Align elements at the top pl_enum_value (AlignBottom,"Align elements at the bottom") pl_enum_value(AlignMiddle
 pl_enum (EBorderStyle) pl_enum_value(FlatBorder
A flat border pl_enum_value (RaisedBorder,"A border with a raised 3D look") pl_enum_value(SunkenBorder
 pl_enum (ELineStyle) pl_enum_value(SolidLine
A solid line pl_enum_value (DashedLine,"A line that is dashed (many small lines)") pl_enum_value(DottedLine
A solid line A line that is dotted (many dots)") pl_enum_end enum EWidgetState
 Widget state.
 pl_enum (ESystemButton) pl_enum_value(SystemButtonMinimize
Minimize button pl_enum_value (SystemButtonMaximize,"Maximize button") pl_enum_value(SystemButtonClose
 pl_enum (ESystemCommand) pl_enum_value(CommandMinimize
Minimize window pl_enum_value (CommandMaximize,"Maximize window") pl_enum_value(CommandRestore
Minimize window Restore window size pl_enum_value (CommandClose,"Close window") pl_enum_endenum EScrollBarStyle
 ScrollBar styles.
 pl_enum (EScrollBarStyle) pl_enum_value(ScrollBarStyleNever
Display no scrollbar at all pl_enum_value (ScrollBarStyleAlways,"Show scrollbar always") pl_enum_value(ScrollBarStyleDynamic
 pl_enum (EFontWeight) pl_enum_value(WeightLight
Light text pl_enum_value (WeightNormal,"Normal text") pl_enum_value(WeightBold
 pl_enum (EFontStyle) pl_enum_value(StyleNormal
Normal text pl_enum_value (StyleItalics,"Italics text") pl_enum_endenum ETextStyle
 Text style.
 pl_enum (ETextStyle) pl_enum_value(UnderlineText
Underline the text pl_enum_value (CrossoutText,"Cross out the text") pl_enum_endenum ETextWrap
 Text wrapping.
 pl_enum (ETextWrap) pl_enum_value(NoTextWrap
Do not wrap text pl_enum_value (TextWrap,"Wrap text, if the text does not fit on a line, and use standard alignment") pl_enum_value(TextWrapBlock
 pl_enum (ECheckState) pl_enum_value(NotChecked
The check button is unchecked pl_enum_value (Checked,"The check-button is checked") pl_enum_value(PartiallyChecked

Enumeration Type Documentation

Message type.

Enumerator:
MessageOnUnknown 

Unknown message type

MessageOnInternalMessage 

Internal message that is not passed on to widgets and modifiers

MessageOnWakeup 

Wakeup message loop

MessageOnExit 

Exit GUI

MessageOnTimer 

Timer message

MessageOnThemeChanged 

Theme has been changed

MessageOnUpdateContent 

Widget content has been changed

MessageOnUpdateChildWidget 

Child widget has been changed

MessageOnAddChildWidget 

Child widget has been added

MessageOnRemoveChildWidget 

Child widget has been removed

MessageOnClose 

Widget shall be closed (ALT+F4 or X-Button pressed)

MessageOnCreate 

Widget has just been created

MessageOnDestroy 

Widget is going to be destroyed

MessageOnShow 

Widget gets shown

MessageOnHide 

Widget gets hidden

MessageOnEnable 

Widget gets enabled

MessageOnDisable 

Widget gets disabled

MessageOnGetFocus 

Widget gets focus

MessageOnLooseFocus 

Widget looses focus

MessageOnActivate 

Widget has been activated or deactivated (focus-widget has changed)

MessageOnDrawBackground 

Widget background gets drawn, graphics object used for painting as parameter

MessageOnDraw 

Widget gets drawn, graphics object used for painting as parameter

MessageOnMove 

Widget gets moved, new widget position as parameter

MessageOnSize 

Widget gets resized, new widget size as parameter

MessageOnWindowState 

Window state has changed, new window state as parameter

MessageOnEnterFullscreen 

Widget enters fullscreen mode

MessageOnLeaveFullscreen 

Widget leaves fullscreen mode

MessageOnPreferredSize 

Widget has calculated it's preferred size

MessageOnAdjustContent 

Widget content has to be adjusted

MessageOnMouseEnter 

Mouse enters widget

MessageOnMouseLeave 

Mouse leaves widget

MessageOnMouseOver 

Mouse-over widget has changed

MessageOnMouseMove 

Mouse moves inside the widget, mouse position within the widget as parameter

MessageOnMouseHover 

Mouse hovers over the widget

MessageOnMousePosUpdate 

Mouse position inside the widget has changed due to the movement of widget

MessageOnMouseButtonDown 

Mouse button is pressed, mouse button and mouse position within the widget as parameters

MessageOnMouseButtonUp 

Mouse button is released, mouse button and mouse position within the widget as parameters

MessageOnMouseButtonClick 

Mouse button has been clicked, mouse button and mouse position within the widget as parameters

MessageOnMouseButtonDoubleClick 

Mouse button has been double-clicked, mouse button and mouse position within the widget as parameters

MessageOnMouseWheel 

Mouse wheel moved, mouse wheel movement as parameter

MessageOnKeyDown 

Key gets pressed, pressed key and modifier keys pressed as parameters

MessageOnKeyUp 

Key gets released, released key and modifier keys pressed as parameters

MessageOnHotkey 

Hotkey pressed, hotkey ID as parameter

MessageOnDrop 

Data has been dropped onto the widget

MessageOnUserMessage 

User message

Internal message types.

Enumerator:
InternalDummy 

Unused, replace with first real internal message

Message type.

Enumerator:
FilterInclusive 

Pass all specified messages, ignore all others

FilterExclusive 

Pass all messages except the specified ones

Debug modes.

Enumerator:
DebugModeOff 

Display no messages

DebugModeFocus 

Display messages regarding the keyboard focus

DebugModeAll 

Display all messages

Orientation.

Enumerator:
Horizontal 

Horizontal orientation (X-axis)

Vertical 

Vertical orientation (Y-axis)

Vertical alignment.

Enumerator:
AlignTop 

Align elements at the top

AlignBottom 

Align elements at the bottom

AlignMiddle 

Align elements centered

Border styles.

Enumerator:
FlatBorder 

A flat border

RaisedBorder 

A border with a raised 3D look

SunkenBorder 

A border with a sunken 3D look

Line styles.

Enumerator:
SolidLine 

A solid line

DashedLine 

A line that is dashed (many small lines)

DottedLine 

A line that is dotted (many dots)

Window state.

Enumerator:
StateNormal 

Window is displayed as a normal window

StateMinimized 

Window is minimized

StateMaximized 

Window is maximized

StateFullscreen 

Window is in fullscreen mode

Z position of window.

Enumerator:
ZAbove 

Bring a window on top of another window

ZBehind 

Bring a window behind another window

ZTop 

Bring a window on top of all other windows

ZBottom 

Bring a window behind all other windows

Center modes.

Enumerator:
CenterScreen 

Center a window relative to the screen

CenterParent 

Center a window relative to it's parent window

Transparency modes.

Enumerator:
NoTransparency 

No transparency

ColorKeyTransparency 

Use a color key to mark transparent areas

AlphaTransparency 

Use alpha blending

Focus styles.

Enumerator:
NoFocus 

Widget will not accept the focus at all

ChildFocus 

Widget will try to give the focus to a child widget

ChildFocusOrSelf 

Widget will first try to give the focus to a child widget, then accept it itself

AcceptFocus 

Widget will accept the keyboard focus

System buttons.

Enumerator:
SystemButtonMinimize 

Minimize button

SystemButtonMaximize 

Maximize button

SystemButtonClose 

Close button

System commands.

Enumerator:
CommandMinimize 

Minimize window

CommandMaximize 

Maximize window

CommandRestore 

Restore window size

CommandClose 

Close window

Mouse buttons.

Enumerator:
LeftButton 

Left mouse button

RightButton 

Right mouse button

MiddleButton 

Middle mouse button

Button0 

Button 0 (Left)

Button1 

Button 1 (Right)

Button2 

Button 2 (Middle)

Button3 

Button 3

Button4 

Button 4

Button5 

Button 5

Button6 

Button 6

Button7 

Button 7

Button8 

Button 8

Button9 

Button 9

Button10 

Button 10

Button11 

Button 11

Button12 

Button 12

Button13 

Button 13

Button14 

Button 14

Button15 

Button 15

Standard mouse cursors.

Enumerator:
CursorNone 

No cursor (invisible)

CursorArrow 

Standard arrow

CursorUpArrow 

Up arrow

CursorWaitStart 

Startup wait sign (small hourglass)

CursorWait 

Wait sign (hourglass)

CursorHelp 

Help cursor

CursorNo 

Slashed circle

CursorCrosshair 

Crosshair

CursorHand 

Hand

CursorText 

Text cursor

CursorMove 

Moving (all directions)

CursorSize 

Sizing (all directions)

CursorSizeTop 

Sizing (up)

CursorSizeBottom 

Sizing (down)

CursorSizeLeft 

Sizing (left)

CursorSizeRight 

Sizing (right)

CursorSizeTopBottom 

Sizing (up and down)

CursorSizeLeftRight 

Sizing (left and right)

CursorSizeTopLeft 

Sizing (top left)

CursorSizeTopRight 

Sizing (top right)

CursorSizeBottomLeft 

Sizing (bottom left)

CursorSizeBottomRight 

Sizing (bottom right)

CursorSizeTopLeftBottomRight 

Sizing (top left and bottom right)

CursorSizeTopRightBottomLeft 

Sizing (top right and bottom left)

CursorCustom 

A custom (image) cursor is used

Cursor_Count 

Font weight.

Remarks:
Font weight in a scale from 0..100
Enumerator:
WeightLight 

Light text

WeightNormal 

Normal text

WeightBold 

Bold text

Font style.

Enumerator:
StyleNormal 

Normal text

StyleItalics 

Italics text

Check state.

Enumerator:
NotChecked 

The check-button is unchecked

Checked 

The check-button is checked

PartiallyChecked 

The check-button is partial checked

Menu item type.

Enumerator:
TypeMenuItem 

A usual menu item

TypeMenu 

A (sub)menu

TypeSeparator 

A separator

TabBar options.

Enumerator:
TabOptionCreateTab 

Allow user to create a new tab

TabOptionCloseTab 

Allow user to close a tab

TabOptionMoveTab 

Allow user to move a tab

TabOptionStaticSize 

Each tab has the same static size

TabBar functions.

Enumerator:
TabFunctionCreateTab 

Create new tab

TabFunctionCloseTab 

Close tab

TabFunctionScrollNext 

Scroll (next)

TabFunctionScrollPrev 

Scroll (previous)

Message box types.

Enumerator:
MessageBoxOk 

Message box with button 'Ok'

MessageBoxOkCancel 

Message box with buttons 'Ok', 'Cancel'

MessageBoxYesNo 

Message box with buttons 'Yes', 'No'

MessageBoxYesNoCancel 

Message box with buttons 'Yes', 'No', 'Cancel'

Message box buttons.

Enumerator:
MessageBoxButtonCancel 

Message box button 'Cancel'

MessageBoxButtonOk 

Message box button 'Ok'

MessageBoxButtonYes 

Message box button 'Yes'

MessageBoxButtonNo 

Message box button 'No'

Data type.

Enumerator:
DataEmpty 

Empty data

DataString 

String data

DataFiles 

List of file names

DataCustom 

Custom data (uint32 value)

DataBinary 

Binary data (byte buffer and size)


Function Documentation

PLGui::pl_enum ( EOrientation  )
Horizontal orientation PLGui::pl_enum_value ( Vertical  ,
"Vertical orientation"   
)

Side.

< Left side

< Right side

< Top side

< Bottom side

PLGui::pl_enum ( ESide  )
Left side PLGui::pl_enum_value ( SideRight  ,
"Right side"   
)
Left side Top side PLGui::pl_enum_value ( SideBottom  ,
"Bottom side"   
)

Alignment.

< Align elements at the left side

< Align elements at the right side

< Align elements centered

PLGui::pl_enum ( EAlign  )
Align elements at the left side PLGui::pl_enum_value ( AlignRight  ,
"Align elements at the right side"   
)
PLGui::pl_enum ( EVAlign  )
Align elements at the top PLGui::pl_enum_value ( AlignBottom  ,
"Align elements at the bottom"   
)
PLGui::pl_enum ( EBorderStyle  )
A flat border PLGui::pl_enum_value ( RaisedBorder  ,
"A border with a raised 3D look"   
)
PLGui::pl_enum ( ELineStyle  )
A solid line PLGui::pl_enum_value ( DashedLine  ,
"A line that is dashed (many small lines)"   
)
A solid line A line that is PLGui::dotted ( many  dots)

Widget state.

< Widget is enabled

< Widget is active

< Widget is inactive

< Widget is selected by the mouse

< Widget is selected by the mouse and mouse button is pressed (only valid for buttons!)

PLGui::pl_enum ( ESystemButton  )
Minimize button PLGui::pl_enum_value ( SystemButtonMaximize  ,
"Maximize button"   
)
PLGui::pl_enum ( ESystemCommand  )
Minimize window PLGui::pl_enum_value ( CommandMaximize  ,
"Maximize window"   
)
Minimize window Restore window size PLGui::pl_enum_value ( CommandClose  ,
"Close window"   
)

ScrollBar styles.

< Display no scrollbar at all

< Show scrollbar always

< Hide scrollbar when it is not needed

PLGui::pl_enum ( EScrollBarStyle  )
Display no scrollbar at all PLGui::pl_enum_value ( ScrollBarStyleAlways  ,
"Show scrollbar always"   
)
PLGui::pl_enum ( EFontWeight  )
Light text PLGui::pl_enum_value ( WeightNormal  ,
"Normal text"   
)
PLGui::pl_enum ( EFontStyle  )
Normal text PLGui::pl_enum_value ( StyleItalics  ,
"Italics text"   
)

Text style.

< Underline the text

< Cross out the text

PLGui::pl_enum ( ETextStyle  )
Underline the text PLGui::pl_enum_value ( CrossoutText  ,
"Cross out the text"   
)

Text wrapping.

< Do not wrap text

< Wrap text, if the text does not fit on a line, and use standard alignment

< Wrap text and use block text to align it

PLGui::pl_enum ( ETextWrap  )
Do not wrap text PLGui::pl_enum_value ( TextWrap  ,
"Wrap  text,
if the text does not fit on a  line,
and use standard alignment"   
)
PLGui::pl_enum ( ECheckState  )
The check button is unchecked PLGui::pl_enum_value ( Checked  ,
"The check-button is checked"   
)


PixelLight PixelLight 0.9.11-R1
Copyright (C) 2002-2012 by The PixelLight Team
Last modified Thu Feb 23 2012 14:09:32
The content of this PixelLight document is published under the
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported