## GogView

GogView

## Synopsis

                        GogView;
                        GogViewAllocation;
                        GogViewPadding;
                        GogViewRequisition;
    GogObject*          gog_view_get_model                  (GogView const *view);
    void                gog_view_render                     (GogView *view,
                                                             GogViewAllocation const *bbox);
    void                gog_view_queue_redraw               (GogView *view);
    void                gog_view_queue_resize               (GogView *view);
    void                gog_view_padding_request            (GogView *view,
                                                             GogViewAllocation const *bbox,
                                                             GogViewPadding *padding);
    void                gog_view_size_request               (GogView *view,
                                                             GogViewRequisition const *available,
                                                             GogViewRequisition *requisition);
    void                gog_view_size_allocate              (GogView *view,
                                                             GogViewAllocation const *allocation);
    gboolean            gog_view_update_sizes               (GogView *view);
    GogView*            gog_view_find_child_view            (GogView const *container,
                                                             GogObject const *target_model);
    GSListconst	*       gog_view_get_toolkit                (GogView *view);
    void                gog_view_render_toolkit             (GogView *view);
    GogTool*            gog_view_get_tool_at_point          (GogView *view,
                                                             double x,
                                                             double y,
                                                             GogObject **gobj);
    GogView*            gog_view_get_view_at_point          (GogView *view,
                                                             double x,
                                                             double y,
                                                             GogObject **obj,
                                                             GogTool **tool);
    void                gog_view_size_child_request         (GogView *view,
                                                             GogViewRequisition const *available,
                                                             GogViewRequisition *req,
                                                             GogViewRequisition *min_req);

## Object Hierarchy

      GObject
       +----GogView
             +----GogOutlinedView

## Properties

      "model"                    GogObject*            : Write
      "parent"                   GogView*              : Write

## Description

## Details

### GogView

    typedef struct _GogView GogView;

### GogViewAllocation

    typedef struct {
    	double w, h;
    	double x, y;
    } GogViewAllocation;

### GogViewPadding

    typedef struct {
    	double wr, hb;
    	double wl, ht;
    } GogViewPadding;

### GogViewRequisition

    typedef struct {
    	double w, h;
    } GogViewRequisition;

### gog_view_get_model ()

    GogObject*          gog_view_get_model                  (GogView const *view);

`view` : |
Returns : |

### gog_view_render ()

    void                gog_view_render                     (GogView *view,
                                                             GogViewAllocation const *bbox);

`view` : |
`bbox` : |

### gog_view_queue_redraw ()

    void                gog_view_queue_redraw               (GogView *view);

Requests a redraw for the entire graph.

`view` : | a GogView

### gog_view_queue_resize ()

    void                gog_view_queue_resize               (GogView *view);

Flags a view to have its size renegotiated; should be called when a model for some reason has a new size request. For example, when you change the size of a legend.

`view` : | a GogView

### gog_view_padding_request ()

    void                gog_view_padding_request            (GogView *view,
                                                             GogViewAllocation const *bbox,
                                                             GogViewPadding *padding);

`view` : |
`bbox` : |
`padding` : |

### gog_view_size_request ()

    void                gog_view_size_request               (GogView *view,
                                                             GogViewRequisition const *available,
                                                             GogViewRequisition *requisition);

When called `available` holds the available space and `requisition` is populated with the desired size based on that input and other elements of the view or its model's state (eg the position).

Remember that the size request is not necessarily the size a view will actually be allocated.

`view` : | a GogView
`available` : | available space.
`requisition` : | a GogViewRequisition.

### gog_view_size_allocate ()

    void                gog_view_size_allocate              (GogView *view,
                                                             GogViewAllocation const *allocation);

Assign a size and position to a GogView. Primarilly used by containers.

`view` : | a GogView
`allocation` : | position and size to be allocated to `view`

### gog_view_update_sizes ()

    gboolean            gog_view_update_sizes               (GogView *view);

`view` : | GogView
Returns : | `TRUE` if a redraw is necessary.

### gog_view_find_child_view ()

    GogView*            gog_view_find_child_view            (GogView const *container,
                                                             GogObject const *target_model);

Find the GogView contained in `container` that corresponds to `model`.

`container` : | GogView
`target_model` : | GogObject
Returns : | NULL on error or if `target_model` has no view.

### gog_view_get_toolkit ()

    GSListconst	*       gog_view_get_toolkit                (GogView *view);

`view` : | GogView
Returns : | toolkit associated with given view.

### gog_view_render_toolkit ()

    void                gog_view_render_toolkit             (GogView *view);

Render toolkit elements.

`view` : | GogView

### gog_view_get_tool_at_point ()

    GogTool*            gog_view_get_tool_at_point          (GogView *view,
                                                             double x,
                                                             double y,
                                                             GogObject **gobj);

`view` : | GogView
`x` : | in coords
`y` : | in coords
`gobj` : | non-`NULL` storage.
Returns : | tool under cursor for a given view, or `NULL`

### gog_view_get_view_at_point ()

    GogView*            gog_view_get_view_at_point          (GogView *view,
                                                             double x,
                                                             double y,
                                                             GogObject **obj,
                                                             GogTool **tool);

Gets view under cursor, searching recursively from `view`. Corresponding object is stored in `obj`. This object may or may not be `view->model` of pointed view. This function also stores tool under cursor, for the pointed view.

`view` : | GogView
`x` : | cursor x position
`y` : | cursor y position
`obj` : | pointed object
`tool` : | pointed tool
Returns : | the GogView at x,y position

### gog_view_size_child_request ()

    void                gog_view_size_child_request         (GogView *view,
                                                             GogViewRequisition const *available,
                                                             GogViewRequisition *req,
                                                             GogViewRequisition *min_req);

Computes additional requision in `req` which must be added to parent requisition, and minimum requisition in `min_req` which is minimum space for displaying all children.

`view` : | a GogView
`available` : | the amount of space available in total
`req` : | additionnal requisition
`min_req` : | minimum size for displaying all children

## Property Details

### The `"model"` property

      "model"                    GogObject*            : Write

The GogObject this view displays.

### The `"parent"` property

      "parent"                   GogView*              : Write

the GogView parent.