1 /*
2   $Id: MainScreeP.h,v 1.1.2.3 2003/01/27 01:36:10 euske Exp $
3 
4   XCruiser - a filesystem visualization utility
5   MainScreeP.h: the private header file for MainScreenWidget
6 
7   Copyright (C) 1999-2002  Yusuke Shinyama <yusuke at cs . nyu . edu>
8 
9   This program is free software; you can redistribute it and/or modify
10   it under the terms of the GNU General Public License as published by
11   the Free Software Foundation; either version 2 of the License, or
12   (at your option) any later version.
13 
14   This program is distributed in the hope that it will be useful,
15   but WITHOUT ANY WARRANTY; without even the implied warranty of
16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   GNU General Public License for more details.
18 
19   You should have received a copy of the GNU General Public License
20   along with this program; if not, write to the Free Software
21   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22 */
23 
24 /*
25  *  MainScreenP.h
26  *	Private Header File for MainScreen Widget
27  */
28 
29 #ifndef _ORAMainScreenP_h
30 #define _ORAMainScreenP_h
31 
32 #include <X11/IntrinsicP.h>
33 #include <X11/Xaw/SimpleP.h>
34 #include "xcruiser.h"
35 #include "MainScreen.h"
36 
37 /* New fields for the MainScreen widget class record */
38 typedef struct {
39     int foo;
40 } MainScreenClassPart;
41 
42 /* Full class record declaration */
43 typedef struct _MainScreenClassRec {
44     CoreClassPart core_class;
45     SimpleClassPart simple_class;
46     MainScreenClassPart mainScreen_class;
47 } MainScreenClassRec;
48 
49 typedef void (*XCruiserAction1)(MainScreenWidget, double);
50 typedef void (*XCruiserAction2)(MainScreenWidget, double, double);
51 
52 /* New fields for the MainScreen widget record */
53 typedef struct _MainScreenPart {
54     /* resources */
55     Pixel background;
56     XtTranslations translations;
57     Pixel infoColor;
58     Pixel alertColor;
59     Pixel measureColor;
60     Pixel cursorColor;
61 
62     Pixel innerRootColor;
63     PixelList* innerGalaxyColors;
64     PixelList* innerUnreadableGalaxyColors;
65     PixelList* innerPlanetColors;
66     PixelList* innerUnreadablePlanetColors;
67     PixelList* innerWormholeColors;
68     Pixel innerLabelColor;
69 
70     Pixel outerRootColor;
71     PixelList* outerGalaxyColors;
72     PixelList* outerUnreadableGalaxyColors;
73     PixelList* outerPlanetColors;
74     PixelList* outerUnreadablePlanetColors;
75     PixelList* outerWormholeColors;
76     Pixel outerLabelColor;
77 
78     XFontStruct* infoFont;
79     XFontStruct* alertFont;
80     XFontStruct* measureFont;
81     FontStructList* labelFonts;
82     Boolean show_info, show_measure, show_label;
83 
84     Boolean view_all;
85     int currentGalaxyLineWidth;
86     int cursorSize;
87     int pitchLimit;
88 
89     /* private state */
90     Pixmap screen_buff;
91     GC gc_copy;
92     GC gc_background;
93     GC gc_info;
94     GC gc_alert;
95     GC gc_measure;
96     GC gc_cursor;
97     GC gc_root[2];
98     GCList* gcl_galaxy[2][2];	/* [activated][permitted] */
99     GCList* gcl_planet[2][2];	/* [activated][permitted] */
100     GCList* gcl_wormhole[2];	/* [activated] */
101     FontGCAList* gca_label[2];	/* [activated] */
102 
103     int centerx, centery;
104     XRectangle measure_clip_h, measure_clip_v;
105 
106     int delayTicks;
107     XCruiserAction1 action1;
108     double arg1;
109     XCruiserAction2 action2;
110     double arg2x, arg2y;
111 
112     int state, flyingmode;
113     Boolean freeze;
114     double velocity;
115     int cursorx, cursory;
116     view curview;
117     star* focus;
118 
119     route* activeRoute;
120 } MainScreenPart;
121 
122 /* Full instance record declaration */
123 typedef struct _MainScreenRec {
124     CorePart core;
125     SimplePart simple;
126     MainScreenPart mainScreen;
127 } MainScreenRec;
128 
129 #endif /* _ORAMainScreenP_h */
130