File: aoqplotwindow.h

package info (click to toggle)
aoflagger 3.4.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,688 kB
  • sloc: cpp: 83,116; python: 10,187; sh: 260; makefile: 178
file content (80 lines) | stat: -rw-r--r-- 2,257 bytes parent folder | download
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
#ifndef AOQPLOT_WINDOW_H
#define AOQPLOT_WINDOW_H

#include <memory>
#include <string>
#include <vector>

#include <gtkmm/application.h>
#include <gtkmm/box.h>
#include <gtkmm/notebook.h>
#include <gtkmm/statusbar.h>
#include <gtkmm/toolbar.h>
#include <gtkmm/menu.h>
#include <gtkmm/menutoolbutton.h>
#include <gtkmm/radiomenuitem.h>
#include <gtkmm/radiotoolbutton.h>
#include <gtkmm/window.h>

#include "../quality/qualitytablesformatter.h"

#include "plotsheet.h"
#include "openoptionswindow.h"

#include "../structures/antennainfo.h"

#include "controllers/aoqpagecontroller.h"

class AOQPlotWindow : public Gtk::Window {
 public:
  explicit AOQPlotWindow(class AOQPlotController* controller);

  void Open(const std::vector<std::string>& files);
  void Open(const std::string& file) {
    std::vector<std::string> files(1);
    files[0] = file;
    Open(files);
  }
  void SetStatus(const std::string& newStatus) { onStatusChange(newStatus); }

  void ShowError(const std::string& message);

  void SetShowHistograms(bool show) { _histogramMI.set_sensitive(show); }

 private:
  void onOpenOptionsSelected(const std::vector<std::string>& files,
                             bool downsampleTime, bool downsampleFreq,
                             size_t timeSize, size_t freqSize,
                             bool correctHistograms);
  void close();
  void readDistributedObservation(const std::string& filename,
                                  bool correctHistograms);
  void readMetaInfoFromMS(const std::string& filename);
  void readAndCombine(const std::string& filename);

  void onHide() {
    // Gtk::Application::quit();
  }
  void onStatusChange(const std::string& newStatus);

  void onChangeSheet();

  class AOQPlotController* _controller;
  int _activeSheetIndex;
  Gtk::Toolbar _toolbar;
  Gtk::MenuToolButton _pageMenuButton;
  Gtk::Menu _pageMenu;
  Gtk::RadioButtonGroup _pageGroup, _statisticsGroup;
  Gtk::RadioMenuItem _baselineMI, _antennaeMI, _bLengthMI, _timeMI,
      _frequencyMI, _timeFrequencyMI, _summaryMI, _histogramMI;

  Gtk::VBox _vBox;
  Gtk::Statusbar _statusBar;

  std::unique_ptr<AOQPageController> _pageController;
  std::unique_ptr<PlotSheet> _activeSheet;

  OpenOptionsWindow _openOptionsWindow;
};

#endif