mail-notification

Fork of Jean-Yves Lefort's mail-notification, a tray icon to notify of new mail
git clone https://code.djc.id.au/git/mail-notification/

src/mn-conf.h (6981B) - raw

      1 /*
      2  * Mail Notification
      3  * Copyright (C) 2003-2008 Jean-Yves Lefort <jylefort@brutele.be>
      4  *
      5  * This program is free software; you can redistribute it and/or modify
      6  * it under the terms of the GNU General Public License as published by
      7  * the Free Software Foundation; either version 3 of the License, or
      8  * (at your option) any later version.
      9  *
     10  * This program is distributed in the hope that it will be useful,
     11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13  * GNU General Public License for more details.
     14  *
     15  * You should have received a copy of the GNU General Public License along
     16  * with this program; if not, write to the Free Software Foundation, Inc.,
     17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
     18  */
     19 
     20 #ifndef _MN_CONF_H
     21 #define _MN_CONF_H
     22 
     23 #include <stdarg.h>
     24 #include <gtk/gtk.h>
     25 #include <gconf/gconf-client.h>
     26 
     27 #define MN_CONF_NAMESPACE \
     28   "/apps/mail-notification"
     29 #define MN_CONF_COMMANDS_NAMESPACE \
     30   MN_CONF_NAMESPACE "/commands"
     31 #define MN_CONF_COMMANDS_NEW_MAIL_NAMESPACE \
     32   MN_CONF_COMMANDS_NAMESPACE "/new-mail"
     33 #define MN_CONF_COMMANDS_NEW_MAIL_ENABLED \
     34   MN_CONF_COMMANDS_NEW_MAIL_NAMESPACE "/enabled"
     35 #define MN_CONF_COMMANDS_NEW_MAIL_COMMAND \
     36   MN_CONF_COMMANDS_NEW_MAIL_NAMESPACE "/command"
     37 #define MN_CONF_COMMANDS_MAIL_READ_NAMESPACE \
     38   MN_CONF_COMMANDS_NAMESPACE "/mail-read"
     39 #define MN_CONF_COMMANDS_MAIL_READ_ENABLED \
     40   MN_CONF_COMMANDS_MAIL_READ_NAMESPACE "/enabled"
     41 #define MN_CONF_COMMANDS_MAIL_READ_COMMAND \
     42   MN_CONF_COMMANDS_MAIL_READ_NAMESPACE "/command"
     43 #define MN_CONF_COMMANDS_MAIL_CHANGED_NAMESPACE \
     44   MN_CONF_COMMANDS_NAMESPACE "/mail-changed"
     45 #define MN_CONF_COMMANDS_MAIL_CHANGED_ENABLED \
     46   MN_CONF_COMMANDS_MAIL_CHANGED_NAMESPACE "/enabled"
     47 #define MN_CONF_COMMANDS_MAIL_CHANGED_COMMAND \
     48   MN_CONF_COMMANDS_MAIL_CHANGED_NAMESPACE "/command"
     49 #define MN_CONF_SOUNDS_NAMESPACE \
     50   MN_CONF_NAMESPACE "/sounds"
     51 #define MN_CONF_SOUNDS_NEW_MAIL_NAMESPACE \
     52   MN_CONF_SOUNDS_NAMESPACE "/new-mail"
     53 #define MN_CONF_SOUNDS_NEW_MAIL_ENABLED \
     54   MN_CONF_SOUNDS_NEW_MAIL_NAMESPACE "/enabled"
     55 #define MN_CONF_SOUNDS_NEW_MAIL_FILE \
     56   MN_CONF_SOUNDS_NEW_MAIL_NAMESPACE "/file"
     57 #define MN_CONF_SOUNDS_PLAY_COMMAND \
     58   MN_CONF_SOUNDS_NAMESPACE "/play-command"
     59 #define MN_CONF_UI_NAMESPACE \
     60   MN_CONF_NAMESPACE "/ui"
     61 #define MN_CONF_PROPERTIES_DIALOG \
     62   MN_CONF_UI_NAMESPACE "/properties-dialog"
     63 #define MN_CONF_BLINK_ON_ERRORS \
     64   MN_CONF_NAMESPACE "/blink-on-errors"
     65 #define MN_CONF_TRUSTED_X509_CERTIFICATES \
     66   MN_CONF_NAMESPACE "/trusted-x509-certificates"
     67 #define MN_CONF_TRUSTED_SERVERS \
     68   MN_CONF_NAMESPACE "/trusted-servers"
     69 #define MN_CONF_DISPLAY_SEEN_MAIL \
     70   MN_CONF_NAMESPACE "/display-seen-mail"
     71 #define MN_CONF_TOOLTIP_MAIL_SUMMARY \
     72   MN_CONF_NAMESPACE "/tooltip-mail-summary"
     73 #define MN_CONF_TOOLTIP_MAIL_SUMMARY_LIMIT \
     74   MN_CONF_NAMESPACE "/tooltip-mail-summary-limit"
     75 #define MN_CONF_ALWAYS_DISPLAY_ICON \
     76   MN_CONF_NAMESPACE "/always-display-icon"
     77 #define MN_CONF_DISPLAY_MESSAGE_COUNT \
     78   MN_CONF_NAMESPACE "/display-message-count"
     79 #define MN_CONF_CLICK_ACTION \
     80   MN_CONF_NAMESPACE "/click-action-3"
     81 #define MN_CONF_POPUPS_NAMESPACE \
     82   MN_CONF_NAMESPACE "/popups"
     83 #define MN_CONF_POPUPS_ENABLED \
     84   MN_CONF_POPUPS_NAMESPACE "/enabled"
     85 #define MN_CONF_POPUPS_POSITION \
     86   MN_CONF_POPUPS_NAMESPACE "/position"
     87 #define MN_CONF_POPUPS_EXPIRATION_NAMESPACE \
     88   MN_CONF_POPUPS_NAMESPACE "/expiration"
     89 #define MN_CONF_POPUPS_EXPIRATION_ENABLED \
     90   MN_CONF_POPUPS_EXPIRATION_NAMESPACE "/enabled"
     91 #define MN_CONF_POPUPS_EXPIRATION_DELAY \
     92   MN_CONF_POPUPS_EXPIRATION_NAMESPACE "/delay-2"
     93 #define MN_CONF_POPUPS_ACTIONS \
     94   MN_CONF_POPUPS_NAMESPACE "/actions"
     95 #define MN_CONF_POPUPS_LIMIT \
     96   MN_CONF_POPUPS_NAMESPACE "/limit"
     97 #define MN_CONF_FALLBACK_CHARSETS \
     98   MN_CONF_NAMESPACE "/fallback-charsets"
     99 #define MN_CONF_MESSAGES_CONSIDERED_AS_READ \
    100   MN_CONF_NAMESPACE "/messages-considered-as-read"
    101 
    102 /* obsolete keys */
    103 #define MN_CONF_OBSOLETE_MAILBOXES \
    104   MN_CONF_NAMESPACE "/mailboxes"
    105 
    106 /* foreign keys */
    107 #define MN_CONF_GNOME_MAIL_READER_NAMESPACE \
    108   "/desktop/gnome/url-handlers/mailto"
    109 #define MN_CONF_GNOME_MAIL_READER_COMMAND \
    110   MN_CONF_GNOME_MAIL_READER_NAMESPACE "/command"
    111 #define MN_CONF_GNOME_MAIL_READER_NEEDS_TERMINAL \
    112   MN_CONF_GNOME_MAIL_READER_NAMESPACE "/needs_terminal"
    113 #define MN_CONF_SYSTEM_HTTP_PROXY_NAMESPACE \
    114   "/system/http_proxy"
    115 #define MN_CONF_SYSTEM_HTTP_PROXY_USE_HTTP_PROXY \
    116   MN_CONF_SYSTEM_HTTP_PROXY_NAMESPACE "/use_http_proxy"
    117 #define MN_CONF_SYSTEM_HTTP_PROXY_HOST \
    118   MN_CONF_SYSTEM_HTTP_PROXY_NAMESPACE "/host"
    119 #define MN_CONF_SYSTEM_HTTP_PROXY_PORT \
    120   MN_CONF_SYSTEM_HTTP_PROXY_NAMESPACE "/port"
    121 #define MN_CONF_SYSTEM_HTTP_PROXY_USE_AUTHENTICATION \
    122   MN_CONF_SYSTEM_HTTP_PROXY_NAMESPACE "/use_authentication"
    123 #define MN_CONF_SYSTEM_HTTP_PROXY_AUTHENTICATION_USER \
    124   MN_CONF_SYSTEM_HTTP_PROXY_NAMESPACE "/authentication_user"
    125 #define MN_CONF_SYSTEM_HTTP_PROXY_AUTHENTICATION_PASSWORD \
    126   MN_CONF_SYSTEM_HTTP_PROXY_NAMESPACE "/authentication_password"
    127 
    128 extern const char *mn_conf_dot_dir;
    129 
    130 void		mn_conf_init		(void);
    131 void		mn_conf_unset_obsolete	(void);
    132 
    133 GConfClient	*mn_conf_get_client	(void);
    134 
    135 GConfValue	*mn_conf_get_value	(const char	*key);
    136 void		mn_conf_set_value	(const char	*key,
    137 					 const GConfValue *value);
    138 
    139 gboolean	mn_conf_get_bool	(const char	*key);
    140 void		mn_conf_set_bool	(const char	*key,
    141 					 gboolean	value);
    142 
    143 int		mn_conf_get_int		(const char	*key);
    144 void		mn_conf_set_int		(const char	*key,
    145 					 int		value);
    146 
    147 char		*mn_conf_get_string	(const char	*key);
    148 void		mn_conf_set_string	(const char	*key,
    149 					 const char	*value);
    150 
    151 GSList		*mn_conf_get_string_list	(const char	*key);
    152 void		mn_conf_set_string_list		(const char	*key,
    153 						 GSList		*list);
    154 
    155 GHashTable	*mn_conf_get_string_hash_set	(const char	*key);
    156 void		mn_conf_set_string_hash_set	(const char	*key,
    157 						 GHashTable	*set);
    158 
    159 void		mn_conf_suggest_sync	(void);
    160 
    161 void		mn_conf_recursive_unset	(const char	*key,
    162 					 GConfUnsetFlags flags);
    163 
    164 gboolean	mn_conf_is_set		(const char	*key);
    165 
    166 void		mn_conf_monitor_add	(const char	*directory);
    167 
    168 unsigned int	mn_conf_notification_add	(const char		*key,
    169 						 GConfClientNotifyFunc	callback,
    170 						 gpointer		user_data,
    171 						 GFreeFunc		destroy_notify);
    172 void		mn_conf_notification_remove	(unsigned int		notification_id);
    173 
    174 void		mn_conf_link_object	(gpointer	object,
    175 					 const char	*key,
    176 					 const char	*property_name);
    177 void		mn_conf_link_window	(GtkWindow	*window,
    178 					 const char	*key);
    179 void		mn_conf_link_non_linear_range	(GtkRange	*range,
    180 						 const char	*key);
    181 void		mn_conf_link_radio_group_to_enum (GType		enum_type,
    182 						  const char	*key,
    183 						  ...) G_GNUC_NULL_TERMINATED;
    184 
    185 int		mn_conf_get_enum_value	(GType		enum_type,
    186 					 const char	*key);
    187 
    188 gboolean	mn_conf_has_command		(const char	*namespace);
    189 void		mn_conf_execute_command		(const char	*conf_key);
    190 void		mn_conf_execute_mail_reader	(void);
    191 
    192 #endif /* _MN_CONF_H */