## Graph modules

Graph modules — Graph modules

## Functions

void | (*GwyGraphFunc) ()
gboolean | gwy_graph_func_register ()
void | gwy_graph_func_run ()
gboolean | gwy_graph_func_exists ()
const gchar * | gwy_graph_func_get_menu_path ()
const gchar * | gwy_graph_func_get_icon_name ()
const gchar * | gwy_graph_func_get_tooltip ()
guint | gwy_graph_func_get_sensitivity_mask ()
void | gwy_graph_func_foreach ()
const gchar * | gwy_graph_func_current ()

## Includes

    #include <libgwyapp/gwyapp.h>

## Description

Graph modules implement operations on graphs, e.g., curve fitting.

## Functions

### GwyGraphFunc()

    void
    (*GwyGraphFunc) (GwyGraph *graph);

The type of graph function.

#### Parameters

graph | Graph (a GwyGraph) to operate on. |

### gwy_graph_func_register()

    gboolean
    gwy_graph_func_register (const gchar *name,
                             GwyGraphFunc func,
                             const gchar *menu_path,
                             const gchar *icon_name,
                             guint sens_mask,
                             const gchar *tooltip);

Registers a graph function.

Note: the string arguments are not copied as modules are not expected to vanish. If they are constructed (non-constant) strings, do not free them. Should modules ever become unloadable they will get chance to clean-up.

#### Parameters

name | Name of function to register. It should be a valid identifier and if a module registers only one function, module and function names should be the same. |
func | The function itself. |
menu_path | Menu path under Graph menu. The menu path should be marked translatabe, but passed untranslated (to allow merging of translated and untranslated submenus). |
icon_name | Stock icon id for toolbar. |
sens_mask | Sensitivity mask (a combination of GwyMenuSensFlags flags). Usually it is equal to GWY_MENU_FLAG_GRAPH, but it's possible to set other requirements. |
tooltip | Tooltip for this function. |

#### Returns

Normally `TRUE`; `FALSE` on failure.

### gwy_graph_func_run()

    void
    gwy_graph_func_run (const gchar *name,
                        GwyGraph *graph);

Runs a graph function identified by `name` .

#### Parameters

name | Graph function name. |
graph | Graph (a GwyGraph). |

### gwy_graph_func_exists()

    gboolean
    gwy_graph_func_exists (const gchar *name);

Checks whether a graph function exists.

#### Parameters

name | Graph function name. |

#### Returns

`TRUE` if function `name` exists, `FALSE` otherwise.

### gwy_graph_func_get_menu_path()

    const gchar *
    gwy_graph_func_get_menu_path (const gchar *name);

Gets menu path of a graph function.

The returned menu path is only the tail part registered by the function, i.e., without any leading "/Graph".

#### Parameters

name | Graph function name. |

#### Returns

The menu path. The returned string is owned by the module.

### gwy_graph_func_get_icon_name()

    const gchar *
    gwy_graph_func_get_icon_name (const gchar *name);

Gets icon name of a graph function.

#### Parameters

name | Graph function name. |

#### Returns

The icon name. The returned string is owned by the module.

### gwy_graph_func_get_tooltip()

    const gchar *
    gwy_graph_func_get_tooltip (const gchar *name);

Gets tooltip for a graph function.

#### Parameters

name | Graph function name. |

#### Returns

The tooltip. The returned string is owned by the module.

### gwy_graph_func_get_sensitivity_mask()

    guint
    gwy_graph_func_get_sensitivity_mask (const gchar *name);

Gets menu sensititivy mask for a graph function.

#### Parameters

name | Graph function name. |

#### Returns

The menu item sensitivity mask (a combination of GwyMenuSensFlags flags).

### gwy_graph_func_foreach()

    void
    gwy_graph_func_foreach (GwyNameFunc function,
                            gpointer user_data);

Calls a function for each graph function.

#### Parameters

function | Function to run for each graph function, passed by name. | [scope call]
user_data | Data to pass to `function` . |

### gwy_graph_func_current()

    const gchar *
    gwy_graph_func_current (void);

Obtains the name of currently running graph function.

If no graph function is currently running, `NULL` is returned.

If multiple nested functions are running (which is not usual but technically possible), the innermost function name is returned.

#### Returns

The name of currently running graph function or `NULL`.