reflexion 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.doc/ext/reflex/application.cpp +54 -39
- data/.doc/ext/reflex/capture_event.cpp +87 -0
- data/.doc/ext/reflex/draw_event.cpp +103 -0
- data/.doc/ext/reflex/event.cpp +73 -0
- data/.doc/ext/reflex/focus_event.cpp +98 -0
- data/.doc/ext/reflex/frame_event.cpp +133 -0
- data/.doc/ext/reflex/image_view.cpp +74 -0
- data/.doc/ext/reflex/key_event.cpp +124 -0
- data/.doc/ext/reflex/native.cpp +45 -6
- data/.doc/ext/reflex/pointer_event.cpp +181 -0
- data/.doc/ext/reflex/reflex.cpp +17 -41
- data/.doc/ext/reflex/scroll_event.cpp +141 -0
- data/.doc/ext/reflex/selector.cpp +135 -0
- data/.doc/ext/reflex/style.cpp +253 -0
- data/.doc/ext/reflex/style_length.cpp +133 -0
- data/.doc/ext/reflex/style_length2.cpp +149 -0
- data/.doc/ext/reflex/style_length4.cpp +192 -0
- data/.doc/ext/reflex/update_event.cpp +77 -0
- data/.doc/ext/reflex/view.cpp +408 -88
- data/.doc/ext/reflex/wheel_event.cpp +146 -0
- data/.doc/ext/reflex/window.cpp +95 -92
- data/Rakefile +6 -5
- data/VERSION +1 -1
- data/ext/reflex/application.cpp +67 -49
- data/ext/reflex/capture_event.cpp +92 -0
- data/ext/reflex/draw_event.cpp +110 -0
- data/ext/reflex/event.cpp +77 -0
- data/ext/reflex/extconf.rb +18 -68
- data/ext/reflex/focus_event.cpp +104 -0
- data/ext/reflex/frame_event.cpp +143 -0
- data/ext/reflex/image_view.cpp +77 -0
- data/ext/reflex/key_event.cpp +133 -0
- data/ext/reflex/native.cpp +45 -6
- data/ext/reflex/pointer_event.cpp +195 -0
- data/ext/reflex/reflex.cpp +21 -47
- data/ext/reflex/scroll_event.cpp +152 -0
- data/ext/reflex/selector.cpp +144 -0
- data/ext/reflex/style.cpp +277 -0
- data/ext/reflex/style_length.cpp +140 -0
- data/ext/reflex/style_length2.cpp +157 -0
- data/ext/reflex/style_length4.cpp +204 -0
- data/ext/reflex/update_event.cpp +81 -0
- data/ext/reflex/view.cpp +469 -114
- data/ext/reflex/wheel_event.cpp +158 -0
- data/ext/reflex/window.cpp +130 -123
- data/include/reflex/application.h +12 -7
- data/include/reflex/defs.h +13 -89
- data/include/reflex/event.h +260 -0
- data/include/reflex/exception.h +17 -11
- data/include/reflex/image_view.h +45 -0
- data/include/reflex/reflex.h +2 -6
- data/include/reflex/ruby/application.h +40 -13
- data/include/reflex/ruby/event.h +72 -0
- data/include/reflex/ruby/image_view.h +25 -0
- data/include/reflex/ruby/selector.h +27 -0
- data/include/reflex/ruby/style.h +27 -0
- data/include/reflex/ruby/style_length.h +37 -0
- data/include/reflex/ruby/view.h +193 -38
- data/include/reflex/ruby/window.h +123 -39
- data/include/reflex/ruby.h +3 -2
- data/include/reflex/selector.h +64 -0
- data/include/reflex/style.h +144 -0
- data/include/reflex/style_length.h +147 -0
- data/include/reflex/view.h +182 -19
- data/include/reflex/window.h +35 -19
- data/include/reflex.h +7 -0
- data/lib/reflex/application.rb +14 -5
- data/lib/reflex/arc_shape.rb +20 -0
- data/lib/reflex/button.rb +75 -0
- data/lib/reflex/capture_event.rb +37 -0
- data/lib/reflex/color.rb +13 -0
- data/lib/reflex/color_space.rb +13 -0
- data/lib/reflex/draw_event.rb +19 -0
- data/lib/reflex/ellipse_shape.rb +20 -0
- data/lib/reflex/ext.rb +1 -1
- data/lib/reflex/flags.rb +18 -0
- data/lib/reflex/focus_event.rb +38 -0
- data/lib/reflex/font.rb +13 -0
- data/lib/reflex/frame_event.rb +42 -0
- data/lib/reflex/helper.rb +87 -30
- data/lib/reflex/image_view.rb +25 -0
- data/lib/reflex/key_event.rb +38 -0
- data/lib/reflex/line_shape.rb +20 -0
- data/lib/reflex/list_view.rb +15 -0
- data/lib/reflex/model.rb +149 -0
- data/lib/reflex/model_owner.rb +57 -0
- data/lib/reflex/model_view.rb +22 -0
- data/lib/reflex/module.rb +11 -7
- data/lib/reflex/pointer_event.rb +85 -0
- data/lib/reflex/rect_shape.rb +20 -0
- data/lib/reflex/reflex.rb +13 -2
- data/lib/reflex/scroll_event.rb +19 -0
- data/lib/reflex/selector.rb +31 -0
- data/lib/reflex/shader.rb +13 -0
- data/lib/reflex/shape.rb +34 -0
- data/lib/reflex/style.rb +55 -0
- data/lib/reflex/style_length.rb +30 -0
- data/lib/reflex/style_length2.rb +34 -0
- data/lib/reflex/style_length4.rb +38 -0
- data/lib/reflex/text_view.rb +55 -0
- data/lib/reflex/update_event.rb +19 -0
- data/lib/reflex/view.rb +38 -4
- data/lib/reflex/wheel_event.rb +19 -0
- data/lib/reflex/window.rb +7 -5
- data/lib/reflex.rb +38 -1
- data/lib/reflexion/include.rb +5 -0
- data/lib/reflexion.rb +100 -0
- data/reflex.gemspec +3 -4
- data/samples/app.rb +13 -0
- data/samples/bats.rb +91 -0
- data/samples/checker.rb +36 -0
- data/{examples/ruby/shapes.rb → samples/fans.rb} +12 -16
- data/samples/fps.rb +46 -0
- data/samples/grid.rb +60 -0
- data/{examples/ruby → samples}/hello.rb +14 -16
- data/samples/image.rb +44 -0
- data/samples/ios/hello/hello/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
- data/samples/ios/hello/hello/Images.xcassets/LaunchImage.launchimage/Contents.json +51 -0
- data/samples/ios/hello/hello/en.lproj/InfoPlist.strings +2 -0
- data/samples/ios/hello/hello/hello-Info.plist +47 -0
- data/samples/ios/hello/hello/hello-Prefix.pch +10 -0
- data/samples/ios/hello/hello/main.cpp +79 -0
- data/samples/ios/hello/hello.xcodeproj/project.pbxproj +725 -0
- data/{examples/ruby → samples}/key.rb +11 -14
- data/samples/layout.rb +89 -0
- data/samples/model.rb +86 -0
- data/samples/osx/hello/hello/Images.xcassets/AppIcon.appiconset/Contents.json +58 -0
- data/samples/osx/hello/hello/en.lproj/Credits.rtf +29 -0
- data/samples/osx/hello/hello/en.lproj/InfoPlist.strings +2 -0
- data/samples/osx/hello/hello/hello-Info.plist +32 -0
- data/samples/osx/hello/hello/hello-Prefix.pch +3 -0
- data/samples/osx/hello/hello/main.cpp +79 -0
- data/samples/osx/hello/hello.xcodeproj/project.pbxproj +725 -0
- data/samples/reflexion/hello.rb +24 -0
- data/samples/reflexion/paint.rb +40 -0
- data/samples/reflexion/pulse.rb +34 -0
- data/samples/repl.rb +69 -0
- data/samples/shader.rb +41 -0
- data/samples/shapes.rb +30 -0
- data/{examples/ruby → samples}/text.rb +7 -8
- data/samples/tree.rb +71 -0
- data/samples/views.rb +41 -0
- data/samples/visuals.rb +22 -0
- data/src/event.cpp +225 -0
- data/src/exception.cpp +24 -15
- data/src/image_view.cpp +70 -0
- data/src/ios/app_delegate.h +17 -0
- data/src/ios/app_delegate.mm +120 -0
- data/src/ios/application.mm +116 -0
- data/src/{cocoa/applicationdata.h → ios/application_data.h} +6 -6
- data/src/ios/event.h +26 -0
- data/src/ios/event.mm +31 -0
- data/src/ios/native_window.h +37 -0
- data/src/ios/native_window.mm +220 -0
- data/src/ios/opengl_view.h +13 -0
- data/src/ios/opengl_view.mm +131 -0
- data/src/{cocoa → ios}/reflex.mm +8 -12
- data/src/ios/window.mm +303 -0
- data/src/ios/window_data.h +75 -0
- data/src/osx/app_delegate.h +17 -0
- data/src/{cocoa/cocoaapplication.mm → osx/app_delegate.mm} +90 -48
- data/src/osx/application.mm +132 -0
- data/src/osx/application_data.h +45 -0
- data/src/osx/event.h +42 -0
- data/src/osx/event.mm +112 -0
- data/src/osx/native_window.h +26 -0
- data/src/osx/native_window.mm +322 -0
- data/src/{cocoa/openglview.h → osx/opengl_view.h} +0 -4
- data/src/{cocoa/openglview.mm → osx/opengl_view.mm} +66 -23
- data/src/osx/reflex.mm +50 -0
- data/src/osx/window.mm +308 -0
- data/src/osx/window_data.h +75 -0
- data/src/selector.cpp +121 -0
- data/src/style.cpp +576 -0
- data/src/style_length.cpp +341 -0
- data/src/view.cpp +1228 -129
- data/src/win32/application.cpp +1 -1
- data/src/window.cpp +54 -26
- data/test/helper.rb +8 -4
- data/test/test_capture_event.rb +41 -0
- data/test/test_event.rb +20 -0
- data/test/test_has_frame.rb +45 -0
- data/test/test_model.rb +9 -0
- data/test/test_model_owner.rb +9 -0
- data/test/test_selector.rb +75 -0
- data/test/test_style.rb +70 -0
- data/test/test_style_length.rb +38 -0
- data/test/test_style_length2.rb +50 -0
- data/test/test_style_length4.rb +56 -0
- data/test/test_view.rb +97 -23
- data/test/test_window.rb +54 -46
- metadata +205 -84
- data/.doc/ext/reflex/defs.cpp +0 -8
- data/.doc/ext/reflex/key.cpp +0 -122
- data/.doc/ext/reflex/points.cpp +0 -151
- data/.gitignore +0 -14
- data/ChangeLog +0 -8
- data/examples/hello/.gitignore +0 -2
- data/examples/hello/Rakefile +0 -41
- data/examples/hello/main.cpp +0 -18
- data/examples/ruby/app.rb +0 -13
- data/examples/ruby/checker.rb +0 -41
- data/examples/ruby/fps.rb +0 -49
- data/examples/ruby/grid.rb +0 -65
- data/examples/ruby/views.rb +0 -88
- data/examples/ruby/visuals.rb +0 -27
- data/ext/reflex/defs.cpp +0 -8
- data/ext/reflex/key.cpp +0 -129
- data/ext/reflex/points.cpp +0 -161
- data/include/reflex/ruby/key.h +0 -39
- data/include/reflex/ruby/points.h +0 -39
- data/lib/reflex/visuals/string.rb +0 -53
- data/src/cocoa/application.mm +0 -101
- data/src/cocoa/cocoaapplication.h +0 -21
- data/src/cocoa/cocoawindow.h +0 -46
- data/src/cocoa/cocoawindow.mm +0 -230
- data/src/cocoa/defs.h +0 -34
- data/src/cocoa/defs.mm +0 -87
- data/src/cocoa/window.mm +0 -148
- data/src/cocoa/windowdata.h +0 -56
- data/src/defs.cpp +0 -47
- data/src/helper.h +0 -12
- data/src/reflex.cpp +0 -43
- /data/{README → README.md} +0 -0
data/ext/reflex/points.cpp
DELETED
@@ -1,161 +0,0 @@
|
|
1
|
-
#include "reflex/ruby/points.h"
|
2
|
-
|
3
|
-
|
4
|
-
#include <rucy.h>
|
5
|
-
#include "defs.h"
|
6
|
-
|
7
|
-
|
8
|
-
using namespace Rucy;
|
9
|
-
|
10
|
-
using Reflex::coord;
|
11
|
-
|
12
|
-
|
13
|
-
static Class cPoints;
|
14
|
-
|
15
|
-
|
16
|
-
namespace Reflex
|
17
|
-
{
|
18
|
-
|
19
|
-
|
20
|
-
Class
|
21
|
-
points_class ()
|
22
|
-
{
|
23
|
-
return cPoints;
|
24
|
-
}
|
25
|
-
|
26
|
-
|
27
|
-
}// Reflex
|
28
|
-
|
29
|
-
|
30
|
-
namespace Rucy
|
31
|
-
{
|
32
|
-
|
33
|
-
|
34
|
-
Value
|
35
|
-
value (const Reflex::Points& points)
|
36
|
-
{
|
37
|
-
return new_type(cPoints, new Reflex::Points(points));
|
38
|
-
}
|
39
|
-
|
40
|
-
|
41
|
-
}// Rucy
|
42
|
-
|
43
|
-
|
44
|
-
#define THIS to<Reflex::Points*>(self)
|
45
|
-
|
46
|
-
#define CHECK RUCY_CHECK_OBJ(self, Reflex::Points, cPoints)
|
47
|
-
|
48
|
-
|
49
|
-
static
|
50
|
-
RUBY_DEF_ALLOC(alloc, klass)
|
51
|
-
{
|
52
|
-
return new_type<Reflex::Points>(klass);
|
53
|
-
}
|
54
|
-
RUBY_END
|
55
|
-
|
56
|
-
static
|
57
|
-
RUBY_DEFN(initialize)
|
58
|
-
{
|
59
|
-
RUCY_CHECK_OBJ(self, Reflex::Points, cPoints);
|
60
|
-
if (argc < 0 || 6 < argc)
|
61
|
-
arg_count_error("Points#initialize", argc, 0, 1, 2, 3, 4, 5, 6);
|
62
|
-
|
63
|
-
THIS->type = (argc >= 1) ? to<int>(argv[0]) : Reflex::POINT_NONE;
|
64
|
-
THIS->x = (argc >= 2) ? to<coord>(argv[1]) : 0;
|
65
|
-
THIS->y = (argc >= 3) ? to<coord>(argv[2]) : 0;
|
66
|
-
THIS->size = 1;
|
67
|
-
THIS->modifiers = (argc >= 4) ? to<uint>(argv[3]) : (uint) Reflex::MOD_NONE;
|
68
|
-
THIS->count = (argc >= 5) ? to<uint>(argv[4]) : 0;
|
69
|
-
THIS->drag = (argc >= 6) ? to<bool>(argv[5]) : false;
|
70
|
-
|
71
|
-
return self;
|
72
|
-
}
|
73
|
-
RUBY_END
|
74
|
-
|
75
|
-
static
|
76
|
-
RUBY_DEF1(initialize_copy, obj)
|
77
|
-
{
|
78
|
-
RUCY_CHECK_OBJ(self, Reflex::Points, cPoints);
|
79
|
-
|
80
|
-
Reflex::Points* points = to<Reflex::Points*>(obj);
|
81
|
-
if (!points) argument_error();
|
82
|
-
|
83
|
-
*THIS = *points;
|
84
|
-
return self;
|
85
|
-
}
|
86
|
-
RUBY_END
|
87
|
-
|
88
|
-
static
|
89
|
-
RUBY_DEF0(type)
|
90
|
-
{
|
91
|
-
CHECK;
|
92
|
-
return value(THIS->type);
|
93
|
-
}
|
94
|
-
RUBY_END
|
95
|
-
|
96
|
-
static
|
97
|
-
RUBY_DEF0(x)
|
98
|
-
{
|
99
|
-
CHECK;
|
100
|
-
return value(THIS->x);
|
101
|
-
}
|
102
|
-
RUBY_END
|
103
|
-
|
104
|
-
static
|
105
|
-
RUBY_DEF0(y)
|
106
|
-
{
|
107
|
-
CHECK;
|
108
|
-
return value(THIS->y);
|
109
|
-
}
|
110
|
-
RUBY_END
|
111
|
-
|
112
|
-
static
|
113
|
-
RUBY_DEF0(size)
|
114
|
-
{
|
115
|
-
CHECK;
|
116
|
-
return value(THIS->size);
|
117
|
-
}
|
118
|
-
RUBY_END
|
119
|
-
|
120
|
-
static
|
121
|
-
RUBY_DEF0(modifiers)
|
122
|
-
{
|
123
|
-
CHECK;
|
124
|
-
return value(THIS->modifiers);
|
125
|
-
}
|
126
|
-
RUBY_END
|
127
|
-
|
128
|
-
static
|
129
|
-
RUBY_DEF0(count)
|
130
|
-
{
|
131
|
-
CHECK;
|
132
|
-
return value(THIS->count);
|
133
|
-
}
|
134
|
-
RUBY_END
|
135
|
-
|
136
|
-
static
|
137
|
-
RUBY_DEF0(drag)
|
138
|
-
{
|
139
|
-
CHECK;
|
140
|
-
return value(THIS->drag);
|
141
|
-
}
|
142
|
-
RUBY_END
|
143
|
-
|
144
|
-
|
145
|
-
void
|
146
|
-
Init_points ()
|
147
|
-
{
|
148
|
-
Module mReflex = define_module("Reflex");
|
149
|
-
|
150
|
-
cPoints = mReflex.define_class("Points");
|
151
|
-
cPoints.define_alloc_func(alloc);
|
152
|
-
cPoints.define_private_method("initialize", initialize);
|
153
|
-
cPoints.define_private_method("initialize_copy", initialize_copy);
|
154
|
-
cPoints.define_method("type", type);
|
155
|
-
cPoints.define_method("x", x);
|
156
|
-
cPoints.define_method("y", y);
|
157
|
-
cPoints.define_method("size", size);
|
158
|
-
cPoints.define_method("modifiers", modifiers);
|
159
|
-
cPoints.define_method("count", count);
|
160
|
-
cPoints.define_method("drag", drag);
|
161
|
-
}
|
data/include/reflex/ruby/key.h
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
// -*- c++ -*-
|
2
|
-
#pragma once
|
3
|
-
#ifndef __REFLEX_RUBY_KEY_H__
|
4
|
-
#define __REFLEX_RUBY_KEY_H__
|
5
|
-
|
6
|
-
|
7
|
-
#include <rucy/rucy.h>
|
8
|
-
#include <rucy/class.h>
|
9
|
-
#include <reflex/defs.h>
|
10
|
-
|
11
|
-
|
12
|
-
namespace Reflex
|
13
|
-
{
|
14
|
-
|
15
|
-
|
16
|
-
Rucy::Class key_class ();
|
17
|
-
// class Reflex::Key
|
18
|
-
|
19
|
-
|
20
|
-
}// Reflex
|
21
|
-
|
22
|
-
|
23
|
-
namespace Rucy
|
24
|
-
{
|
25
|
-
|
26
|
-
|
27
|
-
Value value (const Reflex::Key& obj);
|
28
|
-
|
29
|
-
template <> inline Reflex::Key*
|
30
|
-
value_to<Reflex::Key*> (Value val, bool)
|
31
|
-
{
|
32
|
-
return get_type_ptr<Reflex::Key>(val, Reflex::key_class());
|
33
|
-
}
|
34
|
-
|
35
|
-
|
36
|
-
}// Rucy
|
37
|
-
|
38
|
-
|
39
|
-
#endif//EOH
|
@@ -1,39 +0,0 @@
|
|
1
|
-
// -*- c++ -*-
|
2
|
-
#pragma once
|
3
|
-
#ifndef __REFLEX_RUBY_POINTS_H__
|
4
|
-
#define __REFLEX_RUBY_POINTS_H__
|
5
|
-
|
6
|
-
|
7
|
-
#include <rucy/rucy.h>
|
8
|
-
#include <rucy/class.h>
|
9
|
-
#include <reflex/defs.h>
|
10
|
-
|
11
|
-
|
12
|
-
namespace Reflex
|
13
|
-
{
|
14
|
-
|
15
|
-
|
16
|
-
Rucy::Class points_class ();
|
17
|
-
// class Reflex::Points
|
18
|
-
|
19
|
-
|
20
|
-
}// Reflex
|
21
|
-
|
22
|
-
|
23
|
-
namespace Rucy
|
24
|
-
{
|
25
|
-
|
26
|
-
|
27
|
-
Value value (const Reflex::Points& obj);
|
28
|
-
|
29
|
-
template <> inline Reflex::Points*
|
30
|
-
value_to<Reflex::Points*> (Value val, bool)
|
31
|
-
{
|
32
|
-
return get_type_ptr<Reflex::Points>(val, Reflex::points_class());
|
33
|
-
}
|
34
|
-
|
35
|
-
|
36
|
-
}// Rucy
|
37
|
-
|
38
|
-
|
39
|
-
#endif//EOH
|
@@ -1,53 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
|
3
|
-
|
4
|
-
require 'reflex/image'
|
5
|
-
require 'reflex/bitmap'
|
6
|
-
require 'reflex/view'
|
7
|
-
|
8
|
-
|
9
|
-
module Reflex
|
10
|
-
|
11
|
-
|
12
|
-
module Visuals
|
13
|
-
|
14
|
-
|
15
|
-
class String < View
|
16
|
-
|
17
|
-
attr_reader :data
|
18
|
-
|
19
|
-
def data= (data)
|
20
|
-
if data != @data
|
21
|
-
@data = data
|
22
|
-
@image = nil
|
23
|
-
end
|
24
|
-
@data
|
25
|
-
end
|
26
|
-
|
27
|
-
def draw (painter, bounds)
|
28
|
-
return unless @image ||= create_image(painter)
|
29
|
-
painter.fill = 0
|
30
|
-
painter.image @image
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
def create_image (painter)
|
36
|
-
dat = self.data
|
37
|
-
return nil unless dat
|
38
|
-
str = dat.to_s
|
39
|
-
font = painter.font
|
40
|
-
size = font.width(str), font.height * 10
|
41
|
-
resize_to *size
|
42
|
-
bmp = Bitmap.new *size, :GRAY
|
43
|
-
bmp.draw_string str
|
44
|
-
Image.new bmp, true
|
45
|
-
end
|
46
|
-
|
47
|
-
end# String
|
48
|
-
|
49
|
-
|
50
|
-
end# Visuals
|
51
|
-
|
52
|
-
|
53
|
-
end# Reflex
|
data/src/cocoa/application.mm
DELETED
@@ -1,101 +0,0 @@
|
|
1
|
-
// -*- objc -*-
|
2
|
-
#include "reflex/application.h"
|
3
|
-
|
4
|
-
|
5
|
-
#include <assert.h>
|
6
|
-
#import <Cocoa/Cocoa.h>
|
7
|
-
#include <reflex/exception.h>
|
8
|
-
#include "applicationdata.h"
|
9
|
-
#import "cocoaapplication.h"
|
10
|
-
|
11
|
-
|
12
|
-
namespace Reflex
|
13
|
-
{
|
14
|
-
|
15
|
-
|
16
|
-
static Application* instance = NULL;
|
17
|
-
|
18
|
-
|
19
|
-
Application*
|
20
|
-
app ()
|
21
|
-
{
|
22
|
-
return instance;
|
23
|
-
}
|
24
|
-
|
25
|
-
|
26
|
-
Application::Application ()
|
27
|
-
{
|
28
|
-
if (instance) reflex_error("multiple application instance.");
|
29
|
-
instance = this;
|
30
|
-
|
31
|
-
if (NSApp) [NSApp bind: this];
|
32
|
-
}
|
33
|
-
|
34
|
-
Application::~Application ()
|
35
|
-
{
|
36
|
-
instance = NULL;
|
37
|
-
}
|
38
|
-
|
39
|
-
bool
|
40
|
-
Application::run ()
|
41
|
-
{
|
42
|
-
if (!*this) return false;
|
43
|
-
|
44
|
-
[self->cocoa run];
|
45
|
-
return true;
|
46
|
-
}
|
47
|
-
|
48
|
-
bool
|
49
|
-
Application::quit ()
|
50
|
-
{
|
51
|
-
if (!*this) return false;
|
52
|
-
|
53
|
-
[self->cocoa terminate: nil];
|
54
|
-
return true;
|
55
|
-
}
|
56
|
-
|
57
|
-
bool
|
58
|
-
Application::preference ()
|
59
|
-
{
|
60
|
-
return *this;
|
61
|
-
}
|
62
|
-
|
63
|
-
bool
|
64
|
-
Application::about ()
|
65
|
-
{
|
66
|
-
if (!*this) return false;
|
67
|
-
|
68
|
-
[self->cocoa orderFrontStandardAboutPanel: nil];
|
69
|
-
return true;
|
70
|
-
}
|
71
|
-
|
72
|
-
bool
|
73
|
-
Application::set_name (const char* name)
|
74
|
-
{
|
75
|
-
if (!*this || !name) return false;
|
76
|
-
|
77
|
-
self->name = name;
|
78
|
-
return true;
|
79
|
-
}
|
80
|
-
|
81
|
-
const char*
|
82
|
-
Application::name () const
|
83
|
-
{
|
84
|
-
if (!*this) return NULL;
|
85
|
-
|
86
|
-
return self->name.c_str();
|
87
|
-
}
|
88
|
-
|
89
|
-
Application::operator bool () const
|
90
|
-
{
|
91
|
-
return self && *self;
|
92
|
-
}
|
93
|
-
|
94
|
-
bool
|
95
|
-
Application::operator ! () const
|
96
|
-
{
|
97
|
-
return !operator bool();
|
98
|
-
}
|
99
|
-
|
100
|
-
|
101
|
-
}// Reflex
|
@@ -1,21 +0,0 @@
|
|
1
|
-
// -*- objc -*-
|
2
|
-
#import <AppKit/NSApplication.h>
|
3
|
-
#include "reflex/application.h"
|
4
|
-
|
5
|
-
|
6
|
-
@interface CocoaApplication : NSApplication <NSApplicationDelegate>
|
7
|
-
|
8
|
-
{
|
9
|
-
@private
|
10
|
-
Reflex::Application::Ref* pref;
|
11
|
-
}
|
12
|
-
|
13
|
-
- (BOOL) bind: (Reflex::Application*) instance;
|
14
|
-
|
15
|
-
- (void) unbind;
|
16
|
-
|
17
|
-
- (void) about;
|
18
|
-
|
19
|
-
- (void) quit;
|
20
|
-
|
21
|
-
@end// CocoaApplication
|
data/src/cocoa/cocoawindow.h
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
// -*- objc -*-
|
2
|
-
#import <AppKit/NSWindow.h>
|
3
|
-
#include "reflex/window.h"
|
4
|
-
|
5
|
-
|
6
|
-
@class OpenGLView;
|
7
|
-
|
8
|
-
|
9
|
-
@interface CocoaWindow : NSWindow <NSWindowDelegate>
|
10
|
-
|
11
|
-
{
|
12
|
-
@private
|
13
|
-
Reflex::Window::Ref* pref;
|
14
|
-
OpenGLView* view;
|
15
|
-
NSTimer* timer;
|
16
|
-
}
|
17
|
-
|
18
|
-
- (BOOL) bind: (Reflex::Window*) instance;
|
19
|
-
|
20
|
-
- (void) unbind;
|
21
|
-
|
22
|
-
- (void) setupContentView;
|
23
|
-
|
24
|
-
- (void) startTimer: (int) fps;
|
25
|
-
|
26
|
-
- (void) stopTimer;
|
27
|
-
|
28
|
-
- (void) update: (NSTimer*) t;
|
29
|
-
|
30
|
-
- (void) draw;
|
31
|
-
|
32
|
-
- (void) keyDown: (NSEvent*) event;
|
33
|
-
|
34
|
-
- (void) keyUp: (NSEvent*) event;
|
35
|
-
|
36
|
-
- (void) mouseDown: (NSEvent*) event;
|
37
|
-
|
38
|
-
- (void) mouseUp: (NSEvent*) event;
|
39
|
-
|
40
|
-
- (void) mouseMoved: (NSEvent*) event;
|
41
|
-
|
42
|
-
- (void) mouseDragged: (NSEvent*) event;
|
43
|
-
|
44
|
-
+ (NSRect) frameRectForContentRect: (NSRect) contentRect;
|
45
|
-
|
46
|
-
@end// CocoaWindow
|
data/src/cocoa/cocoawindow.mm
DELETED
@@ -1,230 +0,0 @@
|
|
1
|
-
// -*- objc -*-
|
2
|
-
#import "cocoawindow.h"
|
3
|
-
|
4
|
-
|
5
|
-
#include <assert.h>
|
6
|
-
#import <Cocoa/Cocoa.h>
|
7
|
-
#include <rays/bounds.h>
|
8
|
-
#include <reflex/window.h>
|
9
|
-
#include "defs.h"
|
10
|
-
#include "windowdata.h"
|
11
|
-
#import "openglview.h"
|
12
|
-
|
13
|
-
|
14
|
-
static const NSUInteger WINDOW_STYLE_MASK =
|
15
|
-
NSTitledWindowMask |
|
16
|
-
NSClosableWindowMask |
|
17
|
-
NSMiniaturizableWindowMask |
|
18
|
-
NSResizableWindowMask |
|
19
|
-
0;//NSTexturedBackgroundWindowMask
|
20
|
-
|
21
|
-
|
22
|
-
@implementation CocoaWindow
|
23
|
-
|
24
|
-
- (id) init
|
25
|
-
{
|
26
|
-
self = [super
|
27
|
-
initWithContentRect: NSMakeRect(0, 0, 0, 0)
|
28
|
-
styleMask: WINDOW_STYLE_MASK
|
29
|
-
backing: NSBackingStoreBuffered
|
30
|
-
defer: NO];
|
31
|
-
if (!self) return nil;
|
32
|
-
|
33
|
-
pref = new Reflex::Window::Ref;
|
34
|
-
view = nil;
|
35
|
-
timer = nil;
|
36
|
-
|
37
|
-
[self setDelegate: self];
|
38
|
-
//[self setReleasedWhenClosed: NO];
|
39
|
-
|
40
|
-
[self setupContentView];
|
41
|
-
[self startTimer: 60];
|
42
|
-
|
43
|
-
return self;
|
44
|
-
}
|
45
|
-
|
46
|
-
- (void) dealloc
|
47
|
-
{
|
48
|
-
[self stopTimer];
|
49
|
-
|
50
|
-
if (view) [view release];
|
51
|
-
|
52
|
-
[self unbind];
|
53
|
-
delete pref;
|
54
|
-
|
55
|
-
[super dealloc];
|
56
|
-
}
|
57
|
-
|
58
|
-
- (BOOL) bind: (Reflex::Window*) instance
|
59
|
-
{
|
60
|
-
if (instance && instance->self->cocoa)
|
61
|
-
return NO;
|
62
|
-
|
63
|
-
[self unbind];
|
64
|
-
|
65
|
-
assert(pref);
|
66
|
-
Reflex::Window::Ref& ref = *pref;
|
67
|
-
|
68
|
-
ref = instance;
|
69
|
-
if (ref) ref->self->cocoa = [self retain];
|
70
|
-
return YES;
|
71
|
-
}
|
72
|
-
|
73
|
-
- (void) unbind
|
74
|
-
{
|
75
|
-
assert(pref);
|
76
|
-
Reflex::Window::Ref& ref = *pref;
|
77
|
-
if (!ref) return;
|
78
|
-
|
79
|
-
if (ref->self->cocoa) [ref->self->cocoa release];
|
80
|
-
ref->self->cocoa = nil;
|
81
|
-
ref.reset();
|
82
|
-
}
|
83
|
-
|
84
|
-
- (void) setupContentView
|
85
|
-
{
|
86
|
-
NSRect rect = [self contentRectForFrameRect: [self frame]];
|
87
|
-
rect.origin.x = rect.origin.y = 0;
|
88
|
-
view = [[OpenGLView alloc] initWithFrame: rect];
|
89
|
-
[self setContentView: view];
|
90
|
-
}
|
91
|
-
|
92
|
-
- (void) startTimer: (int) fps
|
93
|
-
{
|
94
|
-
[self stopTimer];
|
95
|
-
|
96
|
-
if (fps <= 0) return;
|
97
|
-
|
98
|
-
timer = [[NSTimer
|
99
|
-
timerWithTimeInterval: 1.f / (float) fps
|
100
|
-
target: self
|
101
|
-
selector: @selector(update:)
|
102
|
-
userInfo: nil
|
103
|
-
repeats: YES] retain];
|
104
|
-
if (!timer) return;
|
105
|
-
|
106
|
-
[[NSRunLoop currentRunLoop]
|
107
|
-
addTimer: timer forMode: NSDefaultRunLoopMode];
|
108
|
-
[[NSRunLoop currentRunLoop]
|
109
|
-
addTimer: timer forMode: NSEventTrackingRunLoopMode];
|
110
|
-
}
|
111
|
-
|
112
|
-
- (void) stopTimer
|
113
|
-
{
|
114
|
-
if (!timer) return;
|
115
|
-
|
116
|
-
[timer invalidate];
|
117
|
-
timer = nil;
|
118
|
-
}
|
119
|
-
|
120
|
-
- (void) update: (NSTimer*) t
|
121
|
-
{
|
122
|
-
assert(pref);
|
123
|
-
if (!*pref) return;
|
124
|
-
|
125
|
-
(*pref)->update(1);
|
126
|
-
|
127
|
-
if ((*pref)->self->redraw)
|
128
|
-
{
|
129
|
-
[self display];
|
130
|
-
(*pref)->self->redraw = false;
|
131
|
-
}
|
132
|
-
}
|
133
|
-
|
134
|
-
- (void) draw
|
135
|
-
{
|
136
|
-
assert(pref);
|
137
|
-
if (!*pref) return;
|
138
|
-
|
139
|
-
(*pref)->draw();
|
140
|
-
}
|
141
|
-
|
142
|
-
- (BOOL) windowShouldClose: (id) sender
|
143
|
-
{
|
144
|
-
assert(pref);
|
145
|
-
if (!*pref) return YES;
|
146
|
-
|
147
|
-
(*pref)->close();
|
148
|
-
return NO;
|
149
|
-
}
|
150
|
-
|
151
|
-
- (void) windowWillClose: (NSNotification*) notification
|
152
|
-
{
|
153
|
-
[self stopTimer];
|
154
|
-
[self unbind];
|
155
|
-
}
|
156
|
-
|
157
|
-
- (void) windowDidMove: (NSNotification*) notification
|
158
|
-
{
|
159
|
-
assert(pref);
|
160
|
-
if (!*pref) return;
|
161
|
-
|
162
|
-
const Reflex::Bounds& b = (*pref)->bounds();
|
163
|
-
(*pref)->moved(b.x, b.y);
|
164
|
-
}
|
165
|
-
|
166
|
-
- (void) windowDidResize: (NSNotification*) notification
|
167
|
-
{
|
168
|
-
assert(pref);
|
169
|
-
if (!*pref) return;
|
170
|
-
|
171
|
-
const Reflex::Bounds& b = (*pref)->bounds();
|
172
|
-
(*pref)->resized(b.width, b.height);
|
173
|
-
}
|
174
|
-
|
175
|
-
- (void) keyDown: (NSEvent*) event
|
176
|
-
{
|
177
|
-
assert(pref);
|
178
|
-
if (!*pref) return;
|
179
|
-
|
180
|
-
(*pref)->key_down(Reflex::CocoaKey(event));
|
181
|
-
}
|
182
|
-
|
183
|
-
- (void) keyUp: (NSEvent*) event
|
184
|
-
{
|
185
|
-
assert(pref);
|
186
|
-
if (!*pref) return;
|
187
|
-
|
188
|
-
(*pref)->key_up(Reflex::CocoaKey(event));
|
189
|
-
}
|
190
|
-
|
191
|
-
- (void) mouseDown: (NSEvent*) event
|
192
|
-
{
|
193
|
-
assert(pref);
|
194
|
-
if (!*pref) return;
|
195
|
-
|
196
|
-
(*pref)->points_down(Reflex::CocoaPoints(event, view));
|
197
|
-
}
|
198
|
-
|
199
|
-
- (void) mouseUp: (NSEvent*) event
|
200
|
-
{
|
201
|
-
assert(pref);
|
202
|
-
if (!*pref) return;
|
203
|
-
|
204
|
-
(*pref)->points_up(Reflex::CocoaPoints(event, view));
|
205
|
-
}
|
206
|
-
|
207
|
-
- (void) mouseMoved: (NSEvent*) event
|
208
|
-
{
|
209
|
-
assert(pref);
|
210
|
-
if (!*pref) return;
|
211
|
-
|
212
|
-
(*pref)->points_moved(Reflex::CocoaPoints(event, view));
|
213
|
-
}
|
214
|
-
|
215
|
-
- (void) mouseDragged: (NSEvent*) event
|
216
|
-
{
|
217
|
-
assert(pref);
|
218
|
-
if (!*pref) return;
|
219
|
-
|
220
|
-
(*pref)->points_moved(Reflex::CocoaPoints(event, view));
|
221
|
-
}
|
222
|
-
|
223
|
-
+ (NSRect) frameRectForContentRect: (NSRect) contentRect
|
224
|
-
{
|
225
|
-
return [NSWindow
|
226
|
-
frameRectForContentRect: contentRect
|
227
|
-
styleMask: WINDOW_STYLE_MASK];
|
228
|
-
}
|
229
|
-
|
230
|
-
@end// CocoaWindow
|
data/src/cocoa/defs.h
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
// -*- c++ -*-
|
2
|
-
#pragma once
|
3
|
-
#ifndef __REFLEX_COCOA_DEFS_H__
|
4
|
-
#define __REFLEX_COCOA_DEFS_H__
|
5
|
-
|
6
|
-
|
7
|
-
#import <AppKit/NSEvent.h>
|
8
|
-
#include <reflex/defs.h>
|
9
|
-
|
10
|
-
|
11
|
-
namespace Reflex
|
12
|
-
{
|
13
|
-
|
14
|
-
|
15
|
-
struct CocoaKey : public Key
|
16
|
-
{
|
17
|
-
|
18
|
-
CocoaKey (NSEvent* event);
|
19
|
-
|
20
|
-
};// CocoaKey
|
21
|
-
|
22
|
-
|
23
|
-
struct CocoaPoints : public Points
|
24
|
-
{
|
25
|
-
|
26
|
-
CocoaPoints (NSEvent* event, NSView* view);
|
27
|
-
|
28
|
-
};// CocoaPoints
|
29
|
-
|
30
|
-
|
31
|
-
}// Reflex
|
32
|
-
|
33
|
-
|
34
|
-
#endif//EOH
|