Freeciv-3.3
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)
 
GtkWidgeticon_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)
 
GtkWidgetaux_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)
 
GtkWidgetgui_dialog_add_button (struct gui_dialog *dlg, const char *icon_name, const char *text, int response)
 
GtkWidgetgui_dialog_add_action_widget (struct gui_dialog *dlg, GtkWidget *widget)
 
void gui_dialog_set_response_sensitive (struct gui_dialog *dlg, int response, bool setting)
 
GtkWidgetgui_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)
 
GtkTreeViewColumnadd_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)
 
GtkWidgetwidget_get_child (GtkWidget *wdg)
 
void alert_close_response (GObject *dialog, GAsyncResult *result, gpointer data)
 
int get_column_view_row (GtkWidget *cview, int y)
 

Variables

static GListdialog_list
 
static GtkSizeGroupgui_action
 
static GtkCssProviderdlg_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 638 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 1052 of file gui_stuff.c.

◆ alert_close_response()

void alert_close_response ( GObject dialog,
GAsyncResult result,
gpointer  data 
)

Callback for alert dialog that can only be closed.

Definition at line 1173 of file gui_stuff.c.

Referenced by buy_callback().

◆ 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 244 of file gui_stuff.c.

◆ blocking_dialog()

gint blocking_dialog ( GtkWidget dlg)

Present a blocking dialog and wait for response

Definition at line 1137 of file gui_stuff.c.

◆ 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 1125 of file gui_stuff.c.

◆ 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 472 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 254 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 1019 of file gui_stuff.c.

◆ dlg_tab_provider_prepare()

void dlg_tab_provider_prepare ( void  )

Prepare dialog tab style provider.

Definition at line 1084 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 1035 of file gui_stuff.c.

◆ get_column_view_row()

int get_column_view_row ( GtkWidget cview,
int  y 
)

Get GtkColumnView row at given y coordinate

Definition at line 1182 of file gui_stuff.c.

Referenced by button_press_callback(), and query_impr_tooltip().

◆ 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 225 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 691 of file gui_stuff.c.

◆ 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 676 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 1106 of file gui_stuff.c.

◆ gui_dialog_alert()

void gui_dialog_alert ( struct gui_dialog dlg)

Alert the user to an important event.

Definition at line 820 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 352 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 368 of file gui_stuff.c.

◆ gui_dialog_destroy()

void gui_dialog_destroy ( struct gui_dialog dlg)

Destroy a dialog.

Definition at line 883 of file gui_stuff.c.

◆ gui_dialog_destroy_all()

void gui_dialog_destroy_all ( void  )

Destroy all dialogs.

Definition at line 903 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 309 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 300 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 429 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 726 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 391 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 491 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 651 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 770 of file gui_stuff.c.

◆ gui_dialog_raise()

void gui_dialog_raise ( struct gui_dialog dlg)

Raise dialog to top.

Definition at line 797 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 290 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 917 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 848 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 704 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 926 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 864 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 734 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 411 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 939 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 1002 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 264 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 1156 of file gui_stuff.c.

◆ 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 1165 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.