2
/**************************************************************************
4
* Regina - A Normal Surface Theory Calculator *
7
* Copyright (c) 1999-2014, Ben Burton *
8
* For further details contact Ben Burton (bab@debian.org). *
10
* This program is free software; you can redistribute it and/or *
11
* modify it under the terms of the GNU General Public License as *
12
* published by the Free Software Foundation; either version 2 of the *
13
* License, or (at your option) any later version. *
15
* As an exception, when this program is distributed through (i) the *
16
* App Store by Apple Inc.; (ii) the Mac App Store by Apple Inc.; or *
17
* (iii) Google Play by Google Inc., then that store may impose any *
18
* digital rights management, device limits and/or redistribution *
19
* restrictions that are required by its terms of service. *
21
* This program is distributed in the hope that it will be useful, but *
22
* WITHOUT ANY WARRANTY; without even the implied warranty of *
23
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
24
* General Public License for more details. *
26
* You should have received a copy of the GNU General Public *
27
* License along with this program; if not, write to the Free *
28
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
29
* MA 02110-1301, USA. *
31
**************************************************************************/
35
/*! \file nsnappeaui.h
36
* \brief Provides an interface for viewing SnapPea triangulations.
39
#ifndef __NSNAPPEAUI_H
40
#define __NSNAPPEAUI_H
42
#include "../packettabui.h"
45
class NSnapPeaAlgebraUI;
46
class NSnapPeaGluingsUI;
47
class NSnapPeaShapesUI;
49
class PacketEditIface;
53
class NSnapPeaTriangulation;
57
* A packet interface for viewing 3-manifold triangulations.
59
class NSnapPeaUI : public PacketTabbedUI {
66
NSnapPeaShapesUI* shapes;
67
NSnapPeaGluingsUI* gluings;
68
NTriSkeletonUI* skeleton;
69
NSnapPeaAlgebraUI* algebra;
71
PacketEditIface* editIface;
75
* Constructor and destructor.
77
NSnapPeaUI(regina::NSnapPeaTriangulation* packet,
78
PacketPane* newEnclosingPane);
84
PacketEditIface* getEditIface();
85
const QLinkedList<QAction*>& getPacketTypeActions();
86
QString getPacketMenuText() const;
90
* A header for the SnapPea triangulation viewer.
92
class NSnapPeaHeaderUI : public PacketViewerTab {
97
regina::NSnapPeaTriangulation* tri;
100
* Internal components
110
NSnapPeaHeaderUI(regina::NSnapPeaTriangulation* packet,
111
PacketTabbedUI* useParentUI);
116
QToolBar* getToolBar();
119
* PacketViewerTab overrides.
121
regina::NPacket* getPacket();
122
QWidget* getInterface();
126
* Allow other UIs to access the summary information.
128
static QString summaryInfo(regina::NSnapPeaTriangulation* tri);
131
inline PacketEditIface* NSnapPeaUI::getEditIface() {
135
inline QToolBar* NSnapPeaHeaderUI::getToolBar() {