summary refs log blame commit diff stats
path: root/src/common/notify.h
blob: 5bf43410192f4c76a763c951b3ac6970e0265fb0 (plain) (tree)


















                                                                            

                      

                        





















                                                      



                                                                                                     




                                                                                                     







                                                 
                                                                         




                                                                                                

                                                                                                    


                            
/* HexChat
 * Copyright (C) 1998-2010 Peter Zelezny.
 * Copyright (C) 2009-2013 Berke Viktor.
 *
 * 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 St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "proto-irc.h"

#ifndef HEXCHAT_NOTIFY_H
#define HEXCHAT_NOTIFY_H

struct notify
{
	char *name;
	char *networks;	/* network names, comma sep */
	GSList *server_list;
};

struct notify_per_server
{
	struct server *server;
	struct notify *notify;
	time_t laston;
	time_t lastseen;
	time_t lastoff;
	unsigned int ison:1;
};

extern GSList *notify_list;
extern int notify_tag;

/* the WATCH stuff */
void notify_set_online (server * serv, char *nick,
								const message_tags_data *tags_data);
void notify_set_offline (server * serv, char *nick, int quiet,
								 const message_tags_data *tags_data);
/* the MONITOR stuff */
void notify_set_online_list (server * serv, char *users,
								const message_tags_data *tags_data);
void notify_set_offline_list (server * serv, char *users, int quiet,
								 const message_tags_data *tags_data);
void notify_send_watches (server * serv);

/* the general stuff */
void notify_adduser (char *name, char *networks);
int notify_deluser (char *name);
void notify_cleanup (void);
void notify_load (void);
void notify_save (void);
void notify_showlist (session *sess, const message_tags_data *tags_data);
gboolean notify_is_in_list (server *serv, char *name);
int notify_isnotify (session *sess, char *name);
struct notify_per_server *notify_find_server_entry (struct notify *notify, struct server *serv);

/* the old ISON stuff - remove me? */
void notify_markonline (server *serv, char *word[], 
								const message_tags_data *tags_data);
int notify_checklist (void);

#endif
ss="o">*user_data), void *userdata); xchat_hook *(*xchat_hook_fd) (xchat_plugin *ph, int fd, int flags, int (*callback) (int fd, int flags, void *user_data), void *userdata); void *(*xchat_unhook) (xchat_plugin *ph, xchat_hook *hook); void (*xchat_print) (xchat_plugin *ph, const char *text); void (*xchat_printf) (xchat_plugin *ph, const char *format, ...); void (*xchat_command) (xchat_plugin *ph, const char *command); void (*xchat_commandf) (xchat_plugin *ph, const char *format, ...); int (*xchat_nickcmp) (xchat_plugin *ph, const char *s1, const char *s2); int (*xchat_set_context) (xchat_plugin *ph, xchat_context *ctx); xchat_context *(*xchat_find_context) (xchat_plugin *ph, const char *servname, const char *channel); xchat_context *(*xchat_get_context) (xchat_plugin *ph); const char *(*xchat_get_info) (xchat_plugin *ph, const char *id); int (*xchat_get_prefs) (xchat_plugin *ph, const char *name, const char **string, int *integer); xchat_list * (*xchat_list_get) (xchat_plugin *ph, const char *name); void (*xchat_list_free) (xchat_plugin *ph, xchat_list *xlist); const char * const * (*xchat_list_fields) (xchat_plugin *ph, const char *name); int (*xchat_list_next) (xchat_plugin *ph, xchat_list *xlist); const char * (*xchat_list_str) (xchat_plugin *ph, xchat_list *xlist, const char *name); int (*xchat_list_int) (xchat_plugin *ph, xchat_list *xlist, const char *name); void * (*xchat_plugingui_add) (xchat_plugin *ph, const char *filename, const char *name, const char *desc, const char *version, char *reserved); void (*xchat_plugingui_remove) (xchat_plugin *ph, void *handle); int (*xchat_emit_print) (xchat_plugin *ph, const char *event_name, ...); int (*xchat_read_fd) (xchat_plugin *ph, void *src, char *buf, int *len); time_t (*xchat_list_time) (xchat_plugin *ph, xchat_list *xlist, const char *name); char *(*xchat_gettext) (xchat_plugin *ph, const char *msgid); void (*xchat_send_modes) (xchat_plugin *ph, const char **targets, int ntargets, int modes_per_line, char sign, char mode); char *(*xchat_strip) (xchat_plugin *ph, const char *str, int len, int flags); void (*xchat_free) (xchat_plugin *ph, void *ptr); int (*xchat_pluginpref_set_str) (xchat_plugin *ph, const char *var, const char *value); int (*xchat_pluginpref_get_str) (xchat_plugin *ph, const char *var, char *dest); int (*xchat_pluginpref_set_int) (xchat_plugin *ph, const char *var, int value); int (*xchat_pluginpref_get_int) (xchat_plugin *ph, const char *var); int (*xchat_pluginpref_delete) (xchat_plugin *ph, const char *var); int (*xchat_pluginpref_list) (xchat_plugin *ph, char *dest); }; #endif xchat_hook * xchat_hook_command (xchat_plugin *ph, const char *name, int pri, int (*callback) (char *word[], char *word_eol[], void *user_data), const char *help_text, void *userdata); xchat_hook * xchat_hook_server (xchat_plugin *ph, const char *name, int pri, int (*callback) (char *word[], char *word_eol[], void *user_data), void *userdata); xchat_hook * xchat_hook_print (xchat_plugin *ph, const char *name, int pri, int (*callback) (char *word[], void *user_data), void *userdata); xchat_hook * xchat_hook_timer (xchat_plugin *ph, int timeout, int (*callback) (void *user_data), void *userdata); xchat_hook * xchat_hook_fd (xchat_plugin *ph, int fd, int flags, int (*callback) (int fd, int flags, void *user_data), void *userdata); void * xchat_unhook (xchat_plugin *ph, xchat_hook *hook); void xchat_print (xchat_plugin *ph, const char *text); void xchat_printf (xchat_plugin *ph, const char *format, ...); void xchat_command (xchat_plugin *ph, const char *command); void xchat_commandf (xchat_plugin *ph, const char *format, ...); int xchat_nickcmp (xchat_plugin *ph, const char *s1, const char *s2); int xchat_set_context (xchat_plugin *ph, xchat_context *ctx); xchat_context * xchat_find_context (xchat_plugin *ph, const char *servname, const char *channel); xchat_context * xchat_get_context (xchat_plugin *ph); const char * xchat_get_info (xchat_plugin *ph, const char *id); int xchat_get_prefs (xchat_plugin *ph, const char *name, const char **string, int *integer); xchat_list * xchat_list_get (xchat_plugin *ph, const char *name); void xchat_list_free (xchat_plugin *ph, xchat_list *xlist); const char * const * xchat_list_fields (xchat_plugin *ph, const char *name); int xchat_list_next (xchat_plugin *ph, xchat_list *xlist); const char * xchat_list_str (xchat_plugin *ph, xchat_list *xlist, const char *name); int xchat_list_int (xchat_plugin *ph, xchat_list *xlist, const char *name); time_t xchat_list_time (xchat_plugin *ph, xchat_list *xlist, const char *name); void * xchat_plugingui_add (xchat_plugin *ph, const char *filename, const char *name, const char *desc, const char *version, char *reserved); void xchat_plugingui_remove (xchat_plugin *ph, void *handle); int xchat_emit_print (xchat_plugin *ph, const char *event_name, ...); char * xchat_gettext (xchat_plugin *ph, const char *msgid); void xchat_send_modes (xchat_plugin *ph, const char **targets, int ntargets, int modes_per_line, char sign, char mode); char * xchat_strip (xchat_plugin *ph, const char *str, int len, int flags); void xchat_free (xchat_plugin *ph, void *ptr); int xchat_pluginpref_set_str (xchat_plugin *ph, const char *var, const char *value); int xchat_pluginpref_get_str (xchat_plugin *ph, const char *var, char *dest); int xchat_pluginpref_set_int (xchat_plugin *ph, const char *var, int value); int xchat_pluginpref_get_int (xchat_plugin *ph, const char *var); int xchat_pluginpref_delete (xchat_plugin *ph, const char *var); int xchat_pluginpref_list (xchat_plugin *ph, char *dest); #if !defined(PLUGIN_C) && defined(WIN32) #ifndef XCHAT_PLUGIN_HANDLE #define XCHAT_PLUGIN_HANDLE (ph) #endif #define xchat_hook_command ((XCHAT_PLUGIN_HANDLE)->xchat_hook_command) #define xchat_hook_server ((XCHAT_PLUGIN_HANDLE)->xchat_hook_server) #define xchat_hook_print ((XCHAT_PLUGIN_HANDLE)->xchat_hook_print) #define xchat_hook_timer ((XCHAT_PLUGIN_HANDLE)->xchat_hook_timer) #define xchat_hook_fd ((XCHAT_PLUGIN_HANDLE)->xchat_hook_fd) #define xchat_unhook ((XCHAT_PLUGIN_HANDLE)->xchat_unhook) #define xchat_print ((XCHAT_PLUGIN_HANDLE)->xchat_print) #define xchat_printf ((XCHAT_PLUGIN_HANDLE)->xchat_printf) #define xchat_command ((XCHAT_PLUGIN_HANDLE)->xchat_command) #define xchat_commandf ((XCHAT_PLUGIN_HANDLE)->xchat_commandf) #define xchat_nickcmp ((XCHAT_PLUGIN_HANDLE)->xchat_nickcmp) #define xchat_set_context ((XCHAT_PLUGIN_HANDLE)->xchat_set_context) #define xchat_find_context ((XCHAT_PLUGIN_HANDLE)->xchat_find_context) #define xchat_get_context ((XCHAT_PLUGIN_HANDLE)->xchat_get_context) #define xchat_get_info ((XCHAT_PLUGIN_HANDLE)->xchat_get_info) #define xchat_get_prefs ((XCHAT_PLUGIN_HANDLE)->xchat_get_prefs) #define xchat_list_get ((XCHAT_PLUGIN_HANDLE)->xchat_list_get) #define xchat_list_free ((XCHAT_PLUGIN_HANDLE)->xchat_list_free) #define xchat_list_fields ((XCHAT_PLUGIN_HANDLE)->xchat_list_fields) #define xchat_list_str ((XCHAT_PLUGIN_HANDLE)->xchat_list_str) #define xchat_list_int ((XCHAT_PLUGIN_HANDLE)->xchat_list_int) #define xchat_list_time ((XCHAT_PLUGIN_HANDLE)->xchat_list_time) #define xchat_list_next ((XCHAT_PLUGIN_HANDLE)->xchat_list_next) #define xchat_plugingui_add ((XCHAT_PLUGIN_HANDLE)->xchat_plugingui_add) #define xchat_plugingui_remove ((XCHAT_PLUGIN_HANDLE)->xchat_plugingui_remove) #define xchat_emit_print ((XCHAT_PLUGIN_HANDLE)->xchat_emit_print) #define xchat_gettext ((XCHAT_PLUGIN_HANDLE)->xchat_gettext) #define xchat_send_modes ((XCHAT_PLUGIN_HANDLE)->xchat_send_modes) #define xchat_strip ((XCHAT_PLUGIN_HANDLE)->xchat_strip) #define xchat_free ((XCHAT_PLUGIN_HANDLE)->xchat_free) #define xchat_pluginpref_set_str ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_set_str) #define xchat_pluginpref_get_str ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_get_str) #define xchat_pluginpref_set_int ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_set_int) #define xchat_pluginpref_get_int ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_get_int) #define xchat_pluginpref_delete ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_delete) #define xchat_pluginpref_list ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_list) #endif #ifdef __cplusplus } #endif #endif