Freeciv-3.1
Loading...
Searching...
No Matches
gui_interface.c
Go to the documentation of this file.
1/***********************************************************************
2 Freeciv - Copyright (C) 1996 - A Kjeldberg, L Gregersen, P Unold
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 2, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12***********************************************************************/
13
14#ifdef HAVE_CONFIG_H
15#include <fc_config.h>
16#endif
17
18/* client */
19#include "client_main.h"
20#include "editgui_g.h"
21#include "options.h"
22
23#include "chatline_g.h"
24#include "citydlg_g.h"
25#include "connectdlg_g.h"
26#include "dialogs_g.h"
27#include "editgui_g.h"
28#include "graphics_g.h"
29#include "gui_main_g.h"
30#include "mapview_g.h"
31#include "themes_g.h"
32
33#include "gui_interface.h"
34
35static struct gui_funcs funcs;
36
37/**********************************************************************/
42{
43 return &funcs;
44}
45
46/**********************************************************************/
49void ui_init(void)
50{
51 funcs.ui_init();
52}
53
54/**********************************************************************/
57int ui_main(int argc, char *argv[])
58{
59 return funcs.ui_main(argc, argv);
60}
61
62/**********************************************************************/
65void ui_exit(void)
66{
67 funcs.ui_exit();
68}
69
70/**********************************************************************/
73void version_message(const char *vertext)
74{
75 funcs.version_message(vertext);
76}
77
78/**********************************************************************/
82 const struct text_tag_list *tags,
83 int conn_id)
84{
86}
87
88/**********************************************************************/
91enum gui_type get_gui_type(void)
92{
93 return funcs.get_gui_type();
94}
95
96/**********************************************************************/
99void insert_client_build_info(char *outbuf, size_t outlen)
100{
101 funcs.insert_client_build_info(outbuf, outlen);
102}
103
104/**********************************************************************/
107bool is_view_supported(enum ts_type type)
108{
110}
111
112/**********************************************************************/
115void tileset_type_set(enum ts_type type)
116{
118}
119
120/**********************************************************************/
123struct sprite *load_gfxfile(const char *filename)
124{
125 return funcs.load_gfxfile(filename);
126}
127
128/**********************************************************************/
131struct sprite *load_gfxnumber(int num)
132{
133 return funcs.load_gfxnumber(num);
134}
135
136/**********************************************************************/
139struct sprite *create_sprite(int width, int height, struct color *pcolor)
140{
142}
143
144/**********************************************************************/
151
152/**********************************************************************/
156 int x, int y, int width, int height,
157 struct sprite *mask, int mask_offset_x, int mask_offset_y,
158 float scale, bool smooth)
159{
160 return funcs.crop_sprite(source, x, y, width, height, mask,
161 mask_offset_x, mask_offset_y, scale, smooth);
162}
163
164/**********************************************************************/
167void free_sprite(struct sprite *s)
168{
170}
171
172/**********************************************************************/
175struct color *color_alloc(int r, int g, int b)
176{
177 return funcs.color_alloc(r, g, b);
178}
179
180/**********************************************************************/
184{
185 return funcs.color_free(pcolor);
186}
187
188/**********************************************************************/
192{
194}
195
196/**********************************************************************/
199void canvas_free(struct canvas *store)
200{
201 funcs.canvas_free(store);
202}
203
204/**********************************************************************/
207void canvas_set_zoom(struct canvas *store, float zoom)
208{
209 funcs.canvas_set_zoom(store, zoom);
210}
211
212/**********************************************************************/
216{
217 return funcs.has_zoom_support();
218}
219
220/**********************************************************************/
223void canvas_mapview_init(struct canvas *store)
224{
226}
227
228/**********************************************************************/
231void canvas_copy(struct canvas *dest, struct canvas *src,
232 int src_x, int src_y, int dest_x, int dest_y, int width,
233 int height)
234{
235 funcs.canvas_copy(dest, src, src_x, src_y, dest_x, dest_y, width, height);
236}
237
238/**********************************************************************/
242 int canvas_x, int canvas_y,
243 struct sprite *psprite,
244 int offset_x, int offset_y, int width, int height)
245{
248}
249
250/**********************************************************************/
259
260/**********************************************************************/
264 int canvas_x, int canvas_y,
265 struct sprite *psprite,
266 bool fog, int fog_x, int fog_y)
267{
269 psprite, fog, fog_x, fog_y);
270}
271
272/**********************************************************************/
282
283/**********************************************************************/
292
293/**********************************************************************/
297 enum line_type ltype, int start_x, int start_y,
298 int dx, int dy)
299{
300 funcs.canvas_put_line(pcanvas, pcolor, ltype, start_x, start_y, dx, dy);
301}
302
303/**********************************************************************/
307 enum line_type ltype, int start_x, int start_y,
308 int dx, int dy)
309{
310 funcs.canvas_put_curved_line(pcanvas, pcolor, ltype, start_x, start_y,
311 dx, dy);
312}
313
314/**********************************************************************/
317void get_text_size(int *width, int *height,
318 enum client_font font, const char *text)
319{
320 funcs.get_text_size(width, height, font, text);
321}
322
323/**********************************************************************/
327 enum client_font font, struct color *pcolor,
328 const char *text)
329{
331}
332
333/**********************************************************************/
340
341/**********************************************************************/
344void set_rulesets(int num_rulesets, char **rulesets)
345{
346 funcs.set_rulesets(num_rulesets, rulesets);
347}
348
349/**********************************************************************/
353{
355}
356
357/**********************************************************************/
361{
363}
364
365/**********************************************************************/
368void add_net_input(int sock)
369{
370 funcs.add_net_input(sock);
371}
372
373/**********************************************************************/
377{
379}
380
381/**********************************************************************/
388
389/**********************************************************************/
396
397/**********************************************************************/
400void add_idle_callback(void (callback)(void *), void *data)
401{
403}
404
405/**********************************************************************/
408void sound_bell(void)
409{
411}
412
413/**********************************************************************/
416void real_set_client_page(enum client_pages page)
417{
419}
420
421/**********************************************************************/
424enum client_pages get_current_client_page(void)
425{
427}
428
429/**********************************************************************/
432void set_unit_icon(int idx, struct unit *punit)
433{
435}
436
437/**********************************************************************/
444
445/**********************************************************************/
449{
451}
452
453/**********************************************************************/
456void gui_update_font(const char *font_name, const char *font_value)
457{
458 funcs.gui_update_font(font_name, font_value);
459}
460
461/**********************************************************************/
465{
467}
468
469/**********************************************************************/
472void editgui_notify_object_created(int tag, int id)
473{
475}
476
477/**********************************************************************/
480void editgui_notify_object_changed(int objtype, int object_id, bool removal)
481{
482 funcs.editgui_notify_object_changed(objtype, object_id, removal);
483}
484
485/**********************************************************************/
488void editgui_popup_properties(const struct tile_list *tiles, int objtype)
489{
491}
492
493/**********************************************************************/
500
501/**********************************************************************/
508
509/**********************************************************************/
512void popup_combat_info(int attacker_unit_id, int defender_unit_id,
513 int attacker_hp, int defender_hp,
514 bool make_att_veteran, bool make_def_veteran)
515{
516 funcs.popup_combat_info(attacker_unit_id, defender_unit_id,
517 attacker_hp, defender_hp, make_att_veteran,
518 make_def_veteran);
519}
520
521/**********************************************************************/
528
529/**********************************************************************/
532void start_turn(void)
533{
535}
536
537/**********************************************************************/
540void real_city_dialog_popup(struct city *pcity)
541{
543}
544
545/**********************************************************************/
549{
551}
552
553/**********************************************************************/
556void popdown_city_dialog(struct city *pcity)
557{
559}
560
561/**********************************************************************/
568
569/**********************************************************************/
576
577/**********************************************************************/
584
585/**********************************************************************/
588bool city_dialog_is_open(struct city *pcity)
589{
590 return funcs.city_dialog_is_open(pcity);
591}
592
593/**********************************************************************/
596bool request_transport(struct unit *pcargo, struct tile *ptile)
597{
598 return funcs.request_transport(pcargo, ptile);
599}
600
601/**********************************************************************/
608
609/**********************************************************************/
612void gui_load_theme(const char *directory, const char *theme_name)
613{
614 funcs.gui_load_theme(directory, theme_name);
615}
616
617/**********************************************************************/
621{
623}
624
625/**********************************************************************/
632
633/**********************************************************************/
636char **get_usable_themes_in_directory(const char *directory, int *count)
637{
639}
struct canvas int int struct sprite bool int int fog_y canvas_fill_sprite_area
Definition canvas_g.h:55
struct canvas int int struct sprite int int int int height
Definition canvas_g.h:44
struct canvas int int struct sprite bool int int fog_y struct canvas struct sprite struct color * pcolor
Definition canvas_g.h:57
struct canvas int int struct sprite bool int fog_x
Definition canvas_g.h:51
struct canvas int int canvas_y
Definition canvas_g.h:43
canvas_put_sprite_fogged
Definition canvas_g.h:48
struct canvas int canvas_x
Definition canvas_g.h:43
struct canvas int int struct sprite bool int int fog_y struct canvas struct sprite struct color int int canvas_y canvas_put_curved_line
Definition canvas_g.h:63
canvas_put_sprite
Definition canvas_g.h:42
struct canvas int int struct sprite bool int int fog_y struct canvas struct sprite struct color int int canvas_y struct canvas struct color enum line_type ltype int start_x int start_y int dx int dy enum client_font
Definition canvas_g.h:69
struct canvas int int struct sprite int int int width
Definition canvas_g.h:44
struct canvas * pcanvas
Definition canvas_g.h:42
struct canvas int int struct sprite * psprite
Definition canvas_g.h:50
canvas_put_text
Definition canvas_g.h:77
struct canvas int int struct sprite int int offset_y
Definition canvas_g.h:44
struct canvas int int struct sprite int offset_x
Definition canvas_g.h:44
line_type
Definition canvas_g.h:25
struct canvas int int struct sprite bool fog
Definition canvas_g.h:51
struct unit struct city struct unit struct tile struct extra_type const struct act_prob *act_probs int actor_unit_id struct unit struct unit * punit
Definition dialogs_g.h:73
int objtype
Definition editgui_g.h:28
editgui_notify_object_changed
Definition editgui_g.h:27
static GtkWidget * source
Definition gotodlg.c:58
GType type
Definition repodlgs.c:1312
void update_timeout_label(void)
struct gui_funcs * get_gui_funcs(void)
void get_sprite_dimensions(struct sprite *sprite, int *width, int *height)
void real_focus_units_changed(void)
void set_unit_icons_more_arrow(bool onoff)
void free_sprite(struct sprite *s)
void editgui_popup_properties(const struct tile_list *tiles, int objtype)
void set_unit_icon(int idx, struct unit *punit)
void editgui_notify_object_created(int tag, int id)
char ** get_gui_specific_themes_directories(int *count)
void gui_clear_theme(void)
void real_city_dialog_popup(struct city *pcity)
void set_rulesets(int num_rulesets, char **rulesets)
void version_message(const char *vertext)
enum client_pages get_current_client_page(void)
void ui_exit(void)
bool city_dialog_is_open(struct city *pcity)
enum gui_type get_gui_type(void)
void canvas_put_rectangle(struct canvas *pcanvas, struct color *pcolor, int canvas_x, int canvas_y, int width, int height)
void ui_init(void)
void real_city_dialog_refresh(struct city *pcity)
void gui_load_theme(const char *directory, const char *theme_name)
void server_connect(void)
void editgui_popdown_all(void)
struct sprite * load_gfxnumber(int num)
void add_idle_callback(void(callback)(void *), void *data)
void canvas_set_zoom(struct canvas *store, float zoom)
void canvas_mapview_init(struct canvas *store)
void options_extra_init(void)
void popdown_all_city_dialogs(void)
void refresh_unit_city_dialogs(struct unit *punit)
void start_turn(void)
void real_conn_list_dialog_update(void *unused)
void real_set_client_page(enum client_pages page)
void get_text_size(int *width, int *height, enum client_font font, const char *text)
void insert_client_build_info(char *outbuf, size_t outlen)
void canvas_free(struct canvas *store)
bool request_transport(struct unit *pcargo, struct tile *ptile)
struct sprite * load_gfxfile(const char *filename)
void close_connection_dialog(void)
void remove_net_input(void)
bool handmade_scenario_warning(void)
void sound_bell(void)
bool is_view_supported(enum ts_type type)
void update_infra_dialog(void)
void map_canvas_size_refresh(void)
void real_output_window_append(const char *astring, const struct text_tag_list *tags, int conn_id)
void popup_combat_info(int attacker_unit_id, int defender_unit_id, int attacker_hp, int defender_hp, bool make_att_veteran, bool make_def_veteran)
void canvas_put_sprite_full(struct canvas *pcanvas, int canvas_x, int canvas_y, struct sprite *psprite)
void tileset_type_set(enum ts_type type)
bool has_zoom_support(void)
void color_free(struct color *pcolor)
void canvas_put_line(struct canvas *pcanvas, struct color *pcolor, enum line_type ltype, int start_x, int start_y, int dx, int dy)
struct color * color_alloc(int r, int g, int b)
void editgui_refresh(void)
void canvas_copy(struct canvas *dest, struct canvas *src, int src_x, int src_y, int dest_x, int dest_y, int width, int height)
void add_net_input(int sock)
static struct gui_funcs funcs
struct sprite * crop_sprite(struct sprite *source, int x, int y, int width, int height, struct sprite *mask, int mask_offset_x, int mask_offset_y, float scale, bool smooth)
struct canvas * canvas_create(int width, int height)
void editgui_tileset_changed(void)
void popdown_city_dialog(struct city *pcity)
int ui_main(int argc, char *argv[])
const char * font_name
Definition gui_main_g.h:43
gui_update_font
Definition gui_main_g.h:43
create_sprite
Definition sprite_g.h:30
float zoom
Definition canvas.h:24
Definition city.h:309
Definition colors.h:20
int g
Definition colors.h:21
int r
Definition colors.h:21
int b
Definition colors.h:21
void(* server_connect)(void)
void(* editgui_tileset_changed)(void)
struct sprite *(* load_gfxnumber)(int num)
int(* ui_main)(int argc, char *argv[])
void(* canvas_put_text)(struct canvas *pcanvas, int canvas_x, int canvas_y, enum client_font font, struct color *pcolor, const char *text)
char **(* get_gui_specific_themes_directories)(int *count)
void(* gui_load_theme)(const char *directory, const char *theme_name)
void(* update_timeout_label)(void)
void(* canvas_put_sprite)(struct canvas *pcanvas, int canvas_x, int canvas_y, struct sprite *psprite, int offset_x, int offset_y, int width, int height)
void(* editgui_refresh)(void)
void(* set_unit_icon)(int idx, struct unit *punit)
void(* canvas_copy)(struct canvas *dest, struct canvas *src, int src_x, int src_y, int dest_x, int dest_y, int width, int height)
void(* add_idle_callback)(void(callback)(void *), void *data)
void(* canvas_put_sprite_full)(struct canvas *pcanvas, int canvas_x, int canvas_y, struct sprite *psprite)
void(* add_net_input)(int sock)
void(* tileset_type_set)(enum ts_type type)
void(* editgui_notify_object_created)(int tag, int id)
enum client_pages(* get_current_client_page)(void)
void(* real_city_dialog_refresh)(struct city *pcity)
void(* gui_clear_theme)(void)
struct sprite *(* load_gfxfile)(const char *filename)
void(* remove_net_input)(void)
void(* real_city_dialog_popup)(struct city *pcity)
void(* color_free)(struct color *pcolor)
void(* refresh_unit_city_dialogs)(struct unit *punit)
bool(* is_view_supported)(enum ts_type type)
void(* get_text_size)(int *width, int *height, enum client_font font, const char *text)
void(* editgui_popup_properties)(const struct tile_list *tiles, int objtype)
void(* update_infra_dialog)(void)
void(* popup_combat_info)(int attacker_unit_id, int defender_unit_id, int attacker_hp, int defender_hp, bool make_att_veteran, bool make_def_veteran)
void(* map_canvas_size_refresh)(void)
void(* editgui_notify_object_changed)(int objtype, int object_id, bool removal)
bool(* handmade_scenario_warning)(void)
void(* canvas_fill_sprite_area)(struct canvas *pcanvas, struct sprite *psprite, struct color *pcolor, int canvas_x, int canvas_y)
bool(* request_transport)(struct unit *pcargo, struct tile *ptile)
void(* set_rulesets)(int num_rulesets, char **rulesets)
void(* version_message)(const char *vertext)
void(* real_output_window_append)(const char *astring, const struct text_tag_list *tags, int conn_id)
struct sprite *(* create_sprite)(int width, int height, struct color *pcolor)
bool(* has_zoom_support)(void)
void(* get_sprite_dimensions)(struct sprite *sprite, int *width, int *height)
void(* set_unit_icons_more_arrow)(bool onoff)
void(* gui_update_font)(const char *font_name, const char *font_value)
struct canvas *(* canvas_create)(int width, int height)
void(* ui_exit)(void)
void(* canvas_put_sprite_fogged)(struct canvas *pcanvas, int canvas_x, int canvas_y, struct sprite *psprite, bool fog, int fog_x, int fog_y)
void(* free_sprite)(struct sprite *s)
char **(* get_usable_themes_in_directory)(const char *directory, int *count)
void(* canvas_put_curved_line)(struct canvas *pcanvas, struct color *pcolor, enum line_type ltype, int start_x, int start_y, int dx, int dy)
void(* options_extra_init)(void)
void(* popdown_city_dialog)(struct city *pcity)
void(* canvas_put_line)(struct canvas *pcanvas, struct color *pcolor, enum line_type ltype, int start_x, int start_y, int dx, int dy)
void(* start_turn)(void)
void(* canvas_free)(struct canvas *store)
void(* canvas_set_zoom)(struct canvas *store, float zoom)
void(* insert_client_build_info)(char *outbuf, size_t outlen)
struct sprite *(* crop_sprite)(struct sprite *source, int x, int y, int width, int height, struct sprite *mask, int mask_offset_x, int mask_offset_y, float scale, bool smooth)
void(* canvas_put_rectangle)(struct canvas *pcanvas, struct color *pcolor, int canvas_x, int canvas_y, int width, int height)
enum gui_type(* get_gui_type)(void)
void(* editgui_popdown_all)(void)
void(* popdown_all_city_dialogs)(void)
void(* canvas_mapview_init)(struct canvas *store)
void(* close_connection_dialog)(void)
void(* sound_bell)(void)
void(* real_focus_units_changed)(void)
void(* real_set_client_page)(enum client_pages page)
void(* ui_init)(void)
void(* real_conn_list_dialog_update)(void *unused)
struct color *(* color_alloc)(int r, int g, int b)
bool(* city_dialog_is_open)(struct city *pcity)
Definition tile.h:49
Definition unit.h:138
get_usable_themes_in_directory
Definition themes_g.h:22
const char * directory
Definition themes_g.h:23