dfdfd6ca95d124062d91a51f530e3dcec40a2be0
[modest] / src / modest-local-folder-info.c
1 /* Copyright (c) 2006, Nokia Corporation
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
8  * * Redistributions of source code must retain the above copyright
9  *   notice, this list of conditions and the following disclaimer.
10  * * Redistributions in binary form must reproduce the above copyright
11  *   notice, this list of conditions and the following disclaimer in the
12  *   documentation and/or other materials provided with the distribution.
13  * * Neither the name of the Nokia Corporation nor the names of its
14  *   contributors may be used to endorse or promote products derived from
15  *   this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
18  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
20  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
21  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29
30 #include <glib/gi18n.h>
31 #include <string.h> /* strcmp */
32 #include <modest-local-folder-info.h>
33
34 typedef struct {
35         ModestLocalFolderType   type;
36         const gchar             *name;
37         const gchar             *display_name;
38 } ModestLocalFolder;
39
40 const ModestLocalFolder ModestLocalFolderMap[] = {
41         { MODEST_LOCAL_FOLDER_TYPE_JUNK,    "junk",    N_("Junk")},
42         { MODEST_LOCAL_FOLDER_TYPE_TRASH,   "trash",   N_("Trash")},
43         { MODEST_LOCAL_FOLDER_TYPE_DRAFTS,  "drafts",  N_("Drafts")},
44         { MODEST_LOCAL_FOLDER_TYPE_SENT,    "sent",    N_("Sent")},
45         { MODEST_LOCAL_FOLDER_TYPE_OUTBOX,  "outbox",  N_("Outbox")},
46         { MODEST_LOCAL_FOLDER_TYPE_ARCHIVE, "archive", N_("Archive")}
47 };
48
49
50 ModestLocalFolderType
51 modest_local_folder_info_get_type (const gchar *name)
52 {
53         int i;
54
55         g_return_val_if_fail (name, MODEST_LOCAL_FOLDER_TYPE_UNKNOWN);
56
57         for (i = 0; i != G_N_ELEMENTS(ModestLocalFolderMap); ++i) {
58                 if (strcmp (ModestLocalFolderMap[i].name, name) == 0)
59                         return ModestLocalFolderMap[i].type;
60         }
61         return MODEST_LOCAL_FOLDER_TYPE_UNKNOWN;
62 }
63
64 const gchar*
65 modest_local_folder_info_get_type_name (ModestLocalFolderType type)
66 {
67         int i = 0;
68         g_return_val_if_fail (type > MODEST_LOCAL_FOLDER_TYPE_UNKNOWN &&
69                               type < MODEST_LOCAL_FOLDER_TYPE_NUM, NULL);
70         
71         for (i = 0; i != G_N_ELEMENTS(ModestLocalFolderMap); ++i) {
72                 if (ModestLocalFolderMap[i].type == type)
73                         return ModestLocalFolderMap[i].name;
74         }
75         return NULL;    
76 }
77
78 const gchar*
79 modest_local_folder_info_get_type_display_name (ModestLocalFolderType type)
80 {
81         int i = 0;
82         g_return_val_if_fail (type > MODEST_LOCAL_FOLDER_TYPE_UNKNOWN &&
83                               type < MODEST_LOCAL_FOLDER_TYPE_NUM, NULL);
84         
85         for (i = 0; i != G_N_ELEMENTS(ModestLocalFolderMap); ++i) {
86                 if (ModestLocalFolderMap[i].type == type)
87                         return ModestLocalFolderMap[i].display_name;
88         }
89         return NULL;    
90 }
91
92