Freeciv-3.1
Loading...
Searching...
No Matches
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.

Functions

void gtk_expose_now (GtkWidget *w)
 
void set_relative_window_position (GtkWindow *ref, GtkWindow *w, int px, int py)
 
GtkWidget * gtk_stockbutton_new (const gchar *stock, 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 * gtk_aux_menu_bar_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, GdkEventAny *ev, gpointer data)
 
static gint gui_dialog_delete_tab_handler (struct gui_dialog *dlg)
 
static gboolean gui_dialog_key_press_handler (GtkWidget *w, GdkEventKey *ev, 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 (GtkWidget *w, GdkEventButton *button, 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_stockbutton (struct gui_dialog *dlg, const char *stock, const char *text, int response)
 
GtkWidget * gui_dialog_add_button (struct gui_dialog *dlg, const char *text, int response)
 
GtkWidget * gui_dialog_add_widget (struct gui_dialog *dlg, GtkWidget *widget)
 
void gui_dialog_set_default_response (struct gui_dialog *dlg, int response)
 
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)
 

Variables

static GList * dialog_list
 
static GtkSizeGroup * gui_action
 

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

Referenced by gui_dialog_pack_button().

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

Referenced by create_network_page().

◆ click_on_tab_callback()

static gboolean click_on_tab_callback ( GtkWidget *  w,
GdkEventButton *  button,
gpointer  data 
)
static

Someone has clicked on a label in a notebook

Definition at line 481 of file gui_stuff.c.

Referenced by gui_dialog_new().

◆ close_callback()

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

Generic close callback for all widgets

Definition at line 271 of file gui_stuff.c.

Referenced by setup_dialog().

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

Referenced by extviewer_clear_widgets(), extviewer_refresh_widgets(), objprop_refresh_widget(), and refresh_all_buttons().

◆ enable_gobject_callback()

void enable_gobject_callback ( GObject *  obj,
GCallback  cb 
)

Re-enable a signal callback blocked by disable_gobject_callback.

Definition at line 1103 of file gui_stuff.c.

Referenced by extviewer_clear_widgets(), extviewer_refresh_widgets(), objprop_refresh_widget(), and refresh_all_buttons().

◆ gtk_aux_menu_bar_new()

GtkWidget * gtk_aux_menu_bar_new ( void  )

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

Definition at line 249 of file gui_stuff.c.

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

◆ gtk_expose_now()

void gtk_expose_now ( GtkWidget *  w)

Draw widget now

Definition at line 50 of file gui_stuff.c.

◆ gtk_stockbutton_new()

GtkWidget * gtk_stockbutton_new ( const gchar *  stock,
const gchar *  label_text 
)

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

Referenced by update_start_page_buttons().

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

Referenced by cma_add_preset_callback(), cma_del_preset_callback(), cma_preset_key_pressed(), and cma_preset_key_pressed_callback().

◆ gtk_tree_view_focus()

void gtk_tree_view_focus ( GtkTreeView *  view)

◆ gui_dialog_add_button()

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

◆ gui_dialog_add_stockbutton()

GtkWidget * gui_dialog_add_stockbutton ( struct gui_dialog dlg,
const char *  stock,
const char *  text,
int  response 
)

Adds a button to a dialog, allowing the choice of a special stock item.

Definition at line 690 of file gui_stuff.c.

Referenced by create_city_report_dialog(), create_diplomacy_dialog(), diplomacy_main_create(), luaconsole_dialog_create(), meswin_dialog_init(), and units_report_init().

◆ gui_dialog_add_widget()

GtkWidget * gui_dialog_add_widget ( struct gui_dialog dlg,
GtkWidget *  widget 
)

Adds a widget to a dialog.

Definition at line 721 of file gui_stuff.c.

Referenced by create_city_report_dialog(), and create_players_dialog().

◆ gui_dialog_alert()

void gui_dialog_alert ( struct gui_dialog dlg)

◆ gui_dialog_delete_handler()

static gint gui_dialog_delete_handler ( GtkWidget *  widget,
GdkEventAny *  ev,
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 364 of file gui_stuff.c.

Referenced by gui_dialog_detach(), and gui_dialog_new().

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

Referenced by gui_dialog_new().

◆ gui_dialog_destroy()

void gui_dialog_destroy ( struct gui_dialog dlg)

◆ gui_dialog_destroy_all()

void gui_dialog_destroy_all ( void  )

Destroy all dialogs.

Definition at line 971 of file gui_stuff.c.

Referenced by popdown_all_game_dialogs().

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

Referenced by gui_dialog_new().

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

Referenced by gui_dialog_new().

◆ gui_dialog_detach()

static void gui_dialog_detach ( struct gui_dialog dlg)
static

Changes a tab into a window.

Definition at line 438 of file gui_stuff.c.

Referenced by click_on_tab_callback(), and click_on_tab_callback().

◆ gui_dialog_get_toplevel()

GtkWidget * gui_dialog_get_toplevel ( struct gui_dialog dlg)

Get the dialog's toplevel window.

Definition at line 786 of file gui_stuff.c.

Referenced by economy_report_command_callback(), and units_report_command_callback().

◆ gui_dialog_key_press_handler()

static gboolean gui_dialog_key_press_handler ( GtkWidget *  w,
GdkEventKey *  ev,
gpointer  data 
)
static

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

Definition at line 403 of file gui_stuff.c.

Referenced by gui_dialog_new().

◆ 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 504 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(), luaconsole_dialog_create(), meswin_dialog_init(), popup_find_dialog(), popup_notify_dialog(), science_report_init(), and units_report_init().

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

Referenced by gui_dialog_add_button(), gui_dialog_add_button(), and gui_dialog_add_stockbutton().

◆ gui_dialog_present()

void gui_dialog_present ( struct gui_dialog dlg)

◆ gui_dialog_raise()

void gui_dialog_raise ( struct gui_dialog dlg)

◆ gui_dialog_response()

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

◆ gui_dialog_response_set_callback()

void gui_dialog_response_set_callback ( struct gui_dialog dlg,
GUI_DIALOG_RESPONSE_FUN  fun 
)

◆ gui_dialog_set_default_response()

void gui_dialog_set_default_response ( struct gui_dialog dlg,
int  response 
)

◆ gui_dialog_set_default_size()

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

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

Referenced by economy_report_selection_callback(), meswin_dialog_selection_callback(), refresh_spaceship_dialog(), and units_report_selection_callback().

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

Referenced by gui_dialog_delete_tab_handler(), and popup_diplomacy_dialog().

◆ gui_dialog_set_title()

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

◆ gui_dialog_show_all()

void gui_dialog_show_all ( struct gui_dialog dlg)

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

Referenced by gui_dialog_new().

◆ gui_update_font()

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

Updates a gui font style.

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

Referenced by apply_city_names_font(), apply_city_productions_font(), and apply_reqtree_text_font().

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

Referenced by create_and_append_settings_page(), create_city_info_table(), create_city_info_table(), create_happiness_dialog(), populate_view(), and usdlg_tab_select().

◆ itree_begin()

void itree_begin ( GtkTreeModel *  model,
ITree it 
)

◆ itree_end()

gboolean itree_end ( ITree it)

◆ itree_get()

void itree_get ( ITree it,
  ... 
)

Get values from itree

Definition at line 158 of file gui_stuff.c.

Referenced by messageopt_response(), real_city_report_dialog_update(), and science_report_combo_set_active().

◆ itree_is_selected()

gboolean itree_is_selected ( GtkTreeSelection *  selection,
ITree it 
)

◆ itree_next()

void itree_next ( ITree it)

◆ itree_select()

void itree_select ( GtkTreeSelection *  selection,
ITree it 
)

◆ itree_set()

void itree_set ( ITree it,
  ... 
)

Store values to itree

Definition at line 146 of file gui_stuff.c.

◆ itree_unselect()

void itree_unselect ( GtkTreeSelection *  selection,
ITree it 
)

Remove current itree item from selection

Definition at line 200 of file gui_stuff.c.

Referenced by city_invert_selection_callback(), and city_invert_selection_callback().

◆ set_relative_window_position()

void set_relative_window_position ( GtkWindow *  ref,
GtkWindow *  w,
int  px,
int  py 
)

Set window position relative to reference window

Definition at line 58 of file gui_stuff.c.

Referenced by popup_help_dialog_typed().

◆ setup_dialog()

void setup_dialog ( GtkWidget *  shell,
GtkWidget *  parent 
)

◆ tstore_append()

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

Append one item to the end of tree store

Definition at line 170 of file gui_stuff.c.

Variable Documentation

◆ dialog_list

GList* dialog_list
static

Definition at line 42 of file gui_stuff.c.

Referenced by gui_dialog_destroy_all(), gui_dialog_destroy_handler(), and gui_dialog_new().

◆ gui_action

GtkSizeGroup* gui_action
static