File: wx.lib.floatcanvas.FCObjects.ScaledTextBox.txt

package info (click to toggle)
wxpython4.0 4.2.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 232,540 kB
  • sloc: cpp: 958,937; python: 233,059; ansic: 150,441; makefile: 51,662; sh: 8,687; perl: 1,563; javascript: 584; php: 326; xml: 200
file content (186 lines) | stat: -rw-r--r-- 7,906 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc

.. currentmodule:: wx.lib.floatcanvas.FCObjects

.. highlight:: python



.. _wx.lib.floatcanvas.FCObjects.ScaledTextBox:

==========================================================================================================================================
|phoenix_title|  **wx.lib.floatcanvas.FCObjects.ScaledTextBox**
==========================================================================================================================================

Draws a text object

The object is scaled when zoomed.

The hit-test is done on the entire text extent

Bugs/Limitations:

As fonts are scaled, they do end up a little different, so you don't
get exactly the same picture as you scale up and down, but it's
pretty darn close.

On wxGTK1 on my Linux system, at least, using a font of over about
1000 pts. brings the system to a halt. It's the Font Server using
huge amounts of memory. My work around is to max the font size to
1000 points, so it won't scale past there. GTK2 uses smarter font
drawing, so that may not be an issue in future versions, so feel
free to test. Another smarter way to do it would be to set a global
zoom limit at that point.



|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>ScaledTextBox</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.lib.floatcanvas.FCObjects.ScaledTextBox_inheritance.png" alt="Inheritance diagram of ScaledTextBox" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.lib.floatcanvas.FCObjects.ScaledTextBox.html" title="wx.lib.floatcanvas.FCObjects.ScaledTextBox" alt="" coords="174,160,482,189"/> <area shape="rect" id="node2" href="wx.lib.floatcanvas.FCObjects.TextObjectMixin.html" title="wx.lib.floatcanvas.FCObjects.TextObjectMixin" alt="" coords="5,83,323,112"/> <area shape="rect" id="node3" href="wx.lib.floatcanvas.FCObjects.DrawObject.html" title="wx.lib.floatcanvas.FCObjects.DrawObject" alt="" coords="347,83,637,112"/> <area shape="rect" id="node4" href="wx.lib.floatcanvas.FCObjects.XYObjectMixin.html" title="wx.lib.floatcanvas.FCObjects.XYObjectMixin" alt="" coords="11,5,317,35"/> </map> 
   </p>
   </div>

|


|super_classes| Known Superclasses
==================================

:class:`wx.lib.floatcanvas.FCObjects.DrawObject`, :class:`wx.lib.floatcanvas.FCObjects.TextObjectMixin`

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.lib.floatcanvas.FCObjects.ScaledTextBox.__init__`                     Default class constructor.
:meth:`~wx.lib.floatcanvas.FCObjects.ScaledTextBox.CalcBoundingBox`              Calculates the Bounding Box
:meth:`~wx.lib.floatcanvas.FCObjects.ScaledTextBox.GetBoxRect`                   
:meth:`~wx.lib.floatcanvas.FCObjects.ScaledTextBox.LayoutText`                   Calculates the positions of the words of text.
:meth:`~wx.lib.floatcanvas.FCObjects.ScaledTextBox.ReWrap`                       
:meth:`~wx.lib.floatcanvas.FCObjects.ScaledTextBox.WrapToWidth`                  
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: ScaledTextBox(TextObjectMixin, DrawObject)

   Draws a text object
   
   The object is scaled when zoomed.
   
   The hit-test is done on the entire text extent
   
   Bugs/Limitations:
   
   As fonts are scaled, they do end up a little different, so you don't
   get exactly the same picture as you scale up and down, but it's
   pretty darn close.
   
   On wxGTK1 on my Linux system, at least, using a font of over about
   1000 pts. brings the system to a halt. It's the Font Server using
   huge amounts of memory. My work around is to max the font size to
   1000 points, so it won't scale past there. GTK2 uses smarter font
   drawing, so that may not be an issue in future versions, so feel
   free to test. Another smarter way to do it would be to set a global
   zoom limit at that point.

   .. method:: __init__(self, String, Point, Size, Color = "Black", BackgroundColor = None, LineColor = 'Black', LineStyle = 'Solid', LineWidth = 1, Width = None, PadSize = None, Family = wx.FONTFAMILY_MODERN, Style = wx.FONTSTYLE_NORMAL, Weight = wx.FONTWEIGHT_NORMAL, Underlined = False, Position = 'tl', Alignment = "left", Font = None, LineSpacing = 1.0, InForeground = False)

      Default class constructor.
      
      :param `Point`: takes a 2-tuple, or a (2,) `NumPy <http://www.numpy.org/>`_
       array of point coordinates
      :param integer `Size`: size in World units
      :param `Color`: see :meth:`~lib.floatcanvas.FloatCanvas.DrawObject.SetColor`
      :param `BackgroundColor`: see :meth:`~lib.floatcanvas.FloatCanvas.DrawObject.SetColor`
      :param `LineColor`: see :meth:`~lib.floatcanvas.FloatCanvas.DrawObject.SetColor`
      :param `LineWidth`: see :meth:`~lib.floatcanvas.FloatCanvas.DrawObject.SetLineWidth`
      :param `Width`: width in pixels or ``None``, text will be wrapped to
       the given width.
      :param `PadSize`: padding in world units or ``None``, if specified it
       will creating a space (margin) around the text
      :param wx.FontFamily `Family`: a valid :ref:`wx.FontFamily`
      :param wx.FontStyle `Style`: a valid :ref:`wx.FontStyle`
      :param wx.FontWeight `Weight`: a valid :ref:`wx.FontWeight`
      :param boolean `Underlined`: underline the text
      :param string `Position`: a two character string indicating where in
       relation to the coordinates the box should be oriented
      
       ============== ==========================
       1st character  Meaning
       ============== ==========================
       ``t``          top
       ``c``          center
       ``b``          bottom
       ============== ==========================
      
       ============== ==========================
       2nd character  Meaning
       ============== ==========================
       ``l``          left
       ``c``          center
       ``r``          right
       ============== ==========================
      
      :param `Alignment`: see :meth:`~lib.floatcanvas.FloatCanvas.DrawObject.SetLineWidth`
      :param wx.Font `Font`: alternatively a valid :class:`wx.Font` can be defined
       in which case the above will be ignored
      :param float `LineSpacing`: the line space to be used
      :param boolean `InForeground`: should object be in foreground


   .. method:: CalcBoundingBox(self)

      Calculates the Bounding Box


   .. method:: GetBoxRect(self)


   .. method:: LayoutText(self)

      Calculates the positions of the words of text.
      
      This isn't exact, as fonts don't scale exactly.
      To help this, the position of each individual word
      is stored separately, so that the general layout stays
      the same in world coordinates, as the fonts scale.


   .. method:: ReWrap(self, Width)


   .. method:: WrapToWidth(self)