File: menu.cpp

package info (click to toggle)
tuiwidgets 0.2-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 14,940 kB
  • sloc: cpp: 54,583; python: 495; sh: 83; makefile: 8
file content (119 lines) | stat: -rw-r--r-- 3,629 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include "tpi-image-builder.h"

#include <QObject>
#include <QRect>
#include <QVector>

#include <Tui/ZCommandNotifier.h>
#include <Tui/ZMenu.h>
#include <Tui/ZMenuItem.h>
#include <Tui/ZMenubar.h>
#include <Tui/ZRoot.h>
#include <Tui/ZTerminal.h>
#include <Tui/ZTest.h>
#include <Tui/ZWindow.h>

void menubar() {
    Tui::ZTerminal terminal(Tui::ZTerminal::OffScreen(40, 40));

    Tui::ZRoot root;
    terminal.setMainWidget(&root);
    root.setGeometry({0, 0, 80, 24});
    root.setFocus();

    QVector<Tui::ZMenuItem> items =  { { "<m>F</m>ile", "", {}, {
                                           { "<m>N</m>ew", "", "NewFile", {}},
                                           { "<m>O</m>pen", "", "OpenFile", {}},
                                           { "<m>S</m>ave", "", "SaveFile", {}},
                                           { },
                                           { "<m>Q</m>uit", "Ctrl-q", "Quit", {}},
                                           } },
                                       { "<m>H</m>elp", "", {}, {
                                           { "<m>A</m>bout", "", "AboutDialog", {}}
                                      }}};

    // Default
    {
        Tui::ZMenubar menubar(&root);
        menubar.setGeometry({1, 1, 24, 1});
        menubar.setItems(items);
        export_tpi(&terminal, "menu", 0, 0, 26, 10);
    }

    // disabled
    {
        Tui::ZMenubar menubar(&root);
        menubar.setGeometry({1, 1, 24, 1});
        menubar.setItems(items);
        menubar.setEnabled(false);
        export_tpi(&terminal, "menu-disabled", 0, 0, 26, 10);
    }

    // submenu Default
    {
        Tui::ZMenubar menubar(&root);
        menubar.setGeometry({1, 1, 24, 1});
        menubar.setItems(items);

        QObject::connect(new Tui::ZCommandNotifier("NewFile", &root), &Tui::ZCommandNotifier::activated, [&] {
        });

        QObject::connect(new Tui::ZCommandNotifier("OpenFile", &root), &Tui::ZCommandNotifier::activated, [&] {
        });

        QObject::connect(new Tui::ZCommandNotifier("Quit", &root), &Tui::ZCommandNotifier::activated, [&] {
        });

        Tui::ZTest::sendKey(&terminal, Tui::Key_F10, {});

        export_tpi(&terminal, "menu-submenu", 0, 0, 26, 10);
    }

}

void popupmenu() {
    Tui::ZTerminal terminal (Tui::ZTerminal::OffScreen(40, 40));

    Tui::ZRoot root;
    terminal.setMainWidget(&root);
    root.setGeometry({0, 0, 40, 40});
    root.setFocus();

    Tui::ZWindow win(&root);
    win.setGeometry({0, 0, 40, 40});
    win.setFocus();
    win.setBorderEdges({});

    QVector<Tui::ZMenuItem> items =  { {"Kilo", "", "kilo", {}},
                                       {"Mega", "", "mega", {}},
                                       {"<m>G</m>iga", "", "giga", {}},
                                       {"Tera", "", "tera", {}},
                                       {},
                                       {"Peta", "", "peta", {}},
                                       {"Exa", "", "exa", {}},
                                       {"Zetta", "", "zetta", {}},
                                       {"Yotta", "", "yotta", {}}
                                     };


    // Default
    {
        root.ensureCommandManager();

        new Tui::ZCommandNotifier("mega", &root);
        new Tui::ZCommandNotifier("giga", &root);
        new Tui::ZCommandNotifier("tera", &root);

        Tui::ZMenu *menu = new Tui::ZMenu(&root);
        menu->setItems(items);
        menu->popup({1, 1});

        export_tpi(&terminal, "menue-popupmenu", 0, 0, 22, 13);
    }
}

void menu() {
    menubar();
    popupmenu();
}