---
name: "Gtk2::AppIndicator"
section: "3pm"
platform: "linux"
package: "libgtk2-appindicator-perl"
version: "0.15-1+b4"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/Gtk2::AppIndicator"
---

# Gtk2::AppIndicator(3pm)

Perl extension for libappindicator

## NAME

Gtk2::AppIndicator - Perl extension for libappindicator

## SYNOPSIS

```
  use Gtk2 '-init';
  use Gtk2::AppIndicator;
  use Cwd;
  # Initialize the status icon. an_icon_name must be present
  # at the icon theme path location, with an image extension like
  # .jpg, .png or .svg, etc.
  $status_icon=Gtk2::AppIndicator->new("AnAppName","an_icon_name");

  # If you want to be in control over your icon location, you
  # can set it manually. It must be an absolute path, in order
  # to work.
  my $absolute_current_working_directory=getcwd();
  my $acwd=$absolute_current_working_directory;
  $status_icon->set_icon_theme_path($acwd);
  # Optionally set different icons
  # $status_icon->set_icon_name_active("an_icon_name");
  # $status_icon->set_icon_name_attention("an_other_icon_name");
  # $status_icon->set_icon_name_passive("an_other_icon_name");

  # Add a menu to the indicator
  my $menu=Gtk2::Menu->new();
  my $showcp=Gtk2::CheckMenuItem->new_with_mnemonic("_Show My App");
  $showcp->set_active(1);
  $showcp->signal_connect("toggled",sub { hide_show($window,$showcp); });
  my $quit=Gtk2::MenuItem->new_with_mnemonic("_Quit");
  $quit->signal_connect("activate",sub { Gtk->main_quit(); });

  $menu->append($showcp);
  $menu->append(Gtk2::SeparatorMenuItem->new());
  $menu->append($quit);
  $status_icon->set_menu($menu);
  # Show our icon and set the state
  $menu->show_all();
  $status_icon->set_active();
```

## DESCRIPTION

This module gives an interface to the new ubuntu Unity libappindicator stuff.

## FUNCTIONS

```
 $ind=Gtk2::AppIndicator->new($application_id,$active_icon_name [,$category])
```

Creates a new application indicator object with given name (id) and icon name for the active icon. Category must be one of  { 'application-status', 'communications', 'system-services', 'hardware', 'other' } if set. if not set, it defaults to 'application-status'.

```
 $ind->set_icon_theme_path($path)
```

Set the icon theme path to 'path'. This is where icons should be found with names like \<active\_icon\_name\>.png.

```
 $ind->get_icon_theme_path()
```

Returns the (previously written) icon theme path, or undefined if not set.

```
 $ind->get_category()
```

Returns the previously set category with the new function.

```
 $ind->get_id()
```

Returns the application id given to the new function.

```
 $ind->set_icon_name_active($name)
```

Sets the icon name for the active icon.

```
 $ind->get_icon_name_active()
```

Returns the name of the icon for active state.

```
 $ind->set_icon_name_attention($name)
```

Sets the icon name for the attention icon

```
 $ind->get_icon_name_attention()
```

Returns the name of the icon for attention state.

```
  $ind->set_active()
```

Makes the application indicator active.

```
  $ind->set_attention()
```

Makes the application indicator show the attention icon.

```
  $ind->set_passive()
```

Makes the application indicator enter passive state, not showing any icon

```
  $ind->set_state($state)
```

Sets application indicator in the given state, one of {'active','passive','attention'}.

```
  $ind->get_state()
```

Returns the current state of the application indicator.

```
  $ind->set_menu($menu)
```

Sets the popup menu for the indicator icon.

```
  $ind->get_menu()
```

Returns the current menu (not from the C code, but as stored in the perl object)

```
  $ind->set_secondary_activate_target($widget)
```

Sets the secondary active target (under the middle mouse button) to `$widget`

```
  $ind->get_secondary_activate_target()
```

Returns the current secondary active target (not from the C code, but as stored in the perl object)

## AUTHOR

Hans Oesterholt, \<oesterhol@cpan.org\>

## COPYRIGHT AND LICENSE

Copyright (C) 2012 by Hans Oesterholt \<oesterhol@cpan.org\>

This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License, which comes with Perl.
