class_docstr: Class that draws text on a Cairo context.
  
  This class supports multi-line text unlike the original Cairo text
  drawing methods.
class_docstr_tok: ["Class","that","draws","text","on","a","Cairo","context",".","This","class","supports","multi-line","text","unlike","the","original","Cairo","text","drawing","methods","."]
docstr: Draws the text by setting up an appropriate path on the Cairo
  context and filling it. C{x} and C{y} denote the coordinates where the
  drawing should start. If they are both C{None}, the current position
  of the context will be used.
  
  Vertical alignment settings are not taken into account in this method
  as the text is not drawn within a box.
  
  @param x: The X coordinate of the reference point where the layout should
      start.
  @param y: The Y coordinate of the reference point where the layout should
      start.
  @param width: The width of the box in which the text will be fitted. It
      matters only when the text is right-aligned or centered. The text
      will overflow the box if any of the lines is longer than the box
      width and C{wrap} is C{False}.
  @param wrap: whether to allow re-wrapping of the text if it does not
      fit within the given width.
docstr_tok: ["Draws","the","text","by","setting","up","an","appropriate","path","on","the","Cairo","context","and","filling","it",".","C","{","x","}","and","C","{","y","}","denote","the","coordinates","where","the","drawing","should","start",".","If","they","are","both","C","{","None","}",",","the","current","position","of","the","context","will","be","used",".","Vertical","alignment","settings","are","not","taken","into","account","in","this","method","as","the","text","is","not","drawn","within","a","box",".","@","param","x",":","The","X","coordinate","of","the","reference","point","where","the","layout","should","start",".","@","param","y",":","The","Y","coordinate","of","the","reference","point","where","the","layout","should","start",".","@","param","width",":","The","width","of","the","box","in","which","the","text","will","be","fitted",".","It","matters","only","when","the","text","is","right-aligned","or","centered",".","The","text","will","overflow","the","box","if","any","of","the","lines","is","longer","than","the","box","width","and","C","{","wrap","}","is","C","{","False","}",".","@","param","wrap",":","whether","to","allow","re-wrapping","of","the","text","if","it","does","not","fit","within","the","given","width","."]
code: def draw_at(self, x=None, y=None, width=None, wrap=False):
      """Draws the text by setting up an appropriate path on the Cairo
      context and filling it. C{x} and C{y} denote the coordinates where the
      drawing should start. If they are both C{None}, the current position
      of the context will be used.
  
      Vertical alignment settings are not taken into account in this method
      as the text is not drawn within a box.
  
      @param x: The X coordinate of the reference point where the layout should
          start.
      @param y: The Y coordinate of the reference point where the layout should
          start.
      @param width: The width of the box in which the text will be fitted. It
          matters only when the text is right-aligned or centered. The text
          will overflow the box if any of the lines is longer than the box
          width and C{wrap} is C{False}.
      @param wrap: whether to allow re-wrapping of the text if it does not
          fit within the given width.
      """
      ctx = self.context
      for ref_x, ref_y, line in self.get_text_layout(x, y, width, wrap):
          ctx.move_to(ref_x, ref_y)
          ctx.show_text(line)
      ctx.new_path()
  
file_path: python-igraph/src/igraph/drawing/cairo/text.py
imports: import re
  from warnings import warn
  from igraph.drawing.cairo.base import AbstractCairoDrawer
label_desc: Use image node_id 4 for calling the CairoTextDrawer obj's underlying member method code with example usage: obj.draw_at(x, y, width, wrap) without return types