Freeciv-3.2
Loading...
Searching...
No Matches
Data Structures | Macros | Functions | Variables
gui_string.c File Reference
#include <SDL2/SDL.h>
#include "fcintl.h"
#include "log.h"
#include "mem.h"
#include "colors.h"
#include "graphics.h"
#include "gui_main.h"
#include "themespec.h"
#include "utf8string.h"
#include "gui_string.h"

Go to the source code of this file.

Data Structures

struct  ttf_font_chain
 

Macros

#define adj_font(size)   size
 
#define ptsize_default()   adj_font(default_font_size(active_theme))
 

Functions

static TTF_Fontload_font (Uint16 ptsize)
 
static SDL_Surfacecreate_utf8_surf (utf8_str *pstr)
 
static SDL_Surfacecreate_utf8_multi_surf (utf8_str *pstr)
 
void utf8_str_size (utf8_str *pstr, SDL_Rect *fill)
 
static Uint16 fonto_ptsize (enum font_origin origin)
 
utf8_strcreate_utf8_str (char *in_text, size_t n_alloc, Uint16 ptsize)
 
utf8_strcreate_utf8_str_fonto (char *in_text, size_t n_alloc, enum font_origin origin)
 
utf8_strcopy_chars_to_utf8_str (utf8_str *pstr, const char *pchars)
 
int write_utf8 (SDL_Surface *dest, Sint16 x, Sint16 y, utf8_str *pstr)
 
SDL_Surfacecreate_text_surf_from_utf8 (utf8_str *pstr)
 
bool convert_utf8_str_to_const_surface_width (utf8_str *pstr, int width)
 
SDL_Surfacecreate_text_surf_smaller_than_w (utf8_str *pstr, int w)
 
void change_ptsize_utf8 (utf8_str *pstr, Uint16 new_ptsize)
 
void change_fonto_utf8 (utf8_str *pstr, enum font_origin origin)
 
void unload_font (Uint16 ptsize)
 
void free_font_system (void)
 

Variables

static struct ttf_font_chainfont_tab = NULL
 
static charfont_with_full_path = NULL
 

Macro Definition Documentation

◆ adj_font

#define adj_font (   size)    size

Definition at line 67 of file gui_string.c.

◆ ptsize_default

#define ptsize_default ( )    adj_font(default_font_size(active_theme))

Definition at line 70 of file gui_string.c.

Function Documentation

◆ change_fonto_utf8()

void change_fonto_utf8 ( utf8_str pstr,
enum font_origin  origin 
)

Change font size of text to that from given origin.

Definition at line 584 of file gui_string.c.

Referenced by popup_notify_dialog(), popup_races_dialog(), redraw_info_city_dialog(), redraw_tech_info_dlg(), redraw_unit_info_label(), and update_intel_dialog().

◆ change_ptsize_utf8()

void change_ptsize_utf8 ( utf8_str pstr,
Uint16  new_ptsize 
)

Change font size of text.

Definition at line 559 of file gui_string.c.

Referenced by change_fonto_utf8(), convert_utf8_str_to_const_surface_width(), and create_text_surf_smaller_than_w().

◆ convert_utf8_str_to_const_surface_width()

bool convert_utf8_str_to_const_surface_width ( utf8_str pstr,
int  width 
)

Wrap text to make it fit to given screen width.

Definition at line 449 of file gui_string.c.

Referenced by add_to_chat_list(), create_tech_info(), create_text_surf_smaller_than_w(), popup_impr_info(), popup_unit_info(), and real_meswin_dialog_update().

◆ copy_chars_to_utf8_str()

utf8_str * copy_chars_to_utf8_str ( utf8_str pstr,
const char pchars 
)

Convert char array to utf8_str. Pointer to target string is needed as parameter, but also returned for convenience.

Definition at line 251 of file gui_string.c.

Referenced by add_target_to_production(), canvas_put_text(), change_nation_label(), change_sex_callback(), combo_menu_item_callback(), convert_playername_callback(), convert_portnr_callback(), convert_servername_callback(), create_tech_tree(), economy_report_dialog_popup(), get_text_size(), gold_callback(), leader_name_edit_callback(), new_name_city_dlg_callback(), newcity_name_edit_callback(), next_name_callback(), notify_goto_dialog_update(), option_widget_update(), popup_change_research_dialog(), popup_change_research_goal_dialog(), popup_city_cma_dialog(), popup_impr_info(), popup_notify_dialog(), popup_players_dialog(), popup_races_dialog(), popup_tech_info(), popup_unit_info(), popup_worklist_editor(), prev_name_callback(), real_activeunits_report_dialog_update(), real_city_report_dialog_update_city(), real_conn_list_dialog_update(), real_economy_report_dialog_update(), real_info_city_report_dialog_update(), real_menus_update(), real_players_dialog_update(), real_science_report_dialog_update(), real_units_report_dialog_update(), rebuild_citydlg_title_str(), redraw_city_dialog(), redraw_info_city_dialog(), redraw_tech_info_dlg(), redraw_unit_info_label(), refresh_city_names(), refresh_production_label(), refresh_spaceship_dialog(), refresh_worklist_count_label(), rename_worklist_editor_callback(), report_scroll_mouse_motion_handler(), scroll_mouse_motion_handler(), select_random_leader(), set_cma_hscrollbars(), set_indicator_icons(), setup_auxiliary_tech_icons(), spy_steal_popup_shared(), toggle_map_window_callback(), toggle_msg_window_callback(), toggle_unit_info_window_callback(), update_info_label(), update_intel_dialog(), and update_worklist_report_dialog().

◆ create_text_surf_from_utf8()

SDL_Surface * create_text_surf_from_utf8 ( utf8_str pstr)

◆ create_text_surf_smaller_than_w()

SDL_Surface * create_text_surf_smaller_than_w ( utf8_str pstr,
int  w 
)

Create surface with text drawn to it. Wrap text as needed to make it fit in given width.

Definition at line 539 of file gui_string.c.

Referenced by create_select_tech_icon(), economy_report_dialog_popup(), nation_button_callback(), popup_impr_info(), popup_races_dialog(), popup_unit_info(), popup_worklist_editor(), and redraw_unit_info_label().

◆ create_utf8_multi_surf()

static SDL_Surface * create_utf8_multi_surf ( utf8_str pstr)
static

Create surface with multiline text drawn.

Definition at line 343 of file gui_string.c.

Referenced by create_text_surf_from_utf8().

◆ create_utf8_str()

utf8_str * create_utf8_str ( char in_text,
size_t  n_alloc,
Uint16  ptsize 
)

Create utf8_str struct with ptsize font. If ptsize is zero, use theme's default font size.

Font will be loaded or aliased with existing font of that size. in_text must be allocated in memory (fc_malloc() / fc_calloc())

Definition at line 206 of file gui_string.c.

Referenced by canvas_put_text(), create_utf8_str_fonto(), get_text_size(), and real_meswin_dialog_update().

◆ create_utf8_str_fonto()

utf8_str * create_utf8_str_fonto ( char in_text,
size_t  n_alloc,
enum font_origin  origin 
)

◆ create_utf8_surf()

static SDL_Surface * create_utf8_surf ( utf8_str pstr)
static

Create Text Surface from utf8_str

Definition at line 298 of file gui_string.c.

Referenced by create_text_surf_from_utf8(), and create_utf8_multi_surf().

◆ fonto_ptsize()

static Uint16 fonto_ptsize ( enum font_origin  origin)
static

Convert font_origin to ptsize value

Definition at line 168 of file gui_string.c.

Referenced by change_fonto_utf8(), and create_utf8_str_fonto().

◆ free_font_system()

void free_font_system ( void  )

Free all fonts.

Definition at line 698 of file gui_string.c.

Referenced by ui_main().

◆ load_font()

static TTF_Font * load_font ( Uint16  ptsize)
static

Load font of given pointsize.

Definition at line 594 of file gui_string.c.

Referenced by change_ptsize_utf8(), and create_utf8_str().

◆ unload_font()

void unload_font ( Uint16  ptsize)

Free font of given pointsize.

Definition at line 653 of file gui_string.c.

Referenced by change_ptsize_utf8().

◆ utf8_str_size()

void utf8_str_size ( utf8_str pstr,
SDL_Rect fill 
)

Adjust font sizes for small screen. Calculate display size of string.

Definition at line 106 of file gui_string.c.

Referenced by combo_new(), convert_utf8_str_to_const_surface_width(), create_edit(), create_icon_button(), create_window_skeleton(), get_text_size(), meswin_dialog_popup(), and remake_label_size().

◆ write_utf8()

int write_utf8 ( SDL_Surface dest,
Sint16  x,
Sint16  y,
utf8_str pstr 
)

Blit text to surface.

Definition at line 276 of file gui_string.c.

Variable Documentation

◆ font_tab

struct ttf_font_chain * font_tab = NULL
static

◆ font_with_full_path

char* font_with_full_path = NULL
static

Definition at line 56 of file gui_string.c.

Referenced by free_font_system(), and load_font().