## EReflowModel EReflowModel |

## Functions

void | e_reflow_model_set_width ()
gint | e_reflow_model_count ()
gint | e_reflow_model_height ()
GnomeCanvasItem * | e_reflow_model_incarnate ()
GHashTable * | e_reflow_model_create_cmp_cache ()
gint | e_reflow_model_compare ()
void | e_reflow_model_reincarnate ()
void | e_reflow_model_changed ()
void | e_reflow_model_comparison_changed ()
void | e_reflow_model_items_inserted ()
void | e_reflow_model_item_removed ()
void | e_reflow_model_item_changed ()

## Signals

void | comparison-changed | Run Last
void | model-changed | Run Last
void | model-item-changed | Run Last
void | model-item-removed | Run Last
void | model-items-inserted | Run Last

## Types and Values

struct | EReflowModel

## Object Hierarchy

        GObject
        ╰── EReflowModel

## Description

## Functions

### e_reflow_model_set_width ()

    void
    e_reflow_model_set_width (EReflowModel *reflow_model,
                              gint width);

#### Parameters

reflow_model | The e-reflow-model to operate on |
width | The new value for the width of each item. |

### e_reflow_model_count ()

    gint
    e_reflow_model_count (EReflowModel *reflow_model);

#### Parameters

reflow_model | The e-reflow-model to operate on |

#### Returns

the number of items in the reflow model.

### e_reflow_model_height ()

    gint
    e_reflow_model_height (EReflowModel *reflow_model,
                           gint n,
                           GnomeCanvasGroup *parent);

#### Parameters

reflow_model | The e-reflow-model to operate on |
n | The item number to get the height of. |
parent | The parent GnomeCanvasItem. |

#### Returns

the height of the nth item.

### e_reflow_model_incarnate ()

    GnomeCanvasItem *
    e_reflow_model_incarnate (EReflowModel *reflow_model,
                              gint n,
                              GnomeCanvasGroup *parent);

Create a GnomeCanvasItem to represent the nth piece of data.

#### Parameters

reflow_model | The e-reflow-model to operate on |
n | The item to create. |
parent | The parent GnomeCanvasItem to create a child of. |

#### Returns

the new GnomeCanvasItem.

### e_reflow_model_create_cmp_cache ()

    GHashTable *
    e_reflow_model_create_cmp_cache (EReflowModel *reflow_model);

Creates a compare cache for quicker sorting. The sorting function may not depend on the cache, but it should benefit from it if available.

#### Parameters

reflow_model | The e-reflow-model to operate on |

#### Returns

Newly created GHashTable with cached compare values. This will be automatically freed with `g_hash_table_destroy()` when no longer needed.

### e_reflow_model_compare ()

    gint
    e_reflow_model_compare (EReflowModel *reflow_model,
                            gint n1,
                            gint n2,
                            GHashTable *cmp_cache);

Compares item n1 and item n2 to see which should come first.

#### Parameters

reflow_model | The e-reflow-model to operate on |
n1 | The first item to compare |
n2 | The second item to compare |
cmp_cache | GHashTable of cached compare values, created by `e_reflow_model_create_cmp_cache()`. This can be NULL, when caching is not available, even when `reflow_model` defines the create_cmp_cache function. |

#### Returns

strcmp like semantics for the comparison value.

### e_reflow_model_reincarnate ()

    void
    e_reflow_model_reincarnate (EReflowModel *reflow_model,
                                gint n,
                                GnomeCanvasItem *item);

Update item to represent the nth piece of data.

#### Parameters

reflow_model | The e-reflow-model to operate on |
n | The item to create. |
item | The item to reuse. |

### e_reflow_model_changed ()

    void
    e_reflow_model_changed (EReflowModel *reflow_model);

Use this function to notify any views of this reflow model that the contents of the reflow model have changed. This will emit the signal "model_changed" on the `reflow_model` object.

It is preferable to use the `e_reflow_model_item_changed()` signal to notify of smaller changes than to invalidate the entire model, as the views might have ways of caching the information they render from the model.

#### Parameters

reflow_model | the reflow model to notify of the change |

### e_reflow_model_comparison_changed ()

    void
    e_reflow_model_comparison_changed (EReflowModel *reflow_model);

Use this function to notify any views of this reflow model that the sorting has changed. The actual contents of the items hasn't, so there's no need to re-query the model for the heights of the individual items.

#### Parameters

reflow_model | the reflow model to notify of the change |

### e_reflow_model_items_inserted ()

    void
    e_reflow_model_items_inserted (EReflowModel *reflow_model,
                                   gint position,
                                   gint count);

Use this function to notify any views of the reflow model that a number of items have been inserted.

#### Parameters

reflow_model | The model changed. |
position | The position the items were insert in. |
count | The number of items inserted. |

### e_reflow_model_item_removed ()

    void
    e_reflow_model_item_removed (EReflowModel *reflow_model,
                                 gint n);

Use this function to notify any views of the reflow model that an item has been removed.

#### Parameters

reflow_model | The model changed. |
n | The position from which the items were removed. |

### e_reflow_model_item_changed ()

    void
    e_reflow_model_item_changed (EReflowModel *reflow_model,
                                 gint n);

Use this function to notify any views of the reflow model that the contents of item `item` have changed in model such that the height has changed or the item needs to be reincarnated. This function will emit the "model_item_changed" signal on the `reflow_model` object

#### Parameters

reflow_model | the reflow model to notify of the change |
n | the item that was changed in the model. |

## Types and Values

### struct EReflowModel

    struct EReflowModel;

## Signal Details

### The `“comparison-changed”` signal

    void
    user_function (EReflowModel *ereflowmodel,
                   gpointer      user_data)

Flags: Run Last

### The `“model-changed”` signal

    void
    user_function (EReflowModel *ereflowmodel,
                   gpointer      user_data)

Flags: Run Last

### The `“model-item-changed”` signal

    void
    user_function (EReflowModel *ereflowmodel,
                   gint          arg1,
                   gpointer      user_data)

Flags: Run Last

### The `“model-item-removed”` signal

    void
    user_function (EReflowModel *ereflowmodel,
                   gint          arg1,
                   gpointer      user_data)

Flags: Run Last

### The `“model-items-inserted”` signal

    void
    user_function (EReflowModel *ereflowmodel,
                   gint          arg1,
                   gint          arg2,
                   gpointer      user_data)

Flags: Run Last