Fixed RDoc title.
[ruby-edje.git] / src / rb_edje_main.c
1 /*
2  * Copyright (C) 2004 Tilman Sauerbeck (tilman at code-monkey de)
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #include <ruby.h>
20
21 #include <Edje.h>
22
23 #include "rb_edje_main.h"
24 #include "rb_edje.h"
25 #include "rb_part.h"
26
27 /*
28  * call-seq:
29  *    Edje.freeze => nil
30  *
31  * Freezes all <code>Edje::Edje</code> objects.
32  */
33 static VALUE m_freeze (VALUE self)
34 {
35         edje_init ();
36         edje_freeze ();
37         edje_shutdown ();
38
39         return Qnil;
40 }
41
42 /*
43  * call-seq:
44  *    Edje.thaw => nil
45  *
46  * Thaws all <code>Edje::Edje</code> objects.
47  */
48 static VALUE m_thaw (VALUE self)
49 {
50         edje_init ();
51         edje_thaw ();
52         edje_shutdown ();
53
54         return Qnil;
55 }
56
57 /*
58  * call-seq:
59  *    Edje.frametime => float
60  *
61  * Returns the frametime (1 / fps) for the Edje library.
62  */
63 static VALUE m_frametime_get (VALUE self)
64 {
65         VALUE ret;
66
67         edje_init ();
68         ret = rb_float_new (edje_frametime_get ());
69         edje_shutdown ();
70
71         return ret;
72 }
73
74 /*
75  * call-seq:
76  *    Edje.frametime(float)
77  *
78  * Sets the frametime (1 / fps) for the Edje library.
79  */
80 static VALUE m_frametime_set (VALUE self, VALUE val)
81 {
82         Check_Type (val, T_FLOAT);
83
84         edje_init ();
85         edje_frametime_set (NUM2DBL (val));
86         edje_shutdown ();
87
88         return Qnil;
89 }
90
91 static VALUE m_collections_get (VALUE self, VALUE file)
92 {
93         VALUE ary;
94         Evas_List *list, *l;
95
96         Check_Type (file, T_STRING);
97
98         ary = rb_ary_new ();
99
100         edje_init ();
101
102         list = edje_file_collection_list (StringValuePtr (file));
103         if (list) {
104                 for (l = list; l; l = l->next)
105                         rb_ary_push (ary, rb_str_new2 (l->data));
106
107                 edje_file_collection_list_free (list);
108         }
109
110         edje_shutdown ();
111
112         return ary;
113 }
114
115 void Init_edje (void)
116 {
117         rb_require ("evas");
118
119         mEdje = rb_define_module ("Edje");
120
121         rb_define_module_function (mEdje, "freeze", m_freeze, 0);
122         rb_define_module_function (mEdje, "thaw", m_thaw, 0);
123         rb_define_module_function (mEdje, "frametime", m_frametime_get, 0);
124         rb_define_module_function (mEdje, "frametime=", m_frametime_set, 1);
125         rb_define_module_function (mEdje, "collections", m_collections_get, 1);
126
127         Init_Edje ();
128         Init_Part ();
129 }
130