pidgin/purple-plugin-pack
Clone
Summary
Browse
Changes
Graph
Make this build with a more modern Pidgin build environment.
2010-12-12, John Bailey
853ff768efd0
Make this build with a more modern Pidgin build environment.
/*
* Extra conversation placement options for Purple
* Copyright (C) 2004-2008 Gary Kramlich <grim@reaperworld.com>
*
* 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, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA.
*/
/* If you can't figure out what this line is for, DON'T TOUCH IT. */
#include
"../common/pp_internal.h"
#include
<conversation.h>
#include
<plugin.h>
#include
<gtkplugin.h>
#include
<gtkconv.h>
#include
<gtkconvwin.h>
#include
<pidgin.h>
#define SEPANDTAB_PREF "/pidgin/conversations/placement"
static
void
conv_placement_sep_ims_tab_chats
(
PidginConversation
*
conv
)
{
PurpleConversationType
type
;
PidginWindow
*
win
=
NULL
;
type
=
purple_conversation_get_type
(
conv
->
active_conv
);
win
=
pidgin_conv_window_last_with_type
(
type
);
if
(
type
==
PURPLE_CONV_TYPE_IM
)
{
win
=
pidgin_conv_window_new
();
pidgin_conv_window_add_gtkconv
(
win
,
conv
);
pidgin_conv_window_show
(
win
);
}
else
{
if
(
!
win
)
win
=
pidgin_conv_window_new
();
pidgin_conv_window_add_gtkconv
(
win
,
conv
);
pidgin_conv_window_show
(
win
);
}
}
static
void
conv_placement_sep_chats_tab_ims
(
PidginConversation
*
conv
)
{
PurpleConversationType
type
;
PidginWindow
*
win
=
NULL
;
type
=
purple_conversation_get_type
(
conv
->
active_conv
);
win
=
pidgin_conv_window_last_with_type
(
type
);
if
(
type
==
PURPLE_CONV_TYPE_CHAT
)
{
win
=
pidgin_conv_window_new
();
pidgin_conv_window_add_gtkconv
(
win
,
conv
);
pidgin_conv_window_show
(
win
);
}
else
{
if
(
!
win
)
win
=
pidgin_conv_window_new
();
pidgin_conv_window_add_gtkconv
(
win
,
conv
);
pidgin_conv_window_show
(
win
);
}
}
#if 0
static void
conv_placement_grp_type_sep_prpl(PidginConversation *conv) {
}
#endif
static
gboolean
plugin_load
(
PurplePlugin
*
plugin
)
{
pidgin_conv_placement_add_fnc
(
"sep-ims-tab-chats"
,
_
(
"Separate IM, group Chats"
),
&
conv_placement_sep_ims_tab_chats
);
pidgin_conv_placement_add_fnc
(
"sep-chats-tab-ims"
,
_
(
"Separate Chats, group IMs"
),
&
conv_placement_sep_chats_tab_ims
);
#if 0
pidgin_conv_placement_add_fnc("grp-type-sep-prpl", _("Group by Type, Separate by Protocol"),
&conv_placement_grp_type_sep_prpl);
#endif
purple_prefs_trigger_callback
(
SEPANDTAB_PREF
);
return
TRUE
;
}
static
gboolean
plugin_unload
(
PurplePlugin
*
plugin
)
{
pidgin_conv_placement_remove_fnc
(
"sep-ims-tab-chats"
);
pidgin_conv_placement_remove_fnc
(
"sep-chats-tab-ims"
);
purple_prefs_trigger_callback
(
SEPANDTAB_PREF
);
return
TRUE
;
}
static
PurplePluginInfo
info
=
{
PURPLE_PLUGIN_MAGIC
,
PURPLE_MAJOR_VERSION
,
PURPLE_MINOR_VERSION
,
PURPLE_PLUGIN_STANDARD
,
PIDGIN_PLUGIN_TYPE
,
0
,
NULL
,
PURPLE_PRIORITY_DEFAULT
,
"gtk-plugin_pack-separate_and_tab"
,
NULL
,
PP_VERSION
,
NULL
,
NULL
,
"Gary Kramlich <grim@reaperworld.com>"
,
PP_WEBSITE
,
plugin_load
,
plugin_unload
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
};
static
void
init_plugin
(
PurplePlugin
*
plugin
)
{
#ifdef ENABLE_NLS
bindtextdomain
(
GETTEXT_PACKAGE
,
PP_LOCALEDIR
);
bind_textdomain_codeset
(
GETTEXT_PACKAGE
,
"UTF-8"
);
#endif
/* ENABLE_NLS */
info
.
name
=
_
(
"Separate And Tab"
);
info
.
summary
=
_
(
"Adds two placement functions for separating and tabbing"
);
info
.
description
=
_
(
"Adds two new placement functions.
\n\n
"
"One separates IMs and groups chats in tabs
\n
"
"The other separates chats and groups IMs in tabs"
);
}
PURPLE_INIT_PLUGIN
(
separate
-
and
-
tab
,
init_plugin
,
info
)