Freeciv-3.1: /fast/freeciv/nightly/S3_1/client/gui-gtk-4.0/gui_main.c File Reference

Freeciv-3.1

Loading...
Searching...
No Matches
Data Structures | Macros | Functions | Variables
gui_main.c File Reference
`#include <stdarg.h>`
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <time.h>`
`#include <gtk/gtk.h>`
`#include <gdk/gdkkeysyms.h>`
`#include "fc_cmdline.h"`
`#include "fciconv.h"`
`#include "fcintl.h"`
`#include "log.h"`
`#include "mem.h"`
`#include "support.h"`
`#include "dataio.h"`
`#include "featured_text.h"`
`#include "game.h"`
`#include "government.h"`
`#include "map.h"`
`#include "unitlist.h"`
`#include "version.h"`
`#include "client_main.h"`
`#include "climisc.h"`
`#include "clinet.h"`
`#include "colors.h"`
`#include "connectdlg_common.h"`
`#include "control.h"`
`#include "editor.h"`
`#include "options.h"`
`#include "text.h"`
`#include "tilespec.h"`
`#include "zoom.h"`
`#include "chatline.h"`
`#include "citizensinfo.h"`
`#include "connectdlg.h"`
`#include "cma_fe.h"`
`#include "dialogs.h"`
`#include "diplodlg.h"`
`#include "editgui.h"`
`#include "gotodlg.h"`
`#include "graphics.h"`
`#include "gui_stuff.h"`
`#include "happiness.h"`
`#include "helpdlg.h"`
`#include "inteldlg.h"`
`#include "mapctrl.h"`
`#include "mapview.h"`
`#include "menu.h"`
`#include "messagewin.h"`
`#include "optiondlg.h"`
`#include "pages.h"`
`#include "plrdlg.h"`
`#include "luaconsole.h"`
`#include "spaceshipdlg.h"`
`#include "repodlgs.h"`
`#include "voteinfo_bar.h"`
`#include "gui_main.h"`

Go to the source code of this file.

## Data Structures

struct | callback

## Macros

#define | OVERVIEW_CANVAS_STORE_WIDTH_NETBOOK (2 * 64)
#define | OVERVIEW_CANVAS_STORE_HEIGHT_NETBOOK (2 * 46)
#define | OVERVIEW_CANVAS_STORE_WIDTH (2 * OVERVIEW_CANVAS_STORE_WIDTH_NETBOOK)
#define | OVERVIEW_CANVAS_STORE_HEIGHT (2 * OVERVIEW_CANVAS_STORE_HEIGHT_NETBOOK)
#define | MIGRATE_OPTION(opt) gui_options.gui_gtk3_##opt = gui_options.gui_gtk2_##opt;
#define | MIGRATE_STR_OPTION(opt)
#define | MIGRATE_OPTION(opt) gui_options.gui_gtk3_22_##opt = gui_options.gui_gtk3_##opt;
#define | MIGRATE_STR_OPTION(opt)
#define | MIGRATE_OPTION(opt) GUI_GTK_OPTION(opt) = gui_options.gui_gtk3_22_##opt;
#define | MIGRATE_STR_OPTION(opt)
#define | option_var_set_callback(var, callback)

## Functions

static void | set_g_log_callbacks (void)
static gboolean | show_info_popup (GtkGestureClick *gesture, int n_press, double x, double y, gpointer data)
static void | end_turn_callback (GtkWidget *w, gpointer data)
static gboolean | get_net_input (GIOChannel *source, GIOCondition condition, gpointer data)
static void | set_wait_for_writable_socket (struct connection *pc, bool socket_writable)
static void | print_usage (void)
static void | activate_gui (GtkApplication *app, gpointer data)
static bool | parse_options (int argc, char **argv)
static gboolean | toplevel_key_press_handler (GtkEventControllerKey *controller, guint keyval, guint keycode, GdkModifierType state, gpointer data)
static gboolean | mouse_scroll_mapcanvas (GtkEventControllerScroll *controller, gdouble dx, gdouble dy, gpointer data)
static void | tearoff_callback (GtkWidget *b, gpointer data)
static GtkWidget * | detached_widget_new (void)
static GtkWidget * | detached_widget_fill (GtkWidget *tearbox)
static gboolean | select_unit_pic_callback (GtkGestureClick *gesture, int n_press, double x, double y, gpointer data)
static gboolean | select_more_arrow_callback (GtkGestureClick *gesture, int n_press, double x, double y, gpointer data)
static gboolean | quit_dialog_callback (void)
static void | allied_chat_button_toggled (GtkToggleButton *button, gpointer user_data)
static void | free_unit_table (void)
static void | adjust_default_options (void)
static void | log_callback_utf8 (enum log_level level, const char *message, bool file_too)
static gboolean | timer_callback (gpointer data)
static void | toplevel_focus (GtkWidget *w, GtkDirectionType arg, gpointer data)
void | main_message_area_resize (void *data)
gboolean | map_canvas_focus (void)
static gboolean | key_press_map_canvas (guint keyval, GdkModifierType state)
static void | move_from_container_to_container (GtkWidget *wdg, GtkWidget *old_wdg, GtkWidget *new_wdg)
static void | tearoff_reattach (GtkWidget *box)
static void | tearoff_close (GtkWidget *w, gpointer data)
static void | populate_unit_pic_table (void)
void | reset_unit_table (void)
gboolean | terminate_signal_processing (GtkEventControllerFocus *controller, gpointer data)
void | update_turn_done_tooltip (void)
static void | setup_widgets (void)
static void | g_log_to_freelog_cb (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data)
static GLogWriterOutput | g_log_writer_to_freelog_cb (GLogLevelFlags log_level, const GLogField *fields, gsize n_fields, gpointer user_data)
static void | set_g_log_callback_domain (const char *domain)
void | ui_init (void)
int | main (int argc, char **argv)
static void | migrate_options_from_gtk2 (void)
static void | migrate_options_from_gtk3 (void)
static void | migrate_options_from_gtk3_22 (void)
int | ui_main (int argc, char **argv)
bool | is_gui_up (void)
void | ui_exit (void)
enum gui_type | get_gui_type (void)
void | sound_bell (void)
void | set_unit_icon (int idx, struct unit *punit)
void | set_unit_icons_more_arrow (bool onoff)
void | real_focus_units_changed (void)
static void | info_popup_closed (GtkWidget *self, gpointer data)
void | add_net_input (int sock)
void | remove_net_input (void)
static void | quit_dialog_response (GtkWidget *dialog, gint response)
void | quit_gtk_main (void)
void | popup_quit_dialog (void)
static gboolean | idle_callback_wrapper (gpointer data)
void | add_idle_callback (void(callback)(void *), void *data)
void | animation_idle_cb (void *data)
static void | allied_chat_only_callback (struct option *poption)
void | fullscreen_opt_refresh (struct option *poption)
static void | apply_city_names_font (struct option *poption)
static void | apply_city_productions_font (struct option *poption)
static void | apply_reqtree_text_font (struct option *poption)
void | options_extra_init (void)
void | refresh_chat_buttons (void)
void | insert_client_build_info (char *outbuf, size_t outlen)
static bool | monitor_size (GdkRectangle *rect_p)
int | screen_width (void)
int | screen_height (void)
struct video_mode * | resolution_request_get (void)
GtkApplication * | gui_app (void)

## Variables

const char * | client_string = GUI_NAME_FULL
GtkWidget * | map_canvas
GtkWidget * | map_horizontal_scrollbar
GtkWidget * | map_vertical_scrollbar
GtkWidget * | overview_canvas
GtkWidget * | overview_scrolled_window
int | overview_canvas_store_width = OVERVIEW_CANVAS_STORE_WIDTH
int | overview_canvas_store_height = OVERVIEW_CANVAS_STORE_HEIGHT
GtkWidget * | toplevel
GtkWidget * | toplevel_tabs
GtkWidget * | top_vbox
GtkWidget * | top_notebook
GtkWidget * | bottom_notebook
GtkWidget * | right_notebook
GtkWidget * | map_widget
static GtkWidget * | bottom_hpaned
PangoFontDescription * | city_names_style = NULL
PangoFontDescription * | city_productions_style = NULL
PangoFontDescription * | reqtree_text_style = NULL
GtkWidget * | main_frame_civ_name
GtkWidget * | main_label_info
GtkWidget * | avbox
GtkWidget * | ahbox
GtkWidget * | conn_box
GtkWidget * | scroll_panel
GtkWidget * | econ_label [10]
GtkWidget * | bulb_label
GtkWidget * | sun_label
GtkWidget * | flake_label
GtkWidget * | government_label
GtkWidget * | timeout_label
GtkWidget * | turn_done_button
GtkWidget * | unit_info_label
GtkWidget * | unit_info_box
GtkWidget * | unit_info_frame
GtkWidget * | econ_widget
const char *const | gui_character_encoding = "UTF-8"
const bool | gui_use_transliteration = FALSE
static GdkPaintable * | empty_unit_paintable = NULL
static GtkWidget * | unit_pic_table
static GtkWidget * | unit_pic
static GtkWidget * | unit_below_pic [MAX_NUM_UNITS_BELOW]
static GtkWidget * | more_arrow
static GtkWidget * | more_arrow_container
static int | unit_id_top
static int | unit_ids [MAX_NUM_UNITS_BELOW]
GtkTextView * | main_message_area
GtkTextBuffer * | message_buffer = NULL
static GtkWidget * | allied_chat_toggle_button
static gint | timer_id
static GIOChannel * | srv_channel
static guint | srv_id
gint | cur_x
gint | cur_y
static bool | gui_up = FALSE
static GtkApplication * | fc_app
static struct video_mode | vmode = { -1, -1 }
static float | zoom_steps_custom []

## Macro Definition Documentation

## ◆ MIGRATE_OPTION [1/3]

#define MIGRATE_OPTION | ( |  | opt | ) | gui_options.gui_gtk3_##opt = gui_options.gui_gtk2_##opt;

## ◆ MIGRATE_OPTION [2/3]

#define MIGRATE_OPTION | ( |  | opt | ) | gui_options.gui_gtk3_22_##opt = gui_options.gui_gtk3_##opt;

## ◆ MIGRATE_OPTION [3/3]

#define MIGRATE_OPTION | ( |  | opt | ) | GUI_GTK_OPTION(opt) = gui_options.gui_gtk3_22_##opt;

## ◆ MIGRATE_STR_OPTION [1/3]

#define MIGRATE_STR_OPTION | ( |  | opt | ) |

Value:
strncpy(gui_options.gui_gtk3_##opt, gui_options.gui_gtk2_##opt, \
sizeof(gui_options.gui_gtk3_##opt));
gui_options
struct client_options gui_options
Definition options.c:71

## ◆ MIGRATE_STR_OPTION [2/3]

#define MIGRATE_STR_OPTION | ( |  | opt | ) |

Value:
strncpy(gui_options.gui_gtk3_22_##opt, gui_options.gui_gtk3_##opt, \
sizeof(gui_options.gui_gtk3_22_##opt));

## ◆ MIGRATE_STR_OPTION [3/3]

#define MIGRATE_STR_OPTION | ( |  | opt | ) |

Value:
strncpy(GUI_GTK_OPTION(opt), gui_options.gui_gtk3_22_##opt, \
sizeof(GUI_GTK_OPTION(opt)));
GUI_GTK_OPTION
#define GUI_GTK_OPTION(optname)
Definition gui_main.h:25

## ◆ option_var_set_callback

#define option_var_set_callback | ( |  | var,
|  |  | callback
| ) |  |

Value:
if ((poption = optset_option_by_name(client_optset, GUI_GTK_OPTION_STR(var)))) { \
option_set_changed_callback(poption, callback); \
} else { \
log_error("Didn't find option %s!", GUI_GTK_OPTION_STR(var)); \
}
GUI_GTK_OPTION_STR
#define GUI_GTK_OPTION_STR(optname)
Definition gui_main.h:26
client_optset
const struct option_set * client_optset
Definition options.c:1255
optset_option_by_name
struct option * optset_option_by_name(const struct option_set *poptset, const char *name)
Definition options.c:406
callback
Definition gui_main.c:2187

## ◆ OVERVIEW_CANVAS_STORE_HEIGHT

#define OVERVIEW_CANVAS_STORE_HEIGHT (2 * OVERVIEW_CANVAS_STORE_HEIGHT_NETBOOK)

Definition at line 119 of file gui_main.c.

## ◆ OVERVIEW_CANVAS_STORE_HEIGHT_NETBOOK

#define OVERVIEW_CANVAS_STORE_HEIGHT_NETBOOK (2 * 46)

Definition at line 116 of file gui_main.c.

## ◆ OVERVIEW_CANVAS_STORE_WIDTH

#define OVERVIEW_CANVAS_STORE_WIDTH (2 * OVERVIEW_CANVAS_STORE_WIDTH_NETBOOK)

Definition at line 117 of file gui_main.c.

## ◆ OVERVIEW_CANVAS_STORE_WIDTH_NETBOOK

#define OVERVIEW_CANVAS_STORE_WIDTH_NETBOOK (2 * 64)

Definition at line 115 of file gui_main.c.

## Function Documentation

## ◆ activate_gui()

static void activate_gui | ( | GtkApplication * | app,
|  | gpointer | data
| ) |  |

static

Run the gui

Definition at line 1901 of file gui_main.c.

Referenced by ui_main().

## ◆ add_idle_callback()

void add_idle_callback | ( | void(callback)(void *) | ,
|  | void * | data
| ) |  |

Enqueue a callback to be called during an idle moment. The 'callback' function should be called sometimes soon, and passed the 'data' pointer as its data.

Definition at line 2360 of file gui_main.c.

## ◆ add_net_input()

void add_net_input | ( | int | sock | ) |

This function is called after the client has successfully connected to the server

Definition at line 2250 of file gui_main.c.

## ◆ adjust_default_options()

static void adjust_default_options | ( | void |  | ) |

static

Make dynamic adjustments to first-launch default options.

Definition at line 2591 of file gui_main.c.

## ◆ allied_chat_button_toggled()

static void allied_chat_button_toggled | ( | GtkToggleButton * | button,
|  | gpointer | user_data
| ) |  |

static

Handle a toggle of the "Allies Only" chat button.

Definition at line 2496 of file gui_main.c.

## ◆ allied_chat_only_callback()

static void allied_chat_only_callback | ( | struct option * | poption | ) |

static

Option callback for the 'allied_chat_only' gtk-gui option. This updates the state of the associated toggle button.

Definition at line 2384 of file gui_main.c.

## ◆ animation_idle_cb()

void animation_idle_cb | ( | void * | data | ) |

Add idle callback for updating animations.

Definition at line 2372 of file gui_main.c.

Referenced by animation_idle_cb(), and real_set_client_page().

## ◆ apply_city_names_font()

static void apply_city_names_font | ( | struct option * | poption | ) |

static

Change the city names font.

Definition at line 2411 of file gui_main.c.

## ◆ apply_city_productions_font()

static void apply_city_productions_font | ( | struct option * | poption | ) |

static

Change the city productions font.

Definition at line 2422 of file gui_main.c.

## ◆ apply_reqtree_text_font()

static void apply_reqtree_text_font | ( | struct option * | poption | ) |

static

Change the city productions font.

Definition at line 2433 of file gui_main.c.

## ◆ detached_widget_fill()

static GtkWidget * detached_widget_fill | ( | GtkWidget * | tearbox | ) |

static

Creates the toggle button necessary to detach and reattach the widget and returns a vbox in which you fill your goodies.

Definition at line 791 of file gui_main.c.

## ◆ detached_widget_new()

static GtkWidget * detached_widget_new | ( | void |  | ) |

static

Create the container for the widget that's able to be detached.

Definition at line 780 of file gui_main.c.

## ◆ end_turn_callback()

static void end_turn_callback | ( | GtkWidget * | w,
|  | gpointer | data
| ) |  |

static

User clicked "Turn Done" button

Definition at line 2205 of file gui_main.c.

## ◆ free_unit_table()

static void free_unit_table | ( | void |  | ) |

static

Free unit image table.

Definition at line 929 of file gui_main.c.

## ◆ fullscreen_opt_refresh()

void fullscreen_opt_refresh | ( | struct option * | poption | ) |

Option callback for the 'fullscreen' gtk-gui option.

Definition at line 2399 of file gui_main.c.

## ◆ g_log_to_freelog_cb()

static void g_log_to_freelog_cb | ( | const gchar * | log_domain,
|  | GLogLevelFlags | log_level,
|  | const gchar * | message,
|  | gpointer | user_data
| ) |  |

static

g_log callback to log with freelog

Definition at line 1593 of file gui_main.c.

## ◆ g_log_writer_to_freelog_cb()

static GLogWriterOutput g_log_writer_to_freelog_cb | ( | GLogLevelFlags | log_level,
|  | const GLogField * | fields,
|  | gsize | n_fields,
|  | gpointer | user_data
| ) |  |

static

g_log callback to log with freelog

Definition at line 1621 of file gui_main.c.

## ◆ get_gui_type()

enum gui_type get_gui_type | ( | void |  | ) |

Return our GUI type

Definition at line 2040 of file gui_main.c.

## ◆ get_net_input()

static gboolean get_net_input | ( | GIOChannel * | source,
|  | GIOCondition | condition,
|  | gpointer | data
| ) |  |

static

Read input from server socket

Definition at line 2214 of file gui_main.c.

## ◆ gui_app()

GtkApplication * gui_app | ( | void |  | ) |

Return the client GtkApplication

Definition at line 2617 of file gui_main.c.

Referenced by create_toggle_menu_item(), enable_menus(), menus_disable_unit_commands(), real_menus_update(), and view_menu_item_toggle().

## ◆ idle_callback_wrapper()

static gboolean idle_callback_wrapper | ( | gpointer | data | ) |

static

A wrapper for the callback called through add_idle_callback().

Definition at line 2345 of file gui_main.c.

## ◆ info_popup_closed()

static void info_popup_closed | ( | GtkWidget * | self,
|  | gpointer | data
| ) |  |

static

On close of the info popup

Definition at line 2175 of file gui_main.c.

Referenced by show_info_popup().

## ◆ insert_client_build_info()

void insert_client_build_info | ( | char * | outbuf,
|  | size_t | outlen
| ) |  |

Insert build information to help

Definition at line 2505 of file gui_main.c.

## ◆ is_gui_up()

bool is_gui_up | ( | void |  | ) |

Return whether gui is currently running.

Definition at line 2021 of file gui_main.c.

## ◆ key_press_map_canvas()

static gboolean key_press_map_canvas | ( | guint | keyval,
|  | GdkModifierType | state
| ) |  |

static

Handle keypress events when map canvas is in focus

Definition at line 367 of file gui_main.c.

## ◆ log_callback_utf8()

static void log_callback_utf8 | ( | enum log_level | level,
|  | const char * | message,
|  | bool | file_too
| ) |  |

static

Callback for freelog

Definition at line 230 of file gui_main.c.

## ◆ main()

int main | ( | int | argc,
|  | char ** | argv
| ) |  |

Entry point for whole freeciv client program.

Definition at line 1677 of file gui_main.c.

## ◆ main_message_area_resize()

void main_message_area_resize | ( | void * | data | ) |

When the chatline text view is resized, scroll it to the bottom. This prevents users from accidentally missing messages when the chatline gets scrolled up a small amount and stops scrolling down automatically.

Definition at line 334 of file gui_main.c.

Referenced by main_message_area_resize(), and real_set_client_page().

## ◆ map_canvas_focus()

gboolean map_canvas_focus | ( | void |  | ) |

Focus on map canvas

Definition at line 355 of file gui_main.c.

## ◆ migrate_options_from_gtk2()

static void migrate_options_from_gtk2 | ( | void |  | ) |

static

Migrate gtk3 client specific options from gtk2 client options.

Definition at line 1685 of file gui_main.c.

## ◆ migrate_options_from_gtk3()

static void migrate_options_from_gtk3 | ( | void |  | ) |

static

Migrate gtk3.22 client specific options from gtk3 client options.

Definition at line 1740 of file gui_main.c.

## ◆ migrate_options_from_gtk3_22()

static void migrate_options_from_gtk3_22 | ( | void |  | ) |

static

Migrate gtk4 client specific options from gtk3.22 client options.

Definition at line 1799 of file gui_main.c.

Referenced by activate_gui().

## ◆ monitor_size()

static bool monitor_size | ( | GdkRectangle * | rect_p | ) |

static

Return dimensions of primary monitor, if any (in 'application pixels')

Definition at line 2519 of file gui_main.c.

## ◆ mouse_scroll_mapcanvas()

static gboolean mouse_scroll_mapcanvas | ( | GtkEventControllerScroll * | controller,
|  | gdouble | dx,
|  | gdouble | dy,
|  | gpointer | data
| ) |  |

static

Mouse/touchpad scrolling over the mapview

Definition at line 637 of file gui_main.c.

## ◆ move_from_container_to_container()

static void move_from_container_to_container | ( | GtkWidget * | wdg,
|  | GtkWidget * | old_wdg,
|  | GtkWidget * | new_wdg
| ) |  |

static

Move widget from parent to parent

Definition at line 684 of file gui_main.c.

Referenced by tearoff_callback(), and tearoff_reattach().

## ◆ options_extra_init()

void options_extra_init | ( | void |  | ) |

Extra initializers for client options. Here we make set the callback for the specific gui-gtk-4.0 options.

Definition at line 2445 of file gui_main.c.

## ◆ parse_options()

static bool parse_options | ( | int | argc,
|  | char ** | argv
| ) |  |

static

Search for gui-specific command line options.

Definition at line 274 of file gui_main.c.

## ◆ populate_unit_pic_table()

static void populate_unit_pic_table | ( | void |  | ) |

static

Called to build the unit_below pixmap table. This is the table on the left of the screen that shows all of the inactive units in the current tile.

It may be called again if the tileset changes.

Definition at line 834 of file gui_main.c.

Referenced by reset_unit_table().

## ◆ popup_quit_dialog()

void popup_quit_dialog | ( | void |  | ) |

Popups the dialog with the message: Are you sure you want to quit?

Definition at line 2306 of file gui_main.c.

## ◆ print_usage()

static void print_usage | ( | void |  | ) |

static

Print extra usage information, including one line help on each option, to stderr.

Definition at line 255 of file gui_main.c.

## ◆ quit_dialog_callback()

static gboolean quit_dialog_callback | ( | void |  | ) |

static

Popups the quit dialog.

Definition at line 2330 of file gui_main.c.

## ◆ quit_dialog_response()

static void quit_dialog_response | ( | GtkWidget * | dialog,
|  | gint | response
| ) |  |

static

This is the response callback for the dialog with the message: Are you sure you want to quit?

Definition at line 2279 of file gui_main.c.

## ◆ quit_gtk_main()

void quit_gtk_main | ( | void |  | ) |

Exit gtk main loop.

Definition at line 2294 of file gui_main.c.

## ◆ real_focus_units_changed()

void real_focus_units_changed | ( | void |  | ) |

Called when the set of units in focus (get_units_in_focus()) changes. Standard updates like update_unit_info_label() are handled in the platform- independent code; we use this to keep the goto/airlift dialog up to date, if it's visible.

Definition at line 2119 of file gui_main.c.

## ◆ refresh_chat_buttons()

void refresh_chat_buttons | ( | void |  | ) |

Set the chatline buttons to reflect the state of the game and current client options. This function should be called on game start.

Definition at line 2475 of file gui_main.c.

## ◆ remove_net_input()

void remove_net_input | ( | void |  | ) |

This function is called if the client disconnects from the server

Definition at line 2268 of file gui_main.c.

## ◆ reset_unit_table()

void reset_unit_table | ( | void |  | ) |

Called when the tileset is changed to reset the unit pixmap table.

Definition at line 953 of file gui_main.c.

## ◆ resolution_request_get()

struct video_mode * resolution_request_get | ( | void |  | ) |

Give resolution requested by user, if any.

Definition at line 2579 of file gui_main.c.

## ◆ screen_height()

int screen_height | ( | void |  | ) |

Return height of the primary monitor

Definition at line 2561 of file gui_main.c.

## ◆ screen_width()

int screen_width | ( | void |  | ) |

Return width of the primary monitor

Definition at line 2543 of file gui_main.c.

## ◆ select_more_arrow_callback()

static gboolean select_more_arrow_callback | ( | GtkGestureClick * | gesture,
|  | int | n_press,
|  | double | x,
|  | double | y,
|  | gpointer | data
| ) |  |

static

Callback for clicking a unit icon underneath unit info box. these are the units on the same tile as the focus unit.

Definition at line 2160 of file gui_main.c.

Referenced by populate_unit_pic_table().

## ◆ select_unit_pic_callback()

static gboolean select_unit_pic_callback | ( | GtkGestureClick * | gesture,
|  | int | n_press,
|  | double | x,
|  | double | y,
|  | gpointer | data
| ) |  |

static

Callback for clicking a unit icon underneath unit info box. these are the units on the same tile as the focus unit.

Definition at line 2128 of file gui_main.c.

Referenced by populate_unit_pic_table().

## ◆ set_g_log_callback_domain()

static void set_g_log_callback_domain | ( | const char * | domain | ) |

static

Set up g_log callback for a single domain.

Definition at line 1637 of file gui_main.c.

## ◆ set_g_log_callbacks()

static void set_g_log_callbacks | ( | void |  | ) |

static

Set up g_log callbacks.

Definition at line 1649 of file gui_main.c.

## ◆ set_unit_icon()

void set_unit_icon | ( | int | idx,
|  | struct unit * | punit
| ) |  |

Set one of the unit icons in information area based on punit. Use punit == NULL to clear icon. Index 'idx' is -1 for "active unit", or 0 to (num_units_below - 1) for units below. Also updates unit_ids[idx] for idx >= 0.

Definition at line 2059 of file gui_main.c.

## ◆ set_unit_icons_more_arrow()

void set_unit_icons_more_arrow | ( | bool | onoff | ) |

Set the "more arrow" for the unit icons to on(1) or off(0). Maintains a static record of current state to avoid unnecessary redraws. Note initial state should match initial gui setup (off).

Definition at line 2096 of file gui_main.c.

## ◆ set_wait_for_writable_socket()

static void set_wait_for_writable_socket | ( | struct connection * | pc,
|  | bool | socket_writable
| ) |  |

static

Set socket writability state

Definition at line 2225 of file gui_main.c.

## ◆ setup_widgets()

static void setup_widgets | ( | void |  | ) |

static

Do the heavy lifting for the widget setup.

Definition at line 1023 of file gui_main.c.

## ◆ show_info_popup()

static gboolean show_info_popup | ( | GtkGestureClick * | gesture,
|  | int | n_press,
|  | double | x,
|  | double | y,
|  | gpointer | data
| ) |  |

static

Popup info box

Definition at line 2183 of file gui_main.c.

## ◆ sound_bell()

void sound_bell | ( | void |  | ) |

Obvious...

Definition at line 2048 of file gui_main.c.

## ◆ tearoff_callback()

static void tearoff_callback | ( | GtkWidget * | b,
|  | gpointer | data
| ) |  |

static

Callback for the toggle button in the detachable widget: causes the widget to detach or reattach.

Definition at line 743 of file gui_main.c.

## ◆ tearoff_close()

static void tearoff_close | ( | GtkWidget * | w,
|  | gpointer | data
| ) |  |

static

User requested close of the detach window.

Definition at line 734 of file gui_main.c.

Referenced by tearoff_callback().

## ◆ tearoff_reattach()

static void tearoff_reattach | ( | GtkWidget * | box | ) |

static

Reattach tearoff to its normal parent and destroy the detach window.

Definition at line 717 of file gui_main.c.

Referenced by tearoff_callback(), and tearoff_close().

## ◆ terminate_signal_processing()

gboolean terminate_signal_processing | ( | GtkEventControllerFocus * | controller,
|  | gpointer | data
| ) |  |

Override background color for canvases Callback that just returns TRUE.

Definition at line 995 of file gui_main.c.

Referenced by create_network_page().

## ◆ timer_callback()

static gboolean timer_callback | ( | gpointer | data | ) |

static

Called while in gtk_main() (which is all of the time) TIMER_INTERVAL is now set by real_timer_callback()

Definition at line 242 of file gui_main.c.

## ◆ toplevel_focus()

static void toplevel_focus | ( | GtkWidget * | w,
|  | GtkDirectionType | arg,
|  | gpointer | data
| ) |  |

static

Focus on widget. Returns whether focus was really changed.

Definition at line 307 of file gui_main.c.

## ◆ toplevel_key_press_handler()

static gboolean toplevel_key_press_handler | ( | GtkEventControllerKey * | controller,
|  | guint | keyval,
|  | guint | keycode,
|  | GdkModifierType | state,
|  | gpointer | data
| ) |  |

static

Handle a keyboard key press made in the client's toplevel window.

Definition at line 550 of file gui_main.c.

## ◆ ui_exit()

void ui_exit | ( | void |  | ) |

Do any necessary UI-specific cleanup

Definition at line 2029 of file gui_main.c.

## ◆ ui_init()

void ui_init | ( | void |  | ) |

Called from main().

Definition at line 1665 of file gui_main.c.

## ◆ ui_main()

int ui_main | ( | int | argc,
|  | char ** | argv
| ) |  |

Called from client_main(), is what it's named.

Definition at line 1850 of file gui_main.c.

## ◆ update_turn_done_tooltip()

void update_turn_done_tooltip | ( | void |  | ) |

Update tooltip of the Turn Done button

Definition at line 1004 of file gui_main.c.

## Variable Documentation

## ◆ ahbox

GtkWidget * ahbox

Definition at line 138 of file gui_main.c.

## ◆ allied_chat_toggle_button

GtkWidget* allied_chat_toggle_button

static

Definition at line 170 of file gui_main.c.

## ◆ avbox

GtkWidget* avbox

Definition at line 138 of file gui_main.c.

## ◆ bottom_hpaned

GtkWidget* bottom_hpaned

static

Definition at line 129 of file gui_main.c.

## ◆ bottom_notebook

GtkWidget * bottom_notebook

Definition at line 127 of file gui_main.c.

## ◆ bulb_label

GtkWidget* bulb_label

Definition at line 142 of file gui_main.c.

## ◆ city_names_style

PangoFontDescription* city_names_style = NULL

Definition at line 131 of file gui_main.c.

## ◆ city_productions_style

PangoFontDescription* city_productions_style = NULL

Definition at line 132 of file gui_main.c.

## ◆ client_string

const char* client_string = GUI_NAME_FULL

Definition at line 104 of file gui_main.c.

## ◆ conn_box

GtkWidget * conn_box

Definition at line 138 of file gui_main.c.

## ◆ cur_x

gint cur_x

Definition at line 175 of file gui_main.c.

Referenced by move_mapcanvas(), and move_mapcanvas().

## ◆ cur_y

gint cur_y

Definition at line 175 of file gui_main.c.

## ◆ econ_label

GtkWidget* econ_label[10]

Definition at line 141 of file gui_main.c.

## ◆ econ_widget

GtkWidget* econ_widget

Definition at line 153 of file gui_main.c.

Referenced by setup_widgets(), and update_info_label().

## ◆ empty_unit_paintable

GdkPaintable* empty_unit_paintable = NULL

static

Definition at line 158 of file gui_main.c.

Referenced by set_unit_icon(), and ui_main().

## ◆ fc_app

GtkApplication* fc_app

static

Definition at line 179 of file gui_main.c.

Referenced by enable_menus(), gui_app(), quit_gtk_main(), real_menus_update(), setup_app_actions(), and ui_main().

## ◆ flake_label

GtkWidget* flake_label

Definition at line 144 of file gui_main.c.

## ◆ government_label

GtkWidget* government_label

Definition at line 145 of file gui_main.c.

## ◆ gui_character_encoding

const char* const gui_character_encoding = "UTF-8"

Definition at line 155 of file gui_main.c.

## ◆ gui_up

bool gui_up = FALSE

static

Definition at line 177 of file gui_main.c.

## ◆ gui_use_transliteration

const bool gui_use_transliteration = FALSE

Definition at line 156 of file gui_main.c.

## ◆ main_frame_civ_name

GtkWidget* main_frame_civ_name

Definition at line 135 of file gui_main.c.

## ◆ main_label_info

GtkWidget* main_label_info

Definition at line 136 of file gui_main.c.

## ◆ main_message_area

GtkTextView* main_message_area

Definition at line 168 of file gui_main.c.

## ◆ map_canvas

GtkWidget* map_canvas

Definition at line 106 of file gui_main.c.

## ◆ map_horizontal_scrollbar

GtkWidget* map_horizontal_scrollbar

Definition at line 107 of file gui_main.c.

## ◆ map_vertical_scrollbar

GtkWidget* map_vertical_scrollbar

Definition at line 108 of file gui_main.c.

## ◆ map_widget

GtkWidget* map_widget

Definition at line 128 of file gui_main.c.

## ◆ message_buffer

GtkTextBuffer* message_buffer = NULL

Definition at line 169 of file gui_main.c.

## ◆ more_arrow

GtkWidget* more_arrow

static

Definition at line 162 of file gui_main.c.

Referenced by free_unit_table(), populate_unit_pic_table(), reset_unit_table(), and set_unit_icons_more_arrow().

## ◆ more_arrow_container

GtkWidget* more_arrow_container

static

Definition at line 163 of file gui_main.c.

Referenced by free_unit_table(), and populate_unit_pic_table().

## ◆ overview_canvas

GtkWidget* overview_canvas

Definition at line 110 of file gui_main.c.

## ◆ overview_canvas_store_height

int overview_canvas_store_height = OVERVIEW_CANVAS_STORE_HEIGHT

Definition at line 122 of file gui_main.c.

## ◆ overview_canvas_store_width

int overview_canvas_store_width = OVERVIEW_CANVAS_STORE_WIDTH

Definition at line 121 of file gui_main.c.

## ◆ overview_scrolled_window

GtkWidget* overview_scrolled_window

Definition at line 111 of file gui_main.c.

## ◆ reqtree_text_style

PangoFontDescription* reqtree_text_style = NULL

Definition at line 133 of file gui_main.c.

## ◆ right_notebook

GtkWidget * right_notebook

Definition at line 127 of file gui_main.c.

## ◆ scroll_panel

GtkWidget* scroll_panel

Definition at line 139 of file gui_main.c.

## ◆ srv_channel

GIOChannel* srv_channel

static

Definition at line 173 of file gui_main.c.

## ◆ srv_id

guint srv_id

static

Definition at line 174 of file gui_main.c.

## ◆ sun_label

GtkWidget* sun_label

Definition at line 143 of file gui_main.c.

## ◆ timeout_label

GtkWidget* timeout_label

Definition at line 146 of file gui_main.c.

## ◆ timer_id

gint timer_id

static

Definition at line 172 of file gui_main.c.

## ◆ top_notebook

GtkWidget* top_notebook

Definition at line 127 of file gui_main.c.

## ◆ top_vbox

GtkWidget* top_vbox

Definition at line 126 of file gui_main.c.

## ◆ toplevel

GtkWidget* toplevel

Definition at line 124 of file gui_main.c.

## ◆ toplevel_tabs

GtkWidget* toplevel_tabs

Definition at line 125 of file gui_main.c.

## ◆ turn_done_button

GtkWidget* turn_done_button

Definition at line 147 of file gui_main.c.

## ◆ unit_below_pic

GtkWidget* unit_below_pic[MAX_NUM_UNITS_BELOW]

static

Definition at line 161 of file gui_main.c.

Referenced by free_unit_table(), populate_unit_pic_table(), and set_unit_icon().

## ◆ unit_id_top

int unit_id_top

static

Definition at line 165 of file gui_main.c.

## ◆ unit_ids

int unit_ids[MAX_NUM_UNITS_BELOW]

static

Definition at line 166 of file gui_main.c.

## ◆ unit_info_box

GtkWidget* unit_info_box

Definition at line 150 of file gui_main.c.

## ◆ unit_info_frame

GtkWidget* unit_info_frame

Definition at line 151 of file gui_main.c.

## ◆ unit_info_label

GtkWidget* unit_info_label

Definition at line 149 of file gui_main.c.

## ◆ unit_pic

GtkWidget* unit_pic

static

Definition at line 160 of file gui_main.c.

Referenced by free_unit_table(), populate_unit_pic_table(), and set_unit_icon().

## ◆ unit_pic_table

GtkWidget* unit_pic_table

static

Definition at line 159 of file gui_main.c.

Referenced by free_unit_table(), populate_unit_pic_table(), and setup_widgets().

## ◆ vmode

struct video_mode vmode = { -1, -1 }

static

Definition at line 181 of file gui_main.c.

## ◆ zoom_steps_custom

float zoom_steps_custom[]

static

Initial value:
= {
-1.0, 0.13, 0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0, 4.0, -1.0
}

Definition at line 223 of file gui_main.c.

Referenced by ui_init().