aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/e_about.c
blob: 8e99312378fc5fdffd302be5511674762ef1bf0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include "e.h"

/* local subsystem functions */

/* local subsystem globals */

/* externally accessible functions */

EAPI E_About *
e_about_new(E_Container *con)
{
   E_Obj_Dialog *od;

   od = e_obj_dialog_new(con, _("About Enlightenment"), "E", "_about");
   if (!od) return NULL;
   e_obj_dialog_obj_theme_set(od, "base/theme/about", "e/widgets/about/main");
   e_obj_dialog_obj_part_text_set(od, "e.text.label", _("Close"));
   e_obj_dialog_obj_part_text_set(od, "e.text.title", _("Enlightenment"));
   e_obj_dialog_obj_part_text_set(od, "e.text.version", VERSION);
   e_obj_dialog_obj_part_text_set
     (od, "e.textblock.about",
         /* note: if translating this, ONLY translate down until (but not
          * including) "All rights reserved". - this is a legal document
          * and should remain in its original form */
     _(
       "<title>Copyright &copy; 2000-2012, by the Enlightenment "
       "Development Team</><br>"
       "<br>"
       "We hope you enjoy using this software as much as we enjoyed "
       "writing it.<br>"
       "<br>"
       "All rights reserved.<br>"
       "<br>"
       "Redistribution and use in source and binary forms, with or without "
       "modification, are permitted provided that the following conditions "
       "are met:<br>"
       "<br>"
       "1. Redistributions of source code must retain the above copyright "
       "notice, this list of conditions and the following disclaimer.<br>"
       "2. Redistributions in binary form must reproduce the above copyright "
       "notice, this list of conditions and the following disclaimer in the "
       "documentation and/or other materials provided with the "
       "distribution.<br>"
       "<br>"
       "<hilight>THIS SOFTWARE IS PROVIDED \"AS IS\" AND ANY EXPRESS OR "
       "IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED "
       "WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE "
       "ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR "
       "CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, "
       "SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT "
       "LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF "
       "USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED "
       "AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT "
       "LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN "
       "ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE "
       "POSSIBILITY OF SUCH DAMAGE.</><br>"
       )
     );

   {
      FILE *f;
      char buf[4096];
      Eina_Strbuf *tbuf;

      e_prefix_data_concat_static(buf, "AUTHORS");
      f = fopen(buf, "r");
      if (f)
        {
           tbuf = eina_strbuf_new();
           eina_strbuf_append(tbuf, _("<title>The Team</><br><br>"));
           while (fgets(buf, sizeof(buf), f))
             {
                int len;

                len = strlen(buf);
                if (len > 0)
                  {
                     if (buf[len - 1] == '\n')
                       {
                          buf[len - 1] = 0;
                          len--;
                       }
                     if (len > 0)
                       {
                          char *p;

                          do
                            {
                               p = strchr(buf, '<');
                               if (p) *p = 0;
                            }
                          while (p);
                          do
                            {
                               p = strchr(buf, '>');
                               if (p) *p = 0;
                            }
                          while (p);
                          eina_strbuf_append_printf(tbuf, "%s<br>", buf);
                       }
                  }
             }
           fclose(f);
           if (tbuf)
             {
                e_obj_dialog_obj_part_text_set(od, "e.textblock.authors",
                                               eina_strbuf_string_get(tbuf));
                eina_strbuf_free(tbuf);
             }
        }
   }
   return (E_About *)od;
}

EAPI void
e_about_show(E_About *about)
{
   e_obj_dialog_show((E_Obj_Dialog *)about);
   e_obj_dialog_icon_set((E_Obj_Dialog *)about, "help-about");
}