mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-02 05:42:35 +00:00
45e47a6df0
It's not quite complete in that entities need to be created for the objects, and passage text object might get additional components in the hierarchy, but the direct use of views has been replaced by the use of a hierarchy object with the same tree structure, and now has text objects for paragraphs and the entire passage.
58 lines
1.5 KiB
C
58 lines
1.5 KiB
C
/*
|
|
passage.h
|
|
|
|
Text passage formatting.
|
|
|
|
Copyright (C) 2022 Bill Currie <bill@taniwha.org>
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to:
|
|
|
|
Free Software Foundation, Inc.
|
|
59 Temple Place - Suite 330
|
|
Boston, MA 02111-1307, USA
|
|
|
|
*/
|
|
|
|
#ifndef __QF_ui_passage_h
|
|
#define __QF_ui_passage_h
|
|
|
|
#include <stdint.h>
|
|
|
|
/** \defgroup passage Text passages
|
|
\ingroup utils
|
|
*/
|
|
///@{
|
|
|
|
typedef struct psg_text_s {
|
|
/// beginning of text for this segment relative to passage_t.text
|
|
uint32_t text;
|
|
/// length of text segment in bytes rather than chars as text may be utf-8
|
|
uint32_t size;
|
|
} psg_text_t;
|
|
|
|
typedef struct passage_s {
|
|
const char *text; ///< Not owned by passage
|
|
|
|
struct ecs_registry_s *reg; ///< Owning ECS registry
|
|
struct hierarchy_s *hierarchy; ///< hierarchy of text objects
|
|
} passage_t;
|
|
|
|
passage_t *Passage_ParseText (const char *text, struct ecs_registry_s *reg);
|
|
void Passage_Delete (passage_t *passage);
|
|
int Passage_IsSpace (const char *text) __attribute__((pure));
|
|
|
|
///@}
|
|
|
|
#endif//__QF_ui_passage_h
|