OpenTTD Source
20241108-master-g80f628063a
|
Window for displaying a textfile. More...
#include <textfile_gui.h>
Data Structures | |
struct | HistoryEntry |
struct | Hyperlink |
struct | Line |
Public Member Functions | |
void | UpdateWidgetSize (WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override |
void | OnClick ([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override |
void | DrawWidget (const Rect &r, WidgetID widget) const override |
void | OnResize () override |
Called after the window got resized. More... | |
void | OnInvalidateData (int data=0, bool gui_scope=true) override |
void | OnDropdownSelect (WidgetID widget, int index) override |
void | Reset () override |
Reset the search, i.e. More... | |
FontSize | DefaultSize () override |
Get the default (font) size of the string. More... | |
std::optional< std::string_view > | NextString () override |
Get the next string to search through. More... | |
bool | Monospace () override |
Whether to search for a monospace font or not. More... | |
void | SetFontNames (FontCacheSettings *settings, const char *font_name, const void *os_data) override |
Set the right font names. More... | |
void | ScrollToLine (size_t line) |
virtual void | LoadTextfile (const std::string &textfile, Subdirectory dir) |
Loads the textfile text from file and setup lines. | |
Public Member Functions inherited from Window | |
Window (WindowDesc &desc) | |
Empty constructor, initialization has been moved to InitNested() called from the constructor of the derived class. More... | |
void * | operator new[] (size_t size)=delete |
Helper allocation function to disallow something. More... | |
template<class NWID > | |
const NWID * | GetWidget (WidgetID widnum) const |
Get the nested widget with number widnum from the nested widget tree. More... | |
template<class NWID > | |
NWID * | GetWidget (WidgetID widnum) |
Get the nested widget with number widnum from the nested widget tree. More... | |
const Scrollbar * | GetScrollbar (WidgetID widnum) const |
Return the Scrollbar to a widget index. More... | |
Scrollbar * | GetScrollbar (WidgetID widnum) |
Return the Scrollbar to a widget index. More... | |
const QueryString * | GetQueryString (WidgetID widnum) const |
Return the querystring associated to a editbox. More... | |
QueryString * | GetQueryString (WidgetID widnum) |
Return the querystring associated to a editbox. More... | |
void | UpdateQueryStringSize () |
Update size of all QueryStrings of this window. | |
virtual const struct Textbuf * | GetFocusedTextbuf () const |
Get the current input text buffer. More... | |
virtual Point | GetCaretPosition () const |
Get the current caret position if an edit box has the focus. More... | |
virtual Rect | GetTextBoundingRect (const char *from, const char *to) const |
Get the bounding rectangle for a text range if an edit box has the focus. More... | |
virtual ptrdiff_t | GetTextCharacterAtPosition (const Point &pt) const |
Get the character that is rendered at a position by the focused edit box. More... | |
void | InitNested (WindowNumber number=0) |
Perform complete initialization of the Window with nested widgets, to allow use. More... | |
void | CreateNestedTree () |
Perform the first part of the initialization of a nested widget tree. More... | |
void | FinishInitNested (WindowNumber window_number=0) |
Perform the second part of the initialization of a nested widget tree. More... | |
template<typename T , std::enable_if_t< std::is_base_of< StrongTypedefBase, T >::value, int > = 0> | |
void | FinishInitNested (T number) |
void | SetTimeout () |
Set the timeout flag of the window and initiate the timer. | |
void | SetWhiteBorder () |
Set the timeout flag of the window and initiate the timer. | |
void | DisableAllWidgetHighlight () |
Disable the highlighted status of all widgets. | |
void | SetWidgetHighlight (WidgetID widget_index, TextColour highlighted_colour) |
Sets the highlighted status of a widget. More... | |
bool | IsWidgetHighlighted (WidgetID widget_index) const |
Gets the highlighted status of a widget. More... | |
void | SetWidgetDisabledState (WidgetID widget_index, bool disab_stat) |
Sets the enabled/disabled status of a widget. More... | |
void | DisableWidget (WidgetID widget_index) |
Sets a widget to disabled. More... | |
void | EnableWidget (WidgetID widget_index) |
Sets a widget to Enabled. More... | |
bool | IsWidgetDisabled (WidgetID widget_index) const |
Gets the enabled/disabled status of a widget. More... | |
bool | IsWidgetFocused (WidgetID widget_index) const |
Check if given widget is focused within this window. More... | |
bool | IsWidgetGloballyFocused (WidgetID widget_index) const |
Check if given widget has user input focus. More... | |
void | SetWidgetLoweredState (WidgetID widget_index, bool lowered_stat) |
Sets the lowered/raised status of a widget. More... | |
void | ToggleWidgetLoweredState (WidgetID widget_index) |
Invert the lowered/raised status of a widget. More... | |
void | LowerWidget (WidgetID widget_index) |
Marks a widget as lowered. More... | |
void | RaiseWidget (WidgetID widget_index) |
Marks a widget as raised. More... | |
void | RaiseWidgetWhenLowered (WidgetID widget_index) |
Marks a widget as raised and dirty (redraw), when it is marked as lowered. More... | |
bool | IsWidgetLowered (WidgetID widget_index) const |
Gets the lowered state of a widget. More... | |
void | UnfocusFocusedWidget () |
Makes no widget on this window have focus. More... | |
bool | SetFocusedWidget (WidgetID widget_index) |
Set focus within this window to the given widget. More... | |
EventState | HandleEditBoxKey (WidgetID wid, char32_t key, uint16_t keycode) |
Process keypress for editbox widget. More... | |
virtual void | InsertTextString (WidgetID wid, const char *str, bool marked, const char *caret, const char *insert_location, const char *replacement_end) |
Insert a text string at the cursor position into the edit box widget. More... | |
void | HandleButtonClick (WidgetID widget) |
Do all things to make a button look clicked and mark it to be unclicked in a few ticks. More... | |
int | GetRowFromWidget (int clickpos, WidgetID widget, int padding, int line_height=-1) const |
Compute the row of a widget that a user clicked in. More... | |
void | RaiseButtons (bool autoraise=false) |
Raise the buttons of the window. More... | |
template<typename... Args> | |
void | SetWidgetsDisabledState (bool disab_stat, Args... widgets) |
Sets the enabled/disabled status of a list of widgets. More... | |
template<typename... Args> | |
void | SetWidgetsLoweredState (bool lowered_stat, Args... widgets) |
Sets the lowered/raised status of a list of widgets. More... | |
template<typename... Args> | |
void | RaiseWidgetsWhenLowered (Args... widgets) |
Raises the widgets and sets widgets dirty that are lowered. More... | |
void | SetWidgetDirty (WidgetID widget_index) const |
Invalidate a widget, i.e. More... | |
void | DrawWidgets () const |
Paint all widgets of a window. | |
void | DrawViewport () const |
Draw the viewport of this window. | |
void | DrawSortButtonState (WidgetID widget, SortButtonState state) const |
Draw a sort button's up or down arrow symbol. More... | |
Window * | FindChildWindow (WindowClass wc=WC_INVALID) const |
Find the Window whose parent pointer points to this window. More... | |
void | CloseChildWindows (WindowClass wc=WC_INVALID) const |
Close all children a window might have in a head-recursive manner. More... | |
virtual void | Close (int data=0) |
Hide the window and all its child windows, and mark them for a later deletion. | |
void | SetDirty () const |
Mark entire window as dirty (in need of re-paint) | |
void | ReInit (int rx=0, int ry=0, bool reposition=false) |
Re-initialize a window, and optionally change its size. More... | |
bool | IsShaded () const |
Is window shaded currently? | |
void | SetShaded (bool make_shaded) |
Set the shaded state of the window to make_shaded. More... | |
void | ScheduleResize () |
Mark this window as resized and in need of OnResize() event. | |
void | ProcessScheduledResize () |
Process scheduled OnResize() event. | |
void | InvalidateData (int data=0, bool gui_scope=true) |
Mark this window's data as invalid (in need of re-computing) More... | |
void | ProcessScheduledInvalidations () |
Process all scheduled invalidations. | |
void | ProcessHighlightedInvalidations () |
Process all invalidation of highlighted widgets. | |
virtual void | OnInit () |
Notification that the nested widget tree gets initialized. More... | |
virtual void | ApplyDefaults () |
Read default values from WindowDesc configuration an apply them to the window. | |
virtual Point | OnInitialPosition (int16_t sm_width, int16_t sm_height, int window_number) |
Compute the initial position of the window. More... | |
virtual void | OnPaint () |
The window must be repainted. More... | |
virtual void | DrawWidget ([[maybe_unused]] const Rect &r, [[maybe_unused]] WidgetID widget) const |
Draw the contents of a nested widget. More... | |
virtual void | UpdateWidgetSize ([[maybe_unused]] WidgetID widget, [[maybe_unused]] Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) |
Update size and resize step of a widget in the window. More... | |
virtual void | SetStringParameters ([[maybe_unused]] WidgetID widget) const |
Initialize string parameters for a widget. More... | |
virtual void | OnFocus () |
The window has gained focus. More... | |
virtual void | OnFocusLost (bool closing) |
The window has lost focus. More... | |
virtual EventState | OnKeyPress ([[maybe_unused]] char32_t key, [[maybe_unused]] uint16_t keycode) |
A key has been pressed. More... | |
virtual EventState | OnHotkey (int hotkey) |
A hotkey has been pressed. More... | |
virtual EventState | OnCTRLStateChange () |
The state of the control key has changed. More... | |
virtual void | OnClick ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget, [[maybe_unused]] int click_count) |
A click with the left mouse button has been made on the window. More... | |
virtual bool | OnRightClick ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget) |
A click with the right mouse button has been made on the window. More... | |
virtual void | OnHover ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget) |
The mouse is hovering over a widget in the window, perform an action for it. More... | |
virtual bool | OnTooltip ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget, [[maybe_unused]] TooltipCloseCondition close_cond) |
Event to display a custom tooltip. More... | |
virtual void | OnMouseDrag ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget) |
An 'object' is being dragged at the provided position, highlight the target if possible. More... | |
virtual void | OnDragDrop ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget) |
A dragged 'object' has been released. More... | |
virtual void | OnScroll ([[maybe_unused]] Point delta) |
Handle the request for (viewport) scrolling. More... | |
virtual void | OnMouseOver ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget) |
The mouse is currently moving over the window or has just moved outside of the window. More... | |
virtual void | OnMouseWheel ([[maybe_unused]] int wheel) |
The mouse wheel has been turned. More... | |
virtual void | OnMouseLoop () |
Called for every mouse loop run, which is at least once per (game) tick. | |
virtual void | OnGameTick () |
Called once per (game) tick. | |
virtual void | OnRealtimeTick ([[maybe_unused]] uint delta_ms) |
Called periodically. | |
virtual void | OnTimeout () |
Called when this window's timeout has been reached. | |
virtual void | OnDropdownSelect ([[maybe_unused]] WidgetID widget, [[maybe_unused]] int index) |
A dropdown option associated to this window has been selected. More... | |
virtual void | OnDropdownClose (Point pt, WidgetID widget, int index, bool instant_close) |
A dropdown window associated to this window has been closed. More... | |
virtual void | OnEditboxChanged ([[maybe_unused]] WidgetID widget) |
The text in an editbox has been edited. More... | |
virtual void | OnQueryTextFinished ([[maybe_unused]] std::optional< std::string > str) |
The query window opened from this window has closed. More... | |
virtual void | OnInvalidateData ([[maybe_unused]] int data=0, [[maybe_unused]] bool gui_scope=true) |
Some data on this window has become invalid. More... | |
virtual void | OnPlaceObject ([[maybe_unused]] Point pt, [[maybe_unused]] TileIndex tile) |
The user clicked some place on the map when a tile highlight mode has been set. More... | |
virtual bool | OnVehicleSelect ([[maybe_unused]] const struct Vehicle *v) |
The user clicked on a vehicle while HT_VEHICLE has been set. More... | |
virtual bool | OnVehicleSelect ([[maybe_unused]] VehicleList::const_iterator begin, [[maybe_unused]] VehicleList::const_iterator end) |
The user clicked on a vehicle while HT_VEHICLE has been set. More... | |
virtual void | OnPlaceObjectAbort () |
The user cancelled a tile highlight mode that has been set. | |
virtual void | OnPlaceDrag ([[maybe_unused]] ViewportPlaceMethod select_method, [[maybe_unused]] ViewportDragDropSelectionProcess select_proc, [[maybe_unused]] Point pt) |
The user is dragging over the map when the tile highlight mode has been set. More... | |
virtual void | OnPlaceMouseUp ([[maybe_unused]] ViewportPlaceMethod select_method, [[maybe_unused]] ViewportDragDropSelectionProcess select_proc, [[maybe_unused]] Point pt, [[maybe_unused]] TileIndex start_tile, [[maybe_unused]] TileIndex end_tile) |
The user has dragged over the map when the tile highlight mode has been set. More... | |
virtual void | OnPlacePresize ([[maybe_unused]] Point pt, [[maybe_unused]] TileIndex tile) |
The user moves over the map when a tile highlight mode has been set when the special mouse mode has been set to 'PRESIZE' mode. More... | |
virtual bool | IsNewGRFInspectable () const |
Is the data related to this window NewGRF inspectable? More... | |
virtual void | ShowNewGRFInspectWindow () const |
Show the NewGRF inspection window. More... | |
template<> | |
const NWidgetBase * | GetWidget (WidgetID widnum) const |
Specialized case of Window::GetWidget for the nested widget base class. | |
Public Member Functions inherited from ZeroedMemoryAllocator | |
void * | operator new (size_t size) |
Memory allocator for a single class instance. More... | |
void * | operator new[] (size_t size) |
Memory allocator for an array of class instances. More... | |
void | operator delete (void *ptr) |
Memory release for a single class instance. More... | |
void | operator delete[] (void *ptr) |
Memory release for an array of class instances. More... | |
Public Member Functions inherited from MissingGlyphSearcher | |
virtual | ~MissingGlyphSearcher ()=default |
Make sure everything gets destructed right. | |
bool | FindMissingGlyphs () |
Check whether there are glyphs missing in the current language. More... | |
Data Fields | |
TextfileType | file_type |
Type of textfile to view. | |
Scrollbar * | vscroll |
Vertical scrollbar. | |
Scrollbar * | hscroll |
Horizontal scrollbar. | |
Data Fields inherited from Window | |
WindowDesc & | window_desc |
Window description. | |
WindowFlags | flags |
Window flags. | |
WindowClass | window_class |
Window class. | |
WindowNumber | window_number |
Window number within the window class. | |
int | scale |
Scale of this window – used to determine how to resize. | |
uint8_t | timeout_timer |
Timer value of the WF_TIMEOUT for flags. | |
uint8_t | white_border_timer |
Timer value of the WF_WHITE_BORDER for flags. | |
int | left |
x position of left edge of the window | |
int | top |
y position of top edge of the window | |
int | width |
width of the window (number of pixels to the right in x direction) | |
int | height |
Height of the window (number of pixels down in y direction) | |
ResizeInfo | resize |
Resize information. | |
Owner | owner |
The owner of the content shown in this window. Company colour is acquired from this variable. | |
ViewportData * | viewport |
Pointer to viewport data, if present. | |
const NWidgetCore * | nested_focus |
Currently focused nested widget, or nullptr if no nested widget has focus. | |
std::map< WidgetID, QueryString * > | querystrings |
QueryString associated to WWT_EDITBOX widgets. | |
std::unique_ptr< NWidgetBase > | nested_root |
Root of the nested tree. | |
WidgetLookup | widget_lookup |
Indexed access to the nested widget tree. Do not access directly, use Window::GetWidget() instead. | |
NWidgetStacked * | shade_select |
Selection widget (NWID_SELECTION) to use for shading the window. If nullptr , window cannot shade. | |
Dimension | unshaded_size |
Last known unshaded size (only valid while shaded). | |
WidgetID | mouse_capture_widget |
ID of current mouse capture widget (e.g. dragged scrollbar). -1 if no widget has mouse capture. | |
Window * | parent |
Parent window. | |
WindowList::iterator | z_position |
Protected Member Functions | |
TextfileWindow (TextfileType file_type) | |
void | ConstructWindow () |
void | LoadText (std::string_view buf) |
Load a text into the textfile viewer. More... | |
void | FindHyperlinksInMarkdown (Line &line, size_t line_index) |
Find any hyperlinks in a given line. More... | |
virtual void | OnHyperlinkClick (const Hyperlink &link) |
Handle the clicking on a hyperlink. More... | |
virtual void | AfterLoadText () |
Post-processing after the text is loaded. | |
void | NavigateToFile (std::string newfile, size_t line) |
Navigate to the requested file. More... | |
void | AppendHistory (const std::string &filepath) |
Append the new location to the history, so the user can go back. More... | |
void | UpdateHistoryScrollpos () |
Update the scroll position to the current, so we can restore there if we go back. | |
void | NavigateHistory (int delta) |
Navigate through the history, either forward or backward. More... | |
Protected Member Functions inherited from Window | |
void | InitializeData (WindowNumber window_number) |
Initializes the data (except the position and initial size) of a new Window. More... | |
void | InitializePositionSize (int x, int y, int min_width, int min_height) |
Set the position and smallest size of the window. More... | |
virtual void | FindWindowPlacementAndResize (int def_width, int def_height) |
Resize window towards the default size. More... | |
virtual | ~Window () |
Remove window and all its child windows from the window stack. | |
Protected Attributes | |
std::string | filename {} |
Filename of the textfile. | |
std::string | filepath {} |
Full path to the filename. | |
std::vector< Line > | lines |
#text, split into lines in a table with lines. | |
std::vector< size_t > | jumplist |
Table of contents list, line numbers. | |
std::vector< Hyperlink > | links |
Clickable links in lines. | |
std::vector< Hyperlink > | link_anchors |
Anchor names of headings that can be linked to. | |
std::vector< HistoryEntry > | history |
Browsing history in this window. | |
size_t | history_pos = 0 |
Position in browsing history (for forward movement). | |
bool | trusted = false |
Whether the content is trusted (read: not from content like NewGRFs, etc). | |
Protected Attributes inherited from Window | |
std::vector< int > | scheduled_invalidation_data |
Data of scheduled OnInvalidateData() calls. | |
bool | scheduled_resize |
Set if window has been resized. | |
Private Member Functions | |
uint | ReflowContent () |
Get the total height of the content displayed in this window, if wrapping is disabled. More... | |
uint | GetContentHeight () |
void | SetupScrollbars (bool force_reflow) |
Set scrollbars to the right lengths. | |
void | CheckHyperlinkClick (Point pt) |
Check if the user clicked on a hyperlink, and handle it if so. More... | |
void | AfterLoadMarkdown () |
Post-processing of markdown files. | |
Private Attributes | |
uint | search_iterator = 0 |
Iterator for the font check search. | |
uint | max_length = 0 |
Maximum length of unwrapped text line. | |
Additional Inherited Members | |
Public Types inherited from Window | |
using | IteratorToFront = WindowIterator< false > |
Iterate in Z order towards front. | |
using | IteratorToBack = WindowIterator< true > |
Iterate in Z order towards back. | |
using | Iterate = AllWindows< false > |
Iterate all windows in whatever order is easiest. | |
using | IterateFromBack = AllWindows< false > |
Iterate all windows in Z order from back to front. | |
using | IterateFromFront = AllWindows< true > |
Iterate all windows in Z order from front to back. | |
Static Public Member Functions inherited from Window | |
static int | SortButtonWidth () |
Get width of up/down arrow of sort button state. More... | |
static void | DeleteClosedWindows () |
Delete all closed windows. | |
Window for displaying a textfile.
Definition at line 21 of file textfile_gui.h.
|
protected |
Append the new location to the history, so the user can go back.
filepath | The location the user is navigating to. |
Definition at line 356 of file textfile_gui.cpp.
References Window::DisableWidget(), Window::EnableWidget(), filepath, history, history_pos, UpdateHistoryScrollpos(), WID_TF_NAVBACK, and WID_TF_NAVFORWARD.
Referenced by OnHyperlinkClick().
|
private |
Check if the user clicked on a hyperlink, and handle it if so.
pt | The loation the user clicked. |
Definition at line 306 of file textfile_gui.cpp.
References TextfileWindow::Line::bottom, Debug, WidgetDimensions::frametext, FS_MONO, GetCharacterHeight(), Layouter::GetCharAtPosition(), Scrollbar::GetPosition(), Window::GetRowFromWidget(), Window::GetScrollbar(), RectPadding::Horizontal(), Window::IsWidgetLowered(), lines, links, OnHyperlinkClick(), WidgetDimensions::scaled, TextfileWindow::Line::top, WID_TF_BACKGROUND, WID_TF_VSCROLLBAR, and WID_TF_WRAPTEXT.
|
overridevirtual |
Get the default (font) size of the string.
Implements MissingGlyphSearcher.
Definition at line 630 of file textfile_gui.cpp.
References FS_MONO.
|
protected |
Find any hyperlinks in a given line.
line | The line to search for hyperlinks. |
line_index | The index of the line. |
Definition at line 244 of file textfile_gui.cpp.
References _markdown_link_regex, ClassifyHyperlink(), TextfileWindow::Hyperlink::destination, Internal, TextfileWindow::Hyperlink::line, links, and TextfileWindow::Line::text.
Referenced by AfterLoadMarkdown().
|
protected |
Load a text into the textfile viewer.
This will split the text into newlines and stores it for fast drawing.
buf | The text to load. |
Definition at line 793 of file textfile_gui.cpp.
References AfterLoadText(), CheckForMissingGlyphs(), FS_MONO, GetStringBoundingBox(), max_length, Window::ReInit(), StrMakeValid(), SVS_ALLOW_NEWLINE, SVS_REPLACE_TAB_CR_NL_WITH_SPACE, and SVS_REPLACE_WITH_QUESTION_MARK.
|
overridevirtual |
Whether to search for a monospace font or not.
Implements MissingGlyphSearcher.
Definition at line 642 of file textfile_gui.cpp.
|
protected |
Navigate through the history, either forward or backward.
delta | The direction to navigate. |
Definition at line 379 of file textfile_gui.cpp.
References filename, filepath, history, history_pos, and UpdateHistoryScrollpos().
|
protected |
Navigate to the requested file.
newfile | The file to navigate to. |
line | The line to scroll to. |
Definition at line 435 of file textfile_gui.cpp.
References filepath.
|
overridevirtual |
Get the next string to search through.
Implements MissingGlyphSearcher.
Definition at line 635 of file textfile_gui.cpp.
References search_iterator.
|
protectedvirtual |
Handle the clicking on a hyperlink.
link | The link that is clicked on. |
Definition at line 401 of file textfile_gui.cpp.
References AppendHistory(), ClassifyHyperlink(), TextfileWindow::Hyperlink::destination, filepath, Internal, link_anchors, UpdateHistoryScrollpos(), and Web.
Referenced by CheckHyperlinkClick().
|
overridevirtual |
Called after the window got resized.
For nested windows with a viewport, call NWidgetViewport::UpdateViewportCoordinates.
Reimplemented from Window.
Definition at line 590 of file textfile_gui.cpp.
References hscroll, WidgetDimensions::scaled, Scrollbar::SetCapacityFromWidget(), SetupScrollbars(), vscroll, and WID_TF_BACKGROUND.
|
private |
Get the total height of the content displayed in this window, if wrapping is disabled.
Definition at line 109 of file textfile_gui.cpp.
References WidgetDimensions::frametext, FS_MONO, GetCharacterHeight(), GetStringHeight(), Window::height, RectPadding::Horizontal(), Window::IsWidgetLowered(), lines, WidgetDimensions::scaled, WID_TF_BACKGROUND, and WID_TF_WRAPTEXT.
Referenced by SetupScrollbars().
|
overridevirtual |
Reset the search, i.e.
begin from the beginning again.
Implements MissingGlyphSearcher.
Definition at line 625 of file textfile_gui.cpp.
References search_iterator.
|
overridevirtual |
Set the right font names.
settings | The settings to modify. |
font_name | The new font name. |
os_data | Opaque pointer to OS-specific data. |
Implements MissingGlyphSearcher.
Definition at line 647 of file textfile_gui.cpp.
References settings.