Q3270
A Qt-based 3270 Terminal Emulator
Loading...
Searching...
No Matches
StatusBar.h
1/*
2 * Q3270 Terminal Emulator
3 *
4 * Copyright (c) 2020–2025 Andy Styles
5 * SPDX-License-Identifier: BSD-3-Clause
6 *
7 * This file is part of Q3270.
8 * See the LICENSE file in the project root for full license information.
9 */
10
11#ifndef STATUSBAR_H
12#define STATUSBAR_H
13
14#include <QGraphicsItem>
15#include <QFont>
16#include <QFontMetrics>
17
18#include "Q3270.h"
19#include "ClickableSvgItem.h"
20
21#define FONT_OFFSET -3
22
23class StatusBar : public QGraphicsObject
24{
25 Q_OBJECT
26
27 public:
28
29 StatusBar(int screen_x, int screen_y);
30
31 void setStatusInsert(Q3270::InsertOverType insert);
32 void setStatusLock(Q3270::Indicators status);
33
34 void setSize(const int x, const int y);
35
36 QRectF boundingRect() const override;
37 void paint(QPainter *p, const QStyleOptionGraphicsItem *i, QWidget *w) override;
38
39 public slots:
40
41 void setEncrypted(Q3270::Encryption e);
42 void cursorMoved(int x, int y);
43
44 private:
45
46 int screen_x;
47 int screen_y;
48
49 Q3270::InsertOverType insert;
50
51 int cursor_x;
52 int cursor_y;
53
54 qreal iconPosY;
55 qreal iconScale;
56
57 QFont statusBarText;
58 QFontMetrics fm;
59
60 QGraphicsSimpleTextItem statusConnect;
61 QGraphicsSimpleTextItem statusCursor;
62 QGraphicsSimpleTextItem statusInsert;
63
64 // Padlocks
65 ClickableSvgItem *locktick;
66 ClickableSvgItem *unlock;
67 ClickableSvgItem *lock;
68
69 // Clock
70 QGraphicsSvgItem *clock;
71
72 QGraphicsSimpleTextItem xText;
73 QGraphicsSimpleTextItem xSystemText;
74
75 // Status bar thin line
76 QGraphicsLineItem blueLine;
77};
78
79#endif // STATUSBAR_H
Definition ClickableSvgItem.h:17
Definition StatusBar.h:24
QRectF boundingRect() const override
StatusBar::boundingRect.
Definition StatusBar.cpp:154
void setEncrypted(Q3270::Encryption e)
StatusBar::setEncrypted - change encryption status bar icon.
Definition StatusBar.cpp:220
void setStatusLock(Q3270::Indicators status)
StatusBar::setStatusXSystem - set XSystem text.
Definition StatusBar.cpp:177
void cursorMoved(int x, int y)
StatusBar::cursorMoved - refresh the cursor position.
Definition StatusBar.cpp:166
void setStatusInsert(Q3270::InsertOverType insert)
StatusBar::setStatusInsert - the Insert mode text.
Definition StatusBar.cpp:203