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-custom-vfs-mailbox.gob (2002B) - 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 %headertop{
     21 #include "mn-vfs-mailbox.h"
     22 %}
     23 
     24 %{
     25 #include <glib/gi18n.h>
     26 #include "mn-mailbox-private.h"
     27 %}
     28 
     29 class MN:Custom:VFS:Mailbox from MN:VFS:Mailbox
     30 {
     31   public char *uri destroywith g_free;
     32   property STRING uri (link, flags = MN_MAILBOX_PARAM_LOAD_SAVE | MN_MAILBOX_PARAM_REQUIRED);
     33 
     34   class_init (class)
     35   {
     36     MN_MAILBOX_CLASS(class)->type = "custom-vfs";
     37   }
     38 
     39   override (MN:Mailbox) void
     40     seal (MNMailbox *mailbox)
     41   {
     42     MN_VFS_MAILBOX(mailbox)->uri = gnome_vfs_make_uri_canonical(SELF(mailbox)->uri);
     43 
     44     PARENT_HANDLER(mailbox);
     45   }
     46 
     47   override (MN:Mailbox) MNMailbox *
     48     parse_uri (MNMailbox *dummy, const char *uri)
     49   {
     50     GnomeVFSURI *vfs_uri;
     51     MNMailbox *mailbox = NULL;
     52 
     53     vfs_uri = gnome_vfs_uri_new(uri);
     54     if (vfs_uri)
     55       {
     56 	mailbox = mn_mailbox_new("custom-vfs", "uri", uri, NULL);
     57 	gnome_vfs_uri_unref(vfs_uri);
     58       }
     59 
     60     return mailbox;
     61   }
     62 
     63   override (MN:Mailbox) void
     64     check (MNMailbox *mailbox)
     65   {
     66     if (MN_VFS_MAILBOX(mailbox)->vfs_uri)
     67       {
     68 	PARENT_HANDLER(mailbox);
     69       }
     70     else
     71       {
     72 	mn_mailbox_set_error(mailbox, _("invalid location"));
     73 	mn_mailbox_set_poll(mailbox, FALSE); /* disable the mailbox */
     74       }
     75   }
     76 }