func (indicator AppIndicator) GetIcon() (string, string) {
	retVal := C.app_indicator_get_icon((*C.AppIndicator)(indicator.IndicatorPtr))
	iconName := C.GoString((*C.char)(unsafe.Pointer(retVal)))
	retVal = C.app_indicator_get_icon_desc((*C.AppIndicator)(indicator.IndicatorPtr))
	iconDesc := C.GoString((*C.char)(unsafe.Pointer(retVal)))
	return iconName, iconDesc
}
Gets the current icon and description that is associated with the indicator.
package appindicator
import "C"
import "unsafe"
type Category int
const (
	CategoryApplicationStatus Category = C.APP_INDICATOR_CATEGORY_APPLICATION_STATUS
	CategoryCommunications             = C.APP_INDICATOR_CATEGORY_COMMUNICATIONS
	CategorySystemServices             = C.APP_INDICATOR_CATEGORY_SYSTEM_SERVICES
	CategoryHardware                   = C.APP_INDICATOR_CATEGORY_HARDWARE
	CategoryOther                      = C.APP_INDICATOR_CATEGORY_OTHER
)
type Status int
const (
	StatusPassive   Status = C.APP_INDICATOR_STATUS_PASSIVE
	StatusActive           = C.APP_INDICATOR_STATUS_ACTIVE
	StatusAttention        = C.APP_INDICATOR_STATUS_ATTENTION
)
type AppIndicator struct {
	IndicatorPtr unsafe.Pointer
}
func NewAppIndicator(id, iconName string, category Category) *AppIndicator {
	idString := (*C.gchar)(unsafe.Pointer(C.CString(id)))
	defer C.free(unsafe.Pointer(idString))
	iconNameString := (*C.gchar)(unsafe.Pointer(C.CString(iconName)))
	defer C.free(unsafe.Pointer(iconNameString))
	indicator := unsafe.Pointer(C.app_indicator_new(idString, iconNameString, C.AppIndicatorCategory(category)))
	return &AppIndicator{
		IndicatorPtr: indicator,
	}
}
func NewAppIndicatorWithPath(id, iconName, iconPath string, category int) *AppIndicator {
	idString := (*C.gchar)(unsafe.Pointer(C.CString(id)))
	defer C.free(unsafe.Pointer(idString))
	iconNameString := (*C.gchar)(unsafe.Pointer(C.CString(iconName)))
	defer C.free(unsafe.Pointer(iconNameString))
	iconPathString := (*C.gchar)(unsafe.Pointer(C.CString(iconPath)))
	defer C.free(unsafe.Pointer(iconPathString))
	indicator := unsafe.Pointer(C.app_indicator_new_with_path(idString, iconNameString, C.AppIndicatorCategory(category), iconPathString))
	return &AppIndicator{
		IndicatorPtr: indicator,
	}
}
func (indicator *AppIndicator) SetStatus(status Status) {
	C.app_indicator_set_status((*C.AppIndicator)(indicator.IndicatorPtr), C.AppIndicatorStatus(status))
}
func (indicator *AppIndicator) SetAttentionIon(iconName, iconDescription string) {
	iconNameString := (*C.gchar)(unsafe.Pointer(C.CString(iconName)))
	defer C.free(unsafe.Pointer(iconNameString))
	iconDescriptionString := (*C.gchar)(unsafe.Pointer(C.CString(iconDescription)))
	defer C.free(unsafe.Pointer(iconDescriptionString))
	C.app_indicator_set_attention_icon_full((*C.AppIndicator)(indicator.IndicatorPtr), iconNameString, iconDescriptionString)
}
func (indicator *AppIndicator) C_SetMenu(menu unsafe.Pointer) {
	C.app_indicator_set_menu((*C.AppIndicator)(indicator.IndicatorPtr), (*C.GtkMenu)(menu))
}
func (indicator *AppIndicator) SetIcon(iconName, iconDescription string) {
	iconNameString := (*C.gchar)(unsafe.Pointer(C.CString(iconName)))
	defer C.free(unsafe.Pointer(iconNameString))
	iconDescriptionString := (*C.gchar)(unsafe.Pointer(C.CString(iconDescription)))
	defer C.free(unsafe.Pointer(iconDescriptionString))
	C.app_indicator_set_icon_full((*C.AppIndicator)(indicator.IndicatorPtr), iconNameString, iconDescriptionString)
}
func (indicator *AppIndicator) SetIconThemePath(iconPath string) {
	iconPathString := (*C.gchar)(unsafe.Pointer(C.CString(iconPath)))
	defer C.free(unsafe.Pointer(iconPathString))
	C.app_indicator_set_icon_theme_path((*C.AppIndicator)(indicator.IndicatorPtr), iconPathString)
}
func (indicator *AppIndicator) SetLabel(label, guide string) {
	labelString := (*C.gchar)(unsafe.Pointer(C.CString(label)))
	defer C.free(unsafe.Pointer(labelString))
	guideString := (*C.gchar)(unsafe.Pointer(C.CString(guide)))
	defer C.free(unsafe.Pointer(guideString))
	C.app_indicator_set_label((*C.AppIndicator)(indicator.IndicatorPtr), labelString, guideString)
}
func (indicator *AppIndicator) SetOrderingIndex(index uint32) {
	C.app_indicator_set_ordering_index((*C.AppIndicator)(indicator.IndicatorPtr), C.guint32(index))
}
func (indicator *AppIndicator) C_SetSecondaryActivateTarget(menu unsafe.Pointer) {
	C.app_indicator_set_secondary_activate_target((*C.AppIndicator)(indicator.IndicatorPtr), (*C.GtkWidget)(menu))
}
func (indicator *AppIndicator) SetTitle(title string) {
	titleString := (*C.gchar)(unsafe.Pointer(C.CString(title)))
	defer C.free(unsafe.Pointer(titleString))
	C.app_indicator_set_title((*C.AppIndicator)(indicator.IndicatorPtr), titleString)
}
func (indicator AppIndicator) GetId() string {
	retVal := C.app_indicator_get_id((*C.AppIndicator)(indicator.IndicatorPtr))
	return C.GoString((*C.char)(unsafe.Pointer(retVal)))
}
func (indicator AppIndicator) GetCategory() Category {
	return Category(C.app_indicator_get_category((*C.AppIndicator)(indicator.IndicatorPtr)))
}
func (indicator AppIndicator) GetStatus() Status {
	return Status(C.app_indicator_get_status((*C.AppIndicator)(indicator.IndicatorPtr)))
}