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

Freeciv-3.1

Loading...
Searching...
No Matches
Data Structures | Functions | Variables
gui_stuff.c File Reference
`#include <stdarg.h>`
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <gtk/gtk.h>`
`#include <gdk/gdkkeysyms.h>`
`#include "fcintl.h"`
`#include "log.h"`
`#include "mem.h"`
`#include "support.h"`
`#include "options.h"`
`#include "colors.h"`
`#include "gui_main.h"`
`#include "gui_stuff.h"`

Go to the source code of this file.

## Data Structures

struct | blocking_dialog_data

## Functions

void | gtk_expose_now (GtkWidget *w)
GtkWidget * | icon_label_button_new (const gchar *icon_name, const gchar *label_text)
void | gtk_stockbutton_set_label (GtkWidget *button, const gchar *label_text)
void | intl_slist (int n, const char **s, bool *done)
void | itree_begin (GtkTreeModel *model, ITree *it)
gboolean | itree_end (ITree *it)
void | itree_next (ITree *it)
void | itree_set (ITree *it,...)
void | itree_get (ITree *it,...)
void | tstore_append (GtkTreeStore *store, ITree *it, ITree *parent)
gboolean | itree_is_selected (GtkTreeSelection *selection, ITree *it)
void | itree_select (GtkTreeSelection *selection, ITree *it)
void | itree_unselect (GtkTreeSelection *selection, ITree *it)
gint | gtk_tree_selection_get_row (GtkTreeSelection *selection)
void | gtk_tree_view_focus (GtkTreeView *view)
GtkWidget * | aux_menu_new (void)
static void | close_callback (GtkDialog *dialog, gpointer data)
void | setup_dialog (GtkWidget *shell, GtkWidget *parent)
static void | gui_dialog_response (struct gui_dialog *dlg, int response)
static void | gui_dialog_destroyed (struct gui_dialog *dlg, int response, gpointer data)
static void | gui_dialog_destroy_handler (GtkWidget *w, struct gui_dialog *dlg)
static gint | gui_dialog_delete_handler (GtkWidget *widget, gpointer data)
static gint | gui_dialog_delete_tab_handler (struct gui_dialog *dlg)
static gboolean | gui_dialog_key_press_handler (GtkEventControllerKey *controller, guint keyval, guint keycode, GdkModifierType state, gpointer data)
static void | gui_dialog_switch_page_handler (GtkNotebook *notebook, GtkWidget *page, guint num, struct gui_dialog *dlg)
static void | gui_dialog_detach (struct gui_dialog *dlg)
static gboolean | click_on_tab_callback (GtkGestureClick *gesture, int n_press, double x, double y, gpointer data)
void | gui_dialog_new (struct gui_dialog **pdlg, GtkNotebook *notebook, gpointer user_data, bool check_top)
static void | action_widget_activated (GtkWidget *button, GtkWidget *vbox)
static void | gui_dialog_pack_button (struct gui_dialog *dlg, GtkWidget *button, int response)
GtkWidget * | gui_dialog_add_button (struct gui_dialog *dlg, const char *icon_name, const char *text, int response)
GtkWidget * | gui_dialog_add_action_widget (struct gui_dialog *dlg, GtkWidget *widget)
void | gui_dialog_set_response_sensitive (struct gui_dialog *dlg, int response, bool setting)
GtkWidget * | gui_dialog_get_toplevel (struct gui_dialog *dlg)
void | gui_dialog_show_all (struct gui_dialog *dlg)
void | gui_dialog_present (struct gui_dialog *dlg)
void | gui_dialog_raise (struct gui_dialog *dlg)
void | gui_dialog_alert (struct gui_dialog *dlg)
void | gui_dialog_set_default_size (struct gui_dialog *dlg, int width, int height)
void | gui_dialog_set_title (struct gui_dialog *dlg, const char *title)
void | gui_dialog_destroy (struct gui_dialog *dlg)
void | gui_dialog_destroy_all (void)
void | gui_dialog_response_set_callback (struct gui_dialog *dlg, GUI_DIALOG_RESPONSE_FUN fun)
void | gui_dialog_set_return_dialog (struct gui_dialog *dlg, struct gui_dialog *return_dialog)
void | gui_update_font (const char *font_name, const char *font_value)
void | gui_update_font_full (const char *font_name, const char *font_value, PangoFontDescription **font_desc)
void | disable_gobject_callback (GObject *obj, GCallback cb)
void | enable_gobject_callback (GObject *obj, GCallback cb)
GtkTreeViewColumn * | add_treeview_column (GtkWidget *view, const char *title, GType gtype, int model_index)
void | dlg_tab_provider_prepare (void)
void | gui_dialog_add_content_widget (struct gui_dialog *dlg, GtkWidget *wdg)
static void | blocking_dialog_response (GtkWidget *dlg, gint response, void *data)
gint | blocking_dialog (GtkWidget *dlg)
void | widget_destroyed (GtkWidget *wdg, void *data)
GtkWidget * | widget_get_child (GtkWidget *wdg)

## Variables

static GList * | dialog_list
static GtkSizeGroup * | gui_action
static GtkCssProvider * | dlg_tab_provider = NULL

## Function Documentation

## ◆ action_widget_activated()

static void action_widget_activated | ( | GtkWidget * | button,
|  | GtkWidget * | vbox
| ) |  |

static

Called when a dialog button is activated.

Definition at line 627 of file gui_stuff.c.

## ◆ add_treeview_column()

GtkTreeViewColumn * add_treeview_column | ( | GtkWidget * | view,
|  | const char * | title,
|  | GType | gtype,
|  | int | model_index
| ) |  |

Convenience function to add a column to a GtkTreeView. Returns the added column, or NULL if an error occurred.

Definition at line 1041 of file gui_stuff.c.

## ◆ aux_menu_new()

GtkWidget * aux_menu_new | ( | void |  | ) |

Create an auxiliary menubar (i.e., not the main menubar at the top of the window).

Definition at line 243 of file gui_stuff.c.

Referenced by create_city_report_menu(), create_diplomacy_dialog(), create_players_dialog(), and create_worklist().

## ◆ blocking_dialog()

gint blocking_dialog | ( | GtkWidget * | dlg | ) |

Present a blocking dialog and wait for response

Definition at line 1126 of file gui_stuff.c.

Referenced by confirm_cancel_pact(), economy_report_command_callback(), popup_disband_dialog(), popup_musicset_suggestion_dialog(), popup_soundset_suggestion_dialog(), popup_theme_suggestion_dialog(), popup_tileset_suggestion_dialog(), popup_upgrade_dialog(), select_impr_or_unit_callback(), show_tileset_error(), tool_value_selector_run(), try_to_set_editor_tool(), and units_report_command_callback().

## ◆ blocking_dialog_response()

static void blocking_dialog_response | ( | GtkWidget * | dlg,
|  | gint | response,
|  | void * | data
| ) |  |

static

Received a response to a blocking dialog

Definition at line 1114 of file gui_stuff.c.

Referenced by blocking_dialog().

## ◆ click_on_tab_callback()

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

static

Someone has clicked on a label in a notebook

Definition at line 461 of file gui_stuff.c.

## ◆ close_callback()

static void close_callback | ( | GtkDialog * | dialog,
|  | gpointer | data
| ) |  |

static

Generic close callback for all dialogs

Definition at line 253 of file gui_stuff.c.

## ◆ disable_gobject_callback()

void disable_gobject_callback | ( | GObject * | obj,
|  | GCallback | cb
| ) |  |

Temporarily disable signal invocation of the given callback for the given GObject. Re-enable the signal with enable_gobject_callback.

Definition at line 1008 of file gui_stuff.c.

## ◆ dlg_tab_provider_prepare()

void dlg_tab_provider_prepare | ( | void |  | ) |

Prepare dialog tab style provider.

Definition at line 1073 of file gui_stuff.c.

## ◆ enable_gobject_callback()

void enable_gobject_callback | ( | GObject * | obj,
|  | GCallback | cb
| ) |  |

Re-enable a signal callback blocked by disable_gobject_callback.

Definition at line 1024 of file gui_stuff.c.

## ◆ gtk_expose_now()

void gtk_expose_now | ( | GtkWidget * | w | ) |

Draw widget now

Definition at line 52 of file gui_stuff.c.

## ◆ gtk_stockbutton_set_label()

void gtk_stockbutton_set_label | ( | GtkWidget * | button,
|  | const gchar * | label_text
| ) |  |

Changes the label (with mnemonic) on an existing stockbutton. See gtk_stockbutton_new.

Definition at line 85 of file gui_stuff.c.

## ◆ gtk_tree_selection_get_row()

gint gtk_tree_selection_get_row | ( | GtkTreeSelection * | selection | ) |

Return the selected row in a GtkTreeSelection. If no row is selected return -1.

Definition at line 203 of file gui_stuff.c.

## ◆ gtk_tree_view_focus()

void gtk_tree_view_focus | ( | GtkTreeView * | view | ) |

Give focus to view

Definition at line 224 of file gui_stuff.c.

## ◆ gui_dialog_add_action_widget()

GtkWidget * gui_dialog_add_action_widget | ( | struct gui_dialog * | dlg,
|  | GtkWidget * | widget
| ) |  |

Adds a widget to a dialog.

Definition at line 680 of file gui_stuff.c.

Referenced by create_city_report_dialog(), create_players_dialog(), and gui_dialog_pack_button().

## ◆ gui_dialog_add_button()

GtkWidget * gui_dialog_add_button | ( | struct gui_dialog * | dlg,
|  | const char * | icon_name,
|  | const char * | text,
|  | int | response
| ) |  |

Adds a button to a dialog.

Definition at line 665 of file gui_stuff.c.

## ◆ gui_dialog_add_content_widget()

void gui_dialog_add_content_widget | ( | struct gui_dialog * | dlg,
|  | GtkWidget * | wdg
| ) |  |

Add widget to the gui_dialog grid

Definition at line 1095 of file gui_stuff.c.

Referenced by create_city_report_dialog(), create_diplomacy_dialog(), create_messageopt_dialog(), create_players_dialog(), create_spaceship_dialog(), diplomacy_main_create(), economy_report_init(), endgame_report_init(), gui_dialog_new(), luaconsole_dialog_create(), meswin_dialog_init(), popup_find_dialog(), popup_notify_dialog(), science_report_init(), and units_report_init().

## ◆ gui_dialog_alert()

void gui_dialog_alert | ( | struct gui_dialog * | dlg | ) |

Alert the user to an important event.

Definition at line 809 of file gui_stuff.c.

## ◆ gui_dialog_delete_handler()

static gint gui_dialog_delete_handler | ( | GtkWidget * | widget,
|  | gpointer | data
| ) |  |

static

Emit a delete event response on dialog deletion in case the end-user needs to know when a deletion took place. Popup dialog version

Definition at line 341 of file gui_stuff.c.

## ◆ gui_dialog_delete_tab_handler()

static gint gui_dialog_delete_tab_handler | ( | struct gui_dialog * | dlg | ) |

static

Emit a delete event response on dialog deletion in case the end-user needs to know when a deletion took place. TAB version

Definition at line 357 of file gui_stuff.c.

## ◆ gui_dialog_destroy()

void gui_dialog_destroy | ( | struct gui_dialog * | dlg | ) |

Destroy a dialog.

Definition at line 872 of file gui_stuff.c.

## ◆ gui_dialog_destroy_all()

void gui_dialog_destroy_all | ( | void |  | ) |

Destroy all dialogs.

Definition at line 892 of file gui_stuff.c.

## ◆ gui_dialog_destroy_handler()

static void gui_dialog_destroy_handler | ( | GtkWidget * | w,
|  | struct gui_dialog * | dlg
| ) |  |

static

Cleanups the leftovers after a dialog is destroyed.

Definition at line 298 of file gui_stuff.c.

## ◆ gui_dialog_destroyed()

static void gui_dialog_destroyed | ( | struct gui_dialog * | dlg,
|  | int | response,
|  | gpointer | data
| ) |  |

static

Default dialog response handler. Destroys the dialog.

Definition at line 289 of file gui_stuff.c.

## ◆ gui_dialog_detach()

static void gui_dialog_detach | ( | struct gui_dialog * | dlg | ) |

static

Changes a tab into a window.

Definition at line 418 of file gui_stuff.c.

## ◆ gui_dialog_get_toplevel()

GtkWidget * gui_dialog_get_toplevel | ( | struct gui_dialog * | dlg | ) |

Get the dialog's toplevel window.

Definition at line 715 of file gui_stuff.c.

## ◆ gui_dialog_key_press_handler()

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

static

Allow the user to close a dialog using Escape or CTRL+W.

Definition at line 380 of file gui_stuff.c.

## ◆ gui_dialog_new()

void gui_dialog_new | ( | struct gui_dialog ** | pdlg,
|  | GtkNotebook * | notebook,
|  | gpointer | user_data,
|  | bool | check_top
| ) |  |

Creates a new dialog. It will be a tab or a window depending on the current user setting of 'enable_tabs' gtk-gui option. Sets pdlg to point to the dialog once it is create, Zeroes pdlg on dialog destruction. user_data will be passed through response function check_top indicates if the layout decision should depend on the parent.

Definition at line 480 of file gui_stuff.c.

## ◆ gui_dialog_pack_button()

static void gui_dialog_pack_button | ( | struct gui_dialog * | dlg,
|  | GtkWidget * | button,
|  | int | response
| ) |  |

static

Places a button into a dialog, taking care of setting up signals, etc.

Definition at line 640 of file gui_stuff.c.

## ◆ gui_dialog_present()

void gui_dialog_present | ( | struct gui_dialog * | dlg | ) |

Notify the user the dialog has changed.

Definition at line 759 of file gui_stuff.c.

## ◆ gui_dialog_raise()

void gui_dialog_raise | ( | struct gui_dialog * | dlg | ) |

Raise dialog to top.

Definition at line 786 of file gui_stuff.c.

## ◆ gui_dialog_response()

static void gui_dialog_response | ( | struct gui_dialog * | dlg,
|  | int | response
| ) |  |

static

Emit a dialog response.

Definition at line 279 of file gui_stuff.c.

## ◆ gui_dialog_response_set_callback()

void gui_dialog_response_set_callback | ( | struct gui_dialog * | dlg,
|  | GUI_DIALOG_RESPONSE_FUN | fun
| ) |  |

Set the response callback for a dialog.

Definition at line 906 of file gui_stuff.c.

## ◆ gui_dialog_set_default_size()

void gui_dialog_set_default_size | ( | struct gui_dialog * | dlg,
|  | int | width,
|  | int | height
| ) |  |

Sets the dialog's default size (applies to toplevel windows only).

Definition at line 837 of file gui_stuff.c.

## ◆ gui_dialog_set_response_sensitive()

void gui_dialog_set_response_sensitive | ( | struct gui_dialog * | dlg,
|  | int | response,
|  | bool | setting
| ) |  |

Change the sensitivity of a dialog button.

Definition at line 693 of file gui_stuff.c.

## ◆ gui_dialog_set_return_dialog()

void gui_dialog_set_return_dialog | ( | struct gui_dialog * | dlg,
|  | struct gui_dialog * | return_dialog
| ) |  |

When the dlg dialog is destroyed the return_dialog will be raised

Definition at line 915 of file gui_stuff.c.

## ◆ gui_dialog_set_title()

void gui_dialog_set_title | ( | struct gui_dialog * | dlg,
|  | const char * | title
| ) |  |

Changes a dialog's title.

Definition at line 853 of file gui_stuff.c.

## ◆ gui_dialog_show_all()

void gui_dialog_show_all | ( | struct gui_dialog * | dlg | ) |

Show the dialog contents, but not the dialog per se.

Definition at line 723 of file gui_stuff.c.

## ◆ gui_dialog_switch_page_handler()

static void gui_dialog_switch_page_handler | ( | GtkNotebook * | notebook,
|  | GtkWidget * | page,
|  | guint | num,
|  | struct gui_dialog * | dlg
| ) |  |

static

Resets tab colour on tab activation.

Definition at line 400 of file gui_stuff.c.

## ◆ gui_update_font()

void gui_update_font | ( | const char * | font_name,
|  | const char * | font_value
| ) |  |

Updates a gui font style.

Definition at line 928 of file gui_stuff.c.

## ◆ gui_update_font_full()

void gui_update_font_full | ( | const char * | font_name,
|  | const char * | font_value,
|  | PangoFontDescription ** | font_desc
| ) |  |

Update a font option which is not attached to a widget.

Definition at line 991 of file gui_stuff.c.

## ◆ icon_label_button_new()

GtkWidget * icon_label_button_new | ( | const gchar * | icon_name,
|  | const gchar * | label_text
| ) |  |

Create new icon button with label.

Current implementation sets either icon or label, preferring label, never both. Caller should not rely on that, though.

Definition at line 63 of file gui_stuff.c.

## ◆ intl_slist()

void intl_slist | ( | int | n,
|  | const char ** | s,
|  | bool * | done
| ) |  |

Returns gettext-converted list of n strings. The individual strings in the list are as returned by gettext(). In case of no NLS, the strings will be the original strings, so caller should ensure that the originals persist for as long as required. (For no NLS, still allocate the list, for consistency.)

(This is not directly gui/gtk related, but it fits in here because so far it is used for doing i18n for gtk titles...)

Definition at line 100 of file gui_stuff.c.

## ◆ itree_begin()

void itree_begin | ( | GtkTreeModel * | model,
|  | ITree * | it
| ) |  |

Set itree to the beginning

Definition at line 116 of file gui_stuff.c.

## ◆ itree_end()

gboolean itree_end | ( | ITree * | it | ) |

Return whether itree end has been reached

Definition at line 125 of file gui_stuff.c.

## ◆ itree_get()

void itree_get | ( | ITree * | it,
|  |  | ...
| ) |  |

Get values from itree

Definition at line 153 of file gui_stuff.c.

## ◆ itree_is_selected()

gboolean itree_is_selected | ( | GtkTreeSelection * | selection,
|  | ITree * | it
| ) |  |

Return whether current itree item is selected

Definition at line 178 of file gui_stuff.c.

## ◆ itree_next()

void itree_next | ( | ITree * | it | ) |

Make itree to go forward one step

Definition at line 133 of file gui_stuff.c.

## ◆ itree_select()

void itree_select | ( | GtkTreeSelection * | selection,
|  | ITree * | it
| ) |  |

Add current itree item to selection

Definition at line 186 of file gui_stuff.c.

## ◆ itree_set()

void itree_set | ( | ITree * | it,
|  |  | ...
| ) |  |

Store values to itree

Definition at line 141 of file gui_stuff.c.

## ◆ itree_unselect()

void itree_unselect | ( | GtkTreeSelection * | selection,
|  | ITree * | it
| ) |  |

Remove current itree item from selection

Definition at line 194 of file gui_stuff.c.

## ◆ setup_dialog()

void setup_dialog | ( | GtkWidget * | shell,
|  | GtkWidget * | parent
| ) |  |

This function handles new windows which are subwindows to the toplevel window. It must be called on every dialog in the game, so fullscreen windows are handled properly by the window manager.

Definition at line 263 of file gui_stuff.c.

## ◆ tstore_append()

void tstore_append | ( | GtkTreeStore * | store,
|  | ITree * | it,
|  | ITree * | parent
| ) |  |

Append one item to the end of tree store

Definition at line 165 of file gui_stuff.c.

## ◆ widget_destroyed()

void widget_destroyed | ( | GtkWidget * | wdg,
|  | void * | data
| ) |  |

Nullify GtkWidget pointer when widget is destroyed

Definition at line 1145 of file gui_stuff.c.

Referenced by create_goto_dialog(), create_multiplier_dialog(), create_races_dialog(), create_rates_dialog(), luaconsole_dialog_create(), popup_quit_dialog(), popup_revolution_dialog(), save_game_dialog_popup(), save_mapimg_dialog_popup(), and save_scenario_dialog_popup().

## ◆ widget_get_child()

GtkWidget * widget_get_child | ( | GtkWidget * | wdg | ) |

Get child widget for a widget whose own type is not known (without further GTK_IS_...() checks) in the caller side.

Definition at line 1154 of file gui_stuff.c.

## Variable Documentation

## ◆ dialog_list

GList* dialog_list

static

Definition at line 42 of file gui_stuff.c.

## ◆ dlg_tab_provider

GtkCssProvider* dlg_tab_provider = NULL

static

Definition at line 46 of file gui_stuff.c.

## ◆ gui_action

GtkSizeGroup* gui_action

static

Definition at line 44 of file gui_stuff.c.