text_options.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. /*
  2. This file is part of Telegram Desktop,
  3. the official desktop application for the Telegram messaging service.
  4. For license and copyright information please follow this link:
  5. https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
  6. */
  7. #include "ui/text/text_options.h"
  8. #include "styles/style_window.h"
  9. #include "styles/style_chat.h"
  10. namespace Ui {
  11. namespace {
  12. TextParseOptions HistoryTextOptions = {
  13. TextParseLinks
  14. | TextParseMentions
  15. | TextParseHashtags
  16. | TextParseMultiline
  17. | TextParseMarkdown, // flags
  18. 0, // maxw
  19. 0, // maxh
  20. Qt::LayoutDirectionAuto, // dir
  21. };
  22. TextParseOptions HistoryBotOptions = {
  23. TextParseLinks
  24. | TextParseMentions
  25. | TextParseHashtags
  26. | TextParseBotCommands
  27. | TextParseMultiline
  28. | TextParseMarkdown, // flags
  29. 0, // maxw
  30. 0, // maxh
  31. Qt::LayoutDirectionAuto, // dir
  32. };
  33. TextParseOptions HistoryServiceOptions = {
  34. TextParseLinks
  35. | TextParseMentions
  36. //| TextParseMultiline
  37. | TextParseHashtags
  38. | TextParseMarkdown, // flags
  39. 0, // maxw
  40. 0, // maxh
  41. Qt::LayoutDirectionAuto, // lang-dependent
  42. };
  43. TextParseOptions HistoryTextNoMonoOptions = {
  44. TextParseLinks
  45. | TextParseMentions
  46. | TextParseHashtags
  47. | TextParseMultiline, // flags
  48. 0, // maxw
  49. 0, // maxh
  50. Qt::LayoutDirectionAuto, // dir
  51. };
  52. TextParseOptions HistoryBotNoMonoOptions = {
  53. TextParseLinks
  54. | TextParseMentions
  55. | TextParseHashtags
  56. | TextParseBotCommands
  57. | TextParseMultiline, // flags
  58. 0, // maxw
  59. 0, // maxh
  60. Qt::LayoutDirectionAuto, // dir
  61. };
  62. TextParseOptions TextNameOptions = {
  63. 0, // flags
  64. 4096, // maxw
  65. 1, // maxh
  66. Qt::LayoutDirectionAuto, // lang-dependent
  67. };
  68. TextParseOptions TextDialogOptions = {
  69. TextParseColorized | TextParseMarkdown, // flags
  70. 0, // maxw is style-dependent
  71. 1, // maxh
  72. Qt::LayoutDirectionAuto, // lang-dependent
  73. };
  74. TextParseOptions WebpageTitleOptions = {
  75. TextParseMultiline, // flags
  76. 0, // maxw
  77. 0, // maxh
  78. Qt::LayoutDirectionAuto, // dir
  79. };
  80. TextParseOptions WebpageDescriptionOptions = {
  81. TextParseLinks
  82. | TextParseMentions
  83. | TextParseHashtags
  84. | TextParseMultiline
  85. | TextParseMarkdown, // flags
  86. 0, // maxw
  87. 0, // maxh
  88. Qt::LayoutDirectionAuto, // dir
  89. };
  90. } // namespace
  91. void InitTextOptions() {
  92. TextDialogOptions.maxw = st::columnMaximalWidthLeft * 2;
  93. WebpageTitleOptions.maxh = st::webPageTitleFont->height * 2;
  94. WebpageTitleOptions.maxw
  95. = WebpageDescriptionOptions.maxw
  96. = st::msgMaxWidth
  97. - st::msgPadding.left()
  98. - st::messageQuoteStyle.padding.left()
  99. - st::messageQuoteStyle.padding.right()
  100. - st::msgPadding.right();
  101. }
  102. const TextParseOptions &ItemTextDefaultOptions() {
  103. return HistoryTextOptions;
  104. }
  105. const TextParseOptions &ItemTextBotDefaultOptions() {
  106. return HistoryBotOptions;
  107. }
  108. const TextParseOptions &ItemTextNoMonoOptions() {
  109. return HistoryTextNoMonoOptions;
  110. }
  111. const TextParseOptions &ItemTextBotNoMonoOptions() {
  112. return HistoryBotNoMonoOptions;
  113. }
  114. const TextParseOptions &ItemTextServiceOptions() {
  115. return HistoryServiceOptions;
  116. }
  117. const TextParseOptions &WebpageTextTitleOptions() {
  118. return WebpageTitleOptions;
  119. }
  120. const TextParseOptions &WebpageTextDescriptionOptions() {
  121. return WebpageDescriptionOptions;
  122. }
  123. const TextParseOptions &NameTextOptions() {
  124. return TextNameOptions;
  125. }
  126. const TextParseOptions &DialogTextOptions() {
  127. return TextDialogOptions;
  128. }
  129. } // namespace Ui