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-2020 Fabrizio Di Vittorio.
4  All rights reserved.
5 
6  This file is part of FabGL Library.
7 
8  FabGL is free software: you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation, either version 3 of the License, or
11  (at your option) any later version.
12 
13  FabGL is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with FabGL. If not, see <http://www.gnu.org/licenses/>.
20  */
21 
22 
23 
24 #pragma once
25 
26 
282 #include "fabutils.h"
283 #include "fabfonts.h"
284 #include "terminal.h"
285 #include "displaycontroller.h"
296 #include "comdrivers/tsi2c.h"
297 #include "devdrivers/keyboard.h"
298 #include "devdrivers/mouse.h"
299 #include "devdrivers/DS3231.h"
300 #include "scene.h"
301 #include "collisiondetector.h"
302 #include "devdrivers/soundgen.h"
303 
304 
305 
306 using fabgl::Color;
307 using fabgl::VGAScanStart;
308 using fabgl::GlyphOptions;
309 using fabgl::Scene;
310 using fabgl::Bitmap;
311 using fabgl::Sprite;
313 using fabgl::Point;
314 using fabgl::Size;
315 using fabgl::Rect;
316 using fabgl::MouseDelta;
317 using fabgl::MouseStatus;
318 using fabgl::CursorName;
319 using fabgl::uiObject;
320 using fabgl::uiButtonKind;
321 using fabgl::uiTimerHandle;
322 using fabgl::uiTextEdit;
323 using fabgl::uiApp;
324 using fabgl::uiFrame;
325 using fabgl::uiButton;
326 using fabgl::uiLabel;
327 using fabgl::uiImage;
328 using fabgl::uiPanel;
330 using fabgl::uiPaintBox;
332 using fabgl::uiListBox;
333 using fabgl::uiComboBox;
334 using fabgl::uiCheckBox;
336 using fabgl::uiSlider;
337 using fabgl::uiStyle;
339 using fabgl::uiFrameStyle;
343 using fabgl::uiLabelStyle;
344 using fabgl::uiImageStyle;
345 using fabgl::uiPanelStyle;
352 using fabgl::uiColorBox;
364 using fabgl::TermType;
365 using fabgl::SupportedTerminals;
366 using fabgl::PS2Preset;
368 using fabgl::KbdMode;
369 using fabgl::VirtualKey;
373 using fabgl::FileBrowser;
374 using fabgl::ModalWindowState;
375 using fabgl::Canvas;
376 using fabgl::PixelFormat;
377 using fabgl::RGB222;
378 using fabgl::RGBA2222;
379 using fabgl::RGB888;
380 using fabgl::RGBA8888;
381 using fabgl::FlowControl;
383 using fabgl::LineEditor;
385 using fabgl::LineEnds;
386 using fabgl::CharStyle;
388 using fabgl::SupportedLayouts;
389 using fabgl::CoreUsage;
390 
391 
Noise generator.
Definition: soundgen.h:249
Represents a 24 bit RGB color.
This file contains fabgl::CollisionDetector class definition.
A class with a set of drawing methods.
Definition: canvas.h:66
Shows a list of 16 colors, one selectable.
Definition: fabui.h:1993
A frame is a window with a title bar, maximize/minimize/close buttons and that is resizeable or movea...
Definition: fabui.h:785
Contains details about the key event.
Definition: fabui.h:142
Represents a sprite.
This file contains fabgl::PS2Controller definition.
uiOrientation
Item direction/orientation.
Definition: fabui.h:204
This file contains fabgl::VGA16Controller definition.
Represents the whole application base class.
Definition: fabui.h:2561
Samples generator.
Definition: soundgen.h:298
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:58
A color box is a control that shows a single color.
Definition: fabui.h:1684
Triangle waveform generator.
Definition: soundgen.h:215
Shows a list of selectable string items.
Definition: fabui.h:1851
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:702
This file contains the DS3231 (Real Time Clock) device driver.
Contains the listbox style.
Definition: fabui.h:1733
Contains the slider style.
Definition: fabui.h:2396
TerminalTransition
This enum defines terminal transition effect.
Definition: terminal.h:745
This file contains fabgl::Scene definition.
This file contains fabgl::BitmappedDisplayController definition.
Sets or gets text edit style.
Definition: fabui.h:1279
Contains the paintbox style.
Definition: fabui.h:1626
Color
This enum defines named colors.
This file contains fabgl::Terminal definition.
CharStyle
This enum defines a character style.
Definition: terminal.h:731
This file contains fabgl::VGAController definition.
A panel is used to contain and to group some controls.
Definition: fabui.h:1584
Represents a checkbox or a radiobutton.
Definition: fabui.h:2307
VirtualKey
Represents each possible real or derived (SHIFT + real) key.
Definition: fabutils.h:951
This file contains fabgl::VGATextController definition.
Describes mouse movement and buttons status.
Definition: mouse.h:51
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:934
uiCheckBoxKind
Specifies the combobox behaviour.
Definition: fabui.h:2295
Scene is an abstract class useful to encapsulate functionalities of a scene (sprites, collision detector and updates).
Definition: scene.h:51
PS2DeviceType
Represents the type of device attached to PS/2 port.
Definition: ps2device.h:48
Contains the scrollable control style.
Definition: fabui.h:970
Represents a button control. A button can have text and optionally a bitmap.
Definition: fabui.h:1175
uiButtonKind
Specifies the button kind.
Definition: fabui.h:1168
VGAScanStart
Represents one of the four blocks of horizontal or vertical line.
Contains the label style.
Definition: fabui.h:1418
Describes mouse absolute position, scroll wheel delta and buttons status.
Definition: fabutils.h:242
PixelFormat
This enum defines a pixel format.
This file contains fabgl::VGA2Controller definition.
Represents the coordinate of a point.
Definition: fabutils.h:158
Represents an image.
Contains the window style.
Definition: fabui.h:339
This is a combination of a color listbox and a colorbox.
Definition: fabui.h:2231
This file contains some utility classes and functions.
TerminalController allows direct controlling of the Terminal object without using escape sequences...
Definition: terminal.h:1711
Sine waveform generator.
Definition: soundgen.h:173
LineEditorSpecialChar
Special character specified in on values from LineEditor::onSpecialChar delegate. ...
Definition: terminal.h:1913
Contains the button style.
Definition: fabui.h:1152
LineEditor is a single-line / multiple-rows editor which uses the Terminal object as input and output...
Definition: terminal.h:1940
This file contains fabgl::VGA8Controller definition.
uiMessageBoxResult
Return values from uiApp.messageBox() method.
Definition: fabui.h:2522
Specifies various glyph painting options.
Represents a rectangle.
Definition: fabutils.h:191
This file contains fabgl::I2C definition.
SoundGenerator handles audio output.
Definition: soundgen.h:337
Emulates VIC6561 (VIC20) noise generator.
Definition: soundgen.h:271
Represents a text edit control.
Definition: fabui.h:1308
CursorName
This enum defines a set of predefined mouse cursors.
KbdMode
This enum defines how handle keyboard virtual keys.
Definition: ps2controller.h:57
Base class of all UI elements like windows and controls.
Definition: fabui.h:248
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:1632
Represents a bidimensional size.
Definition: fabutils.h:176
Contains the listbox style.
Definition: fabui.h:2037
TermType
This enum defines supported terminals.
Definition: terminfo.h:103
A label is a static text UI element.
Definition: fabui.h:1426
Contains the image style.
Definition: fabui.h:1508
Sawtooth waveform generator.
Definition: soundgen.h:232
Represents a 6 bit RGB color.
Shows generic a list of selectable items.
Definition: fabui.h:1746
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:2406
PS2Preset
This enum defines what is connected to PS/2 ports.
Definition: ps2controller.h:47
This is a combination of a listbox and a single-line editable textbox.
Definition: fabui.h:2153
Shows and navigates Virtual Filesystem content.
Definition: fabui.h:1895
This file contains fabgl::SSD1306Controller definition.
Contains the checkbox style.
Definition: fabui.h:2284
Square waveform generator.
Definition: soundgen.h:190
Contains the panel style.
Definition: fabui.h:1578
uiMessageBoxIcon
Icon displayed by the uiApp.messageBox() method.
Definition: fabui.h:2533
Image control to display a static bitmap.
Definition: fabui.h:1514
FileBrowser allows basic file system operations (dir, mkdir, remove and rename)
Definition: fabutils.h:469