File: xxTextMode.hh

package info (click to toggle)
xtide 2.13.2-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, stretch
  • size: 3,348 kB
  • ctags: 2,350
  • sloc: cpp: 23,919; sh: 1,319; makefile: 224; yacc: 114; lex: 58; xml: 2
file content (73 lines) | stat: -rw-r--r-- 2,413 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
// $Id: xxTextMode.hh 3959 2011-07-31 18:40:25Z flaterco $

/*  xxTextMode  Raw/medium/plain modes, in a window.

    Copyright (C) 1998  David Flater.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

class xxTextMode: public xxPredictionWindow {
public:

  // Legal modes are p (plain), m (medium rare), or r (raw).
  xxTextMode (const xxWidget &shell, Station *station, Mode::Mode mode);
  xxTextMode (const xxWidget &shell,
	      Station *station,
	      Mode::Mode mode,
              Timestamp startTime);
  ~xxTextMode();

  void forward();
  void backward();
  void mouseButton (const XButtonEvent *xbe);
  void resize (Dimension newHeight);
  void save ();
  void save (const Dstr &filename, Format::Format form); // plain
  void save (const Dstr &filename,  // rare
	     Timestamp startTime,
	     Timestamp endTime);
  void help();

  void globalRedraw();                // See xxRedrawable.

protected:

  Mode::Mode _mode;
  Dimension origHeight, origLabelHeight, height;
  unsigned lines;
  std::auto_ptr<xxWidget> label, nameLabel, forwardButton, backwardButton;
  Timestamp lastLineTime; // Timestamp from the last event shown.
  TideEventsOrganizer organizer;

  void construct();       // Common code from multiple constructors.
  const bool isRare() const;
  void draw();
  void redraw();

  // Extend the organizer.
  // Precondition:  organizer is not empty.
  // Postcondition:  organizer will have at least one new event in the
  // indicated direction.
  void extendRange (Station::Direction direction);

  // Standard delta for predictTideEvents and extendRange, plain mode.
  // Varies depending on lines but it has a minimum.
  const Interval standardDeltaPlain();

  // Analogous figure (# events) for rare modes.
  const unsigned standardDeltaRare();
};

// Cleanup2006 Done