Vivoe Lite 0.5.0
Lightweight GVA like HMI for military displays.
Loading...
Searching...
No Matches
events_gva.h
Go to the documentation of this file.
1//
2// Copyright (c) 2023, DefenceX PTY LTD
3//
4// This file is part of the VivoeX project developed by DefenceX.
5//
6// Licensed under the Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
7// License. See the LICENSE file in the project root for full license details.
8//
9//
12
13#ifndef HMICORE_EVENTS_GVA_H_
14#define HMICORE_EVENTS_GVA_H_
15
16#include <gtk/gtk.h>
17
18#include <vector>
19
20#include "hmicore/gva.h"
23
24namespace gva {
25
27class EventsGva {
28 public:
29 //
34 EventsGva(gtkType *window, TouchGva *touch);
35
42 GvaStatusTypes NextGvaEvent(EventGvaType *event); // Use for GTK/DDS/Touch events
43
52 static gboolean ButtonPressEventCb(GtkWidget *widget, GdkEventButton *event, gpointer data);
53
62 static gboolean ButtonReleaseEventCb(GtkWidget *widget, GdkEventButton *event, gpointer data);
63
73 static gboolean KeyPressEventCb(GtkWidget *widget, GdkEventKey *event);
74
84 static gboolean KeyReleaseEventCb(GtkWidget *widget, GdkEventKey *event);
85
91 gtkType *GetWindow() { return window_; }
92
94 static std::vector<EventGvaType> eventqueue_;
95
100 static void CreateRefreshEvent();
101
102 private:
109 static GvaKeyEnum ProcessFunctionEvents(unsigned int key);
110
117 static GvaKeyEnum ProcessFunctionKeyEvents(unsigned int key);
118
127 static gboolean CreateKeyEvent(GtkWidget *Widget, GdkEventKey *event, EventEnumType type);
128 gtkType *window_;
129 static uint32_t previous_key_;
130 static TouchGva *touch_;
131};
132
133}; // namespace gva
134
135#endif // HMICORE_EVENTS_GVA_H_
Class definition of the EventGvaType.
Definition gva.h:610
Class defining the events.
Definition events_gva.h:27
static void CreateRefreshEvent()
Create a refresh event because a widget was updated and queue it.
Definition events_gva.cc:90
GvaStatusTypes NextGvaEvent(EventGvaType *event)
Get the next event from the queue.
Definition events_gva.cc:291
static gboolean ButtonReleaseEventCb(GtkWidget *widget, GdkEventButton *event, gpointer data)
A button press event or touch label event, key released.
Definition events_gva.cc:56
static std::vector< EventGvaType > eventqueue_
The event queue.
Definition events_gva.h:94
static gboolean KeyReleaseEventCb(GtkWidget *widget, GdkEventKey *event)
Handle button press events by either Drawing a rectangle or clearing the surface, depending on which ...
Definition events_gva.cc:86
static gboolean KeyPressEventCb(GtkWidget *widget, GdkEventKey *event)
Handle button press events by either Drawing a rectangle or clearing the surface, depending on which ...
Definition events_gva.cc:82
static gboolean ButtonPressEventCb(GtkWidget *widget, GdkEventButton *event, gpointer data)
Process a GTK button press event.
Definition events_gva.cc:36
gtkType * GetWindow()
Get the Window object.
Definition events_gva.h:91
Class defining the touch screen events.
Definition touch_gva.h:71
EventEnumType
Enum for the widget types.
Definition gva.h:188
GvaStatusTypes
HMI erro types, can be extended if needed.
Definition gva.h:186
GvaKeyEnum
These are physical GVA keys around the display.
Definition gva.h:67
The GVA application type and associated data.
Definition gva_application_types.h:19