File: xxXTideRoot.hh

package info (click to toggle)
xtide 2.6.4-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 2,996 kB
  • ctags: 2,617
  • sloc: cpp: 26,266; ansic: 8,105; makefile: 152; yacc: 113; sh: 54; lex: 54
file content (83 lines) | stat: -rw-r--r-- 3,027 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
81
82
83
// $Id: xxXTideRoot.hh,v 1.3 2003/01/17 15:41:10 flaterco Exp $
/*  xxXTideRoot  XTide "root" window (control panel, top-level logic)

    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 2 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, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

class xxXTideRoot {

  friend void RootCloseHandler (Widget w, XtPointer client_data,
    XEvent *event, Boolean *continue_dispatch);

public:
  xxXTideRoot (int in_argc, char **in_argv);
  void mainloop();
  ~xxXTideRoot ();

  void newHelpBox (const Dstr &help);
  void newGraph (Station *s, Timestamp t);
  void newGraph (StationRef *sr); // Default to now
  void newText (Station *s, Timestamp t);
  void newRaw (Station *s, Timestamp t);
  void newMediumRare (Station *s, Timestamp t);
  void newClock (Station *s, int nobuttonsflag = 1);

  // newChooser follows user preference, while newMap and newGlobe
  // are specific.
  // The grabkind here is for the title screen if one is needed.
  void newChooser (XtGrabKind in_grabkind = XtGrabExclusive);
  void newMap (XtGrabKind in_grabkind = XtGrabExclusive);
  void newGlobe (XtGrabKind in_grabkind = XtGrabExclusive);

  // Start clock, graph, or plain windows as requested on command line.
  void newWindows (CommandLineSettings *cls);

  // These are only used in xxWindow.
  // Increment count of pop-ups.
  void dup(xxWindow *child);
  // Decrement count of pop-ups, and exit when zero.
  void release (xxWindow *child);

  struct cnode {
    xxWindow *child;
    struct cnode *next;
  };

  void show();          // Make control panel visible.
  void hide();          // Make control panel invisible.
  void global_redraw(); // Redraw all windows.
  void apply (int saveflag = 0);

protected:
  void dup();
  void release(int is_title_screen);
  void release (xxContext *child, int is_title_screen);
  void addTwoButtons();
  xxXTideRoot::cnode *children;
  unsigned numpopups;
  xxContext *mycontext, *form, *viewport, *viewbox, *dismissbutton,
    *helpbutton, *label, *applybutton, *savebutton;
  xxMultiChoice *elchoice, *nfchoice, *nschoice, *tlchoice, *zchoice,
    *uchoice, *glchoice, *fechoice, *inchoice;
  xxHorizDialog *colordiags[numcolors], *dfdiag, *hfdiag, *tfdiag;
  xxUnsignedChooser *gwchoice, *ghchoice, *cwchoice, *twchoice,
    *thchoice;
  xxHorizDialog *gadiag, *lwdiag;
  xxTideContext *myTideContext;
  UserDefaults *ud;
  int sancheckdouble (char *d);
};