## FmNavHistory

FmNavHistory — Simple navigation history management.

## Functions

FmNavHistory * | fm_nav_history_new ()
const GList * | fm_nav_history_list ()
const FmNavHistoryItem * | fm_nav_history_get_cur ()
const GList * | fm_nav_history_get_cur_link ()
void | fm_nav_history_back ()
gboolean | fm_nav_history_can_forward ()
void | fm_nav_history_forward ()
void | fm_nav_history_jump ()
guint | fm_nav_history_get_cur_index ()
FmPath * | fm_nav_history_get_nth_path ()
FmPath * | fm_nav_history_go_to ()
gint | fm_nav_history_get_scroll_pos ()
gboolean | fm_nav_history_can_back ()
void | fm_nav_history_chdir ()
void | fm_nav_history_clear ()
void | fm_nav_history_set_max ()

## Types and Values

#define | FM_NAV_HISTORY_TYPE
struct | FmNavHistoryItem
#define | FM_NAV_HISTORY_DEFAULT_SIZE

## Object Hierarchy

        GObject
        ╰── FmNavHistory

## Description

`include` : libfm/fm.h

The FmNavHistory object implements history for paths that were entered in some input bar and allows to add, remove or move items in it.

## Functions

### fm_nav_history_new ()

    FmNavHistory *
    fm_nav_history_new (void);

Creates a new FmNavHistory object with empty history.

#### Returns

a new FmNavHistory object.

Since: 0.1.0

### fm_nav_history_list ()

    const GList *
    fm_nav_history_list (FmNavHistory *nh);

`fm_nav_history_list` has been deprecated since version 1.0.2 and should not be used in newly-written code.

Retrieves full list of the history as GList of FmNavHistoryItem. The returned GList belongs to FmNavHistory and shouldn't be freed.

#### Parameters

nh | the history |

#### Returns

full history.

[transfer none][element-type FmNavHistoryItem]

Since: 0.1.0

### fm_nav_history_get_cur ()

    const FmNavHistoryItem *
    fm_nav_history_get_cur (FmNavHistory *nh);

`fm_nav_history_get_cur` has been deprecated since version 1.0.2 and should not be used in newly-written code.

Use `fm_nav_history_get_nth_path()` instead.

Retrieves current selected item of the history. The returned item belongs to FmNavHistory and shouldn't be freed by caller.

#### Parameters

nh | the history |

#### Returns

current item.

[transfer none]

Since: 0.1.0

### fm_nav_history_get_cur_link ()

    const GList *
    fm_nav_history_get_cur_link (FmNavHistory *nh);

`fm_nav_history_get_cur_link` has been deprecated since version 1.0.2 and should not be used in newly-written code.

Retrieves current selected item as GList element containing FmNavHistoryItem. The returned item belongs to FmNavHistory and shouldn't be freed by caller.

#### Parameters

nh | the history |

#### Returns

current item.

[transfer none][element-type FmNavHistoryItem]

Since: 0.1.0

### fm_nav_history_back ()

    void
    fm_nav_history_back (FmNavHistory *nh,
                         int old_scroll_pos);

`fm_nav_history_back` has been deprecated since version 1.0.2 and should not be used in newly-written code.

Use `fm_nav_history_go_to()` instead.

If there is a next item in the history then sets `old_scroll_pos` into current item data and marks next item current.

#### Parameters

nh | the history |
old_scroll_pos | the scroll position to associate with current item |

Since: 0.1.0

### fm_nav_history_can_forward ()

    gboolean
    fm_nav_history_can_forward (FmNavHistory *nh);

`fm_nav_history_can_forward` has been deprecated since version 1.0.2 and should not be used in newly-written code.

Use `fm_nav_history_get_cur_index()` instead.

Checks if current selected item is the last item in the history.

Before 1.0.0 this call had name fm_nav_history_get_can_forward.

#### Parameters

nh | the history |

#### Returns

`TRUE` if cursor can go forward in history.

Since: 0.1.0

### fm_nav_history_forward ()

    void
    fm_nav_history_forward (FmNavHistory *nh,
                            int old_scroll_pos);

`fm_nav_history_forward` has been deprecated since version 1.0.2 and should not be used in newly-written code.

Use `fm_nav_history_go_to()` instead.

If there is a previous item in the history then sets `old_scroll_pos` into current item data and marks previous item current.

#### Parameters

nh | the history |
old_scroll_pos | the scroll position to associate with current item |

Since: 0.1.0

### fm_nav_history_jump ()

    void
    fm_nav_history_jump (FmNavHistory *nh,
                         GList *l,
                         int old_scroll_pos);

`fm_nav_history_jump` has been deprecated since version 1.0.2 and should not be used in newly-written code.

Use `fm_nav_history_go_to()` instead.

Sets `old_scroll_pos` into current item data and then sets current item of `nh` to one from `l` .

#### Parameters

nh | the history |
l | new current item. | [element-type FmNavHistoryItem]
old_scroll_pos | the scroll position to associate with current item |

Since: 0.1.0

### fm_nav_history_get_cur_index ()

    guint
    fm_nav_history_get_cur_index (FmNavHistory *nh);

Retrieves index of current item in the history `nh` . 0 means current item is at top.

#### Parameters

nh | the history |

#### Returns

index of current item.

Since: 1.0.2

### fm_nav_history_get_nth_path ()

    FmPath *
    fm_nav_history_get_nth_path (FmNavHistory *nh,
                                 guint n);

Retrieves path of the item `n` in the history `nh` .

#### Parameters

nh | the history |
n | index of item |

#### Returns

path of the item or `NULL` if no such item was found.

Since: 1.0.2

### fm_nav_history_go_to ()

    FmPath *
    fm_nav_history_go_to (FmNavHistory *nh,
                          guint n,
                          gint old_scroll_pos);

Saves the current scroll position into the history. If item with index `n` exists in the history then sets it as current item.

#### Parameters

nh | the history |
n | new index |
old_scroll_pos | scroll position of current folder view |

#### Returns

path of selected item or `NULL` if no such item was found.

Since: 1.0.2

### fm_nav_history_get_scroll_pos ()

    gint
    fm_nav_history_get_scroll_pos (FmNavHistory *nh);

Retrieves saved scroll position for current item.

#### Parameters

nh | the history |

#### Returns

saved scroll position.

Since: 1.0.2

### fm_nav_history_can_back ()

    gboolean
    fm_nav_history_can_back (FmNavHistory *nh);

Checks if current selected item is the first item in the history.

Before 1.0.0 this call had name fm_nav_history_get_can_back.

#### Parameters

nh | the history |

#### Returns

`TRUE` if cursor can go backward in history.

Since: 0.1.0

### fm_nav_history_chdir ()

    void
    fm_nav_history_chdir (FmNavHistory *nh,
                          FmPath *path,
                          gint old_scroll_pos);

Sets `old_scroll_pos` into current item data and then adds new `path` to the beginning of the `nh` .

#### Parameters

nh | the history |
path | new path to add |
old_scroll_pos | the scroll position to associate with current item |

Since: 0.1.0

### fm_nav_history_clear ()

    void
    fm_nav_history_clear (FmNavHistory *nh);

Removes all items from the history `nh` .

#### Parameters

nh | the history |

Since: 0.1.0

### fm_nav_history_set_max ()

    void
    fm_nav_history_set_max (FmNavHistory *nh,
                            guint num);

Sets maximum length of the history `nh` to be `num` .

#### Parameters

nh | the history |
num | new size of history |

Since: 0.1.0

## Types and Values

### FM_NAV_HISTORY_TYPE

    #define FM_NAV_HISTORY_TYPE				(fm_nav_history_get_type())

### struct FmNavHistoryItem

    struct FmNavHistoryItem {
        FmPath* path;
        int scroll_pos;
    };

#### Members

FmPath *`path`; | active path to folder |
int `scroll_pos`; | how much folder was scrolled in view |

### FM_NAV_HISTORY_DEFAULT_SIZE

    #define FM_NAV_HISTORY_DEFAULT_SIZE     10