## XfceArrowButton XfceArrowButton — Toggle button with arrow |

## Synopsis

    #include <libxfce4panel/libxfce4panel.h>

                        XfceArrowButton;
    GtkWidget *         xfce_arrow_button_new               (GtkArrowType arrow_type);
    GtkArrowType        xfce_arrow_button_get_arrow_type    (XfceArrowButton *button);
    void                xfce_arrow_button_set_arrow_type    (XfceArrowButton *button,
                                                             GtkArrowType arrow_type);
    gboolean            xfce_arrow_button_get_blinking      (XfceArrowButton *button);
    void                xfce_arrow_button_set_blinking      (XfceArrowButton *button,
                                                             gboolean blinking);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkBin
                                     +----GtkButton
                                           +----GtkToggleButton
                                                 +----XfceArrowButton

## Implemented Interfaces

XfceArrowButton implements AtkImplementorIface, GtkBuildable and GtkActivatable.

## Properties

      "arrow-type"               GtkArrowType          : Read / Write

## Signals

      "arrow-type-changed"                             : Run Last

## Description

Toggle button with (optional) arrow. The arrow direction will be inverted when the button is toggled. Since 4.8 it is also possible to make the button blink and pack additional widgets in the button, using `gtk_container_add()`.

## Details

### XfceArrowButton

    typedef struct _XfceArrowButton XfceArrowButton;

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

### xfce_arrow_button_new ()

    GtkWidget *         xfce_arrow_button_new               (GtkArrowType arrow_type);

Creates a new XfceArrowButton widget.

`arrow_type` : | GtkArrowType for the arrow button
Returns : | The newly created XfceArrowButton widget.

### xfce_arrow_button_get_arrow_type ()

    GtkArrowType        xfce_arrow_button_get_arrow_type    (XfceArrowButton *button);

Returns the value of the ::arrow-type property.

`button` : | a XfceArrowButton
Returns : | the GtkArrowType of `button`.

### xfce_arrow_button_set_arrow_type ()

    void                xfce_arrow_button_set_arrow_type    (XfceArrowButton *button,
                                                             GtkArrowType arrow_type);

Sets the arrow type for `button`.

`button` : | a XfceArrowButton
`arrow_type` : | a valid GtkArrowType

### xfce_arrow_button_get_blinking ()

    gboolean            xfce_arrow_button_get_blinking      (XfceArrowButton *button);

Whether the button is blinking. If the blink timeout is finished and the button is still highlighted, this functions returns `FALSE`.

`button` : | a XfceArrowButton
Returns : | `TRUE` when `button` is blinking.

Since 4.8

### xfce_arrow_button_set_blinking ()

    void                xfce_arrow_button_set_blinking      (XfceArrowButton *button,
                                                             gboolean blinking);

Make the button blink.

`button` : | a XfceArrowButton
`blinking` : | `TRUE` when the button should start blinking, `FALSE` to stop the blinking.

Since 4.8

## Property Details

### The `"arrow-type"` property

      "arrow-type"               GtkArrowType          : Read / Write

The arrow type of the button. This value also determines the direction of the popup menu.

Default value: GTK_ARROW_UP

## Signal Details

### The `"arrow-type-changed"` signal

    void                user_function                      (XfceArrowButton *button,
                                                            GtkArrowType     type,
                                                            gpointer         user_data)      : Run Last

Emitted when the arrow direction of the menu button changes. This value also determines the direction of the popup menu.

`button` : | the object which emitted the signal
`type` : | the new GtkArrowType of the button
`user_data` : | user data set when the signal handler was connected.