## GimpZoomModel GimpZoomModel — A model for zoom values. |

## Synopsis

                        GimpZoomModel;
    enum                GimpZoomType;
    GimpZoomModel *     gimp_zoom_model_new                 (void);
    void                gimp_zoom_model_set_range           (GimpZoomModel *model,
                                                             gdouble min,
                                                             gdouble max);
    void                gimp_zoom_model_zoom                (GimpZoomModel *model,
                                                             GimpZoomType zoom_type,
                                                             gdouble scale);
    gdouble             gimp_zoom_model_get_factor          (GimpZoomModel *model);
    void                gimp_zoom_model_get_fraction        (GimpZoomModel *model,
                                                             gint *numerator,
                                                             gint *denominator);
    GtkWidget *         gimp_zoom_button_new                (GimpZoomModel *model,
                                                             GimpZoomType zoom_type,
                                                             GtkIconSize icon_size);
    gdouble             gimp_zoom_model_zoom_step           (GimpZoomType zoom_type,
                                                             gdouble scale);

## Object Hierarchy

      GObject
       +----GimpZoomModel

## Properties

      "fraction"                 gchar*                : Read
      "maximum"                  gdouble               : Read / Write
      "minimum"                  gdouble               : Read / Write
      "percentage"               gchar*                : Read
      "value"                    gdouble               : Read / Write

## Signals

      "zoomed"                                         : Run Last

## Description

A model for zoom values.

## Details

### GimpZoomModel

    typedef struct _GimpZoomModel GimpZoomModel;

### enum GimpZoomType

    typedef enum {
      GIMP_ZOOM_IN,        /*< desc="Zoom in"  >*/
      GIMP_ZOOM_OUT,       /*< desc="Zoom out" >*/
      GIMP_ZOOM_IN_MORE,   /*< skip >*/
      GIMP_ZOOM_OUT_MORE,  /*< skip >*/
      GIMP_ZOOM_IN_MAX,    /*< skip >*/
      GIMP_ZOOM_OUT_MAX,   /*< skip >*/
      GIMP_ZOOM_TO         /*< skip >*/
    } GimpZoomType;

the zoom types for GimpZoomModel.

`GIMP_ZOOM_IN` | zoom in
`GIMP_ZOOM_OUT` | zoom out
`GIMP_ZOOM_IN_MORE` | zoom in a lot
`GIMP_ZOOM_OUT_MORE` | zoom out a lot
`GIMP_ZOOM_IN_MAX` | zoom in as far as possible
`GIMP_ZOOM_OUT_MAX` | zoom out as far as possible
`GIMP_ZOOM_TO` | zoom to a specific zoom factor

### gimp_zoom_model_new ()

    GimpZoomModel *     gimp_zoom_model_new                 (void);

Creates a new GimpZoomModel.

Returns : | a new GimpZoomModel. Since GIMP 2.4

### gimp_zoom_model_set_range ()

    void                gimp_zoom_model_set_range           (GimpZoomModel *model,
                                                             gdouble min,
                                                             gdouble max);

Sets the allowed range of the `model`.

Since GIMP 2.4

`model` : | a GimpZoomModel
`min` : | new lower limit for zoom factor
`max` : | new upper limit for zoom factor

### gimp_zoom_model_zoom ()

    void                gimp_zoom_model_zoom                (GimpZoomModel *model,
                                                             GimpZoomType zoom_type,
                                                             gdouble scale);

Since GIMP 2.4

`model` : | a GimpZoomModel
`zoom_type` : | the GimpZoomType
`scale` : | ignored unless `zoom_type` == `GIMP_ZOOM_TO`

### gimp_zoom_model_get_factor ()

    gdouble             gimp_zoom_model_get_factor          (GimpZoomModel *model);

Retrieves the current zoom factor of `model`.

`model` : | a GimpZoomModel
Returns : | the current scale factor Since GIMP 2.4

### gimp_zoom_model_get_fraction ()

    void                gimp_zoom_model_get_fraction        (GimpZoomModel *model,
                                                             gint *numerator,
                                                             gint *denominator);

Retrieves the current zoom factor of `model` as a fraction.

Since GIMP 2.4

`model` : | a GimpZoomModel
`numerator` : | return location for numerator
`denominator` : | return location for denominator

### gimp_zoom_button_new ()

    GtkWidget *         gimp_zoom_button_new                (GimpZoomModel *model,
                                                             GimpZoomType zoom_type,
                                                             GtkIconSize icon_size);

`model` : | a GimpZoomModel
`icon_size` : | use 0 for a button with text labels
Returns : | a newly created GtkButton Since GIMP 2.4

### gimp_zoom_model_zoom_step ()

    gdouble             gimp_zoom_model_zoom_step           (GimpZoomType zoom_type,
                                                             gdouble scale);

Utility function to calculate a new scale factor.

`zoom_type` : | the zoom type
`scale` : | ignored unless `zoom_type` == `GIMP_ZOOM_TO`
Returns : | the new scale factor Since GIMP 2.4

## Property Details

### The `"fraction"` property

      "fraction"                 gchar*                : Read

Default value: "1:1"

### The `"maximum"` property

      "maximum"                  gdouble               : Read / Write

Allowed values: [0.00390625,256]

Default value: 256

### The `"minimum"` property

      "minimum"                  gdouble               : Read / Write

Allowed values: [0.00390625,256]

Default value: 0.00390625

### The `"percentage"` property

      "percentage"               gchar*                : Read

Default value: "100%"

### The `"value"` property

      "value"                    gdouble               : Read / Write

Allowed values: [0.00390625,256]

Default value: 1

## Signal Details

### The `"zoomed"` signal

    void                user_function                      (GimpZoomModel *model,
                                                            gdouble        old_factor,
                                                            gdouble        new_factor,
                                                            gpointer       user_data)       : Run Last

Emitted when the zoom factor of the zoom model changes.

`model` : | the object that received the signal
`old_factor` : | the zoom factor before it changes
`new_factor` : | the zoom factor after it has changed.
`user_data` : | user data set when the signal handler was connected.