Files
test/source/blender/editors/interface/interface_icons_event.cc
Harley Acheson 48403607dd UI: Status Bar Event Icons for Trackpad Gestures
Adding three icons to represent panning, rotate, and zoom gestures
and using them for status bar event icons for
GHOST_kTrackpadEventScroll, GHOST_kTrackpadEventRotate, and
GHOST_kTrackpadEventMagnify.

Pull Request: https://projects.blender.org/blender/blender/pulls/138569
2025-05-07 23:57:03 +02:00

574 lines
21 KiB
C++

/* SPDX-FileCopyrightText: 2023 Blender Authors
*
* SPDX-License-Identifier: GPL-2.0-or-later */
/** \file
* \ingroup edinterface
*
* A special set of icons to represent input devices,
* this is a mix of text (via fonts) and a handful of custom glyphs for special keys.
*
* Event codes are used as identifiers.
*/
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLF_api.hh"
#include "BLT_translation.hh"
#include "UI_interface.hh"
#include "interface_intern.hh"
static int inverted_icon(int icon_id)
{
switch (icon_id) {
case ICON_KEY_BACKSPACE:
return ICON_KEY_BACKSPACE_FILLED;
case ICON_KEY_COMMAND:
return ICON_KEY_COMMAND_FILLED;
case ICON_KEY_CONTROL:
return ICON_KEY_CONTROL_FILLED;
case ICON_KEY_EMPTY1:
return ICON_KEY_EMPTY1_FILLED;
case ICON_KEY_EMPTY2:
return ICON_KEY_EMPTY2_FILLED;
case ICON_KEY_EMPTY3:
return ICON_KEY_EMPTY3_FILLED;
case ICON_KEY_MENU:
return ICON_KEY_MENU_FILLED;
case ICON_KEY_OPTION:
return ICON_KEY_OPTION_FILLED;
case ICON_KEY_RETURN:
return ICON_KEY_RETURN_FILLED;
case ICON_KEY_RING:
return ICON_KEY_RING_FILLED;
case ICON_KEY_SHIFT:
return ICON_KEY_SHIFT_FILLED;
case ICON_KEY_TAB:
return ICON_KEY_TAB_FILLED;
case ICON_KEY_WINDOWS:
return ICON_KEY_WINDOWS_FILLED;
default:
return icon_id;
}
}
static void icon_draw_icon(const rctf *rect,
const int icon_id,
const float aspect,
const float alpha,
const bool inverted)
{
float color[4];
UI_GetThemeColor4fv(TH_TEXT, color);
if (alpha < 1.0f) {
color[3] *= alpha;
}
BLF_draw_svg_icon(uint(inverted ? inverted_icon(icon_id) : icon_id),
rect->xmin,
rect->ymin,
float(ICON_DEFAULT_HEIGHT) / aspect,
color,
0.0f);
}
static void icon_draw_rect_input_text(const rctf *rect,
const char *str,
const float aspect,
const float alpha,
const bool inverted,
const int icon_bg = ICON_KEY_EMPTY1)
{
icon_draw_icon(rect, icon_bg, aspect, alpha, inverted);
/* Margin to allow room between outer icon and text. */
const float margin = BLI_rctf_size_y(rect) * 0.12f;
const float available_height = BLI_rctf_size_y(rect) - (2.0f * margin);
const float available_width = BLI_rctf_size_x(rect) - (2.0f * margin);
const int font_id = BLF_default();
float color[4];
UI_GetThemeColor4fv(inverted ? TH_BACK : TH_TEXT, color);
if (alpha < 1.0f) {
color[3] *= alpha;
}
BLF_color4fv(font_id, color);
float font_size = available_height;
BLF_size(font_id, font_size);
rcti str_bounds;
BLF_boundbox(font_id, str, BLF_DRAW_STR_DUMMY_MAX, &str_bounds);
float width = float(BLI_rcti_size_x(&str_bounds));
float height = float(BLI_rcti_size_y(&str_bounds));
if (width > available_width) {
font_size *= available_width / width;
BLF_size(font_id, font_size);
BLF_boundbox(font_id, str, BLF_DRAW_STR_DUMMY_MAX, &str_bounds);
width = float(BLI_rcti_size_x(&str_bounds));
height = float(BLI_rcti_size_y(&str_bounds));
}
const float x = rect->xmin + margin + ((available_width - width) / 2.0f);
const float v_offset = ((available_height - height) / 2.0f) - str_bounds.ymin + margin;
BLF_position(font_id, x, rect->ymin + v_offset, 0.0f);
BLF_draw(font_id, str, BLF_DRAW_STR_DUMMY_MAX);
}
static void icon_draw_rect_input_icon(const rctf *rect,
const int icon,
const float aspect,
const float alpha,
const bool inverted,
const int icon_bg = ICON_KEY_EMPTY1)
{
icon_draw_icon(rect, icon_bg, aspect, alpha, inverted);
icon_draw_icon(rect, icon, aspect, alpha, false);
}
float ui_event_icon_offset(const int icon_id)
{
const enum {
UNIX,
MACOS,
MSWIN,
} platform =
#if defined(__APPLE__)
MACOS
#elif defined(_WIN32)
MSWIN
#else
UNIX
#endif
;
if (ELEM(icon_id,
ICON_EVENT_ESC,
ICON_EVENT_DEL,
ICON_EVENT_HOME,
ICON_EVENT_END,
ICON_EVENT_PAGEUP,
ICON_EVENT_PAGEDOWN,
ICON_EVENT_BACKSPACE,
ICON_EVENT_PAUSE,
ICON_EVENT_INSERT,
ICON_EVENT_APP))
{
return 1.07f;
}
if (icon_id >= ICON_EVENT_PAD0 && icon_id <= ICON_EVENT_PADPERIOD) {
return 1.07f;
}
if (icon_id >= ICON_EVENT_F10 && icon_id <= ICON_EVENT_F24) {
return 1.07f;
}
if (platform != MACOS && ELEM(icon_id, ICON_EVENT_CTRL, ICON_EVENT_ALT, ICON_EVENT_OS)) {
return 1.07f;
}
if (icon_id == ICON_EVENT_OS && platform != MACOS && platform != MSWIN) {
return 1.07f;
}
if (icon_id == ICON_EVENT_SPACEKEY) {
return 2.42f;
}
return -0.4f;
}
void icon_draw_rect_input(const float x,
const float y,
const int w,
const int h,
const int icon_id,
const float aspect,
const float alpha,
const bool inverted)
{
rctf rect{};
rect.xmin = int(x);
rect.xmax = int(x + w);
rect.ymin = int(y);
rect.ymax = int(y + h);
const enum {
UNIX,
MACOS,
MSWIN,
} platform =
#if defined(__APPLE__)
MACOS
#elif defined(_WIN32)
MSWIN
#else
UNIX
#endif
;
const float offset = ui_event_icon_offset(icon_id);
if (offset >= 2.0f) {
rect.xmax = rect.xmin + BLI_rctf_size_x(&rect) * 2.0f;
}
else if (offset >= 1.0f) {
rect.xmax = rect.xmin + BLI_rctf_size_x(&rect) * 1.5f;
}
if ((icon_id >= ICON_EVENT_A) && (icon_id <= ICON_EVENT_Z)) {
const char str[2] = {char('A' + (icon_id - ICON_EVENT_A)), '\0'};
icon_draw_rect_input_text(&rect, str, aspect, alpha, inverted);
}
else if ((icon_id >= ICON_EVENT_ZEROKEY) && (icon_id <= ICON_EVENT_NINEKEY)) {
const char str[2] = {char('0' + (icon_id - ICON_EVENT_ZEROKEY)), '\0'};
icon_draw_rect_input_text(&rect, str, aspect, alpha, inverted);
}
else if ((icon_id >= ICON_EVENT_F1) && (icon_id <= ICON_EVENT_F24)) {
char str[4];
SNPRINTF(str, "F%d", 1 + (icon_id - ICON_EVENT_F1));
icon_draw_rect_input_text(&rect,
str,
aspect,
alpha,
inverted,
(icon_id >= ICON_EVENT_F10) ? ICON_KEY_EMPTY2 : ICON_KEY_EMPTY1);
}
if (icon_id == ICON_EVENT_SHIFT) {
icon_draw_icon(&rect, ICON_KEY_SHIFT, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_CTRL) {
if (platform == MACOS) {
icon_draw_icon(&rect, ICON_KEY_CONTROL, aspect, alpha, inverted);
}
else {
icon_draw_rect_input_text(&rect, IFACE_("Ctrl"), aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
}
else if (icon_id == ICON_EVENT_ALT) {
if (platform == MACOS) {
icon_draw_icon(&rect, ICON_KEY_OPTION, aspect, alpha, inverted);
}
else {
icon_draw_rect_input_text(&rect, IFACE_("Alt"), aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
}
else if (icon_id == ICON_EVENT_OS) {
if (platform == MACOS) {
icon_draw_icon(&rect, ICON_KEY_COMMAND, aspect, alpha, inverted);
}
else if (platform == MSWIN) {
icon_draw_icon(&rect, ICON_KEY_WINDOWS, aspect, alpha, inverted);
}
else {
icon_draw_rect_input_text(&rect, IFACE_("OS"), aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
}
else if (icon_id == ICON_EVENT_HYPER) {
icon_draw_rect_input_text(&rect, IFACE_("Hyp"), aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_DEL) {
icon_draw_rect_input_text(&rect, IFACE_("Del"), aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_TAB) {
icon_draw_icon(&rect, ICON_KEY_TAB, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_HOME) {
icon_draw_rect_input_text(&rect,
CTX_IFACE_(BLT_I18NCONTEXT_UI_EVENTS, "Home"),
aspect,
alpha,
inverted,
ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_END) {
icon_draw_rect_input_text(&rect, IFACE_("End"), aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_RETURN) {
icon_draw_icon(&rect, ICON_KEY_RETURN, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_ESC) {
icon_draw_rect_input_text(&rect, IFACE_("Esc"), aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_PAGEUP) {
icon_draw_rect_input_text(
&rect, "Pg" BLI_STR_UTF8_UPWARDS_ARROW, aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_PAGEDOWN) {
icon_draw_rect_input_text(
&rect, "Pg" BLI_STR_UTF8_DOWNWARDS_ARROW, aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_LEFT_ARROW) {
icon_draw_rect_input_text(&rect, BLI_STR_UTF8_LEFTWARDS_ARROW, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_UP_ARROW) {
icon_draw_rect_input_text(&rect, BLI_STR_UTF8_UPWARDS_ARROW, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_RIGHT_ARROW) {
icon_draw_rect_input_text(&rect, BLI_STR_UTF8_RIGHTWARDS_ARROW, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_DOWN_ARROW) {
icon_draw_rect_input_text(&rect, BLI_STR_UTF8_DOWNWARDS_ARROW, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_SPACEKEY) {
icon_draw_rect_input_text(&rect,
CTX_IFACE_(BLT_I18NCONTEXT_UI_EVENTS, "Space"),
aspect,
alpha,
inverted,
ICON_KEY_EMPTY3);
}
else if (icon_id == ICON_EVENT_MOUSE_4) {
icon_draw_rect_input_text(
&rect, BLI_STR_UTF8_BLACK_VERTICAL_ELLIPSE "4", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_MOUSE_5) {
icon_draw_rect_input_text(
&rect, BLI_STR_UTF8_BLACK_VERTICAL_ELLIPSE "5", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_MOUSE_6) {
icon_draw_rect_input_text(
&rect, BLI_STR_UTF8_BLACK_VERTICAL_ELLIPSE "6", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_MOUSE_7) {
icon_draw_rect_input_text(
&rect, BLI_STR_UTF8_BLACK_VERTICAL_ELLIPSE "7", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_TABLET_STYLUS) {
icon_draw_rect_input_text(&rect, BLI_STR_UTF8_LOWER_RIGHT_PENCIL, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_TABLET_ERASER) {
icon_draw_rect_input_text(&rect, BLI_STR_UTF8_UPPER_RIGHT_PENCIL, aspect, alpha, inverted);
}
else if ((icon_id >= ICON_EVENT_PAD0) && (icon_id <= ICON_EVENT_PAD9)) {
char str[5];
SNPRINTF(
str, "%s%i", BLI_STR_UTF8_SQUARE_WITH_ORTHOGONAL_CROSSHATCH, icon_id - ICON_EVENT_PAD0);
icon_draw_rect_input_text(&rect, str, aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_PADASTER) {
icon_draw_rect_input_text(&rect,
BLI_STR_UTF8_SQUARE_WITH_ORTHOGONAL_CROSSHATCH "6",
aspect,
alpha,
inverted,
ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_PADSLASH) {
icon_draw_rect_input_text(&rect,
BLI_STR_UTF8_SQUARE_WITH_ORTHOGONAL_CROSSHATCH "/",
aspect,
alpha,
inverted,
ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_PADMINUS) {
icon_draw_rect_input_text(&rect,
BLI_STR_UTF8_SQUARE_WITH_ORTHOGONAL_CROSSHATCH "-",
aspect,
alpha,
inverted,
ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_PADENTER) {
icon_draw_rect_input_text(
&rect,
BLI_STR_UTF8_SQUARE_WITH_ORTHOGONAL_CROSSHATCH BLI_STR_UTF8_RETURN_SYMBOL,
aspect,
alpha,
inverted,
ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_PADPLUS) {
icon_draw_rect_input_text(&rect,
BLI_STR_UTF8_SQUARE_WITH_ORTHOGONAL_CROSSHATCH "+",
aspect,
alpha,
inverted,
ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_PADPERIOD) {
icon_draw_rect_input_text(&rect,
BLI_STR_UTF8_SQUARE_WITH_ORTHOGONAL_CROSSHATCH ".",
aspect,
alpha,
inverted,
ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_PAUSE) {
icon_draw_rect_input_text(&rect, IFACE_("Pause"), aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_INSERT) {
icon_draw_rect_input_text(&rect, IFACE_("Insert"), aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_UNKNOWN) {
icon_draw_rect_input_text(&rect, " ", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_GRLESS) {
icon_draw_rect_input_text(
&rect, BLI_STR_UTF8_GREATER_THAN_OR_LESS_THAN, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_MEDIAPLAY) {
icon_draw_rect_input_text(&rect,
BLI_STR_UTF8_BLACK_RIGHT_POINTING_TRIANGLE_WITH_DOUBLE_VERTICAL_BAR,
aspect,
alpha,
inverted);
}
else if (icon_id == ICON_EVENT_MEDIASTOP) {
icon_draw_rect_input_text(&rect, BLI_STR_UTF8_BLACK_SQUARE_FOR_STOP, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_MEDIAFIRST) {
icon_draw_rect_input_text(&rect,
BLI_STR_UTF8_BLACK_LEFT_POINTING_DOUBLE_TRIANGLE_WITH_VERTICAL_BAR,
aspect,
alpha,
inverted);
}
else if (icon_id == ICON_EVENT_MEDIALAST) {
icon_draw_rect_input_text(&rect,
BLI_STR_UTF8_BLACK_RIGHT_POINTING_DOUBLE_TRIANGLE_WITH_VERTICAL_BAR,
aspect,
alpha,
inverted);
}
else if (icon_id == ICON_EVENT_APP) {
icon_draw_rect_input_text(&rect, IFACE_("App"), aspect, alpha, inverted, ICON_KEY_EMPTY2);
}
else if (icon_id == ICON_EVENT_CAPSLOCK) {
icon_draw_rect_input_text(
&rect, BLI_STR_UTF8_UPWARDS_UP_ARROW_FROM_BAR, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_BACKSPACE) {
icon_draw_icon(&rect, ICON_KEY_BACKSPACE, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_SEMICOLON) {
icon_draw_rect_input_text(&rect, ";", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_PERIOD) {
icon_draw_rect_input_text(&rect, ".", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_COMMA) {
icon_draw_rect_input_text(&rect, ",", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_QUOTE) {
icon_draw_rect_input_text(&rect, "'", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_ACCENTGRAVE) {
icon_draw_rect_input_text(&rect, "`", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_MINUS) {
icon_draw_rect_input_text(&rect, "-", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_PLUS) {
icon_draw_rect_input_text(&rect, "+", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_SLASH) {
icon_draw_rect_input_text(&rect, "/", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_BACKSLASH) {
icon_draw_rect_input_text(&rect, "\\", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_EQUAL) {
icon_draw_rect_input_text(&rect, "=", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_LEFTBRACKET) {
icon_draw_rect_input_text(&rect, "[", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_RIGHTBRACKET) {
icon_draw_rect_input_text(&rect, "]", aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_PAD_PAN) {
icon_draw_rect_input_icon(&rect, ICON_GESTURE_PAN, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_PAD_ROTATE) {
icon_draw_rect_input_icon(&rect, ICON_GESTURE_ROTATE, aspect, alpha, inverted);
}
else if (icon_id == ICON_EVENT_PAD_ZOOM) {
icon_draw_rect_input_icon(&rect, ICON_GESTURE_ZOOM, aspect, alpha, inverted);
}
else if (icon_id >= ICON_EVENT_NDOF_BUTTON_V1 && icon_id <= ICON_EVENT_NDOF_BUTTON_MINUS) {
if (/* `(icon_id >= ICON_EVENT_NDOF_BUTTON_V1) &&` */ (icon_id <= ICON_EVENT_NDOF_BUTTON_V3)) {
char str[7];
SNPRINTF(str, "v%i", (icon_id + 1) - ICON_EVENT_NDOF_BUTTON_V1);
icon_draw_rect_input_text(&rect, str, aspect, alpha, inverted, ICON_KEY_RING);
}
if ((icon_id >= ICON_EVENT_NDOF_BUTTON_SAVE_V1) && (icon_id <= ICON_EVENT_NDOF_BUTTON_SAVE_V3))
{
char str[7];
SNPRINTF(str, "s%i", (icon_id + 1) - ICON_EVENT_NDOF_BUTTON_SAVE_V1);
icon_draw_rect_input_text(&rect, str, aspect, alpha, inverted, ICON_KEY_RING);
}
else if ((icon_id >= ICON_EVENT_NDOF_BUTTON_1) && (icon_id <= ICON_EVENT_NDOF_BUTTON_12)) {
char str[7];
SNPRINTF(str, "%i", (1 + icon_id) - ICON_EVENT_NDOF_BUTTON_1);
icon_draw_rect_input_text(&rect, str, aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_MENU) {
icon_draw_rect_input_text(&rect, "Me", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_FIT) {
icon_draw_rect_input_text(&rect, "Ft", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_TOP) {
icon_draw_rect_input_text(&rect, "Tp", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_BOTTOM) {
icon_draw_rect_input_text(&rect, "Bt", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_LEFT) {
icon_draw_rect_input_text(&rect, "Le", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_RIGHT) {
icon_draw_rect_input_text(&rect, "Ri", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_FRONT) {
icon_draw_rect_input_text(&rect, "Fr", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_BACK) {
icon_draw_rect_input_text(&rect, "Bk", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_ISO1) {
icon_draw_rect_input_text(&rect, "I1", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_ISO2) {
icon_draw_rect_input_text(&rect, "I2", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_ROLL_CW) {
icon_draw_rect_input_text(&rect, "Rl", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_ROLL_CCW) {
icon_draw_rect_input_text(&rect, "Rc", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_SPIN_CW) {
icon_draw_rect_input_text(&rect, "Sp", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_SPIN_CCW) {
icon_draw_rect_input_text(&rect, "Sc", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_TILT_CW) {
icon_draw_rect_input_text(&rect, "Ti", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_TILT_CCW) {
icon_draw_rect_input_text(&rect, "Tc", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_ROTATE) {
icon_draw_rect_input_text(&rect, "Ro", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_PANZOOM) {
icon_draw_rect_input_text(&rect, "PZ", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_DOMINANT) {
icon_draw_rect_input_text(&rect, "Dm", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_PLUS) {
icon_draw_rect_input_text(&rect, "+", aspect, alpha, inverted, ICON_KEY_RING);
}
else if (icon_id == ICON_EVENT_NDOF_BUTTON_MINUS) {
icon_draw_rect_input_text(&rect, "-", aspect, alpha, inverted, ICON_KEY_RING);
}
}
}