File: cityrepdata.h

package info (click to toggle)
freeciv 2.6.2-1~bpo10+1
  • links: PTS, VCS
  • area: main
  • in suites: buster-backports
  • size: 212,500 kB
  • sloc: ansic: 443,831; cpp: 29,541; sh: 7,982; makefile: 7,886; python: 1,933; xml: 945
file content (74 lines) | stat: -rw-r--r-- 2,744 bytes parent folder | download | duplicates (8)
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
/********************************************************************** 
 Freeciv - Copyright (C) 1996 - A Kjeldberg, L Gregersen, P Unold
   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, 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.
***********************************************************************/
#ifndef FC__CITYREPDATA_H
#define FC__CITYREPDATA_H

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#include "support.h"            /* bool type */

#include "fc_types.h"

/* Number of city report columns: have to set this manually now... */
#define NUM_CREPORT_COLS (num_city_report_spec())

struct city_report_spec {
  bool show;			/* modify this to customize */
  int width;			/* 0 means variable; rightmost only */
  int space;			/* number of leading spaces (see below) */
  const char *title1;		/* already translated or NULL */
  const char *title2;		/* already translated or NULL */
  const char *explanation;	/* already translated */ 
  void *data;
  const char *(*func)(const struct city * pcity, const void *data);
  const char *tagname;		/* for save_options */
};

extern struct city_report_spec *city_report_specs;

/* Use tagname rather than index for load/save, because later
   additions won't necessarily be at the end.
*/

/* Note on space: you can do spacing and alignment in various ways;
   you can avoid explicit space between columns if they are bracketted,
   but the problem is that with a configurable report you don't know
   what's going to be next to what.
   
   Here specify width, and leading space, although different clients
   may interpret these differently (gui-gtk and gui-mui ignore space
   field, handling columns without additional spacing).
   For some clients negative width means left justified (gui-gtk
   always treats width as negative; gui-mui ignores width field).
*/

/* Following are wanted to save/load options; use wrappers rather
   than expose the grotty details of the city_report_spec:
   (well, the details are exposed now too, but still keep
   this "clean" interface...)
*/
int num_city_report_spec(void);
bool *city_report_spec_show_ptr(int i);
const char *city_report_spec_tagname(int i);

void init_city_report_game_data(void);

int cityrepfield_compare(const char *field1, const char *field2);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif  /* FC__CITYREPDATA_H */