GogView

GogView

Synopsis

                    GogToolAction;
                    GogTool;
GogToolAction *     gog_tool_action_new                 (GogView *view,
                                                         GogTool *tool,
                                                         double x,
                                                         double y);
void                gog_tool_action_move                (GogToolAction *action,
                                                         double x,
                                                         double y);
void                gog_tool_action_double_click        (GogToolAction *action);
void                gog_tool_action_free                (GogToolAction *action);
                    GogView;
                    GogViewClass;
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);
GSList const	*      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);
char *              gog_view_get_tip_at_point           (GogView *view,
                                                         double x,
                                                         double y);
void                gog_view_size_child_request         (GogView *view,
                                                         GogViewRequisition const *available,
                                                         GogViewRequisition *req,
                                                         GogViewRequisition *min_req);

Object Hierarchy

  GObject
   +----GogView
         +----GogAxisBaseView
         +----GogOutlinedView
         +----GogPlotView
         +----GogGridLineView

Properties

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

Description

Details

GogToolAction

typedef struct {
	double 		 start_x, start_y;
	GogView 	*view;
	GogTool 	*tool;
	gpointer	 data;
	/* private */
	unsigned ref_count;
} GogToolAction;

double start_x;

initial pointer horizontal position.

double start_y;

initial pointer vertical position.

GogView *view;

GogView

GogTool *tool;

GogTool

gpointer data;

user data.

GogTool

typedef struct {
	char const 	*name;

	/* GdkCursorType	 cursor_type; Not compatible with --without-gtk */
	int	 	cursor_type;

	gboolean 	(*point) 	(GogView *view, double x, double y, GogObject **object);
	void 		(*render) (GogView *view);
	void 		(*init)		(GogToolAction *action);
	void 		(*move)		(GogToolAction *action, double x, double y);
	void		(*double_click) (GogToolAction *action);
	void 		(*destroy) (GogToolAction *action);
} GogTool;

char const   *name;

tool name.

int cursor_type;

pointer cursor type for the tool.

point ()

points an object.

render ()

displays the tool.

init ()

initalizes an action.

move ()

callback for pointer move.

double_click ()

callback on double click.

destroy ()

destroys the action.

gog_tool_action_new ()

GogToolAction *     gog_tool_action_new                 (GogView *view,
                                                         GogTool *tool,
                                                         double x,
                                                         double y);

view :

tool :

x :

y :

Returns :


gog_tool_action_move ()

void                gog_tool_action_move                (GogToolAction *action,
                                                         double x,
                                                         double y);

action :

x :

y :


gog_tool_action_double_click ()

void                gog_tool_action_double_click        (GogToolAction *action);

action :


gog_tool_action_free ()

void                gog_tool_action_free                (GogToolAction *action);

action :


GogView

typedef struct _GogView GogView;


GogViewClass

typedef struct {
	GObjectClass base;

	unsigned clip; 	/* Automaticaly clip to object bounding box */

	/* Virtuals */
	void	 (*state_init)    (GogView *);
	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;

the GogViewClass::clip firled should be set to TRUE to clip drawings to the vew allocation.

GObjectClass base;

 base class.

state_init ()

state intialization.

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.

gog_view_get_model ()

GogObject *         gog_view_get_model                  (GogView const *view);

view :

GogView

Returns :

the GogObject owning the view. [transfer none]

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. [transfer none]

gog_view_get_toolkit ()

GSList const	*      gog_view_get_toolkit                (GogView *view);

view :

GogView

Returns :

toolkit associated with given view. [element-type GogTool][transfer none GogTool]

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 :

pointed object or NULL

Returns :

tool under cursor for a given view, or NULL. [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.

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

view :

GogView

x :

x position

y :

y position

Returns :

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

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.