## XfcePanelImage

XfcePanelImage — Scalable image suitable for panel plugins

## Synopsis

    #include <libxfce4panel/libxfce4panel.h>

                        XfcePanelImage;
    GtkWidget *         xfce_panel_image_new                (void);
    GtkWidget *         xfce_panel_image_new_from_pixbuf    (GdkPixbuf *pixbuf);
    GtkWidget *         xfce_panel_image_new_from_source    (const gchar *source);
    void                xfce_panel_image_set_from_pixbuf    (XfcePanelImage *image,
                                                             GdkPixbuf *pixbuf);
    void                xfce_panel_image_set_from_source    (XfcePanelImage *image,
                                                             const gchar *source);
    void                xfce_panel_image_set_size           (XfcePanelImage *image,
                                                             gint size);
    gint                xfce_panel_image_get_size           (XfcePanelImage *image);
    void                xfce_panel_image_clear              (XfcePanelImage *image);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----XfcePanelImage

## Implemented Interfaces

XfcePanelImage implements AtkImplementorIface and GtkBuildable.

## Properties

      "pixbuf"                   GdkPixbuf*            : Read / Write
      "size"                     gint                  : Read / Write
      "source"                   gchar*                : Read / Write

## Style Properties

      "force-gtk-icon-sizes"     gboolean              : Read / Write

## Description

The XfcePanelImage is a widgets suitable for for example panel buttons where the developer does not exacly know the size of the image (due to theming and user setting).

The XfcePanelImage widget automatically scales to the allocated size of the widget. Because of that nature it never requests a size, so this will only work if you pack the image in another widget that will expand it. If you want to force an image size you can use `xfce_panel_image_set_size()` to set a pixel size, in that case the widget will request an fixed size which makes it usefull for usage in dialogs.

## Details

### XfcePanelImage

    typedef struct _XfcePanelImage XfcePanelImage;

This struct contain private data only and should be accessed by the functions below.

### xfce_panel_image_new ()

    GtkWidget *         xfce_panel_image_new                (void);

Creates a new empty XfcePanelImage widget.

Returns : | a newly created XfcePanelImage widget.

Since 4.8

### xfce_panel_image_new_from_pixbuf ()

    GtkWidget *         xfce_panel_image_new_from_pixbuf    (GdkPixbuf *pixbuf);

Creates a new XfcePanelImage displaying `pixbuf`. XfcePanelImage will add its own reference rather than adopting yours. You don't need to scale the pixbuf to the correct size, the XfcePanelImage will take care of that based on the allocation of the widget or the size set with `xfce_panel_image_set_size()`.

`pixbuf` : | a GdkPixbuf, or `NULL`.
Returns : | a newly created XfcePanelImage widget.

Since 4.8

### xfce_panel_image_new_from_source ()

    GtkWidget *         xfce_panel_image_new_from_source    (const gchar *source);

Creates a new XfcePanelImage displaying `source`. XfcePanelImage will detect if `source` points to an absolute file or it and icon-name. For icon-names it will also look for files in the pixbuf folder or strip the extensions, which makes it suitable for usage with icon keys in .desktop files.

`source` : | source of the image. This can be an absolute path or an icon-name or `NULL`.
Returns : | a newly created XfcePanelImage widget.

Since 4.8

### xfce_panel_image_set_from_pixbuf ()

    void                xfce_panel_image_set_from_pixbuf    (XfcePanelImage *image,
                                                             GdkPixbuf *pixbuf);

See `xfce_panel_image_new_from_pixbuf()` for details.

`image` : | an XfcePanelImage.
`pixbuf` : | a GdkPixbuf, or `NULL`.

Since 4.8

### xfce_panel_image_set_from_source ()

    void                xfce_panel_image_set_from_source    (XfcePanelImage *image,
                                                             const gchar *source);

See `xfce_panel_image_new_from_source()` for details.

`image` : | an XfcePanelImage.
`source` : | source of the image. This can be an absolute path or an icon-name or `NULL`.

Since 4.8

### xfce_panel_image_set_size ()

    void                xfce_panel_image_set_size           (XfcePanelImage *image,
                                                             gint size);

This will force an image size, instead of looking at the allocation size, see introduction for more details. You can set a `size` of -1 to turn this off.

`image` : | an XfcePanelImage.
`size` : | a new size in pixels.

Since 4.8

### xfce_panel_image_get_size ()

    gint                xfce_panel_image_get_size           (XfcePanelImage *image);

The size of the image, set by `xfce_panel_image_set_size()` or -1 if no size is forced and the image is scaled to the allocation size.

`image` : | an XfcePanelImage.
Returns : | icon size in pixels of the image or -1.

Since 4.8

### xfce_panel_image_clear ()

    void                xfce_panel_image_clear              (XfcePanelImage *image);

Resets the image to be empty.

`image` : | an XfcePanelImage.

Since 4.8

## Property Details

### The `"pixbuf"` property

      "pixbuf"                   GdkPixbuf*            : Read / Write

Pixbuf image.

### The `"size"` property

      "size"                     gint                  : Read / Write

Pixel size of the image.

Allowed values: [G_MAXULONG,128]

Default value: -1

### The `"source"` property

      "source"                   gchar*                : Read / Write

Icon or filename.

Default value: NULL

## Style Property Details

### The `"force-gtk-icon-sizes"` style property

      "force-gtk-icon-sizes"     gboolean              : Read / Write

Force the image to fix to GtkIconSizes.

Default value: FALSE