Skip to content

Commit d25a6eb

Browse files
committed
完善Darwin API
1 parent ebc232e commit d25a6eb

File tree

1 file changed

+49
-4
lines changed

1 file changed

+49
-4
lines changed

darwin.cpp

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,22 @@
2929

3030
static cs::extension darwin_ext;
3131
static cs::extension darwin_ui_ext;
32+
static cs::extension darwin_core_ext;
3233
static cs::extension darwin_drawable_ext;
3334
static cs::extension_t darwin_ui_ext_shared = cs::make_shared_extension(darwin_ui_ext);
35+
static cs::extension_t darwin_core_ext_shared = cs::make_shared_extension(darwin_core_ext);
3436
static cs::extension_t darwin_drawable_ext_shared = cs::make_shared_extension(darwin_drawable_ext);
3537
namespace cs_impl {
3638
template<>
37-
cs::extension_t &get_ext<std::shared_ptr < darwin::drawable>>
38-
()
39+
cs::extension_t &get_ext<darwin::pixel>()
40+
{
41+
return darwin_core_ext_shared;
42+
}
43+
44+
template<>
45+
cs::extension_t &get_ext<std::shared_ptr<darwin::drawable>>()
3946
{
40-
return
41-
darwin_drawable_ext_shared;
47+
return darwin_drawable_ext_shared;
4248
}
4349

4450
template<>
@@ -210,6 +216,37 @@ namespace darwin_cs_ext {
210216
return buff;
211217
}
212218

219+
// Core Function
220+
char get_char(const darwin::pixel &pix)
221+
{
222+
return pix.get_char();
223+
}
224+
225+
void set_char(darwin::pixel &pix, char ch)
226+
{
227+
pix.set_char(ch);
228+
}
229+
230+
darwin::colors get_front_color(const darwin::pixel &pix)
231+
{
232+
return pix.get_front_color();
233+
}
234+
235+
void set_front_color(darwin::pixel &pix, darwin::colors c)
236+
{
237+
pix.set_front_color(c);
238+
}
239+
240+
darwin::colors get_back_color(const darwin::pixel &pix)
241+
{
242+
return pix.get_back_color();
243+
}
244+
245+
void set_back_color(darwin::pixel &pix, darwin::colors c)
246+
{
247+
pix.set_back_color(c);
248+
}
249+
213250
// Drawable Function
214251
void load_from_file(const drawable_t &pic, const string &path)
215252
{
@@ -310,6 +347,7 @@ namespace darwin_cs_ext {
310347
{
311348
// Namespaces
312349
darwin_ext.add_var("ui", var::make_protect<extension_t>(darwin_ui_ext_shared));
350+
darwin_ext.add_var("core", var::make_protect<extension_t>(darwin_core_ext_shared));
313351
darwin_ext.add_var("drawable", var::make_protect<extension_t>(darwin_drawable_ext_shared));
314352
// Colors
315353
darwin_ext.add_var("black", var::make_constant<darwin::colors>(darwin::colors::black));
@@ -336,6 +374,13 @@ namespace darwin_cs_ext {
336374
// Darwin UI Function
337375
darwin_ui_ext.add_var("message_box", var::make_protect<callable>(cni(message_box)));
338376
darwin_ui_ext.add_var("input_box", var::make_protect<callable>(cni(input_box)));
377+
// Darwin Core Function
378+
darwin_core_ext.add_var("get_char", var::make_protect<callable>(cni(get_char), true));
379+
darwin_core_ext.add_var("set_char", var::make_protect<callable>(cni(set_char)));
380+
darwin_core_ext.add_var("get_front_color", var::make_protect<callable>(cni(get_front_color), true));
381+
darwin_core_ext.add_var("set_front_color", var::make_protect<callable>(cni(set_front_color)));
382+
darwin_core_ext.add_var("get_back_color", var::make_protect<callable>(cni(get_back_color), true));
383+
darwin_core_ext.add_var("set_back_color", var::make_protect<callable>(cni(set_back_color)));
339384
// Drawable Function
340385
darwin_drawable_ext.add_var("load_from_file", var::make_protect<callable>(cni(load_from_file)));
341386
darwin_drawable_ext.add_var("save_to_file", var::make_protect<callable>(cni(save_to_file)));

0 commit comments

Comments
 (0)