Freeciv-3.2
Loading...
Searching...
No Matches
Data Structures | Macros | Functions | Variables
helpdlg.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <gtk/gtk.h>
#include "fcintl.h"
#include "mem.h"
#include "shared.h"
#include "support.h"
#include "city.h"
#include "game.h"
#include "government.h"
#include "movement.h"
#include "nation.h"
#include "specialist.h"
#include "tech.h"
#include "unit.h"
#include "map.h"
#include "research.h"
#include "version.h"
#include "client_main.h"
#include "climisc.h"
#include "helpdata.h"
#include "options.h"
#include "tilespec.h"
#include "colors.h"
#include "graphics.h"
#include "gui_main.h"
#include "gui_stuff.h"
#include "helpdlg.h"

Go to the source code of this file.

Data Structures

struct  help_page_selection
 

Macros

#define TECH_TREE_DEPTH   20
 
#define REQ_LABEL_NONE   _("?tech:None")
 
#define REQ_LABEL_NEVER   _("(Never)")
 

Functions

static void create_help_dialog (void)
 
static void help_update_dialog (const struct help_item *pitem)
 
static void select_help_item_string (const char *item, enum help_page_type htype)
 
static void help_command_update (void)
 
static void help_command_callback (GtkWidget *w, gint response_id)
 
void help_system_init (void)
 
static void set_title_topic (char *topic)
 
void popdown_help_dialog (void)
 
void popup_help_dialog_typed (const char *item, enum help_page_type htype)
 
void popup_help_dialog_string (const char *item)
 
static void create_tech_tree (int tech, int levels, GtkTreeIter *parent)
 
static void help_tech_tree_activated_callback (GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data)
 
static void help_tech_tree_expand_callback (GtkWidget *w, gpointer data)
 
static void help_tech_tree_collapse_callback (GtkWidget *w, gpointer data)
 
static void help_hyperlink_callback (GtkWidget *w)
 
static GtkWidget * help_hyperlink_new (GtkWidget *label, struct help_page_selection *select)
 
static GtkWidget * help_hyperlink_new_page (GtkWidget *label, enum help_page_type page)
 
static GtkWidget * help_slink_new (const gchar *txt, struct help_page_selection *select)
 
static GtkWidget * help_slink_new_page (const gchar *txt, enum help_page_type page)
 
static void help_box_hide (void)
 
static void help_destroy_callback (GtkWidget *w, gpointer data)
 
static void activated_topic (GtkTreeView *view, gpointer data)
 
static void set_help_tile_from_sprite (struct sprite *spr)
 
static void set_help_tile_from_terrain (struct terrain *pterr)
 
static void set_help_tile_from_extra (const struct extra_type *pextra)
 
static void help_update_improvement (const struct help_item *pitem, char *title)
 
static void help_update_wonder (const struct help_item *pitem, char *title)
 
static void help_update_unit_type (const struct help_item *pitem, char *title)
 
static char * fc_chomp (char *str, size_t len)
 
static void help_update_tech (const struct help_item *pitem, char *title)
 
static void add_act_help_for_terrain (const char *act_label, const char *result_link_label, enum help_page_type result_link_type, const char *descr_label)
 
static void help_extras_of_act_for_terrain (struct terrain *pterr, enum unit_activity act, char *label)
 
static void help_update_terrain (const struct help_item *pitem, char *title)
 
static void help_update_extra (const struct help_item *pitem, char *title)
 
static void help_update_goods (const struct help_item *pitem, char *title)
 
static void help_update_specialist (const struct help_item *pitem, char *title)
 
static void help_update_government (const struct help_item *pitem, char *title)
 
static void help_update_nation (const struct help_item *pitem, char *title, struct nation_type *pnation)
 
static void help_item_zoom (GtkTreePath *path)
 
static GtkTreePath * help_item_path (const struct help_item *pitem)
 

Variables

static GtkWidget * help_dialog_shell
 
static GtkWidget * help_view_sw
 
static GtkWidget * help_view
 
static GtkWidget * help_frame
 
static int help_frame_width = 520
 
static int help_frame_height = 350
 
static GtkTextBuffer * help_text
 
static GtkWidget * help_text_sw
 
static GtkWidget * help_vbox
 
static GtkWidget * help_tile
 
static GtkWidget * help_box
 
static GtkWidget * help_itable
 
static GtkWidget * help_wtable
 
static GtkWidget * help_utable
 
static GtkWidget * help_ttable
 
static GtkWidget * help_etable
 
static GtkWidget * help_tree
 
static GtkTreeStore * tstore
 
static GtkWidget * help_tree_sw
 
static GtkWidget * help_tree_expand
 
static GtkWidget * help_tree_collapse
 
static GtkWidget * help_tree_buttons_hbox
 
static GtkWidget * help_ilabel [6]
 
static GtkWidget * help_wlabel [6]
 
static GtkWidget * help_ulabel [5][5]
 
static GtkWidget * help_tlabel [2][5]
 
static GtkWidget * help_elabel [6]
 
static bool help_advances [A_LAST]
 
static GPtrArray * help_history
 
static int help_history_pos
 
static const char * help_ilabel_name [6]
 
static struct help_page_selection help_impr_req
 
static const char * help_wlabel_name [6]
 
static struct help_page_selection help_wndr_req
 
static struct help_page_selection page_selections [HELP_LAST]
 
static const char * help_ulabel_name [5][5]
 
static const char * help_tlabel_name [2][5]
 
static const char * help_elabel_name [6]
 

Macro Definition Documentation

◆ REQ_LABEL_NEVER

#define REQ_LABEL_NEVER   _("(Never)")

Definition at line 145 of file helpdlg.c.

◆ REQ_LABEL_NONE

#define REQ_LABEL_NONE   _("?tech:None")

Definition at line 144 of file helpdlg.c.

◆ TECH_TREE_DEPTH

#define TECH_TREE_DEPTH   20

Definition at line 59 of file helpdlg.c.

Function Documentation

◆ activated_topic()

static void activated_topic ( GtkTreeView *  view,
gpointer  data 
)
static

New topic activated from help dialog

Definition at line 471 of file helpdlg.c.

Referenced by create_help_dialog().

◆ add_act_help_for_terrain()

static void add_act_help_for_terrain ( const char *  act_label,
const char *  result_link_label,
enum help_page_type  result_link_type,
const char *  descr_label 
)
static

Add a line for an activity linking to help for result

Definition at line 1248 of file helpdlg.c.

Referenced by help_extras_of_act_for_terrain(), and help_update_terrain().

◆ create_help_dialog()

static void create_help_dialog ( void  )
static

Create help dialog

Definition at line 511 of file helpdlg.c.

Referenced by popup_help_dialog_typed().

◆ create_tech_tree()

static void create_tech_tree ( int  tech,
int  levels,
GtkTreeIter *  parent 
)
static

Called by help_update_tech and itself Creates a node in the given tree for the given tech, and creates child nodes for any children it has up to levels deep. These are then expanded if they are less than expanded_levels deep. Avoids generating redundant subtrees, so that if Literacy occurs twice in a tech tree, only the first will have children. Color codes the node based on when it will be discovered: red >2 turns, yellow 1 turn, green 0 turns (discovered).

Definition at line 227 of file helpdlg.c.

Referenced by create_tech_tree(), help_update_tech(), help_update_unit_type(), and popup_tech_info().

◆ fc_chomp()

static char * fc_chomp ( char *  str,
size_t  len 
)
static

Cut str to at max len bytes in a utf8 friendly way

Definition at line 1057 of file helpdlg.c.

Referenced by help_update_tech().

◆ help_box_hide()

static void help_box_hide ( void  )
static

Hide help box

Definition at line 438 of file helpdlg.c.

Referenced by help_update_dialog().

◆ help_command_callback()

static void help_command_callback ( GtkWidget *  w,
gint  response_id 
)
static

User gave response to help dialog

Definition at line 1739 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_command_update()

static void help_command_update ( void  )
static

Set sensitivity of help dialog response buttons.

Definition at line 1716 of file helpdlg.c.

Referenced by activated_topic(), and help_command_callback().

◆ help_destroy_callback()

static void help_destroy_callback ( GtkWidget *  w,
gpointer  data 
)
static

Completely destroy help dialog

Definition at line 462 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_extras_of_act_for_terrain()

static void help_extras_of_act_for_terrain ( struct terrain *  pterr,
enum unit_activity  act,
char *  label 
)
static

Create widgets about all extras of one cause activity to the terrain.

Definition at line 1271 of file helpdlg.c.

Referenced by help_update_terrain().

◆ help_hyperlink_callback()

static void help_hyperlink_callback ( GtkWidget *  w)
static

Hyperlink clicked

Definition at line 347 of file helpdlg.c.

Referenced by help_hyperlink_new().

◆ help_hyperlink_new()

static GtkWidget * help_hyperlink_new ( GtkWidget *  label,
struct help_page_selection *  select 
)
static

Create new hyperlink button

Definition at line 382 of file helpdlg.c.

Referenced by create_help_dialog(), help_hyperlink_new_page(), and help_slink_new().

◆ help_hyperlink_new_page()

static GtkWidget * help_hyperlink_new_page ( GtkWidget *  label,
enum help_page_type  page 
)
static

Create new hyperlink button for a known page

Definition at line 404 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_item_path()

static GtkTreePath * help_item_path ( const struct help_item *  pitem)
static

Return path to help item.

Definition at line 1652 of file helpdlg.c.

Referenced by help_command_callback(), and select_help_item_string().

◆ help_item_zoom()

static void help_item_zoom ( GtkTreePath *  path)
static

Add item at path to selection and scroll to its cell

Definition at line 1626 of file helpdlg.c.

Referenced by help_command_callback(), and select_help_item_string().

◆ help_slink_new()

static GtkWidget * help_slink_new ( const gchar *  txt,
struct help_page_selection *  select 
)
static

Create new hyperlink button with text

Definition at line 413 of file helpdlg.c.

Referenced by help_slink_new_page().

◆ help_slink_new_page()

static GtkWidget * help_slink_new_page ( const gchar *  txt,
enum help_page_type  page 
)
static

Create new hyperlink button with text for known page

Definition at line 429 of file helpdlg.c.

Referenced by add_act_help_for_terrain(), and help_update_tech().

◆ help_system_init()

void help_system_init ( void  )

Initialize help system.

Definition at line 158 of file helpdlg.c.

Referenced by activate_gui(), and ui_main().

◆ help_tech_tree_activated_callback()

static void help_tech_tree_activated_callback ( GtkTreeView *  view,
GtkTreePath *  path,
GtkTreeViewColumn *  col,
gpointer  data 
)
static

Selects the help page for the tech in the tree that was double clicked.

Definition at line 314 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_tech_tree_collapse_callback()

static void help_tech_tree_collapse_callback ( GtkWidget *  w,
gpointer  data 
)
static

Called when "Collapse All" button is clicked

Definition at line 339 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_tech_tree_expand_callback()

static void help_tech_tree_expand_callback ( GtkWidget *  w,
gpointer  data 
)
static

Called when "Expand All" button is clicked

Definition at line 331 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_update_dialog()

static void help_update_dialog ( const struct help_item *  pitem)
static

Display updated help dialog

Definition at line 1567 of file helpdlg.c.

Referenced by activated_topic(), and help_command_callback().

◆ help_update_extra()

static void help_update_extra ( const struct help_item *  pitem,
char *  title 
)
static

Help page for extras.

Definition at line 1406 of file helpdlg.c.

Referenced by help_update_dialog().

◆ help_update_goods()

static void help_update_goods ( const struct help_item *  pitem,
char *  title 
)
static

This is currently just a text page, with special text:

Definition at line 1488 of file helpdlg.c.

Referenced by help_update_dialog().

◆ help_update_government()

static void help_update_government ( const struct help_item *  pitem,
char *  title 
)
static

This is currently just a text page, with special text:

Definition at line 1528 of file helpdlg.c.

Referenced by help_update_dialog().

◆ help_update_improvement()

static void help_update_improvement ( const struct help_item *  pitem,
char *  title 
)
static

Display updated help about improvement

Definition at line 878 of file helpdlg.c.

Referenced by help_update_dialog().

◆ help_update_nation()

static void help_update_nation ( const struct help_item *  pitem,
char *  title,
struct nation_type *  pnation 
)
static

Show nation flag and legend.

Definition at line 1547 of file helpdlg.c.

Referenced by help_update_dialog().

◆ help_update_specialist()

static void help_update_specialist ( const struct help_item *  pitem,
char *  title 
)
static

This is currently just a text page, with special text:

Definition at line 1508 of file helpdlg.c.

Referenced by help_update_dialog().

◆ help_update_tech()

static void help_update_tech ( const struct help_item *  pitem,
char *  title 
)
static

Display updated help about tech

Definition at line 1077 of file helpdlg.c.

Referenced by help_update_dialog().

◆ help_update_terrain()

static void help_update_terrain ( const struct help_item *  pitem,
char *  title 
)
static

Display updated help about terrain

Definition at line 1291 of file helpdlg.c.

Referenced by help_update_dialog().

◆ help_update_unit_type()

static void help_update_unit_type ( const struct help_item *  pitem,
char *  title 
)
static

Display updated help about unit type

Definition at line 992 of file helpdlg.c.

Referenced by help_update_dialog().

◆ help_update_wonder()

static void help_update_wonder ( const struct help_item *  pitem,
char *  title 
)
static

Display updated help about wonder

Definition at line 928 of file helpdlg.c.

Referenced by help_update_dialog().

◆ popdown_help_dialog()

void popdown_help_dialog ( void  )

◆ popup_help_dialog_string()

void popup_help_dialog_string ( const char *  item)

Not sure if this should call Q_(item) as it does, or whether all callers of this function should do so themselves... –dwp

Definition at line 213 of file helpdlg.c.

Referenced by help_about_callback(), help_about_callback(), help_callback(), help_callback(), help_chatline_callback(), help_chatline_callback(), help_cities_callback(), help_cities_callback(), help_cma_callback(), help_combat_callback(), help_combat_callback(), help_connecting_callback(), help_connecting_callback(), help_controls_callback(), help_controls_callback(), help_copying_callback(), help_copying_callback(), help_diplomacy_callback(), help_diplomacy_callback(), help_economy_callback(), help_economy_callback(), help_government_callback(), help_government_callback(), help_governor_callback(), help_improvements_callback(), help_improvements_callback(), help_language_callback(), help_language_callback(), help_musicset_callback(), help_musicset_callback(), help_nations_callback(), help_nations_callback(), help_overview_callback(), help_overview_callback(), help_playing_callback(), help_playing_callback(), help_policies_callback(), help_policies_callback(), help_ruleset_callback(), help_ruleset_callback(), help_space_race_callback(), help_space_race_callback(), help_tech_callback(), help_tech_callback(), help_terrain_callback(), help_terrain_callback(), help_tileset_callback(), help_tileset_callback(), help_units_callback(), help_units_callback(), help_wonders_callback(), help_wonders_callback(), help_worklist_editor_callback(), help_worklist_editor_callback(), help_zoc_callback(), and help_zoc_callback().

◆ popup_help_dialog_typed()

void popup_help_dialog_typed ( const char *  item,
enum help_page_type  htype 
)

◆ select_help_item_string()

static void select_help_item_string ( const char *  item,
enum help_page_type  htype 
)
static

Add item to selection

Definition at line 1694 of file helpdlg.c.

Referenced by help_hyperlink_callback(), help_tech_tree_activated_callback(), and popup_help_dialog_typed().

◆ set_help_tile_from_extra()

static void set_help_tile_from_extra ( const struct extra_type *  pextra)
static

Set sprite to show for current extra.

Definition at line 850 of file helpdlg.c.

Referenced by help_update_extra().

◆ set_help_tile_from_sprite()

static void set_help_tile_from_sprite ( struct sprite *  spr)
static

Set sprite to show for current help item.

Definition at line 806 of file helpdlg.c.

Referenced by help_update_improvement(), help_update_nation(), help_update_tech(), help_update_unit_type(), and help_update_wonder().

◆ set_help_tile_from_terrain()

static void set_help_tile_from_terrain ( struct terrain *  pterr)
static

Set sprite to show for current terrain.

Definition at line 819 of file helpdlg.c.

Referenced by help_update_terrain().

◆ set_title_topic()

static void set_title_topic ( char *  topic)
static

Set topic specific title for help_frame

Definition at line 174 of file helpdlg.c.

Referenced by help_update_dialog().

Variable Documentation

◆ help_advances

bool help_advances[A_LAST]
static

Definition at line 94 of file helpdlg.c.

Referenced by create_tech_tree(), and help_update_tech().

◆ help_box

GtkWidget* help_box
static

Definition at line 75 of file helpdlg.c.

Referenced by create_help_dialog(), help_box_hide(), and help_update_dialog().

◆ help_dialog_shell

GtkWidget* help_dialog_shell
static

◆ help_elabel

GtkWidget* help_elabel[6]
static

Definition at line 92 of file helpdlg.c.

Referenced by create_help_dialog(), and help_update_extra().

◆ help_elabel_name

const char* help_elabel_name[6]
static
Initial value:
=
{ N_("Build:"), NULL,
N_("Conflicts with:"), NULL,
N_("Bonus (F/P/T):"), NULL }
char * incite_cost
Definition comments.c:75
#define N_(String)
Definition fcintl.h:69

Definition at line 133 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_etable

GtkWidget* help_etable
static

Definition at line 80 of file helpdlg.c.

Referenced by create_help_dialog(), help_box_hide(), and help_update_extra().

◆ help_frame

GtkWidget* help_frame
static

Definition at line 69 of file helpdlg.c.

Referenced by create_help_dialog(), help_command_callback(), and set_title_topic().

◆ help_frame_height

int help_frame_height = 350
static

Definition at line 70 of file helpdlg.c.

Referenced by create_help_dialog(), and help_command_callback().

◆ help_frame_width

int help_frame_width = 520
static

Definition at line 70 of file helpdlg.c.

Referenced by create_help_dialog(), and help_command_callback().

◆ help_history

GPtrArray* help_history
static

◆ help_history_pos

int help_history_pos
static

◆ help_ilabel

GtkWidget* help_ilabel[6]
static

Definition at line 88 of file helpdlg.c.

Referenced by create_help_dialog(), and help_update_improvement().

◆ help_ilabel_name

const char* help_ilabel_name[6]
static
Initial value:
=
{ N_("Base Cost:"), NULL, N_("Upkeep:"), NULL, N_("Requirement:"), NULL }

Definition at line 108 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_impr_req

struct help_page_selection help_impr_req
static

Definition at line 110 of file helpdlg.c.

Referenced by create_help_dialog(), help_system_init(), and help_update_improvement().

◆ help_itable

GtkWidget* help_itable
static

Definition at line 76 of file helpdlg.c.

Referenced by create_help_dialog(), help_box_hide(), and help_update_improvement().

◆ help_text

GtkTextBuffer* help_text
static

◆ help_text_sw

GtkWidget* help_text_sw
static

◆ help_tile

GtkWidget* help_tile
static

◆ help_tlabel

GtkWidget* help_tlabel[2][5]
static

Definition at line 91 of file helpdlg.c.

Referenced by create_help_dialog(), and help_update_terrain().

◆ help_tlabel_name

const char* help_tlabel_name[2][5]
static
Initial value:
=
{
{ N_("Move/Defense:"), NULL, NULL, N_("Food/Res/Trade:"), NULL },
{ N_("Resources:"), NULL, NULL, NULL, NULL }
}

Definition at line 127 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_tree

GtkWidget* help_tree
static

Definition at line 81 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_tree_buttons_hbox

GtkWidget* help_tree_buttons_hbox
static

Definition at line 87 of file helpdlg.c.

Referenced by create_help_dialog(), help_box_hide(), and help_update_tech().

◆ help_tree_collapse

GtkWidget* help_tree_collapse
static

Definition at line 86 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_tree_expand

GtkWidget* help_tree_expand
static

Definition at line 85 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_tree_sw

GtkWidget* help_tree_sw
static

Definition at line 84 of file helpdlg.c.

Referenced by create_help_dialog(), help_box_hide(), and help_update_tech().

◆ help_ttable

GtkWidget* help_ttable
static

Definition at line 79 of file helpdlg.c.

Referenced by create_help_dialog(), help_box_hide(), and help_update_terrain().

◆ help_ulabel

GtkWidget* help_ulabel[5][5]
static

Definition at line 90 of file helpdlg.c.

Referenced by create_help_dialog(), and help_update_unit_type().

◆ help_ulabel_name

const char* help_ulabel_name[5][5]
static
Initial value:
=
{
{ N_("Cost:"), NULL, NULL, N_("Attack:"), NULL },
{ N_("Defense:"), NULL, NULL, N_("Move:"), NULL },
{ N_("Firepower:"), NULL, NULL, N_("Hitpoints:"), NULL },
{ N_("Basic Upkeep:"), NULL, NULL, N_("Vision:"), NULL },
{ N_("Requirement:"), NULL, NULL, N_("Obsolete by:"), NULL }
}

Definition at line 118 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_utable

GtkWidget* help_utable
static

Definition at line 78 of file helpdlg.c.

Referenced by create_help_dialog(), help_box_hide(), and help_update_unit_type().

◆ help_vbox

GtkWidget* help_vbox
static

◆ help_view

GtkWidget* help_view
static

Definition at line 67 of file helpdlg.c.

Referenced by create_help_dialog(), help_item_zoom(), and select_help_item_string().

◆ help_view_sw

GtkWidget* help_view_sw
static

Definition at line 65 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_wlabel

GtkWidget* help_wlabel[6]
static

Definition at line 89 of file helpdlg.c.

Referenced by create_help_dialog(), and help_update_wonder().

◆ help_wlabel_name

const char* help_wlabel_name[6]
static
Initial value:
=
{ N_("Base Cost:"), NULL, N_("Requirement:"), NULL, N_("Obsolete by:"), NULL }

Definition at line 112 of file helpdlg.c.

Referenced by create_help_dialog().

◆ help_wndr_req

struct help_page_selection help_wndr_req
static

Definition at line 114 of file helpdlg.c.

Referenced by create_help_dialog(), help_system_init(), and help_update_wonder().

◆ help_wtable

GtkWidget* help_wtable
static

Definition at line 77 of file helpdlg.c.

Referenced by create_help_dialog(), help_box_hide(), and help_update_wonder().

◆ page_selections

struct help_page_selection page_selections[HELP_LAST]
static

Definition at line 116 of file helpdlg.c.

Referenced by help_hyperlink_new_page(), help_slink_new_page(), and help_system_init().

◆ tstore

GtkTreeStore* tstore
static