Skip to content
Back to top
View this page

# View

View is the central class in Gaphas. It shows your diagram and allows you to interact with it.

class gaphas.view.GtkView(*args: Any, **kwargs: Any)

  GTK widget for rendering a gaphas.model.Model to a screen. The view uses Tools to handle events and Painters to draw. Both are configurable.

  The widget already contains adjustment objects (hadjustment, vadjustment) to be used for scrollbars.

  This view registers itself on the model, so it will receive update events.

  property matrix: Matrix

    Model root to view transformation matrix.

  get_matrix_i2v(item: Item) → Matrix

    Get Item to View matrix for `item`.

  get_matrix_v2i(item: Item) → Matrix

    Get View to Item matrix for `item`.

  property model: Model | None

    The model.

  property painter: Painter

    Painter for drawing the view.

  property bounding_box_painter: ItemPainterType

    Special painter for calculating item bounding boxes.

  property selection: Selection

    Selected, focused and hovered items.

  property bounding_box: Rectangle

    The bounding box of the complete view, relative to the view port.

  property hadjustment: gi.repository.Gtk.Adjustment

    Gtk adjustment object for use with a scrollbar.

  property vadjustment: gi.repository.Gtk.Adjustment

    Gtk adjustment object for use with a scrollbar.

  clamp_item(item)

    Update adjustments so the item is located inside the view port.

  add_controller(*controllers: gi.repository.Gtk.EventController) → None

    Add a controller.

  remove_controller(controller: gi.repository.Gtk.EventController) → bool

    Remove a controller.

  remove_all_controllers() → None

    Remove all registered controllers.

  zoom(factor: float) → None

    Zoom in/out by factor `factor`.

  get_items_in_rectangle(rect: tuple[float, float, float, float], contain: bool = False) → Iterable[Item]

    Return the items in the rectangle ‘rect’ (in view coordinates).

    Items are automatically sorted in model’s processing order.

  get_item_bounding_box(item: Item) → Rectangle

    Get the bounding box for the item, in view coordinates.

  request_update(items: Iterable[Item], removed_items: Iterable[Item] = ()) → None

    Request update for items.

  update() → Task

    Update view status according to the items updated in the model.

  all_dirty_items() → set[Item]

    Return all dirty items, clearing the marked items.

  update_bounding_box(items: Collection[Item]) → None

    Update the bounding boxes of the model items for this view, in model coordinates.