## GOLine

GOLine

## Synopsis

    enum                GOLineDashType;
                        GOLineDashSequence;
    GOLineDashType      go_line_dash_from_str               (char const *name);
    char const 		*      go_line_dash_as_str                 (GOLineDashType type);
    char const 		*      go_line_dash_as_label               (GOLineDashType type);
    double              go_line_dash_get_length             (GOLineDashType type);
    GOLineDashSequence * go_line_dash_get_sequence          (GOLineDashType type,
                                                             double scale);
    void                go_line_dash_sequence_free          (GOLineDashSequence *sequence);
    GtkWidget *         go_line_dash_selector_new           (GOLineDashType initial_type,
                                                             GOLineDashType default_type);
    enum                GOLineInterpolation;
    GOLineInterpolation  go_line_interpolation_from_str     (char const *name);
    char const 		*      go_line_interpolation_as_str        (GOLineInterpolation type);
    char const 		*      go_line_interpolation_as_label      (GOLineInterpolation type);
    gboolean            go_line_interpolation_supports_radial
                                                            (GOLineInterpolation type);
    gboolean            go_line_interpolation_auto_skip     (GOLineInterpolation type);

## Description

## Details

### enum GOLineDashType

    typedef enum {
    	GO_LINE_NONE,
    	GO_LINE_SOLID,
    	GO_LINE_S_DOT,
    	GO_LINE_S_DASH_DOT,
    	GO_LINE_S_DASH_DOT_DOT,
    	GO_LINE_DASH_DOT_DOT_DOT,
    	GO_LINE_DOT,
    	GO_LINE_S_DASH,
    	GO_LINE_DASH,
    	GO_LINE_LONG_DASH,
    	GO_LINE_DASH_DOT,
    	GO_LINE_DASH_DOT_DOT,
    	GO_LINE_MAX
    } GOLineDashType;

`GO_LINE_NONE` | No line displayed.
`GO_LINE_SOLID` | Solid line.
`GO_LINE_S_DOT` |
`GO_LINE_S_DASH_DOT` |
`GO_LINE_S_DASH_DOT_DOT` |
`GO_LINE_DASH_DOT_DOT_DOT` |
`GO_LINE_DOT` |
`GO_LINE_S_DASH` |
`GO_LINE_DASH` |
`GO_LINE_LONG_DASH` |
`GO_LINE_DASH_DOT` |
`GO_LINE_DASH_DOT_DOT` |
`GO_LINE_MAX` |

### GOLineDashSequence

    typedef struct {
    	double		 offset;
    	unsigned int	 n_dash;
    	double		*dash;
    } GOLineDashSequence;

### go_line_dash_from_str ()

    GOLineDashType      go_line_dash_from_str               (char const *name);

`name` : | Name of the dash type
Returns : | a GOLineDashType corresponding to name, or `GO_LINE_NONE` if not found.

### go_line_dash_as_str ()

    char const 		*      go_line_dash_as_str                 (GOLineDashType type);

`type` : | a GOLineDashType
Returns : | a pointer to the nickname of the dash type, or "none" if type is invalid. The returning string should not be freed.

### go_line_dash_as_label ()

    char const 		*      go_line_dash_as_label               (GOLineDashType type);

`type` : | a GOLineDashType
Returns : | a pointer to the user readable name of the dash type, or the name of `GO_LINE_NONE` if type is invalid. The returned string should not be freed.

### go_line_dash_get_length ()

    double              go_line_dash_get_length             (GOLineDashType type);

`type` : | GOLineDashType
Returns : | the unscaled length of the dash sequence.

### go_line_dash_get_sequence ()

    GOLineDashSequence * go_line_dash_get_sequence          (GOLineDashType type,
                                                             double scale);

`type` : | a GOLineDashType
`scale` : | dash scale
Returns : | a struct containing the dash sequence corresponding to `type`, or `NULL` if type is invalid or equal to `GO_LINE_NONE`. The lengths are scaled according to `scale`.

### go_line_dash_sequence_free ()

    void                go_line_dash_sequence_free          (GOLineDashSequence *sequence);

Frees the dash sequence struct.

`sequence` : | a GOLineDashSequence

### go_line_dash_selector_new ()

    GtkWidget *         go_line_dash_selector_new           (GOLineDashType initial_type,
                                                             GOLineDashType default_type);

Creates a new line type selector.

`initial_type` : | line type initially selected
`default_type` : | automatic line type
Returns : | a new GtkWidget.

### enum GOLineInterpolation

    typedef enum {
    	GO_LINE_INTERPOLATION_LINEAR,
    	GO_LINE_INTERPOLATION_SPLINE,
    	GO_LINE_INTERPOLATION_CLOSED_SPLINE,
    	GO_LINE_INTERPOLATION_CUBIC_SPLINE,
    	GO_LINE_INTERPOLATION_PARABOLIC_CUBIC_SPLINE,
    	GO_LINE_INTERPOLATION_CUBIC_CUBIC_SPLINE,
    	GO_LINE_INTERPOLATION_CLAMPED_CUBIC_SPLINE,
    	GO_LINE_INTERPOLATION_STEP_START,
    	GO_LINE_INTERPOLATION_STEP_END,
    	GO_LINE_INTERPOLATION_STEP_CENTER_X,
    	GO_LINE_INTERPOLATION_STEP_CENTER_Y,
    	GO_LINE_INTERPOLATION_MAX
    } GOLineInterpolation;

`GO_LINE_INTERPOLATION_LINEAR` | Linear interpolation.
`GO_LINE_INTERPOLATION_SPLINE` | Bezier cubic spline interpolation.
`GO_LINE_INTERPOLATION_CLOSED_SPLINE` | Closed Bezier cubic spline interpolation.
`GO_LINE_INTERPOLATION_CUBIC_SPLINE` | Cubic spline interpolation with natural limits.
`GO_LINE_INTERPOLATION_PARABOLIC_CUBIC_SPLINE` | Cubic spline interpolation with parabolic limits.
`GO_LINE_INTERPOLATION_CUBIC_CUBIC_SPLINE` | Cubic spline interpolation with cubic limits.
`GO_LINE_INTERPOLATION_CLAMPED_CUBIC_SPLINE` | Cubic spline interpolation with fixed derivatives at both ends.
`GO_LINE_INTERPOLATION_STEP_START` | Steps using first y value.
`GO_LINE_INTERPOLATION_STEP_END` | Steps using last y value.
`GO_LINE_INTERPOLATION_STEP_CENTER_X` | Steps centered around each point.
`GO_LINE_INTERPOLATION_STEP_CENTER_Y` | Steps using mean y value.
`GO_LINE_INTERPOLATION_MAX` | First invalid value.

### go_line_interpolation_from_str ()

    GOLineInterpolation  go_line_interpolation_from_str     (char const *name);

`name` : | an interpolation type nickname
Returns : | a GOLineInterpolation corresponding to `name`, or `GO_LINE_INTERPOLATION_LINEAR` if not found.

### go_line_interpolation_as_str ()

    char const 		*      go_line_interpolation_as_str        (GOLineInterpolation type);

`type` : | an interpolation type
Returns : | TRUE if the line interpolation type forces skipping invalid data, FALSE if it is only optional.

### go_line_interpolation_as_label ()

    char const 		*      go_line_interpolation_as_label      (GOLineInterpolation type);

`type` : | an interpolation type
Returns : | a pointer to the label of `type`, or the name of `GO_LINE_INTERPOLATION_LINEAR` if type is invalid. The returned string should not be freed.

### go_line_interpolation_supports_radial ()

    gboolean            go_line_interpolation_supports_radial
                                                            (GOLineInterpolation type);

`type` : |
Returns : |

### go_line_interpolation_auto_skip ()

    gboolean            go_line_interpolation_auto_skip     (GOLineInterpolation type);

`type` : |
Returns : |