FabGL
ESP32 Display Controller and Graphics Library
fabgl.h
Go to the documentation of this file.
1 /*
2  Created by Fabrizio Di Vittorio (fdivitto2013@gmail.com) - <http://www.fabgl.com>
3  Copyright (c) 2019-2021 Fabrizio Di Vittorio.
4  All rights reserved.
5 
6 
7 * Please contact fdivitto2013@gmail.com if you need a commercial license.
8 
9 
10 * This library and related software is available under GPL v3. Feel free to use FabGL in free software and hardware:
11 
12  FabGL is free software: you can redistribute it and/or modify
13  it under the terms of the GNU General Public License as published by
14  the Free Software Foundation, either version 3 of the License, or
15  (at your option) any later version.
16 
17  FabGL is distributed in the hope that it will be useful,
18  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  GNU General Public License for more details.
21 
22  You should have received a copy of the GNU General Public License
23  along with FabGL. If not, see <http://www.gnu.org/licenses/>.
24  */
25 
26 
27 
28 #pragma once
29 
30 
310 #include "fabutils.h"
311 #include "fabfonts.h"
312 #include "terminal.h"
313 #include "displaycontroller.h"
323 #include "fabui.h"
324 #include "inputbox.h"
326 #include "comdrivers/tsi2c.h"
327 #include "devdrivers/keyboard.h"
328 #include "devdrivers/mouse.h"
329 #include "devdrivers/DS3231.h"
330 #include "scene.h"
331 #include "collisiondetector.h"
332 #include "devdrivers/soundgen.h"
333 
334 
335 
336 using fabgl::Color;
337 using fabgl::VGAScanStart;
338 using fabgl::GlyphOptions;
339 using fabgl::Scene;
340 using fabgl::Bitmap;
341 using fabgl::Sprite;
343 using fabgl::Point;
344 using fabgl::Size;
345 using fabgl::Rect;
346 using fabgl::MouseDelta;
347 using fabgl::MouseStatus;
348 using fabgl::CursorName;
349 using fabgl::uiObject;
350 using fabgl::uiButtonKind;
351 using fabgl::uiTimerHandle;
352 using fabgl::uiTextEdit;
353 using fabgl::uiApp;
354 using fabgl::uiFrame;
355 using fabgl::uiButton;
356 using fabgl::uiLabel;
357 using fabgl::uiImage;
358 using fabgl::uiPanel;
360 using fabgl::uiPaintBox;
362 using fabgl::uiListBox;
363 using fabgl::uiComboBox;
364 using fabgl::uiCheckBox;
366 using fabgl::uiSlider;
367 using fabgl::uiStyle;
369 using fabgl::uiFrameStyle;
373 using fabgl::uiLabelStyle;
374 using fabgl::uiHAlign;
375 using fabgl::uiImageStyle;
376 using fabgl::uiPanelStyle;
383 using fabgl::uiColorBox;
396 using fabgl::TermType;
397 using fabgl::SupportedTerminals;
398 using fabgl::PS2Preset;
400 using fabgl::KbdMode;
401 using fabgl::VirtualKey;
406 using fabgl::FileBrowser;
407 using fabgl::ModalWindowState;
408 using fabgl::Canvas;
409 using fabgl::PixelFormat;
410 using fabgl::RGB222;
411 using fabgl::RGBA2222;
412 using fabgl::RGB888;
413 using fabgl::RGBA8888;
414 using fabgl::FlowControl;
416 using fabgl::LineEditor;
418 using fabgl::LineEnds;
419 using fabgl::CharStyle;
421 using fabgl::SupportedLayouts;
422 using fabgl::CoreUsage;
423 using fabgl::InputResult;
424 using fabgl::InputBox;
425 
426 
Noise generator.
Definition: soundgen.h:253
Represents a 24 bit RGB color.
This file contains fabgl::CollisionDetector class definition.
A class with a set of drawing methods.
Definition: canvas.h:70
Shows a list of 16 colors, one selectable.
Definition: fabui.h:2053
A frame is a window with a title bar, maximize/minimize/close buttons and that is resizeable or movea...
Definition: fabui.h:811
Contains details about the key event.
Definition: fabui.h:153
Represents a sprite.
This file contains fabgl::PS2Controller definition.
uiOrientation
Item direction/orientation.
Definition: fabui.h:216
This file contains fabgl::VGA16Controller definition.
Represents the whole application base class.
Definition: fabui.h:2703
This file contains all classes related to FabGL Graphical User Interface.
Samples generator.
Definition: soundgen.h:302
This file contains the InputBox class.
This file contains fabgl::VGA4Controller definition.
Base abstract class for waveform generators. A waveform generator can be seen as an audio channel tha...
Definition: soundgen.h:62
A color box is a control that shows a single color.
Definition: fabui.h:1719
Triangle waveform generator.
Definition: soundgen.h:219
Shows a list of selectable string items.
Definition: fabui.h:1911
This file contains fabgl::Keyboard definition.
This file contains TFT controllers definitions.
FlowControl
This enum defines various serial port flow control methods.
Definition: terminal.h:706
This file contains the DS3231 (Real Time Clock) device driver.
Contains the listbox style.
Definition: fabui.h:1768
Contains the slider style.
Definition: fabui.h:2456
TerminalTransition
This enum defines terminal transition effect.
Definition: terminal.h:751
This file contains fabgl::Scene definition.
This file contains fabgl::BitmappedDisplayController definition.
Sets or gets text edit style.
Definition: fabui.h:1308
Contains the paintbox style.
Definition: fabui.h:1661
Color
This enum defines named colors.
This file contains fabgl::Terminal definition.
A struct which contains a virtual key, key state and associated scan code.
Definition: fabutils.h:1284
CharStyle
This enum defines a character style.
Definition: terminal.h:737
This file contains fabgl::VGAController definition.
A panel is used to contain and to group some controls.
Definition: fabui.h:1619
Represents a checkbox or a radiobutton.
Definition: fabui.h:2367
VirtualKey
Represents each possible real or derived (SHIFT + real) key.
Definition: fabutils.h:1016
This file contains fabgl::VGATextController definition.
Describes mouse movement and buttons status.
Definition: mouse.h:55
This file contains fabgl::Mouse definition.
A class to detect sprites collisions.
LineEnds
This enum defines line ends when pen width is greater than 1.
This class helps to choice a core for intensive processing tasks.
Definition: fabutils.h:999
uiCheckBoxKind
Specifies the combobox behaviour.
Definition: fabui.h:2355
Scene is an abstract class useful to encapsulate functionalities of a scene (sprites, collision detector and updates).
Definition: scene.h:55
PS2DeviceType
Represents the type of device attached to PS/2 port.
Definition: ps2device.h:52
Contains the scrollable control style.
Definition: fabui.h:996
Represents a button control. A button can have text and optionally a bitmap.
Definition: fabui.h:1204
InputBox is an helper class which allows to create simple UI interfaces, like wizards or simple input...
Definition: inputbox.h:183
uiButtonKind
Specifies the button kind.
Definition: fabui.h:1197
VGAScanStart
Represents one of the four blocks of horizontal or vertical line.
Contains the label style.
Definition: fabui.h:1452
Describes mouse absolute position, scroll wheel delta and buttons status.
Definition: fabutils.h:276
PixelFormat
This enum defines a pixel format.
This file contains fabgl::VGA2Controller definition.
Represents the coordinate of a point.
Definition: fabutils.h:190
Represents an image.
Contains the window style.
Definition: fabui.h:362
This is a combination of a color listbox and a colorbox.
Definition: fabui.h:2291
InputResult
Result of InputBox dialogs helper class.
Definition: inputbox.h:56
This file contains some utility classes and functions.
TerminalController allows direct controlling of the Terminal object without using escape sequences...
Definition: terminal.h:1812
Sine waveform generator.
Definition: soundgen.h:177
LineEditorSpecialChar
Special character specified in on values from LineEditor::onSpecialChar delegate. ...
Definition: terminal.h:2014
Contains the button style.
Definition: fabui.h:1181
LineEditor is a single-line / multiple-rows editor which uses the Terminal object as input and output...
Definition: terminal.h:2041
This file contains fabgl::VGA8Controller definition.
uiMessageBoxResult
Return values from uiApp.messageBox() method.
Definition: fabui.h:2661
Specifies various glyph painting options.
Represents a rectangle.
Definition: fabutils.h:225
This file contains fabgl::I2C definition.
uiHAlign
Text horizontal alignment.
Definition: fabui.h:225
SoundGenerator handles audio output.
Definition: soundgen.h:344
Emulates VIC6561 (VIC20) noise generator.
Definition: soundgen.h:275
Represents a text edit control.
Definition: fabui.h:1339
CursorName
This enum defines a set of predefined mouse cursors.
KbdMode
This enum defines how handle keyboard virtual keys.
Definition: ps2controller.h:65
Base class of all UI elements like windows and controls.
Definition: fabui.h:271
This file contains all classes related to FabGL Sound System.
This file contains fabgl::VGADirectController definition.
A paintbox control allows applications to perform custom drawings providing uiPaintBox.onPaint delegate. A paintbox can have horizontal and vertical scrollbars.
Definition: fabui.h:1667
Represents a bidimensional size.
Definition: fabutils.h:208
Contains the listbox style.
Definition: fabui.h:2097
TermType
This enum defines supported terminals.
Definition: terminfo.h:110
A label is a static text UI element.
Definition: fabui.h:1461
Contains the image style.
Definition: fabui.h:1543
Sawtooth waveform generator.
Definition: soundgen.h:236
Represents a 6 bit RGB color.
Shows generic a list of selectable items.
Definition: fabui.h:1796
A progress bar shows progress percentage using a colored bar.
Definition: fabui.h:2583
A slider or track bar is a graphical control element with which a user may set a value by moving an i...
Definition: fabui.h:2466
PS2Preset
This enum defines what is connected to PS/2 ports.
Definition: ps2controller.h:52
This is a combination of a listbox and a single-line editable textbox.
Definition: fabui.h:2213
Shows and navigates Virtual Filesystem content.
Definition: fabui.h:1955
This file contains fabgl::SSD1306Controller definition.
Contains the checkbox style.
Definition: fabui.h:2344
Square waveform generator.
Definition: soundgen.h:194
Contains the panel style.
Definition: fabui.h:1613
uiMessageBoxIcon
Icon displayed by the uiApp.messageBox() method.
Definition: fabui.h:2672
Image control to display a static bitmap.
Definition: fabui.h:1549
FileBrowser allows basic file system operations (dir, mkdir, remove and rename)
Definition: fabutils.h:531