Freeciv-3.3
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
featured_text.h File Reference
#include "support.h"
#include "fc_types.h"
#include "speclist.h"

Go to the source code of this file.

Data Structures

struct  ft_color
 

Macros

#define FT_OFFSET_UNSET   ((ft_offset_t) -1)
 
#define SPECLIST_TAG   text_tag
 
#define SPECLIST_TYPE   struct text_tag
 
#define text_tag_list_iterate(tags, ptag)    TYPED_LIST_ITERATE(struct text_tag, tags, ptag)
 
#define text_tag_list_iterate_end   LIST_ITERATE_END
 
#define MAX_LEN_LINK   128
 
#define FT_COLOR(fg, bg)   { fg, bg }
 
#define text_tag_list_new()    text_tag_list_new_full(text_tag_destroy)
 
#define text_tag_list_copy(tags)    text_tag_list_copy_full(tags, text_tag_copy, text_tag_destroy)
 

Typedefs

typedef int ft_offset_t
 

Enumerations

enum  text_tag_type {
  TTT_BOLD = 0 , TTT_ITALIC , TTT_STRIKE , TTT_UNDERLINE ,
  TTT_COLOR , TTT_LINK
}
 
enum  text_link_type { TLT_CITY , TLT_TILE , TLT_UNIT }
 

Functions

static struct ft_color ft_color_construct (const char *foreground, const char *background)
 
static bool ft_color_requested (const struct ft_color color)
 
size_t featured_text_to_plain_text (const char *featured_text, char *plain_text, size_t plain_text_len, struct text_tag_list **tags, bool replace_link_text)
 
size_t featured_text_apply_tag (const char *text_source, char *featured_text, size_t featured_text_len, enum text_tag_type tag_type, ft_offset_t start_offset, ft_offset_t stop_offset,...)
 
struct text_tagtext_tag_new (enum text_tag_type tag_type, ft_offset_t start_offset, ft_offset_t stop_offset,...)
 
struct text_tagtext_tag_copy (const struct text_tag *ptag)
 
void text_tag_destroy (struct text_tag *ptag)
 
enum text_tag_type text_tag_type (const struct text_tag *ptag)
 
ft_offset_t text_tag_start_offset (const struct text_tag *ptag)
 
ft_offset_t text_tag_stop_offset (const struct text_tag *ptag)
 
const chartext_tag_color_foreground (const struct text_tag *ptag)
 
const chartext_tag_color_background (const struct text_tag *ptag)
 
enum text_link_type text_tag_link_type (const struct text_tag *ptag)
 
int text_tag_link_id (const struct text_tag *ptag)
 
const charcity_link (const struct city *pcity)
 
const charcity_tile_link (const struct city *pcity)
 
const chartile_link (const struct tile *ptile)
 
const charunit_link (const struct unit *punit)
 
const charunit_tile_link (const struct unit *punit)
 

Variables

const struct ft_color ftc_any
 
const struct ft_color ftc_warning
 
const struct ft_color ftc_log
 
const struct ft_color ftc_server
 
const struct ft_color ftc_client
 
const struct ft_color ftc_editor
 
const struct ft_color ftc_command
 
VAR_ARG_CONST struct ft_color ftc_changed
 
const struct ft_color ftc_server_prompt
 
const struct ft_color ftc_player_lost
 
const struct ft_color ftc_game_start
 
const struct ft_color ftc_chat_public
 
const struct ft_color ftc_chat_ally
 
const struct ft_color ftc_chat_private
 
const struct ft_color ftc_chat_luaconsole
 
const struct ft_color ftc_vote_public
 
const struct ft_color ftc_vote_team
 
const struct ft_color ftc_vote_passed
 
const struct ft_color ftc_vote_failed
 
const struct ft_color ftc_vote_yes
 
const struct ft_color ftc_vote_no
 
const struct ft_color ftc_vote_abstain
 
const struct ft_color ftc_luaconsole_input
 
const struct ft_color ftc_luaconsole_error
 
const struct ft_color ftc_luaconsole_warn
 
const struct ft_color ftc_luaconsole_normal
 
const struct ft_color ftc_luaconsole_verbose
 
const struct ft_color ftc_luaconsole_debug
 

Macro Definition Documentation

◆ FT_COLOR

#define FT_COLOR (   fg,
  bg 
)    { fg, bg }

Definition at line 145 of file featured_text.h.

◆ FT_OFFSET_UNSET

#define FT_OFFSET_UNSET   ((ft_offset_t) -1)

Definition at line 104 of file featured_text.h.

◆ MAX_LEN_LINK

#define MAX_LEN_LINK   128

Definition at line 138 of file featured_text.h.

◆ SPECLIST_TAG

#define SPECLIST_TAG   text_tag

Definition at line 110 of file featured_text.h.

◆ SPECLIST_TYPE

#define SPECLIST_TYPE   struct text_tag

Definition at line 111 of file featured_text.h.

◆ text_tag_list_copy

#define text_tag_list_copy (   tags)     text_tag_list_copy_full(tags, text_tag_copy, text_tag_destroy)

Definition at line 215 of file featured_text.h.

◆ text_tag_list_iterate

#define text_tag_list_iterate (   tags,
  ptag 
)     TYPED_LIST_ITERATE(struct text_tag, tags, ptag)

Definition at line 114 of file featured_text.h.

◆ text_tag_list_iterate_end

#define text_tag_list_iterate_end   LIST_ITERATE_END

Definition at line 116 of file featured_text.h.

◆ text_tag_list_new

#define text_tag_list_new ( )     text_tag_list_new_full(text_tag_destroy)

Definition at line 213 of file featured_text.h.

Typedef Documentation

◆ ft_offset_t

Definition at line 102 of file featured_text.h.

Enumeration Type Documentation

◆ text_link_type

Enumerator
TLT_CITY 
TLT_TILE 
TLT_UNIT 

Definition at line 131 of file featured_text.h.

◆ text_tag_type

Enumerator
TTT_BOLD 
TTT_ITALIC 
TTT_STRIKE 
TTT_UNDERLINE 
TTT_COLOR 
TTT_LINK 

Definition at line 120 of file featured_text.h.

Function Documentation

◆ city_link()

const char * city_link ( const struct city pcity)

Get a text link to a city. N.B.: The returned string is static, so every call to this function overwrites the previous.

Definition at line 1076 of file featured_text.c.

Referenced by announce_trade_route_removal(), api_methods_city_link(), apply_disaster(), auto_arrange_workers(), build_free_small_wonders(), trade_generator::calculate(), change_build_target(), check_city_migrations_player(), check_pollution(), city_add_unit(), city_build_building(), city_build_unit(), city_distribute_surplus_shields(), city_empty_food_stock(), city_global_turn_notify(), city_illness_strike(), city_increase_size(), city_landlocked_sell_coastal_improvements(), city_populate(), city_refresh_after_city_size_increase(), city_turn_notify(), cityrep_buy(), civil_war(), create_city(), dai_city_sell_noncritical(), diplomat_embassy(), diplomat_escape(), diplomat_escape_full(), diplomat_get_tech(), diplomat_incite(), diplomat_infiltrate_tile(), diplomat_investigate(), diplomat_sabotage(), disband_city(), do_city_migration(), do_nuke_tile(), do_paradrop(), do_unit_change_homecity(), do_unit_conquer_city(), do_unit_establish_trade(), do_unit_strike_city_building(), do_unit_strike_city_production(), found_new_tech(), handle_city(), handle_diplomacy_accept_treaty_req(), handle_edit_city(), inputline_make_chat_link(), chatwdg::make_link(), player_loot_player(), really_handle_city_sell(), remove_city(), remove_obsolete_buildings_city(), research_tech_lost(), sell_random_building(), map_view::shortcut_pressed(), spy_escape(), spy_nuke_city(), spy_poison(), spy_spread_plague(), spy_steal_gold(), spy_steal_some_maps(), teleport_unit_to_city(), transfer_city(), transfer_unit(), try_summon_barbarians(), try_to_save_unit(), unit_attack_civilian_casualties(), unit_conquer_city(), unit_do_destroy_city(), unit_do_help_build(), unit_nuke(), update_city_activity(), upgrade_building_prod(), upgrade_unit_prod(), worklist_change_build_target(), and worklist_item_postpone_req_vec().

◆ city_tile_link()

const char * city_tile_link ( const struct city pcity)

Get a text link to a city tile (make a clickable link to a tile with the city name as text). N.B.: The returned string is static, so every call to this function overwrites the previous.

Definition at line 1093 of file featured_text.c.

Referenced by api_methods_city_tile_link(), disband_city(), do_city_migration(), remove_city(), unit_conquer_city(), and unit_do_destroy_city().

◆ featured_text_apply_tag()

size_t featured_text_apply_tag ( const char text_source,
char featured_text,
size_t  featured_text_len,
enum text_tag_type  tag_type,
ft_offset_t  start_offset,
ft_offset_t  stop_offset,
  ... 
)

Apply a tag to a text. This text can already containing escape sequences. Returns 0 on error.

Prototype:

  • If tag_type is TTT_BOLD, TTT_ITALIC, TTT_STRIKE or TTT_UNDERLINE, there shouldn't be any extra argument.
  • If tag_type is TTT_COLOR: size_t featured_text_apply_tag(..., const struct ft_color color);
  • If tag_type is TTT_LINK and you want a city link: size_t featured_text_apply_tag(..., TLT_CITY, struct city *pcity);
  • If tag_type is TTT_LINK and you want a tile link: size_t featured_text_apply_tag(..., TLT_TILE, struct tile *ptile);
  • If tag_type is TTT_LINK and you want an unit link: size_t featured_text_apply_tag(..., TLT_UNIT, struct unit *punit);

See also comment for text_tag_initv().

Definition at line 997 of file featured_text.c.

Referenced by create_event(), inputline_make_chat_link(), inputline_make_tag(), package_event_full(), player_color_ftstr(), show_players(), and show_settings_one().

◆ featured_text_to_plain_text()

size_t featured_text_to_plain_text ( const char featured_text,
char plain_text,
size_t  plain_text_len,
struct text_tag_list **  tags,
bool  replace_link_text 
)

Separate the text from the text features. 'tags' can be nullptr.

When 'replace_link_text' is set, the text used for the signal sequence links will be overwritten. It is used on client side to have updated links in chatline, to communicate when users don't know share the city names, and avoid users making voluntary confusing names when editing links in chatline.

Definition at line 868 of file featured_text.c.

Referenced by con_write(), handle_event(), luaconsole_append(), and output_window_append().

◆ ft_color_construct()

static struct ft_color ft_color_construct ( const char foreground,
const char background 
)
inlinestatic

◆ ft_color_requested()

static bool ft_color_requested ( const struct ft_color  color)
inlinestatic

Returns whether a color is requested.

Definition at line 160 of file featured_text.h.

Referenced by create_event(), handle_event(), luaconsole_append(), output_window_append(), and package_event_full().

◆ text_tag_color_background()

const char * text_tag_color_background ( const struct text_tag ptag)

Return the background color suggested by this text tag. This requires the tag type to be TTT_COLOR. Returns nullptr on error, "" if unset.

Definition at line 731 of file featured_text.c.

Referenced by apply_tags(), and apply_text_tag().

◆ text_tag_color_foreground()

const char * text_tag_color_foreground ( const struct text_tag ptag)

Return the foreground color suggested by this text tag. This requires the tag type to be TTT_COLOR. Returns nullptr on error, "" if unset.

Definition at line 717 of file featured_text.c.

Referenced by apply_tags(), and apply_text_tag().

◆ text_tag_copy()

struct text_tag * text_tag_copy ( const struct text_tag ptag)

This function returns a new pointer to a text_tag which is similar to the 'ptag' argument.

Definition at line 667 of file featured_text.c.

◆ text_tag_destroy()

void text_tag_destroy ( struct text_tag ptag)

Free a text_tag structure.

Definition at line 684 of file featured_text.c.

Referenced by featured_text_to_plain_text().

◆ text_tag_link_id()

int text_tag_link_id ( const struct text_tag ptag)

Return the link target id suggested by this text tag (city id, tile index or unit id). This requires the tag type to be TTT_LINK. Returns -1 on error.

Definition at line 760 of file featured_text.c.

Referenced by apply_tags(), apply_text_tag(), and handle_event().

◆ text_tag_link_type()

enum text_link_type text_tag_link_type ( const struct text_tag ptag)

Return the link target type suggested by this text tag. This requires the tag type to be TTT_LINK. Returns -1 on error.

Definition at line 745 of file featured_text.c.

Referenced by apply_tags(), apply_text_tag(), and handle_event().

◆ text_tag_new()

struct text_tag * text_tag_new ( enum text_tag_type  tag_type,
ft_offset_t  start_offset,
ft_offset_t  stop_offset,
  ... 
)

Returns a new text_tag or nullptr on error.

Prototype:

  • If tag_type is TTT_BOLD, TTT_ITALIC, TTT_STRIKE or TTT_UNDERLINE, there shouldn't be any extra argument.
  • If tag_type is TTT_COLOR: struct text_tag *text_tag_new(..., const struct ft_color color);
  • If tag_type is TTT_LINK and you want a city link: struct text_tag *text_tag_new(..., TLT_CITY, struct city *pcity);
  • If tag_type is TTT_LINK and you want a tile link: struct text_tag *text_tag_new(..., TLT_TILE, struct tile *ptile);
  • If tag_type is TTT_LINK and you want an unit link: struct text_tag *text_tag_new(..., TLT_UNIT, struct unit *punit);

See also comment for text_tag_initv().

Definition at line 641 of file featured_text.c.

Referenced by handle_event(), luaconsole_append(), and output_window_append().

◆ text_tag_start_offset()

ft_offset_t text_tag_start_offset ( const struct text_tag ptag)

Return the start offset (in bytes) of this text tag.

Definition at line 700 of file featured_text.c.

Referenced by apply_tags(), and apply_text_tag().

◆ text_tag_stop_offset()

ft_offset_t text_tag_stop_offset ( const struct text_tag ptag)

Return the stop offset (in bytes) of this text tag.

Definition at line 708 of file featured_text.c.

Referenced by apply_tags(), and apply_text_tag().

◆ text_tag_type()

Return the type of this text tag.

Definition at line 692 of file featured_text.c.

◆ tile_link()

const char * tile_link ( const struct tile ptile)

◆ unit_link()

const char * unit_link ( const struct unit punit)

◆ unit_tile_link()

const char * unit_tile_link ( const struct unit punit)

Variable Documentation

◆ ftc_any

const struct ft_color ftc_any
extern

◆ ftc_changed

VAR_ARG_CONST struct ft_color ftc_changed
extern

Definition at line 81 of file featured_text.c.

Referenced by show_players(), and show_settings_one().

◆ ftc_chat_ally

const struct ft_color ftc_chat_ally
extern

Definition at line 87 of file featured_text.c.

Referenced by chat_msg_to_allies(), and chat_msg_to_global_observers().

◆ ftc_chat_luaconsole

const struct ft_color ftc_chat_luaconsole
extern

Definition at line 89 of file featured_text.c.

Referenced by api_client_chat_base().

◆ ftc_chat_private

const struct ft_color ftc_chat_private
extern

Definition at line 88 of file featured_text.c.

Referenced by chat_msg_to_conn(), chat_msg_to_player(), and dai_diplo_notify().

◆ ftc_chat_public

const struct ft_color ftc_chat_public
extern

Definition at line 86 of file featured_text.c.

Referenced by chat_msg_to_all().

◆ ftc_client

const struct ft_color ftc_client
extern

◆ ftc_command

const struct ft_color ftc_command
extern

Definition at line 80 of file featured_text.c.

Referenced by cmd_reply_line().

◆ ftc_editor

const struct ft_color ftc_editor
extern

◆ ftc_game_start

const struct ft_color ftc_game_start
extern

Definition at line 84 of file featured_text.c.

Referenced by start_command().

◆ ftc_log

const struct ft_color ftc_log
extern

◆ ftc_luaconsole_debug

const struct ft_color ftc_luaconsole_debug
extern

Definition at line 104 of file featured_text.c.

Referenced by script_client_output().

◆ ftc_luaconsole_error

const struct ft_color ftc_luaconsole_error
extern

Definition at line 100 of file featured_text.c.

Referenced by script_client_output().

◆ ftc_luaconsole_input

const struct ft_color ftc_luaconsole_input
extern

Definition at line 99 of file featured_text.c.

Referenced by luaconsole_input_return(), and luaconsole_load_file_callback().

◆ ftc_luaconsole_normal

const struct ft_color ftc_luaconsole_normal
extern

Definition at line 102 of file featured_text.c.

Referenced by script_client_output().

◆ ftc_luaconsole_verbose

const struct ft_color ftc_luaconsole_verbose
extern

Definition at line 103 of file featured_text.c.

Referenced by script_client_output().

◆ ftc_luaconsole_warn

const struct ft_color ftc_luaconsole_warn
extern

Definition at line 101 of file featured_text.c.

Referenced by script_client_output().

◆ ftc_player_lost

const struct ft_color ftc_player_lost
extern

Definition at line 83 of file featured_text.c.

Referenced by lost_connection_to_client().

◆ ftc_server

const struct ft_color ftc_server
extern

Definition at line 77 of file featured_text.c.

Referenced by aifill(), aifill_action(), announce_player(), announce_trade_route_removal(), api_edit_give_technology(), apply_disaster(), auto_arrange_workers(), begin_turn(), bounce_unit(), build_free_small_wonders(), can_unit_move_to_tile_with_notify(), cancelvote_command(), change_build_target(), check_city_migrations_player(), check_for_game_over(), check_player_max_rates(), check_pollution(), check_units_single_tile(), choose_tech_goal(), city_add_unit(), city_build(), city_build_building(), city_build_unit(), city_distribute_surplus_shields(), city_empty_food_stock(), city_global_turn_notify(), city_illness_strike(), city_increase_size(), city_landlocked_sell_coastal_improvements(), city_map_update_radius_sq(), city_populate(), city_refresh_after_city_size_increase(), city_turn_notify(), civil_war(), cmd_reply_line(), collect_ransom(), complain_ambiguous(), connection_detach(), create_barbarian_player(), create_city(), dai_city_sell_noncritical(), delegate_command(), diplomat_bribe_stack(), diplomat_bribe_unit(), diplomat_embassy(), diplomat_escape_full(), diplomat_get_tech(), diplomat_incite(), diplomat_infiltrate_tile(), diplomat_may_lose_gold(), diplomat_sabotage(), disband_city(), do_airline(), do_attack(), do_capture_units(), do_city_migration(), do_expel_unit(), do_heal_unit(), do_nuclear_explosion(), do_nuke_tile(), do_paradrop(), do_spaceship_place(), do_tech_parasite_effects(), do_unit_change_homecity(), do_unit_establish_trade(), do_unit_strike_city_building(), do_unit_strike_city_production(), do_unit_upgrade(), do_upgrade_effects(), do_wipe_units(), end_command(), end_phase(), end_turn(), establish_new_connection(), execute_orders(), explain_why_no_action_enabled(), forget_tech_transferred(), found_new_tech(), global_warming(), government_change(), handle_chat_msg_req(), handle_city_change(), handle_city_rename(), handle_diplomacy_accept_treaty_req(), handle_diplomacy_cancel_pact(), handle_diplomacy_init_meeting_req(), handle_nation_select_req(), handle_player_change_government(), handle_player_place_infra(), handle_player_rates(), handle_player_ready(), handle_report_req(), handle_spaceship_launch(), handle_unit_get_actions(), handle_unit_type_upgrade(), hut_get_limited(), illegal_action(), illegal_action_msg(), illegal_action_pay_price(), kill_player(), kill_unit(), lost_connection_to_client(), make_contact(), nationset_action(), notify_actor_caught(), notify_actor_success(), notify_global_caught(), notify_global_success(), notify_illegal_armistice_units(), notify_new_government_options(), notify_unit_experience(), notify_victim_caught(), notify_victim_success(), nuclear_winter(), player_loot_player(), player_restore_units(), really_diplomacy_cancel_meeting(), really_handle_city_buy(), really_handle_city_sell(), remove_city(), remove_illegal_armistice_units(), remove_obsolete_buildings_city(), research_tech_lost(), revolution_length(), sell_random_building(), sell_random_unit(), send_delegation_info(), server_remove_player(), server_remove_unit_full(), set_command(), set_running_game_access_level(), spaceship_arrived(), spaceship_lost(), spy_nuke_city(), spy_poison(), spy_sabotage_unit(), spy_spread_plague(), spy_steal_gold(), spy_steal_some_maps(), srv_ready(), srv_scores(), start_cmd_reply(), start_game(), steal_a_tech(), surrender_command(), take_command(), tech_researched(), tech_transfer(), teleport_unit_to_city(), terrain_change_bounce_single_unit(), transfer_city(), transfer_city_units(), transfer_unit(), try_summon_barbarians(), try_to_save_unit(), unit_activities_cancel(), unit_attack_civilian_casualties(), unit_bombard(), unit_can_do_action_now(), unit_conquer_city(), unit_convert(), unit_do_destroy_city(), unit_do_help_build(), unit_lost_with_transport(), unit_nuke(), update_bulbs(), update_city_activity(), update_diplomatics(), update_national_activities(), update_timeout(), upgrade_all_city_extras(), upgrade_building_prod(), upgrade_unit_prod(), wakeup_neighbor_sentries(), worklist_change_build_target(), and worklist_item_postpone_req_vec().

◆ ftc_server_prompt

const struct ft_color ftc_server_prompt
extern

Definition at line 82 of file featured_text.c.

Referenced by handle_stdin_input_real(), and wall().

◆ ftc_vote_abstain

const struct ft_color ftc_vote_abstain
extern

Definition at line 97 of file featured_text.c.

Referenced by check_vote().

◆ ftc_vote_failed

const struct ft_color ftc_vote_failed
extern

Definition at line 94 of file featured_text.c.

Referenced by check_vote().

◆ ftc_vote_no

const struct ft_color ftc_vote_no
extern

Definition at line 96 of file featured_text.c.

Referenced by check_vote().

◆ ftc_vote_passed

const struct ft_color ftc_vote_passed
extern

Definition at line 93 of file featured_text.c.

Referenced by check_vote().

◆ ftc_vote_public

const struct ft_color ftc_vote_public
extern

Definition at line 91 of file featured_text.c.

Referenced by handle_stdin_input_real().

◆ ftc_vote_team

const struct ft_color ftc_vote_team
extern

Definition at line 92 of file featured_text.c.

Referenced by handle_stdin_input_real().

◆ ftc_vote_yes

const struct ft_color ftc_vote_yes
extern

Definition at line 95 of file featured_text.c.

Referenced by check_vote().

◆ ftc_warning

const struct ft_color ftc_warning
extern