Freeciv-3.1
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 "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_box_add (GtkWidget *wdg)
 
static void help_box_clear (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 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 143 of file helpdlg.c.

◆ REQ_LABEL_NONE

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

Definition at line 142 of file helpdlg.c.

◆ TECH_TREE_DEPTH

#define TECH_TREE_DEPTH   20

Definition at line 58 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 486 of file helpdlg.c.

◆ 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 1291 of file helpdlg.c.

◆ create_help_dialog()

static void create_help_dialog ( void  )
static

Create help dialog.

Definition at line 530 of file helpdlg.c.

◆ 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 222 of file helpdlg.c.

◆ 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 1092 of file helpdlg.c.

◆ help_box_add()

static void help_box_add ( GtkWidget *  wdg)
static

Add widget to help box.

Definition at line 456 of file helpdlg.c.

Referenced by add_act_help_for_terrain(), and help_update_tech().

◆ help_box_clear()

static void help_box_clear ( void  )
static

Clear help box.

Definition at line 464 of file helpdlg.c.

Referenced by help_update_tech(), and help_update_terrain().

◆ help_box_hide()

static void help_box_hide ( void  )
static

Hide help box.

Definition at line 432 of file helpdlg.c.

◆ help_command_callback()

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

User gave response to help dialog.

Definition at line 1783 of file helpdlg.c.

◆ help_command_update()

static void help_command_update ( void  )
static

Set sensitivity of help dialog response buttons.

Definition at line 1760 of file helpdlg.c.

◆ help_destroy_callback()

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

Completely destroy help dialog.

Definition at line 477 of file helpdlg.c.

◆ 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 1314 of file helpdlg.c.

◆ help_hyperlink_callback()

static void help_hyperlink_callback ( GtkWidget *  w)
static

Hyperlink clicked

Definition at line 340 of file helpdlg.c.

◆ help_hyperlink_new()

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

Create new hyperlink button.

Definition at line 376 of file helpdlg.c.

◆ 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 398 of file helpdlg.c.

◆ help_item_path()

static GtkTreePath * help_item_path ( const struct help_item pitem)
static

Return path to help item.

Definition at line 1695 of file helpdlg.c.

◆ 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 1669 of file helpdlg.c.

◆ 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 407 of file helpdlg.c.

◆ 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 423 of file helpdlg.c.

◆ help_system_init()

void help_system_init ( void  )

Initialize help system.

Definition at line 156 of file helpdlg.c.

◆ 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 307 of file helpdlg.c.

◆ 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 332 of file helpdlg.c.

◆ 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 324 of file helpdlg.c.

◆ help_update_dialog()

static void help_update_dialog ( const struct help_item pitem)
static

Display updated help dialog.

Definition at line 1610 of file helpdlg.c.

◆ help_update_extra()

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

Help page for extras.

Definition at line 1450 of file helpdlg.c.

◆ 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 1530 of file helpdlg.c.

◆ 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 1570 of file helpdlg.c.

◆ help_update_improvement()

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

Display updated help about improvement

Definition at line 904 of file helpdlg.c.

◆ 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 1590 of file helpdlg.c.

◆ 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 1550 of file helpdlg.c.

◆ help_update_tech()

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

Display updated help about tech.

Definition at line 1113 of file helpdlg.c.

◆ help_update_terrain()

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

Display updated help about terrain.

Definition at line 1334 of file helpdlg.c.

◆ 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 1018 of file helpdlg.c.

◆ help_update_wonder()

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

Display updated help about wonder.

Definition at line 954 of file helpdlg.c.

◆ popdown_help_dialog()

void popdown_help_dialog ( void  )

Close help dialog.

Definition at line 184 of file helpdlg.c.

◆ 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 208 of file helpdlg.c.

◆ popup_help_dialog_typed()

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

Popup help dialog for given item of given type.

Definition at line 194 of file helpdlg.c.

◆ 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 1738 of file helpdlg.c.

◆ 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 876 of file helpdlg.c.

◆ 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 832 of file helpdlg.c.

◆ 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 845 of file helpdlg.c.

◆ set_title_topic()

static void set_title_topic ( char *  topic)
static

Set topic specific title for help_frame

Definition at line 172 of file helpdlg.c.

Variable Documentation

◆ help_advances

bool help_advances[A_LAST]
static

Definition at line 92 of file helpdlg.c.

◆ help_box

GtkWidget* help_box
static

Definition at line 73 of file helpdlg.c.

◆ help_dialog_shell

GtkWidget* help_dialog_shell
static

Definition at line 63 of file helpdlg.c.

◆ help_elabel

GtkWidget* help_elabel[6]
static

Definition at line 90 of file helpdlg.c.

◆ 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 }
#define N_(String)
Definition fcintl.h:69

Definition at line 131 of file helpdlg.c.

◆ help_etable

GtkWidget* help_etable
static

Definition at line 78 of file helpdlg.c.

◆ help_frame

GtkWidget* help_frame
static

Definition at line 68 of file helpdlg.c.

◆ help_history

GPtrArray* help_history
static

Definition at line 94 of file helpdlg.c.

◆ help_history_pos

int help_history_pos
static

Definition at line 95 of file helpdlg.c.

◆ help_ilabel

GtkWidget* help_ilabel[6]
static

Definition at line 86 of file helpdlg.c.

◆ 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 106 of file helpdlg.c.

◆ help_impr_req

struct help_page_selection help_impr_req
static

Definition at line 108 of file helpdlg.c.

◆ help_itable

GtkWidget* help_itable
static

Definition at line 74 of file helpdlg.c.

◆ help_text

GtkTextBuffer* help_text
static

Definition at line 69 of file helpdlg.c.

◆ help_text_sw

GtkWidget* help_text_sw
static

Definition at line 70 of file helpdlg.c.

◆ help_tile

GtkWidget* help_tile
static

Definition at line 72 of file helpdlg.c.

◆ help_tlabel

GtkWidget* help_tlabel[2][5]
static

Definition at line 89 of file helpdlg.c.

◆ 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 125 of file helpdlg.c.

◆ help_tree

GtkWidget* help_tree
static

Definition at line 79 of file helpdlg.c.

◆ help_tree_buttons_hbox

GtkWidget* help_tree_buttons_hbox
static

Definition at line 85 of file helpdlg.c.

◆ help_tree_collapse

GtkWidget* help_tree_collapse
static

Definition at line 84 of file helpdlg.c.

◆ help_tree_expand

GtkWidget* help_tree_expand
static

Definition at line 83 of file helpdlg.c.

◆ help_tree_sw

GtkWidget* help_tree_sw
static

Definition at line 82 of file helpdlg.c.

◆ help_ttable

GtkWidget* help_ttable
static

Definition at line 77 of file helpdlg.c.

◆ help_ulabel

GtkWidget* help_ulabel[5][5]
static

Definition at line 88 of file helpdlg.c.

◆ 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 116 of file helpdlg.c.

◆ help_utable

GtkWidget* help_utable
static

Definition at line 76 of file helpdlg.c.

◆ help_vbox

GtkWidget* help_vbox
static

Definition at line 71 of file helpdlg.c.

◆ help_view

GtkWidget* help_view
static

Definition at line 66 of file helpdlg.c.

◆ help_view_sw

GtkWidget* help_view_sw
static

Definition at line 64 of file helpdlg.c.

◆ help_wlabel

GtkWidget* help_wlabel[6]
static

Definition at line 87 of file helpdlg.c.

◆ 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 110 of file helpdlg.c.

◆ help_wndr_req

struct help_page_selection help_wndr_req
static

Definition at line 112 of file helpdlg.c.

◆ help_wtable

GtkWidget* help_wtable
static

Definition at line 75 of file helpdlg.c.

◆ page_selections

struct help_page_selection page_selections[HELP_LAST]
static

Definition at line 114 of file helpdlg.c.

◆ tstore

GtkTreeStore* tstore
static

Definition at line 80 of file helpdlg.c.