pidgin/purple-plugin-pack

Parents 476ec1e18f35
Children bb4f88e10f6c
remove the smartear plugin as it is incomplete and unlikely to be completed
--- a/meson.build Sun Mar 01 18:43:49 2020 -0600
+++ b/meson.build Sun Mar 01 18:47:15 2020 -0600
@@ -194,7 +194,6 @@
subdir('showoffline')
subdir('simfix')
subdir('slashexec')
-subdir('smartear')
subdir('snpp')
subdir('splitter')
#subdir('stress')
--- a/smartear/README.md Sun Mar 01 18:43:49 2020 -0600
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-# Smart Ear
-
-status: incomplete
-depends: libpurple, pidgin (optional), libgnt (optional)
-authors: John Bailey
-introduced: not yet finished
-
-The Core component of the Smart Ear plugins
-
-
--- a/smartear/gtksmartear.c Sun Mar 01 18:43:49 2020 -0600
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/*
- * gktsmartear.c - GTK+ configuration UI plugin to accompany smartear.
- * Copyright (C) 2007 John Bailey <rekkanoryo@rekkanoryo.org>
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "../pp_config.h"
-#endif
-
-/* Pack/Local headers */
-#include "../common/pp_internal.h"
-
-/* System headers */
-#include <gdk/gdk.h>
-#include <glib.h>
-#include <gtk/gtk.h>
-
-/* Pidgin headers */
-#include <gtkblist.h>
-#include <gtkplugin.h>
-
-static void
-gtksmartear_blist_menu_cb(PurpleBlistNode *node, gpointer data) {
-}
-
-static void
-gtksmartear_drawing_blist_menu_cb(PurpleBlistNode *node, GList **menu) {
- /* Don't do anything if the blistnode won't be saved */
- if(purple_blist_node_get_flags(node) & PURPLE_BLIST_NODE_FLAG_NO_SAVE)
- return;
-
- /* We don't support setting anything for a chat, since there's no way
- * to get the name of a chat */
- if(PURPLE_BLIST_NODE_IS_CHAT(node))
- return;
-
- (*menu) = g_list_append(*menu, purple_menu_action_new(_("SmartEar Options"),
- PURPLE_CALLBACK(gtksmartear_blist_menu_cb),
- NULL, NULL));
-}
-
-static gboolean
-plugin_load(PurplePlugin *plugin) {
- purple_signal_connect(purple_blist_get_handle(),
- "blist-node-extended-menu",
- plugin,
- PURPLE_CALLBACK(gtksmartear_drawing_blist_menu_cb),
- NULL);
-
- return TRUE;
-}
-
-static gboolean
-plugin_unload(PurplePlugin *plugin) {
- return TRUE;
-}
-
-static PurplePluginInfo info = {
- PURPLE_PLUGIN_MAGIC, /* Magic */
- PURPLE_MAJOR_VERSION, /* Purple Major Version */
- PURPLE_MINOR_VERSION, /* Purple Minor Version */
- PURPLE_PLUGIN_STANDARD, /* plugin type */
- PIDGIN_PLUGIN_TYPE, /* ui requirement */
- 0, /* flags */
- NULL, /* dependencies */
- PURPLE_PRIORITY_DEFAULT, /* priority */
-
- "gtk-plugin_pack-smartear", /* plugin id */
- NULL, /* name */
- PP_VERSION, /* version */
- NULL, /* summary */
- NULL, /* description */
- "John Bailey <rekkanoryo@rekkanoryo.org>",
- PP_WEBSITE, /* website */
-
- plugin_load, /* load */
- plugin_unload, /* unload */
- NULL, /* destroy */
-
- NULL, /* ui_info */
- NULL, /* extra_info */
- NULL, /* prefs_info */
- NULL, /* actions */
-
- NULL, /* reserved 1 */
- NULL, /* reserved 2 */
- NULL, /* reserved 3 */
- NULL /* reserved 4 */
-};
-
-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 = _("SmartEar");
- info.summary = _("The GTK+ (Pidgin) component of the SmartEar plugin suite");
- info.description = _("This plugin provides the Pidgin interface to the "
- "SmartEar plugin suite's functionality. The suite "
- "allows you to specify sounds per-buddy, per-contact, "
- "or per-group for specific events.");
-
- info.dependencies = g_list_append(NULL, "core-plugin_pack-smartear");
-}
-
-PURPLE_INIT_PLUGIN(PLUGIN_STATIC_NAME, init_plugin, info)
--- a/smartear/interface.c Sun Mar 01 18:43:49 2020 -0600
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,566 +0,0 @@
-/*
- * DO NOT EDIT THIS FILE - it is generated by Glade.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-
-#include <gdk/gdkkeysyms.h>
-#include <gtk/gtk.h>
-
-#include "callbacks.h"
-#include "interface.h"
-#include "support.h"
-
-#define GLADE_HOOKUP_OBJECT(component,widget,name) \
- g_object_set_data_full (G_OBJECT (component), name, \
- gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
-
-#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
- g_object_set_data (G_OBJECT (component), name, widget)
-
-GtkWidget*
-create_config (void)
-{
- GtkWidget *config;
- GtkWidget *config_vbox;
- GtkWidget *frame1;
- GtkWidget *table1;
- GtkWidget *label9;
- GtkObject *delay_spin_adj;
- GtkWidget *delay_spin;
- GtkWidget *focus_but;
- GtkWidget *timer_but;
- GtkWidget *label8;
- GtkWidget *frame2;
- GtkWidget *table2;
- GtkWidget *delete_but;
- GtkWidget *new_but;
- GtkWidget *scrolledwindow2;
- GtkWidget *treeview;
- GtkWidget *edit_but;
- GtkWidget *label7;
- GtkWidget *hbuttonbox1;
- GtkWidget *revert_but;
- GtkWidget *save_but;
-
- config = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title (GTK_WINDOW (config), "SmartEar Configuration");
- gtk_window_set_destroy_with_parent (GTK_WINDOW (config), TRUE);
-
- config_vbox = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (config_vbox);
- gtk_container_add (GTK_CONTAINER (config), config_vbox);
- gtk_widget_set_size_request (config_vbox, -1, 640);
-
- frame1 = gtk_frame_new (NULL);
- gtk_widget_show (frame1);
- gtk_box_pack_start (GTK_BOX (config_vbox), frame1, FALSE, TRUE, 0);
- gtk_container_set_border_width (GTK_CONTAINER (frame1), 5);
-
- table1 = gtk_table_new (3, 2, FALSE);
- gtk_widget_show (table1);
- gtk_container_add (GTK_CONTAINER (frame1), table1);
- gtk_container_set_border_width (GTK_CONTAINER (table1), 5);
- gtk_table_set_row_spacings (GTK_TABLE (table1), 10);
- gtk_table_set_col_spacings (GTK_TABLE (table1), 10);
-
- label9 = gtk_label_new ("Time delay between playing sounds for a particular buddy:");
- gtk_widget_show (label9);
- gtk_table_attach (GTK_TABLE (table1), label9, 0, 1, 0, 1,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label9), 0, 0.5);
-
- delay_spin_adj = gtk_adjustment_new (60, 0, 1000000, 1, 10, 10);
- delay_spin = gtk_spin_button_new (GTK_ADJUSTMENT (delay_spin_adj), 1, 0);
- gtk_widget_show (delay_spin);
- gtk_table_attach (GTK_TABLE (table1), delay_spin, 1, 2, 0, 1,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
- gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (delay_spin), GTK_UPDATE_IF_VALID);
-
- focus_but = gtk_check_button_new_with_mnemonic ("Don't play sounds for the conversation that has focus.");
- gtk_widget_show (focus_but);
- gtk_table_attach (GTK_TABLE (table1), focus_but, 0, 2, 1, 2,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
-
- timer_but = gtk_check_button_new_with_mnemonic ("Also play sounds if you don't respond to a particular IM within a delay period.");
- gtk_widget_show (timer_but);
- gtk_table_attach (GTK_TABLE (table1), timer_but, 0, 2, 2, 3,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
-
- label8 = gtk_label_new ("Options");
- gtk_widget_show (label8);
- gtk_frame_set_label_widget (GTK_FRAME (frame1), label8);
-
- frame2 = gtk_frame_new (NULL);
- gtk_widget_show (frame2);
- gtk_box_pack_start (GTK_BOX (config_vbox), frame2, TRUE, TRUE, 0);
- gtk_container_set_border_width (GTK_CONTAINER (frame2), 5);
-
- table2 = gtk_table_new (2, 3, FALSE);
- gtk_widget_show (table2);
- gtk_container_add (GTK_CONTAINER (frame2), table2);
- gtk_container_set_border_width (GTK_CONTAINER (table2), 5);
- gtk_table_set_row_spacings (GTK_TABLE (table2), 10);
- gtk_table_set_col_spacings (GTK_TABLE (table2), 10);
-
- delete_but = gtk_button_new_from_stock ("gtk-delete");
- gtk_widget_show (delete_but);
- gtk_table_attach (GTK_TABLE (table2), delete_but, 2, 3, 1, 2,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
- GTK_WIDGET_SET_FLAGS (delete_but, GTK_CAN_DEFAULT);
-
- new_but = gtk_button_new_from_stock ("gtk-new");
- gtk_widget_show (new_but);
- gtk_table_attach (GTK_TABLE (table2), new_but, 0, 1, 1, 2,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
- GTK_WIDGET_SET_FLAGS (new_but, GTK_CAN_DEFAULT);
-
- scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_show (scrolledwindow2);
- gtk_table_attach (GTK_TABLE (table2), scrolledwindow2, 0, 3, 0, 1,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
-
- treeview = gtk_tree_view_new ();
- gtk_widget_show (treeview);
- gtk_container_add (GTK_CONTAINER (scrolledwindow2), treeview);
-
- edit_but = gtk_button_new_from_stock ("gtk-properties");
- gtk_widget_show (edit_but);
- gtk_table_attach (GTK_TABLE (table2), edit_but, 1, 2, 1, 2,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- label7 = gtk_label_new ("Entries");
- gtk_widget_show (label7);
- gtk_frame_set_label_widget (GTK_FRAME (frame2), label7);
-
- hbuttonbox1 = gtk_hbutton_box_new ();
- gtk_widget_show (hbuttonbox1);
- gtk_box_pack_start (GTK_BOX (config_vbox), hbuttonbox1, FALSE, TRUE, 0);
- gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox1), 5);
- gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_SPREAD);
-
- revert_but = gtk_button_new_from_stock ("gtk-revert-to-saved");
- gtk_widget_show (revert_but);
- gtk_container_add (GTK_CONTAINER (hbuttonbox1), revert_but);
- GTK_WIDGET_SET_FLAGS (revert_but, GTK_CAN_DEFAULT);
-
- save_but = gtk_button_new_from_stock ("gtk-save");
- gtk_widget_show (save_but);
- gtk_container_add (GTK_CONTAINER (hbuttonbox1), save_but);
- GTK_WIDGET_SET_FLAGS (save_but, GTK_CAN_DEFAULT);
-
- g_signal_connect ((gpointer) config_vbox, "destroy",
- G_CALLBACK (on_config_destroy),
- NULL);
- g_signal_connect ((gpointer) delay_spin, "changed",
- G_CALLBACK (on_delay_changed),
- NULL);
- g_signal_connect ((gpointer) focus_but, "toggled",
- G_CALLBACK (on_focus_toggled),
- NULL);
- g_signal_connect ((gpointer) timer_but, "toggled",
- G_CALLBACK (on_timer_toggled),
- NULL);
- g_signal_connect ((gpointer) delete_but, "clicked",
- G_CALLBACK (on_delete_clicked),
- NULL);
- g_signal_connect ((gpointer) new_but, "clicked",
- G_CALLBACK (on_new_clicked),
- NULL);
- g_signal_connect ((gpointer) edit_but, "clicked",
- G_CALLBACK (on_edit_clicked),
- NULL);
- g_signal_connect ((gpointer) revert_but, "clicked",
- G_CALLBACK (on_revert_clicked),
- NULL);
- g_signal_connect ((gpointer) save_but, "clicked",
- G_CALLBACK (on_save_clicked),
- NULL);
-
- /* Store pointers to all widgets, for use by lookup_widget(). */
- GLADE_HOOKUP_OBJECT_NO_REF (config, config, "config");
- GLADE_HOOKUP_OBJECT (config, config_vbox, "config_vbox");
- GLADE_HOOKUP_OBJECT (config, frame1, "frame1");
- GLADE_HOOKUP_OBJECT (config, table1, "table1");
- GLADE_HOOKUP_OBJECT (config, label9, "label9");
- GLADE_HOOKUP_OBJECT (config, delay_spin, "delay_spin");
- GLADE_HOOKUP_OBJECT (config, focus_but, "focus_but");
- GLADE_HOOKUP_OBJECT (config, timer_but, "timer_but");
- GLADE_HOOKUP_OBJECT (config, label8, "label8");
- GLADE_HOOKUP_OBJECT (config, frame2, "frame2");
- GLADE_HOOKUP_OBJECT (config, table2, "table2");
- GLADE_HOOKUP_OBJECT (config, delete_but, "delete_but");
- GLADE_HOOKUP_OBJECT (config, new_but, "new_but");
- GLADE_HOOKUP_OBJECT (config, scrolledwindow2, "scrolledwindow2");
- GLADE_HOOKUP_OBJECT (config, treeview, "treeview");
- GLADE_HOOKUP_OBJECT (config, edit_but, "edit_but");
- GLADE_HOOKUP_OBJECT (config, label7, "label7");
- GLADE_HOOKUP_OBJECT (config, hbuttonbox1, "hbuttonbox1");
- GLADE_HOOKUP_OBJECT (config, revert_but, "revert_but");
- GLADE_HOOKUP_OBJECT (config, save_but, "save_but");
-
- return config;
-}
-
-GtkWidget*
-create_file_browse (void)
-{
- GtkWidget *file_browse;
- GtkWidget *ok_button1;
- GtkWidget *cancel_button1;
-
- file_browse = gtk_file_selection_new ("Select Sound");
- gtk_container_set_border_width (GTK_CONTAINER (file_browse), 10);
- gtk_window_set_destroy_with_parent (GTK_WINDOW (file_browse), TRUE);
- gtk_window_set_type_hint (GTK_WINDOW (file_browse), GDK_WINDOW_TYPE_HINT_DIALOG);
-
- ok_button1 = GTK_FILE_SELECTION (file_browse)->ok_button;
- gtk_widget_show (ok_button1);
- GTK_WIDGET_SET_FLAGS (ok_button1, GTK_CAN_DEFAULT);
-
- cancel_button1 = GTK_FILE_SELECTION (file_browse)->cancel_button;
- gtk_widget_show (cancel_button1);
- GTK_WIDGET_SET_FLAGS (cancel_button1, GTK_CAN_DEFAULT);
-
- g_signal_connect ((gpointer) file_browse, "destroy",
- G_CALLBACK (on_file_browse_destroy),
- NULL);
- g_signal_connect ((gpointer) ok_button1, "clicked",
- G_CALLBACK (on_browse_ok_clicked),
- NULL);
- g_signal_connect_swapped ((gpointer) ok_button1, "clicked",
- G_CALLBACK (gtk_widget_destroy),
- GTK_OBJECT (file_browse));
- g_signal_connect_swapped ((gpointer) cancel_button1, "clicked",
- G_CALLBACK (gtk_widget_destroy),
- GTK_OBJECT (file_browse));
-
- /* Store pointers to all widgets, for use by lookup_widget(). */
- GLADE_HOOKUP_OBJECT_NO_REF (file_browse, file_browse, "file_browse");
- GLADE_HOOKUP_OBJECT_NO_REF (file_browse, ok_button1, "ok_button1");
- GLADE_HOOKUP_OBJECT_NO_REF (file_browse, cancel_button1, "cancel_button1");
-
- return file_browse;
-}
-
-GtkWidget*
-create_edit_win (void)
-{
- GtkWidget *edit_win;
- GtkWidget *vbox1;
- GtkWidget *hbox1;
- GtkWidget *label29;
- GtkWidget *name_entry;
- GtkWidget *label30;
- GtkWidget *type_option;
- GtkWidget *menu1;
- GtkWidget *item_buddy;
- GtkWidget *item_group;
- GtkWidget *hbuttonbox2;
- GtkWidget *applysave_but;
- GtkWidget *apply_but;
- GtkWidget *cancel_but;
- GtkWidget *frame3;
- GtkWidget *table5;
- GtkWidget *label31;
- GtkWidget *label34;
- GtkWidget *label33;
- GtkWidget *label32;
- GtkWidget *unaway_sound_entry;
- GtkWidget *unidle_sound_entry;
- GtkWidget *signon_sound_entry;
- GtkWidget *unaway_test_but;
- GtkWidget *unidle_test_but;
- GtkWidget *signon_test_but;
- GtkWidget *unaway_browse_but;
- GtkWidget *unidle_browse_but;
- GtkWidget *signon_browse_but;
- GtkWidget *im_browse_but;
- GtkWidget *im_sound_entry;
- GtkWidget *im_test_but;
- GtkWidget *label24;
-
- edit_win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_widget_set_size_request (edit_win, 600, 300);
- gtk_window_set_title (GTK_WINDOW (edit_win), "Edit Entry");
- gtk_window_set_default_size (GTK_WINDOW (edit_win), 600, 300);
-
- vbox1 = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox1);
- gtk_container_add (GTK_CONTAINER (edit_win), vbox1);
-
- hbox1 = gtk_hbox_new (FALSE, 5);
- gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, TRUE, 10);
- gtk_container_set_border_width (GTK_CONTAINER (hbox1), 5);
-
- label29 = gtk_label_new ("Name:");
- gtk_widget_show (label29);
- gtk_box_pack_start (GTK_BOX (hbox1), label29, FALSE, FALSE, 0);
- gtk_misc_set_alignment (GTK_MISC (label29), 1, 0.5);
-
- name_entry = gtk_entry_new ();
- gtk_widget_show (name_entry);
- gtk_box_pack_start (GTK_BOX (hbox1), name_entry, TRUE, TRUE, 0);
-
- label30 = gtk_label_new ("Type:");
- gtk_widget_show (label30);
- gtk_box_pack_start (GTK_BOX (hbox1), label30, FALSE, TRUE, 0);
- gtk_misc_set_alignment (GTK_MISC (label30), 1, 0.5);
-
- type_option = gtk_option_menu_new ();
- gtk_widget_show (type_option);
- gtk_box_pack_start (GTK_BOX (hbox1), type_option, FALSE, FALSE, 0);
-
- menu1 = gtk_menu_new ();
-
- item_buddy = gtk_menu_item_new_with_mnemonic ("Buddy");
- gtk_widget_show (item_buddy);
- gtk_container_add (GTK_CONTAINER (menu1), item_buddy);
-
- item_group = gtk_menu_item_new_with_mnemonic ("Group");
- gtk_widget_show (item_group);
- gtk_container_add (GTK_CONTAINER (menu1), item_group);
-
- gtk_option_menu_set_menu (GTK_OPTION_MENU (type_option), menu1);
-
- hbuttonbox2 = gtk_hbutton_box_new ();
- gtk_widget_show (hbuttonbox2);
- gtk_box_pack_end (GTK_BOX (vbox1), hbuttonbox2, FALSE, TRUE, 0);
- gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox2), 5);
- gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox2), GTK_BUTTONBOX_SPREAD);
-
- applysave_but = gtk_button_new_with_mnemonic ("Apply and Save");
- gtk_widget_show (applysave_but);
- gtk_container_add (GTK_CONTAINER (hbuttonbox2), applysave_but);
- GTK_WIDGET_SET_FLAGS (applysave_but, GTK_CAN_DEFAULT);
-
- apply_but = gtk_button_new_from_stock ("gtk-apply");
- gtk_widget_show (apply_but);
- gtk_container_add (GTK_CONTAINER (hbuttonbox2), apply_but);
- GTK_WIDGET_SET_FLAGS (apply_but, GTK_CAN_DEFAULT);
-
- cancel_but = gtk_button_new_from_stock ("gtk-cancel");
- gtk_widget_show (cancel_but);
- gtk_container_add (GTK_CONTAINER (hbuttonbox2), cancel_but);
- GTK_WIDGET_SET_FLAGS (cancel_but, GTK_CAN_DEFAULT);
-
- frame3 = gtk_frame_new (NULL);
- gtk_widget_show (frame3);
- gtk_box_pack_start (GTK_BOX (vbox1), frame3, FALSE, FALSE, 0);
- gtk_widget_set_size_request (frame3, -1, 200);
- gtk_container_set_border_width (GTK_CONTAINER (frame3), 5);
-
- table5 = gtk_table_new (4, 5, FALSE);
- gtk_widget_show (table5);
- gtk_container_add (GTK_CONTAINER (frame3), table5);
- gtk_widget_set_size_request (table5, 600, 400);
- gtk_container_set_border_width (GTK_CONTAINER (table5), 5);
- gtk_table_set_row_spacings (GTK_TABLE (table5), 10);
- gtk_table_set_col_spacings (GTK_TABLE (table5), 10);
-
- label31 = gtk_label_new ("Play On IM:");
- gtk_widget_show (label31);
- gtk_table_attach (GTK_TABLE (table5), label31, 0, 1, 0, 1,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label31), 0, 0.5);
-
- label34 = gtk_label_new ("Play On Unaway:");
- gtk_widget_show (label34);
- gtk_table_attach (GTK_TABLE (table5), label34, 0, 1, 3, 4,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label34), 0, 0.5);
-
- label33 = gtk_label_new ("Play On Unidle:");
- gtk_widget_show (label33);
- gtk_table_attach (GTK_TABLE (table5), label33, 0, 1, 2, 3,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label33), 0, 0.5);
-
- label32 = gtk_label_new ("Play On Signon:");
- gtk_widget_show (label32);
- gtk_table_attach (GTK_TABLE (table5), label32, 0, 1, 1, 2,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label32), 0, 0.5);
-
- unaway_sound_entry = gtk_entry_new ();
- gtk_widget_show (unaway_sound_entry);
- gtk_table_attach (GTK_TABLE (table5), unaway_sound_entry, 1, 3, 3, 4,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
-
- unidle_sound_entry = gtk_entry_new ();
- gtk_widget_show (unidle_sound_entry);
- gtk_table_attach (GTK_TABLE (table5), unidle_sound_entry, 1, 3, 2, 3,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
-
- signon_sound_entry = gtk_entry_new ();
- gtk_widget_show (signon_sound_entry);
- gtk_table_attach (GTK_TABLE (table5), signon_sound_entry, 1, 3, 1, 2,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
-
- unaway_test_but = gtk_button_new_with_mnemonic ("Test");
- gtk_widget_show (unaway_test_but);
- gtk_table_attach (GTK_TABLE (table5), unaway_test_but, 4, 5, 3, 4,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- unidle_test_but = gtk_button_new_with_mnemonic ("Test");
- gtk_widget_show (unidle_test_but);
- gtk_table_attach (GTK_TABLE (table5), unidle_test_but, 4, 5, 2, 3,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- signon_test_but = gtk_button_new_with_mnemonic ("Test");
- gtk_widget_show (signon_test_but);
- gtk_table_attach (GTK_TABLE (table5), signon_test_but, 4, 5, 1, 2,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- unaway_browse_but = gtk_button_new_from_stock ("gtk-open");
- gtk_widget_show (unaway_browse_but);
- gtk_table_attach (GTK_TABLE (table5), unaway_browse_but, 3, 4, 3, 4,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- unidle_browse_but = gtk_button_new_from_stock ("gtk-open");
- gtk_widget_show (unidle_browse_but);
- gtk_table_attach (GTK_TABLE (table5), unidle_browse_but, 3, 4, 2, 3,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- signon_browse_but = gtk_button_new_from_stock ("gtk-open");
- gtk_widget_show (signon_browse_but);
- gtk_table_attach (GTK_TABLE (table5), signon_browse_but, 3, 4, 1, 2,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- im_browse_but = gtk_button_new_from_stock ("gtk-open");
- gtk_widget_show (im_browse_but);
- gtk_table_attach (GTK_TABLE (table5), im_browse_but, 3, 4, 0, 1,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- im_sound_entry = gtk_entry_new ();
- gtk_widget_show (im_sound_entry);
- gtk_table_attach (GTK_TABLE (table5), im_sound_entry, 1, 3, 0, 1,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
-
- im_test_but = gtk_button_new_with_mnemonic ("Test");
- gtk_widget_show (im_test_but);
- gtk_table_attach (GTK_TABLE (table5), im_test_but, 4, 5, 0, 1,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- label24 = gtk_label_new ("Sound Events");
- gtk_widget_show (label24);
- gtk_frame_set_label_widget (GTK_FRAME (frame3), label24);
-
- g_signal_connect ((gpointer) edit_win, "destroy",
- G_CALLBACK (on_edit_win_destroy),
- NULL);
- g_signal_connect ((gpointer) applysave_but, "clicked",
- G_CALLBACK (on_apply_clicked),
- NULL);
- g_signal_connect ((gpointer) applysave_but, "clicked",
- G_CALLBACK (on_save_clicked),
- NULL);
- g_signal_connect_swapped ((gpointer) applysave_but, "clicked",
- G_CALLBACK (gtk_widget_destroy),
- GTK_OBJECT (edit_win));
- g_signal_connect ((gpointer) apply_but, "clicked",
- G_CALLBACK (on_apply_clicked),
- NULL);
- g_signal_connect_swapped ((gpointer) apply_but, "clicked",
- G_CALLBACK (gtk_widget_destroy),
- GTK_OBJECT (edit_win));
- g_signal_connect_swapped ((gpointer) cancel_but, "clicked",
- G_CALLBACK (gtk_widget_destroy),
- GTK_OBJECT (edit_win));
- g_signal_connect ((gpointer) unaway_test_but, "clicked",
- G_CALLBACK (on_unaway_test_clicked),
- NULL);
- g_signal_connect ((gpointer) unidle_test_but, "clicked",
- G_CALLBACK (on_unidle_test_clicked),
- NULL);
- g_signal_connect ((gpointer) signon_test_but, "clicked",
- G_CALLBACK (on_signon_test_clicked),
- NULL);
- g_signal_connect ((gpointer) unaway_browse_but, "clicked",
- G_CALLBACK (on_unaway_browse_clicked),
- NULL);
- g_signal_connect ((gpointer) unidle_browse_but, "clicked",
- G_CALLBACK (on_unidle_browse_clicked),
- NULL);
- g_signal_connect ((gpointer) signon_browse_but, "clicked",
- G_CALLBACK (on_signon_browse_clicked),
- NULL);
- g_signal_connect ((gpointer) im_browse_but, "clicked",
- G_CALLBACK (on_im_browse_clicked),
- NULL);
- g_signal_connect ((gpointer) im_test_but, "clicked",
- G_CALLBACK (on_im_test_clicked),
- NULL);
-
- /* Store pointers to all widgets, for use by lookup_widget(). */
- GLADE_HOOKUP_OBJECT_NO_REF (edit_win, edit_win, "edit_win");
- GLADE_HOOKUP_OBJECT (edit_win, vbox1, "vbox1");
- GLADE_HOOKUP_OBJECT (edit_win, hbox1, "hbox1");
- GLADE_HOOKUP_OBJECT (edit_win, label29, "label29");
- GLADE_HOOKUP_OBJECT (edit_win, name_entry, "name_entry");
- GLADE_HOOKUP_OBJECT (edit_win, label30, "label30");
- GLADE_HOOKUP_OBJECT (edit_win, type_option, "type_option");
- GLADE_HOOKUP_OBJECT (edit_win, menu1, "menu1");
- GLADE_HOOKUP_OBJECT (edit_win, item_buddy, "item_buddy");
- GLADE_HOOKUP_OBJECT (edit_win, item_group, "item_group");
- GLADE_HOOKUP_OBJECT (edit_win, hbuttonbox2, "hbuttonbox2");
- GLADE_HOOKUP_OBJECT (edit_win, applysave_but, "applysave_but");
- GLADE_HOOKUP_OBJECT (edit_win, apply_but, "apply_but");
- GLADE_HOOKUP_OBJECT (edit_win, cancel_but, "cancel_but");
- GLADE_HOOKUP_OBJECT (edit_win, frame3, "frame3");
- GLADE_HOOKUP_OBJECT (edit_win, table5, "table5");
- GLADE_HOOKUP_OBJECT (edit_win, label31, "label31");
- GLADE_HOOKUP_OBJECT (edit_win, label34, "label34");
- GLADE_HOOKUP_OBJECT (edit_win, label33, "label33");
- GLADE_HOOKUP_OBJECT (edit_win, label32, "label32");
- GLADE_HOOKUP_OBJECT (edit_win, unaway_sound_entry, "unaway_sound_entry");
- GLADE_HOOKUP_OBJECT (edit_win, unidle_sound_entry, "unidle_sound_entry");
- GLADE_HOOKUP_OBJECT (edit_win, signon_sound_entry, "signon_sound_entry");
- GLADE_HOOKUP_OBJECT (edit_win, unaway_test_but, "unaway_test_but");
- GLADE_HOOKUP_OBJECT (edit_win, unidle_test_but, "unidle_test_but");
- GLADE_HOOKUP_OBJECT (edit_win, signon_test_but, "signon_test_but");
- GLADE_HOOKUP_OBJECT (edit_win, unaway_browse_but, "unaway_browse_but");
- GLADE_HOOKUP_OBJECT (edit_win, unidle_browse_but, "unidle_browse_but");
- GLADE_HOOKUP_OBJECT (edit_win, signon_browse_but, "signon_browse_but");
- GLADE_HOOKUP_OBJECT (edit_win, im_browse_but, "im_browse_but");
- GLADE_HOOKUP_OBJECT (edit_win, im_sound_entry, "im_sound_entry");
- GLADE_HOOKUP_OBJECT (edit_win, im_test_but, "im_test_but");
- GLADE_HOOKUP_OBJECT (edit_win, label24, "label24");
-
- return edit_win;
-}
-
--- a/smartear/meson.build Sun Mar 01 18:43:49 2020 -0600
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-if TYPES.contains('incomplete') and PURPLE.found()
- smartear = shared_library('smartear',
- 'smartear.c',
- dependencies : [PURPLE, GLIB],
- name_prefix : '',
- install : true,
- install_dir : PURPLE_LIBDIR)
- PP_PURPLE_BUILD += 'smartear'
-endif
-
-if TYPES.contains('incomplete') and PIDGIN.found()
- gtksmartear = shared_module('gtksmartear',
- 'gtksmartear.c',
- dependencies : [PIDGIN, GTK],
- name_prefix : '',
- install : true,
- install_dir : PIDGIN_LIBDIR)
- PP_PIDGIN_BUILD += 'gtksmartear'
-endif
-
-if TYPES.contains('incomplete') and FINCH.found()
- gntsmartear = shared_library('gntsmartear',
- 'gntsmartear.c',
- dependencies : [FINCH, GNT],
- name_prefix : '',
- install : true,
- install_dir : FINCH_LIBDIR)
- PP_FINCH_BUILD += 'gntsmartear'
-endif
--- a/smartear/smartear.c Sun Mar 01 18:43:49 2020 -0600
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-/*
- * smartear.c - SmartEar plugin for libpurple
- * Copyright (c) 2007 John Bailey <rekkanoryo@rekkanoryo.org>
- *
- * Original code copyright (c) 2003-2007 Matt Perry
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA
- *
- * This plugin is a hidden plugin. It follows preferences set by other plugins
- * which are specific to the libpurple UI in use. The GTK+ plugin for Pidgin
- * and the GNT plugin for Finch will list this plugin as a dependency, causing
- * libpurple to load this plugin.
- */
-
-#define PURPLE_PLUGINS
-
-#ifdef HAVE_CONFIG_H
-# include "../pp_config.h"
-#endif /* HAVE_CONFIG_H */
-
-#include "../common/pp_internal.h"
-
-/* libpurple headers */
-#include <blist.h>
-#include <debug.h>
-#include <plugin.h>
-#include <pluginpref.h>
-#include <sound.h>
-#include <signals.h>
-
-/* Glib header */
-#include <glib.h>
-
-/* Enumerations */
-
-typedef enum {
- SMARTEAR_EVENT_SIGNON,
- SMARTEAR_EVENT_SIGNOFF,
- SMARTEAR_EVENT_IDLECHG,
- SMARTEAR_EVENT_RECEIVEDMSG,
- SMARTEAR_EVENT_SENTMSG
-} SmartEarEvent;
-
-/* Helpers */
-
-static const char *
-smartear_event_get_setting_string(SmartEarEvent event)
-{
- const char *setting = NULL;
-
- switch(event) {
- case SMARTEAR_EVENT_SIGNON:
- setting = "signon_sound";
- break;
- case SMARTEAR_EVENT_SIGNOFF:
- setting = "signoff_sound";
- break;
- case SMARTEAR_EVENT_IDLECHG:
- setting = "idlechg_sound";
- break;
- case SMARTEAR_EVENT_RECEIVEDMSG:
- setting = "receivedmsg_sound";
- break;
- case SMARTEAR_EVENT_SENTMSG:
- setting = "sentmsg_sound";
- break;
- }
-
- return setting;
-}
-
-static const char *
-smartear_sound_get_default(SmartEarEvent event)
-{
- const char *prefname = NULL, *prefval = NULL;
- char *prefpath = NULL;
-
- prefname = smartear_event_get_setting_string(event);
- prefpath = g_strdup_printf("/plugins/core/smartear/%s", prefname);
- prefval = purple_prefs_get_string(prefpath);
-
- g_free(prefpath);
-
- return prefval;
-}
-
-static const char *
-smartear_sound_determine(const char *bfile, const char *cfile, const char *gfile, SmartEarEvent event)
-{
- const char *pfile = NULL;
-
- /* if the string is "(Default)" then set the pointer to NULL */
- if(!g_ascii_strcasecmp(bfile, "(Default)"))
- bfile = NULL;
- if(!g_ascii_strcasecmp(cfile, "(Default)"))
- cfile = NULL;
- if(!g_ascii_strcasecmp(gfile, "(Default)"))
- gfile = NULL;
-
- /* determine the sound to play - if the pointer is NULL, try falling back
- * to another sound - if no sound defined at any level, fall back to the
- * default */
- if(!bfile)
- if(!cfile)
- if(!gfile)
- pfile = smartear_sound_get_default(event);
- else
- pfile = gfile;
- else
- pfile = cfile;
- else
- pfile = bfile;
-
- return pfile;
-}
-
-static void
-smartear_sound_play(PurpleBuddy *buddy, PurpleAccount *account, SmartEarEvent event)
-{
- const char *bfile = NULL, *cfile = NULL, *gfile = NULL, *pfile = NULL, *setting = NULL;
- PurpleBlistNode *bnode = (PurpleBlistNode *)buddy,
- *cnode = (PurpleBlistNode *)(bnode->parent),
- *gnode = (PurpleBlistNode *)(cnode->parent);
-
- /* get the setting string */
- setting = smartear_event_get_setting_string(event);
-
- /* grab the settings from each blist node in the hierarchy */
- bfile = purple_blist_node_get_string(bnode, setting);
- cfile = purple_blist_node_get_string(cnode, setting);
- gfile = purple_blist_node_get_string(gnode, setting);
-
- /* determine which sound to play */
- pfile = smartear_sound_determine(bfile, cfile, gfile, event);
-
- if(pfile)
- purple_sound_play_file(pfile, account);
-}
-
-/* Callbacks */
-
-static void
-smartear_cb_sent_msg(PurpleAccount *account, const gchar *receiver, const gchar *message)
-{
- PurpleBuddy *buddy = purple_find_buddy(account, receiver);
-
- smartear_sound_play(buddy, account, SMARTEAR_EVENT_SENTMSG);
-}
-
-static void
-smartear_cb_received_msg(PurpleAccount *account, gchar *sender, char *message,
- PurpleConversation *conv, PurpleMessageFlags flags)
-{
- if(!(flags & PURPLE_MESSAGE_SYSTEM)) {
- PurpleBuddy *buddy = purple_find_buddy(account, sender);
-
- smartear_sound_play(buddy, account, SMARTEAR_EVENT_RECEIVEDMSG);
- }
-}
-
-static void
-smartear_cb_idle(PurpleBuddy *buddy, gboolean wasidle, gboolean nowidle)
-{
- smartear_sound_play(buddy, purple_buddy_get_account(buddy), SMARTEAR_EVENT_IDLECHG);
-}
-
-static void
-smartear_cb_signoff(PurpleBuddy *buddy)
-{
- smartear_sound_play(buddy, purple_buddy_get_account(buddy), SMARTEAR_EVENT_SIGNOFF);
-}
-
-static void
-smartear_cb_signon(PurpleBuddy *buddy)
-{
- smartear_sound_play(buddy, purple_buddy_get_account(buddy), SMARTEAR_EVENT_SIGNON);
-}
-
-/* Purple Plugin stuff */
-
-static gboolean
-smartear_load(PurplePlugin *plugin)
-{
- void *blist_handle = purple_blist_get_handle();
- void *conv_handle = purple_conversations_get_handle();
-
- /* blist signals we need to detect the buddy's activities */
- purple_signal_connect(blist_handle, "buddy-signed-on", plugin,
- PURPLE_CALLBACK(smartear_cb_signon), NULL);
- purple_signal_connect(blist_handle, "buddy-signed-off", plugin,
- PURPLE_CALLBACK(smartear_cb_signoff), NULL);
- purple_signal_connect(blist_handle, "buddy-idle-changed", plugin,
- PURPLE_CALLBACK(smartear_cb_idle), NULL);
-
- /* conv signals we need to detect activities */
- purple_signal_connect(conv_handle, "received-im-msg", plugin,
- PURPLE_CALLBACK(smartear_cb_received_msg), NULL);
- purple_signal_connect(conv_handle, "sent-im-msg", plugin,
- PURPLE_CALLBACK(smartear_cb_sent_msg), NULL);
-
- return TRUE;
-}
-
-static gboolean
-smartear_unload(PurplePlugin *plugin)
-{
- return TRUE;
-}
-
-PurplePluginInfo smartear_info =
-{
- PURPLE_PLUGIN_MAGIC, /* Magic, my ass */
- PURPLE_MAJOR_VERSION, /* libpurple major version */
- PURPLE_MINOR_VERSION, /* libpurple minor version */
- PURPLE_PLUGIN_STANDARD, /* plugin type - this is a normal plugin */
- NULL, /* UI requirement - we're invisible! */
- PURPLE_PLUGIN_FLAG_INVISIBLE, /* flags - we're invisible! */
- NULL, /* dependencies - we have none */
- PURPLE_PRIORITY_DEFAULT, /* priority - nothing special here */
- "core-plugin_pack-smartear", /* Plugin ID */
- NULL, /* name - defined later for i18n */
- PP_VERSION, /* plugin version - use plugin pack version */
- NULL, /* summary - defined later for i18n */
- NULL, /* description - defined later for i18n */
- "John Bailey <rekkanoryo@rekkanoryo.org>", /* author */
- PP_WEBSITE, /* plugin website - use plugin pack website */
- smartear_load, /* plugin load - purple calls this when loading */
- smartear_unload, /* plugin unload - purple calls this when unloading */
- NULL, /* plugin destroy - we don't need one */
- NULL, /* ui_info - we don't need this */
- NULL, /* extra_info - we don't need this */
- NULL, /* prefs_info - we don't need this yet */
- NULL, /* actions - we don't have any */
- NULL, /* reserved 1 */
- NULL, /* reserved 2 */
- NULL, /* reserved 3 */
- NULL /* reserved 4 */
-};
-
-static void
-smartear_init(PurplePlugin *plugin)
-{
-#ifdef ENABLE_NLS
- bindtextdomain(GETTEXT_PACKAGE, PP_LOCALEDIR);
- bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
-#endif
-
- smartear_info.name = _("Smart Ear - Hidden Core Plugin");
- smartear_info.summary = _("The Core component of the Smart Ear plugins");
- smartear_info.description = _("The Core component of the Smart Ear plugins");
-}
-
-PURPLE_INIT_PLUGIN(smartear, smartear_init, smartear_info)