## GogView

GogView

## Functions

GogView * | gog_view_find_child_view ()
GogObject * | gog_view_get_model ()
void | gog_view_get_natural_size ()
char * | gog_view_get_tip_at_point ()
GogTool * | gog_view_get_tool_at_point ()
GSList const * | gog_view_get_toolkit ()
GogView * | gog_view_get_view_at_point ()
void | gog_view_padding_request ()
void | gog_view_queue_redraw ()
void | gog_view_queue_resize ()
void | gog_view_render ()
void | gog_view_render_toolkit ()
void | gog_view_size_allocate ()
void | gog_view_size_child_request ()
void | gog_view_size_request ()
gboolean | gog_view_update_sizes ()

## Types and Values

| GogView
| GogViewClass
| GogViewAllocation
| GogViewPadding
| GogViewRequisition

## Object Hierarchy

        GBoxed
        ╰── GogViewAllocation
        GObject
        ╰── GogView
            ├── Gog3DBoxView
            ├── GogAxisBaseView
            ├── GogOutlinedView
            ╰── GogPlotView

## Description

## Functions

### 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` .

#### Parameters

container | GogView |
target_model | GogObject |

#### Returns

NULL on error or if `target_model` has no view.

[transfer none]

### gog_view_get_model ()

    GogObject *
    gog_view_get_model (GogView const *view);

#### Parameters

view | GogView |

#### Returns

the GogObject owning the view.

[transfer none]

### gog_view_get_natural_size ()

    void
    gog_view_get_natural_size (GogView *view,
                               GogViewRequisition *requisition);

### gog_view_get_tip_at_point ()

    char *
    gog_view_get_tip_at_point (GogView *view,
                               double x,
                               double y);

Gets a tip string related to the position as defined by (`x` ,`y` ) in `view` .

#### Parameters

view | GogView |
x | x position |
y | y position |

#### Returns

the newly allocated tip string if the view class supports that or `NULL`.

### gog_view_get_tool_at_point ()

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

#### Parameters

view | GogView |
x | in coords |
y | in coords |
gobj | pointed object or `NULL` |

#### Returns

tool under cursor for a given view, or `NULL`.

[transfer none]

### gog_view_get_toolkit ()

    GSList const	*
    gog_view_get_toolkit (GogView *view);

#### Parameters

view | GogView |

#### Returns

toolkit associated with given view.

[element-type GogTool][transfer none]

### 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.

#### Parameters

view | GogView |
x | cursor x position |
y | cursor y position |
obj | pointed object or `NULL` |
tool | pointed tool or `NULL` |

#### Returns

the GogView at x,y position.

[transfer none]

### gog_view_padding_request ()

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

### gog_view_queue_redraw ()

    void
    gog_view_queue_redraw (GogView *view);

Requests a redraw for the entire graph.

#### Parameters

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.

#### Parameters

view | a GogView |

### gog_view_render ()

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

### gog_view_render_toolkit ()

    void
    gog_view_render_toolkit (GogView *view);

Render toolkit elements.

#### Parameters

view | GogView |

### 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.

#### Parameters

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

### 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.

#### Parameters

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

### gog_view_size_request ()

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

Determines the desired size of a view.

Note, that the virtual method deviates slightly from this function. This function will zero `requisition` before calling the virtual method.

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

#### Parameters

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

### gog_view_update_sizes ()

    gboolean
    gog_view_update_sizes (GogView *view);

#### Parameters

view | GogView |

#### Returns

`TRUE` if a redraw is necessary.

## Types and Values

### GogView

    typedef struct _GogView GogView;

### GogViewClass

    typedef struct {
    	GObjectClass base;

    	unsigned int clip; 	/* Automatically clip to object bounding box */

    	/* Virtuals */
    	void	 (*state_init)    (GogView *view);
    	void	 (*padding_request) 		(GogView *view, GogViewAllocation const *bbox,
    						 GogViewPadding *padding);
    	void	 (*size_request)    		(GogView *view, GogViewRequisition const *available,
    						 GogViewRequisition *requisition);
    	void	 (*size_allocate)   		(GogView *view, GogViewAllocation const *allocation);

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

    	void	 (*build_toolkit)		(GogView *view);
    	char    *(*get_tip_at_point)		(GogView *view, double x, double y);
    	void	 (*natural_size)    		(GogView *view, GogViewRequisition *req);
    } GogViewClass;

#### Members

GObjectClass `base`; | base class. |
unsigned int `clip`; | If `TRUE`, clip drawings to the view allocation. |
`state_init` () | state initialization. |
`padding_request` () | padding request. |
`size_request` () | size request. |
`size_allocate` () | size allocate. |
`render` () | render to cairo. |
`build_toolkit` () | builds the associated toolkit. |
`get_tip_at_point` () | gets tip at pointer position. |
`natural_size` () | gets natural size. |

### GogViewAllocation

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

#### Members

double `w`; | width. |
double `h`; | height. |
double `x`; | horizontal position. |
double `y`; | vertical position. |

### GogViewPadding

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

#### Members

double `wr`; | right padding. |
double `hb`; | bottom padding. |
double `wl`; | left pdding. |
double `ht`; | top padding. |

### GogViewRequisition

    typedef struct {
    	double w, h;
    } GogViewRequisition;

#### Members

double `w`; | width. |
double `h`; | height. |