--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/purpleattentiontype.c Wed Nov 04 02:35:18 2020 -0600 @@ -0,0 +1,147 @@ +/* + * purple + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. + */ + +#include "purpleattentiontype.h" + +struct _PurpleAttentionType { + /* The name to show in GUI elements. */ + const gchar *name; + /* Shown when received. */ + const gchar *incoming_description; + /* Shown when sent. */ + const gchar *outgoing_description; + /* Optional name of the icon to display. */ + const gchar *icon_name; + /* An unlocalized name for UIs that would rather use that. */ + const gchar *unlocalized_name; +}; + +G_DEFINE_BOXED_TYPE( + PurpleAttentionType, + purple_attention_type, + purple_attention_type_copy, + g_free +); + +/****************************************************************************** + * Public API + *****************************************************************************/ +PurpleAttentionType * +purple_attention_type_new(const gchar *unlocalized_name, + const gchar *name, + const gchar *incoming_description, + const gchar *outgoing_description) +{ + PurpleAttentionType *attn = g_new0(PurpleAttentionType, 1); + + attn->unlocalized_name = unlocalized_name; + attn->name = name; + attn->incoming_description = incoming_description; + attn->outgoing_description = outgoing_description; + + return attn; +} + +PurpleAttentionType * +purple_attention_type_copy(PurpleAttentionType *attn) { + PurpleAttentionType *attn_copy = NULL; + + g_return_val_if_fail(attn != NULL, NULL); + + attn_copy = g_new(PurpleAttentionType, 1); + *attn_copy = *attn; + + return attn_copy; +} + +const gchar * +purple_attention_type_get_name(const PurpleAttentionType *type) { + g_return_val_if_fail(type, NULL); + + return type->name; +} + +void +purple_attention_type_set_name(PurpleAttentionType *type, const gchar *name) { + g_return_if_fail(type); + + type->name = name; +} + +const gchar * +purple_attention_type_get_incoming_desc(const PurpleAttentionType *type) { + g_return_val_if_fail(type, NULL); + + return type->incoming_description; +} + +void +purple_attention_type_set_incoming_desc(PurpleAttentionType *type, const gchar *desc) { + g_return_if_fail(type); + + type->incoming_description = desc; +} + +const gchar * +purple_attention_type_get_outgoing_desc(const PurpleAttentionType *type) { + g_return_val_if_fail(type, NULL); + + return type->outgoing_description; +} + +void +purple_attention_type_set_outgoing_desc(PurpleAttentionType *type, const gchar *desc) { + g_return_if_fail(type != NULL); + + type->outgoing_description = desc; +} + +const gchar * +purple_attention_type_get_icon_name(const PurpleAttentionType *type) { + g_return_val_if_fail(type, NULL); + + if(type->icon_name == NULL || *(type->icon_name) == '\0') + return NULL; + + return type->icon_name; +} + +void +purple_attention_type_set_icon_name(PurpleAttentionType *type, const gchar *name) { + g_return_if_fail(type); + + type->icon_name = name; +} + +const gchar * +purple_attention_type_get_unlocalized_name(const PurpleAttentionType *type) { + g_return_val_if_fail(type, NULL); + + return type->unlocalized_name; +} + +void +purple_attention_type_set_unlocalized_name(PurpleAttentionType *type, const gchar *ulname) { + g_return_if_fail(type); + + type->unlocalized_name = ulname; +}