fxruby 1.6.29-x86-mingw32 → 1.6.30-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/History.txt +11 -0
- data/Manifest.txt +5 -0
- data/Rakefile +8 -2
- data/examples/gltest.rb +0 -7
- data/examples/groupbox.rb +5 -3
- data/examples/thread.rb +55 -0
- data/ext/fox16_c/FXRbApp.cpp +67 -5
- data/ext/fox16_c/FXRuby.cpp +142 -110
- data/ext/fox16_c/extconf.rb +36 -28
- data/ext/fox16_c/gvl_wrappers.cpp +12 -0
- data/ext/fox16_c/include/FXRbApp.h +41 -6
- data/ext/fox16_c/include/FXRbBitmap.h +12 -12
- data/ext/fox16_c/include/FXRbCommon.h +3 -0
- data/ext/fox16_c/include/FXRbCursor.h +2 -2
- data/ext/fox16_c/include/FXRbDC.h +62 -62
- data/ext/fox16_c/include/FXRbDialogBox.h +2 -2
- data/ext/fox16_c/include/FXRbDockBar.h +3 -3
- data/ext/fox16_c/include/FXRbDockSite.h +4 -4
- data/ext/fox16_c/include/FXRbDrawable.h +1 -1
- data/ext/fox16_c/include/FXRbFileDict.h +3 -3
- data/ext/fox16_c/include/FXRbFoldingList.h +28 -28
- data/ext/fox16_c/include/FXRbFont.h +18 -18
- data/ext/fox16_c/include/FXRbGLCanvas.h +4 -4
- data/ext/fox16_c/include/FXRbGLObject.h +8 -8
- data/ext/fox16_c/include/FXRbGLShape.h +1 -1
- data/ext/fox16_c/include/FXRbGLViewer.h +3 -3
- data/ext/fox16_c/include/FXRbHeader.h +7 -7
- data/ext/fox16_c/include/FXRbIconList.h +28 -28
- data/ext/fox16_c/include/FXRbIconSource.h +12 -12
- data/ext/fox16_c/include/FXRbId.h +3 -3
- data/ext/fox16_c/include/FXRbImage.h +19 -19
- data/ext/fox16_c/include/FXRbList.h +21 -21
- data/ext/fox16_c/include/FXRbListBox.h +1 -1
- data/ext/fox16_c/include/FXRbMDIChild.h +4 -4
- data/ext/fox16_c/include/FXRbMDIClient.h +4 -4
- data/ext/fox16_c/include/FXRbObject.h +2 -2
- data/ext/fox16_c/include/FXRbPopup.h +2 -2
- data/ext/fox16_c/include/FXRbRealSpinner.h +1 -1
- data/ext/fox16_c/include/FXRbScrollArea.h +4 -4
- data/ext/fox16_c/include/FXRbShutter.h +1 -1
- data/ext/fox16_c/include/FXRbSpinner.h +1 -1
- data/ext/fox16_c/include/FXRbStream.h +3 -3
- data/ext/fox16_c/include/FXRbTabBar.h +1 -1
- data/ext/fox16_c/include/FXRbTable.h +53 -53
- data/ext/fox16_c/include/FXRbText.h +23 -23
- data/ext/fox16_c/include/FXRbTopWindow.h +5 -5
- data/ext/fox16_c/include/FXRbTranslator.h +1 -1
- data/ext/fox16_c/include/FXRbTreeList.h +28 -28
- data/ext/fox16_c/include/FXRbTreeListBox.h +1 -1
- data/ext/fox16_c/include/FXRbWindow.h +31 -31
- data/ext/fox16_c/include/FXRuby.h +200 -94
- data/ext/fox16_c/include/gvl_wrappers.h +594 -0
- data/lib/1.8/fox16_c.so +0 -0
- data/lib/1.9/fox16_c.so +0 -0
- data/lib/2.0/fox16_c.so +0 -0
- data/lib/2.1/fox16_c.so +0 -0
- data/lib/2.2/fox16_c.so +0 -0
- data/lib/fox16.rb +1 -0
- data/lib/fox16/thread.rb +51 -0
- data/lib/fox16/version.rb +1 -1
- data/lib/x86-mingw32/libFOX-1.6-0.dll +0 -0
- data/lib/x86-mingw32/libfxscintilla-20.dll +0 -0
- data/lib/x86-mingw32/libgcc_s_sjlj-1.dll +0 -0
- data/lib/x86-mingw32/libjpeg-8.dll +0 -0
- data/lib/x86-mingw32/libpng15-15.dll +0 -0
- data/lib/x86-mingw32/libstdc++-6.dll +0 -0
- data/lib/x86-mingw32/libtiff-5.dll +0 -0
- data/lib/x86-mingw32/libwinpthread-1.dll +0 -0
- data/lib/x86-mingw32/zlib1.dll +0 -0
- data/rdoc-sources/FXApp.rb +5 -0
- data/rdoc-sources/FXId.rb +5 -0
- data/swig-interfaces/FXApp.i +14 -78
- data/swig-interfaces/macros.i +56 -0
- data/test/TC_FXApp.rb +60 -10
- data/test/TC_FXJPGImage.rb +47 -0
- metadata +24 -103
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
data/ext/fox16_c/extconf.rb
CHANGED
@@ -7,7 +7,7 @@ def find_installed_fox_version
|
|
7
7
|
stddirs = ["/usr/include/fox-1.6",
|
8
8
|
"/usr/local/include/fox-1.6",
|
9
9
|
"/sw/include/fox-1.6",
|
10
|
-
|
10
|
+
"/opt/local/include/fox-1.6"]
|
11
11
|
usrdirs = []
|
12
12
|
ARGV.each do |arg|
|
13
13
|
if arg =~ /--with-fox-include/
|
@@ -109,12 +109,13 @@ def do_rake_compiler_setup
|
|
109
109
|
|
110
110
|
dir_config("installed")
|
111
111
|
|
112
|
+
host = RbConfig::CONFIG["host_alias"].empty? ? RbConfig::CONFIG["host"] : RbConfig::CONFIG["host_alias"]
|
112
113
|
libz_recipe = MiniPortile.new("libz", LIBZ_VERSION).tap do |recipe|
|
113
114
|
recipe.files = [LIBZ_SOURCE_URI]
|
114
115
|
recipe.target = portsdir = File.expand_path('../../../ports', __FILE__)
|
115
116
|
# Prefer host_alias over host in order to use i586-mingw32msvc as
|
116
117
|
# correct compiler prefix for cross build, but use host if not set.
|
117
|
-
recipe.host =
|
118
|
+
recipe.host = host
|
118
119
|
class << recipe
|
119
120
|
def configure
|
120
121
|
Dir.chdir work_path do
|
@@ -157,7 +158,7 @@ def do_rake_compiler_setup
|
|
157
158
|
recipe.target = portsdir = File.expand_path('../../../ports', __FILE__)
|
158
159
|
# Prefer host_alias over host in order to use i586-mingw32msvc as
|
159
160
|
# correct compiler prefix for cross build, but use host if not set.
|
160
|
-
recipe.host =
|
161
|
+
recipe.host = host
|
161
162
|
recipe.configure_options = [
|
162
163
|
"--host=#{recipe.host}",
|
163
164
|
"--enable-shared",
|
@@ -182,7 +183,7 @@ def do_rake_compiler_setup
|
|
182
183
|
recipe.target = portsdir = File.expand_path('../../../ports', __FILE__)
|
183
184
|
# Prefer host_alias over host in order to use i586-mingw32msvc as
|
184
185
|
# correct compiler prefix for cross build, but use host if not set.
|
185
|
-
recipe.host =
|
186
|
+
recipe.host = host
|
186
187
|
recipe.configure_options = [
|
187
188
|
"--host=#{recipe.host}",
|
188
189
|
"--enable-shared",
|
@@ -202,7 +203,7 @@ def do_rake_compiler_setup
|
|
202
203
|
recipe.target = portsdir = File.expand_path('../../../ports', __FILE__)
|
203
204
|
# Prefer host_alias over host in order to use i586-mingw32msvc as
|
204
205
|
# correct compiler prefix for cross build, but use host if not set.
|
205
|
-
recipe.host =
|
206
|
+
recipe.host = host
|
206
207
|
recipe.configure_options = [
|
207
208
|
"--host=#{recipe.host}",
|
208
209
|
"--enable-shared",
|
@@ -222,7 +223,7 @@ def do_rake_compiler_setup
|
|
222
223
|
recipe.target = portsdir = File.expand_path('../../../ports', __FILE__)
|
223
224
|
# Prefer host_alias over host in order to use i586-mingw32msvc as
|
224
225
|
# correct compiler prefix for cross build, but use host if not set.
|
225
|
-
recipe.host =
|
226
|
+
recipe.host = host
|
226
227
|
recipe.configure_options = [
|
227
228
|
"--host=#{recipe.host}",
|
228
229
|
"--without-xft",
|
@@ -255,7 +256,7 @@ def do_rake_compiler_setup
|
|
255
256
|
recipe.target = portsdir = File.expand_path('../../../ports', __FILE__)
|
256
257
|
# Prefer host_alias over host in order to use i586-mingw32msvc as
|
257
258
|
# correct compiler prefix for cross build, but use host if not set.
|
258
|
-
recipe.host =
|
259
|
+
recipe.host = host
|
259
260
|
recipe.configure_options = [
|
260
261
|
"--host=#{recipe.host}",
|
261
262
|
"--enable-shared",
|
@@ -282,22 +283,19 @@ def do_rake_compiler_setup
|
|
282
283
|
|
283
284
|
checkpoint = File.join(portsdir, "#{recipe.name}-#{recipe.version}-#{recipe.host}.installed")
|
284
285
|
unless File.exist?(checkpoint)
|
285
|
-
|
286
|
-
|
286
|
+
with_env(
|
287
|
+
'PKG_CONFIG_PATH' => "#{libfox_recipe.path}/lib/pkgconfig"
|
288
|
+
) do
|
289
|
+
recipe.cook
|
290
|
+
FileUtils.touch checkpoint
|
291
|
+
end
|
287
292
|
end
|
288
293
|
recipe.activate
|
289
294
|
end
|
295
|
+
$autodetected_fxscintilla = true
|
290
296
|
|
291
|
-
|
292
|
-
|
293
|
-
# have_library( 'winspool', 'EnumPrintersA') && append_library( $libs, 'winspool' )
|
294
|
-
|
295
|
-
# dir_config('libz', "#{libz_recipe.path}/include", "#{libz_recipe.path}/lib")
|
296
|
-
# dir_config('libpng', "#{libpng_recipe.path}/include", "#{libpng_recipe.path}/lib")
|
297
|
-
# dir_config('libtiff', "#{libtiff_recipe.path}/include", "#{libtiff_recipe.path}/lib")
|
298
|
-
# dir_config('libjpeg', "#{libjpeg_recipe.path}/include", "#{libjpeg_recipe.path}/lib")
|
299
|
-
dir_config('libfox', "#{libfox_recipe.path}/include", "#{libfox_recipe.path}/lib")
|
300
|
-
dir_config('libfxscintilla', "#{libfxscintills_recipe.path}/include", "#{libfxscintills_recipe.path}/lib")
|
297
|
+
dir_config('libfox', "#{libfox_recipe.path}/include/fox-1.6", "#{libfox_recipe.path}/lib")
|
298
|
+
dir_config('libfxscintilla', "#{libfxscintills_recipe.path}/include/fxscintilla", "#{libfxscintills_recipe.path}/lib")
|
301
299
|
|
302
300
|
shared_dlls = [
|
303
301
|
"#{libfxscintills_recipe.path}/bin/libfxscintilla-20.dll",
|
@@ -320,7 +318,7 @@ def do_rake_compiler_setup
|
|
320
318
|
FileUtils.cp `#{cmd}`.chomp, '.', verbose: true
|
321
319
|
end
|
322
320
|
|
323
|
-
CONFIG['CXX'] = "#{
|
321
|
+
CONFIG['CXX'] = "#{host}-g++" # CXX setting must be prefixed for cross build
|
324
322
|
CONFIG['CC'] += "\nCXX=#{CONFIG['CXX']}" # Hack CXX into Makefile for cross compilation
|
325
323
|
CONFIG['LDSHARED'].gsub!('gcc', 'g++') # ensure C++ linker is used, so that libstdc++ is linked static
|
326
324
|
$LDFLAGS += " -s" # remove symbol table informations from shared lib
|
@@ -350,8 +348,8 @@ def do_rake_compiler_setup
|
|
350
348
|
find_library("GLU", "gluNewQuadric", "/usr/X11R6/lib")
|
351
349
|
$libs = append_library($libs, "Xrandr") unless RUBY_PLATFORM =~ /mingw/ || enable_config("win32-static-build")
|
352
350
|
$libs = append_library($libs, "Xcursor") unless RUBY_PLATFORM =~ /mingw/ || enable_config("win32-static-build")
|
353
|
-
find_header('FXRbCommon.h', File.join(File.dirname(__FILE__), 'include'))
|
354
351
|
$libs = append_library($libs, "FOX-1.6")
|
352
|
+
$INCFLAGS << " -I#{File.join(File.dirname(__FILE__), 'include')}"
|
355
353
|
if is_fxscintilla_build?
|
356
354
|
FileUtils.move('scintilla_wrap.cpp.bak', 'scintilla_wrap.cpp') if FileTest.exist?('scintilla_wrap.cpp.bak')
|
357
355
|
$CPPFLAGS = $CPPFLAGS + " -DWITH_FXSCINTILLA -DHAVE_FOX_1_6"
|
@@ -359,6 +357,13 @@ def do_rake_compiler_setup
|
|
359
357
|
else
|
360
358
|
FileUtils.move('scintilla_wrap.cpp', 'scintilla_wrap.cpp.bak') if FileTest.exist?('scintilla_wrap.cpp')
|
361
359
|
end
|
360
|
+
|
361
|
+
checking_for("thread local variables") do
|
362
|
+
$defs.push( "-DHAVE___THREAD" ) if try_compile('__thread int x=1;')
|
363
|
+
end &&
|
364
|
+
have_func('rb_thread_call_without_gvl') &&
|
365
|
+
have_func('rb_thread_call_with_gvl')
|
366
|
+
|
362
367
|
end
|
363
368
|
|
364
369
|
# This directive processes the "--with-fox-include" and "--with-fox-lib"
|
@@ -372,15 +377,17 @@ dir_config('fox', '/usr/local/include/fox-1.6', '/usr/local/lib')
|
|
372
377
|
|
373
378
|
dir_config('fxscintilla', '/usr/local/include/fxscintilla', '/usr/local/lib')
|
374
379
|
|
375
|
-
|
380
|
+
unless enable_config("win32-cross")
|
381
|
+
find_installed_fox_version
|
376
382
|
|
377
|
-
#
|
378
|
-
# Check for FXScintilla header files, unless FXScintilla support has
|
379
|
-
# been explicitly suppressed with the '--without-fxscintilla' flag.
|
380
|
-
#
|
383
|
+
#
|
384
|
+
# Check for FXScintilla header files, unless FXScintilla support has
|
385
|
+
# been explicitly suppressed with the '--without-fxscintilla' flag.
|
386
|
+
#
|
381
387
|
|
382
|
-
unless fxscintilla_support_suppressed?
|
383
|
-
|
388
|
+
unless fxscintilla_support_suppressed?
|
389
|
+
find_installed_fxscintilla_version
|
390
|
+
end
|
384
391
|
end
|
385
392
|
|
386
393
|
# Platform-specific modifications
|
@@ -391,4 +398,5 @@ $CFLAGS += " -DRUBY_1_9" if RUBY_VERSION =~ /1\.9\./
|
|
391
398
|
$CFLAGS += " -DRUBY_2_0" if RUBY_VERSION =~ /2\.0\./
|
392
399
|
|
393
400
|
# Last step: build the makefile
|
401
|
+
create_header
|
394
402
|
create_makefile("fox16_c")
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/*
|
2
|
+
* gvl_wrappers.c - Wrapper functions for locking/unlocking the Ruby GVL
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
|
6
|
+
#include "FXRbCommon.h"
|
7
|
+
|
8
|
+
__thread int g_fxrb_thread_has_gvl = 1;
|
9
|
+
|
10
|
+
FOR_EACH_BLOCKING_FUNCTION( DEFINE_GVL_WRAPPER_STRUCT );
|
11
|
+
FOR_EACH_BLOCKING_FUNCTION( DEFINE_GVL_SKELETON );
|
12
|
+
FOR_EACH_BLOCKING_FUNCTION( DEFINE_GVL_STUB );
|
@@ -38,6 +38,33 @@ inline void cls ## _detach(cls *self){ \
|
|
38
38
|
inline void cls ## _create(cls *self){ \
|
39
39
|
self->cls::create(); \
|
40
40
|
} \
|
41
|
+
inline FXint cls ## _run_gvl(cls *self){ \
|
42
|
+
return self->cls::run(); \
|
43
|
+
} \
|
44
|
+
inline FXint cls ## _runOneEvent_gvl(cls *self, bool blocking=true){ \
|
45
|
+
return self->cls::runOneEvent(blocking); \
|
46
|
+
} \
|
47
|
+
inline FXint cls ## _runUntil_gvl(cls *self, FXuint& condition){ \
|
48
|
+
return self->cls::runUntil(condition); \
|
49
|
+
} \
|
50
|
+
inline FXint cls ## _runWhileEvents_gvl(cls *self){ \
|
51
|
+
return self->cls::runWhileEvents(); \
|
52
|
+
} \
|
53
|
+
inline FXint cls ## _runModalWhileEvents_gvl(cls *self, FXWindow* window=NULL){ \
|
54
|
+
return self->cls::runModalWhileEvents(window); \
|
55
|
+
} \
|
56
|
+
inline FXint cls ## _runModal_gvl(cls *self){ \
|
57
|
+
return self->cls::runModal(); \
|
58
|
+
} \
|
59
|
+
inline FXint cls ## _runModalFor_gvl(cls *self, FXWindow* window){ \
|
60
|
+
return self->cls::runModalFor(window); \
|
61
|
+
} \
|
62
|
+
inline FXint cls ## _runModalWhileShown_gvl(cls *self, FXWindow* window){ \
|
63
|
+
return self->cls::runModalWhileShown(window); \
|
64
|
+
} \
|
65
|
+
inline FXint cls ## _runPopup_gvl(cls *self, FXWindow* owner){ \
|
66
|
+
return self->cls::runPopup(owner); \
|
67
|
+
} \
|
41
68
|
static void cls ## _init(cls* self,VALUE ary,bool connect){ \
|
42
69
|
int i; \
|
43
70
|
char **argv; \
|
@@ -62,7 +89,6 @@ inline void cls ## _exit(cls *self,FXint code){ \
|
|
62
89
|
self->cls::exit(code); \
|
63
90
|
}
|
64
91
|
|
65
|
-
|
66
92
|
/**
|
67
93
|
* For C/C++ applications, the argument count (argc) will always be at least
|
68
94
|
* one, and the first element of the argument array (argv[0]) will contain
|
@@ -83,13 +109,13 @@ inline void cls ## _exit(cls *self,FXint code){ \
|
|
83
109
|
*/
|
84
110
|
#define IMPLEMENT_FXAPP_STUBS(cls) \
|
85
111
|
void cls::create(){ \
|
86
|
-
FXRbCallVoidMethod(this,
|
112
|
+
FXRbCallVoidMethod(this,"create"); \
|
87
113
|
} \
|
88
114
|
void cls::detach(){ \
|
89
|
-
FXRbCallVoidMethod(this,
|
115
|
+
FXRbCallVoidMethod(this,"detach"); \
|
90
116
|
} \
|
91
117
|
void cls::destroy(){ \
|
92
|
-
FXRbCallVoidMethod(this,
|
118
|
+
FXRbCallVoidMethod(this,"destroy"); \
|
93
119
|
} \
|
94
120
|
void cls::init(int& argc,char** argv,bool connect){ \
|
95
121
|
int i; \
|
@@ -97,7 +123,7 @@ inline void cls ## _exit(cls *self,FXint code){ \
|
|
97
123
|
for(i=1; i<argc; i++){ \
|
98
124
|
rb_ary_push(ary,rb_str_new2(argv[i])); \
|
99
125
|
} \
|
100
|
-
FXRbCallVoidMethod(this,
|
126
|
+
FXRbCallVoidMethod(this,"init",ary,connect); \
|
101
127
|
argc=static_cast<int>(RARRAY_LEN(ary)+1); \
|
102
128
|
for(i=1; i<argc; i++){ \
|
103
129
|
VALUE e=rb_ary_entry(ary,i-1); \
|
@@ -105,7 +131,7 @@ inline void cls ## _exit(cls *self,FXint code){ \
|
|
105
131
|
} \
|
106
132
|
} \
|
107
133
|
void cls::exit(FXint code){ \
|
108
|
-
FXRbCallVoidMethod(this,
|
134
|
+
FXRbCallVoidMethod(this,"exit",code); \
|
109
135
|
}
|
110
136
|
|
111
137
|
|
@@ -114,6 +140,12 @@ class FXRbApp : public FXApp {
|
|
114
140
|
protected:
|
115
141
|
FXbool m_bThreadsEnabled;
|
116
142
|
FXuint sleepTime;
|
143
|
+
public:
|
144
|
+
#ifdef WIN32
|
145
|
+
static WSAEVENT interrupt_event;
|
146
|
+
#else
|
147
|
+
static int interrupt_fds[2];
|
148
|
+
#endif
|
117
149
|
protected:
|
118
150
|
FXRbApp(){}
|
119
151
|
public:
|
@@ -126,6 +158,7 @@ public:
|
|
126
158
|
};
|
127
159
|
public:
|
128
160
|
long onChoreThreads(FXObject*,FXSelector,void*);
|
161
|
+
long onChoreThreads_gvlcb(FXObject*,FXSelector,void*);
|
129
162
|
public:
|
130
163
|
// Constructor
|
131
164
|
FXRbApp(const FXchar* name,const FXchar* vendor);
|
@@ -152,4 +185,6 @@ public:
|
|
152
185
|
virtual ~FXRbApp();
|
153
186
|
};
|
154
187
|
|
188
|
+
long FXRbApp_onChoreThreads_gvlcb(FXRbApp*,FXObject*,FXSelector,void*);
|
189
|
+
|
155
190
|
#endif
|
@@ -68,40 +68,40 @@ inline void cls ## _setData(cls* self,FXuchar* pix,FXuint opts,FXint w,FXint h){
|
|
68
68
|
|
69
69
|
#define IMPLEMENT_FXBITMAP_STUBS(cls) \
|
70
70
|
void cls::restore(){ \
|
71
|
-
FXRbCallVoidMethod(this,
|
71
|
+
FXRbCallVoidMethod(this,"restore"); \
|
72
72
|
} \
|
73
73
|
void cls::render(){ \
|
74
|
-
FXRbCallVoidMethod(this,
|
74
|
+
FXRbCallVoidMethod(this,"render"); \
|
75
75
|
} \
|
76
76
|
void cls::release(){ \
|
77
|
-
FXRbCallVoidMethod(this,
|
77
|
+
FXRbCallVoidMethod(this,"release"); \
|
78
78
|
} \
|
79
79
|
bool cls::savePixels(FXStream& store) const { \
|
80
|
-
return FXRbCallBoolMethod(this,
|
80
|
+
return FXRbCallBoolMethod(this,"savePixels",store); \
|
81
81
|
} \
|
82
82
|
bool cls::loadPixels(FXStream& store){ \
|
83
|
-
return FXRbCallBoolMethod(this,
|
83
|
+
return FXRbCallBoolMethod(this,"loadPixels",store); \
|
84
84
|
} \
|
85
85
|
void cls::scale(FXint w,FXint h){ \
|
86
|
-
FXRbCallVoidMethod(this,
|
86
|
+
FXRbCallVoidMethod(this,"scale",w,h); \
|
87
87
|
} \
|
88
88
|
void cls::mirror(FXbool horizontal,FXbool vertical){ \
|
89
|
-
FXRbCallVoidMethod(this,
|
89
|
+
FXRbCallVoidMethod(this,"mirror",horizontal,vertical); \
|
90
90
|
} \
|
91
91
|
void cls::rotate(FXint degrees){ \
|
92
|
-
FXRbCallVoidMethod(this,
|
92
|
+
FXRbCallVoidMethod(this,"rotate",degrees); \
|
93
93
|
} \
|
94
94
|
void cls::crop(FXint x,FXint y,FXint w,FXint h,FXbool color){ \
|
95
|
-
FXRbCallVoidMethod(this,
|
95
|
+
FXRbCallVoidMethod(this,"crop",x,y,w,h,color); \
|
96
96
|
} \
|
97
97
|
void cls::fill(FXbool color){ \
|
98
|
-
FXRbCallVoidMethod(this,
|
98
|
+
FXRbCallVoidMethod(this,"fill",color); \
|
99
99
|
} \
|
100
100
|
void cls::setData(FXuchar* pix,FXuint opts){ \
|
101
|
-
FXRbCallVoidMethod(this,
|
101
|
+
FXRbCallVoidMethod(this,"setData",pix,opts); \
|
102
102
|
} \
|
103
103
|
void cls::setData(FXuchar* pix,FXuint opts,FXint w,FXint h){ \
|
104
|
-
FXRbCallVoidMethod(this,
|
104
|
+
FXRbCallVoidMethod(this,"setData",pix,opts,w,h); \
|
105
105
|
}
|
106
106
|
|
107
107
|
|
@@ -27,6 +27,8 @@
|
|
27
27
|
extern "C" {
|
28
28
|
#include "ruby.h"
|
29
29
|
|
30
|
+
#include "extconf.h"
|
31
|
+
|
30
32
|
#ifdef HAVE_RUBY_ENCODING_H
|
31
33
|
#include "ruby/encoding.h"
|
32
34
|
#endif
|
@@ -97,3 +99,4 @@ extern "C" {
|
|
97
99
|
#include "FXScintilla.h"
|
98
100
|
#endif
|
99
101
|
#include "FXRuby.h"
|
102
|
+
#include "gvl_wrappers.h"
|
@@ -38,10 +38,10 @@ inline bool klass ## _loadPixels(klass* self,FXStream& store){ \
|
|
38
38
|
|
39
39
|
#define IMPLEMENT_FXCURSOR_STUBS(cls) \
|
40
40
|
bool cls::savePixels(FXStream& store) const { \
|
41
|
-
return FXRbCallBoolMethod(this,
|
41
|
+
return FXRbCallBoolMethod(this,"savePixels",store); \
|
42
42
|
} \
|
43
43
|
bool cls::loadPixels(FXStream& store){ \
|
44
|
-
return FXRbCallBoolMethod(this,
|
44
|
+
return FXRbCallBoolMethod(this,"loadPixels",store); \
|
45
45
|
}
|
46
46
|
|
47
47
|
class FXRbCursor : public FXCursor {
|
@@ -218,190 +218,190 @@ inline void klass ## _clipChildren(klass* self,FXbool yes){ \
|
|
218
218
|
|
219
219
|
#define IMPLEMENT_FXDC_STUBS(cls) \
|
220
220
|
FXColor cls::readPixel(FXint x,FXint y){ \
|
221
|
-
return FXRbCallColorMethod(this,
|
221
|
+
return FXRbCallColorMethod(this,"readPixel",x,y); \
|
222
222
|
} \
|
223
223
|
void cls::drawPoint(FXint x,FXint y){ \
|
224
|
-
FXRbCallVoidMethod(this,
|
224
|
+
FXRbCallVoidMethod(this,"drawPoint",x,y); \
|
225
225
|
} \
|
226
226
|
void cls::drawPoints(const FXPoint* points,FXuint npoints){ \
|
227
|
-
|
227
|
+
FXRbCallVoidArrayMethod(this,"drawPoints",points,npoints); \
|
228
228
|
} \
|
229
229
|
void cls::drawPointsRel(const FXPoint* points,FXuint npoints){ \
|
230
|
-
|
230
|
+
FXRbCallVoidArrayMethod(this,"drawPointsRel",points,npoints); \
|
231
231
|
} \
|
232
232
|
void cls::drawLine(FXint x1,FXint y1,FXint x2,FXint y2){ \
|
233
|
-
FXRbCallVoidMethod(this,
|
233
|
+
FXRbCallVoidMethod(this,"drawLine",x1,y1,x2,y2); \
|
234
234
|
} \
|
235
235
|
void cls::drawLines(const FXPoint* points,FXuint npoints){ \
|
236
|
-
|
236
|
+
FXRbCallVoidArrayMethod(this,"drawLines",points,npoints); \
|
237
237
|
} \
|
238
238
|
void cls::drawLinesRel(const FXPoint* points,FXuint npoints){ \
|
239
|
-
|
239
|
+
FXRbCallVoidArrayMethod(this,"drawLinesRel",points,npoints); \
|
240
240
|
} \
|
241
241
|
void cls::drawLineSegments(const FXSegment* segments,FXuint nsegments){ \
|
242
|
-
|
242
|
+
FXRbCallVoidArrayMethod(this,"drawLineSegments",segments,nsegments); \
|
243
243
|
} \
|
244
244
|
void cls::drawRectangle(FXint x,FXint y,FXint w,FXint h){ \
|
245
|
-
FXRbCallVoidMethod(this,
|
245
|
+
FXRbCallVoidMethod(this,"drawRectangle",x,y,w,h); \
|
246
246
|
} \
|
247
247
|
void cls::drawRoundRectangle(FXint x,FXint y,FXint w,FXint h,FXint ew,FXint eh){ \
|
248
|
-
FXRbCallVoidMethod(this,
|
248
|
+
FXRbCallVoidMethod(this,"drawRoundRectangle",x,y,w,h,ew,eh); \
|
249
249
|
} \
|
250
250
|
void cls::drawRectangles(const FXRectangle* rectangles,FXuint nrectangles){ \
|
251
|
-
|
251
|
+
FXRbCallVoidArrayMethod(this,"drawRectangles",rectangles,nrectangles); \
|
252
252
|
} \
|
253
253
|
void cls::drawArc(FXint x,FXint y,FXint w,FXint h,FXint ang1,FXint ang2){ \
|
254
|
-
FXRbCallVoidMethod(this,
|
254
|
+
FXRbCallVoidMethod(this,"drawArc",x,y,w,h,ang1,ang2); \
|
255
255
|
} \
|
256
256
|
void cls::drawArcs(const FXArc* arcs,FXuint narcs){ \
|
257
|
-
|
257
|
+
FXRbCallVoidArrayMethod(this,"drawArcs",arcs,narcs); \
|
258
258
|
} \
|
259
259
|
void cls::drawEllipse(FXint x,FXint y,FXint w,FXint h){ \
|
260
|
-
FXRbCallVoidMethod(this,
|
260
|
+
FXRbCallVoidMethod(this,"drawEllipse",x,y,w,h); \
|
261
261
|
} \
|
262
262
|
void cls::fillRectangle(FXint x,FXint y,FXint w,FXint h){ \
|
263
|
-
FXRbCallVoidMethod(this,
|
263
|
+
FXRbCallVoidMethod(this,"fillRectangle",x,y,w,h); \
|
264
264
|
} \
|
265
265
|
void cls::fillRectangles(const FXRectangle* rectangles,FXuint nrectangles){ \
|
266
|
-
|
266
|
+
FXRbCallVoidArrayMethod(this,"fillRectangles",rectangles,nrectangles); \
|
267
267
|
} \
|
268
268
|
void cls::fillRoundRectangle(FXint x,FXint y,FXint w,FXint h,FXint ew,FXint eh){ \
|
269
|
-
FXRbCallVoidMethod(this,
|
269
|
+
FXRbCallVoidMethod(this,"fillRoundRectangle",x,y,w,h,ew,eh); \
|
270
270
|
} \
|
271
271
|
void cls::fillChord(FXint x,FXint y,FXint w,FXint h,FXint ang1,FXint ang2){ \
|
272
|
-
FXRbCallVoidMethod(this,
|
272
|
+
FXRbCallVoidMethod(this,"fillChord",x,y,w,h,ang1,ang2); \
|
273
273
|
} \
|
274
274
|
void cls::fillChords(const FXArc* chords,FXuint nchords){ \
|
275
|
-
|
275
|
+
FXRbCallVoidArrayMethod(this,"fillChords",chords,nchords); \
|
276
276
|
} \
|
277
277
|
void cls::fillArc(FXint x,FXint y,FXint w,FXint h,FXint ang1,FXint ang2){ \
|
278
|
-
FXRbCallVoidMethod(this,
|
278
|
+
FXRbCallVoidMethod(this,"fillArc",x,y,w,h,ang1,ang2); \
|
279
279
|
} \
|
280
280
|
void cls::fillArcs(const FXArc* arcs,FXuint narcs){ \
|
281
|
-
|
281
|
+
FXRbCallVoidArrayMethod(this,"fillArcs",arcs,narcs); \
|
282
282
|
} \
|
283
283
|
void cls::fillEllipse(FXint x,FXint y,FXint w,FXint h){ \
|
284
|
-
FXRbCallVoidMethod(this,
|
284
|
+
FXRbCallVoidMethod(this,"fillEllipse",x,y,w,h); \
|
285
285
|
} \
|
286
286
|
void cls::fillPolygon(const FXPoint* points,FXuint npoints){ \
|
287
|
-
|
287
|
+
FXRbCallVoidArrayMethod(this,"fillPolygon",points,npoints); \
|
288
288
|
} \
|
289
289
|
void cls::fillConcavePolygon(const FXPoint* points,FXuint npoints){ \
|
290
|
-
|
290
|
+
FXRbCallVoidArrayMethod(this,"fillConcavePolygon",points,npoints); \
|
291
291
|
} \
|
292
292
|
void cls::fillComplexPolygon(const FXPoint* points,FXuint npoints){ \
|
293
|
-
|
293
|
+
FXRbCallVoidArrayMethod(this,"fillComplexPolygon",points,npoints); \
|
294
294
|
} \
|
295
295
|
void cls::fillPolygonRel(const FXPoint* points,FXuint npoints){ \
|
296
|
-
|
296
|
+
FXRbCallVoidArrayMethod(this,"fillPolygonRel",points,npoints); \
|
297
297
|
} \
|
298
298
|
void cls::fillConcavePolygonRel(const FXPoint* points,FXuint npoints){ \
|
299
|
-
|
299
|
+
FXRbCallVoidArrayMethod(this,"fillConcavePolygonRel",points,npoints); \
|
300
300
|
} \
|
301
301
|
void cls::fillComplexPolygonRel(const FXPoint* points,FXuint npoints){ \
|
302
|
-
|
302
|
+
FXRbCallVoidArrayMethod(this,"fillComplexPolygonRel",points,npoints); \
|
303
303
|
} \
|
304
304
|
void cls::drawHashBox(FXint x,FXint y,FXint w,FXint h,FXint b){ \
|
305
|
-
FXRbCallVoidMethod(this,
|
305
|
+
FXRbCallVoidMethod(this,"drawHashBox",x,y,w,h,b); \
|
306
306
|
} \
|
307
307
|
void cls::drawFocusRectangle(FXint x,FXint y,FXint w,FXint h){ \
|
308
|
-
FXRbCallVoidMethod(this,
|
308
|
+
FXRbCallVoidMethod(this,"drawFocusRectangle",x,y,w,h); \
|
309
309
|
} \
|
310
310
|
void cls::drawArea(const FXDrawable* source,FXint sx,FXint sy,FXint sw,FXint sh,FXint dx,FXint dy){ \
|
311
|
-
FXRbCallVoidMethod(this,
|
311
|
+
FXRbCallVoidMethod(this,"drawArea",source,sx,sy,sw,sh,dx,dy); \
|
312
312
|
} \
|
313
313
|
void cls::drawArea(const FXDrawable* source,FXint sx,FXint sy,FXint sw,FXint sh,FXint dx,FXint dy,FXint dw,FXint dh){ \
|
314
|
-
FXRbCallVoidMethod(this,
|
314
|
+
FXRbCallVoidMethod(this,"drawArea",source,sx,sy,sw,sh,dx,dy,dw,dh); \
|
315
315
|
} \
|
316
316
|
void cls::drawImage(const FXImage* image,FXint dx,FXint dy){ \
|
317
|
-
FXRbCallVoidMethod(this,
|
317
|
+
FXRbCallVoidMethod(this,"drawImage",image,dx,dy); \
|
318
318
|
} \
|
319
319
|
void cls::drawBitmap(const FXBitmap* bitmap,FXint dx,FXint dy){ \
|
320
|
-
FXRbCallVoidMethod(this,
|
320
|
+
FXRbCallVoidMethod(this,"drawBitmap",bitmap,dx,dy); \
|
321
321
|
} \
|
322
322
|
void cls::drawIcon(const FXIcon* icon,FXint dx,FXint dy){ \
|
323
|
-
FXRbCallVoidMethod(this,
|
323
|
+
FXRbCallVoidMethod(this,"drawIcon",icon,dx,dy); \
|
324
324
|
} \
|
325
325
|
void cls::drawIconShaded(const FXIcon* icon,FXint dx,FXint dy){ \
|
326
|
-
FXRbCallVoidMethod(this,
|
326
|
+
FXRbCallVoidMethod(this,"drawIconShaded",icon,dx,dy); \
|
327
327
|
} \
|
328
328
|
void cls::drawIconSunken(const FXIcon* icon,FXint dx,FXint dy){ \
|
329
|
-
FXRbCallVoidMethod(this,
|
329
|
+
FXRbCallVoidMethod(this,"drawIconSunken",icon,dx,dy); \
|
330
330
|
} \
|
331
331
|
void cls::drawText(FXint x,FXint y,const FXString& string){ \
|
332
|
-
|
332
|
+
FXRbCallDCDrawMethod(this, "drawText", x, y, string); \
|
333
333
|
} \
|
334
334
|
void cls::drawText(FXint x,FXint y,const FXchar* string,FXuint length){ \
|
335
|
-
|
335
|
+
FXRbCallDCDrawMethod(this, "drawText", x, y, string, length); \
|
336
336
|
} \
|
337
337
|
void cls::drawImageText(FXint x,FXint y,const FXString& string){ \
|
338
|
-
|
338
|
+
FXRbCallDCDrawMethod(this, "drawImageText", x, y, string); \
|
339
339
|
} \
|
340
340
|
void cls::drawImageText(FXint x,FXint y,const FXchar* string,FXuint length){ \
|
341
|
-
|
341
|
+
FXRbCallDCDrawMethod(this, "drawImageText", x, y, string, length); \
|
342
342
|
} \
|
343
343
|
void cls::setForeground(FXColor clr){ \
|
344
|
-
FXRbCallVoidMethod(this,
|
344
|
+
FXRbCallVoidMethod(this,"setForeground",clr); \
|
345
345
|
} \
|
346
346
|
void cls::setBackground(FXColor clr){ \
|
347
|
-
FXRbCallVoidMethod(this,
|
347
|
+
FXRbCallVoidMethod(this,"setBackground",clr); \
|
348
348
|
} \
|
349
349
|
void cls::setDashes(FXuint dashoffset,const FXchar *dashpattern,FXuint dashlength){ \
|
350
|
-
|
350
|
+
FXRbCallSetDashes(this,"setDashes",dashoffset,dashpattern,dashlength); \
|
351
351
|
} \
|
352
352
|
void cls::setLineWidth(FXuint linewidth){ \
|
353
|
-
FXRbCallVoidMethod(this,
|
353
|
+
FXRbCallVoidMethod(this,"setLineWidth",linewidth); \
|
354
354
|
} \
|
355
355
|
void cls::setLineCap(FXCapStyle capstyle){ \
|
356
|
-
FXRbCallVoidMethod(this,
|
356
|
+
FXRbCallVoidMethod(this,"setLineCap",capstyle); \
|
357
357
|
} \
|
358
358
|
void cls::setLineJoin(FXJoinStyle joinstyle){ \
|
359
|
-
FXRbCallVoidMethod(this,
|
359
|
+
FXRbCallVoidMethod(this,"setLineJoin",joinstyle); \
|
360
360
|
} \
|
361
361
|
void cls::setLineStyle(FXLineStyle linestyle){ \
|
362
|
-
FXRbCallVoidMethod(this,
|
362
|
+
FXRbCallVoidMethod(this,"setLineStyle",linestyle); \
|
363
363
|
} \
|
364
364
|
void cls::setFillStyle(FXFillStyle fillstyle){ \
|
365
|
-
FXRbCallVoidMethod(this,
|
365
|
+
FXRbCallVoidMethod(this,"setFillStyle",fillstyle); \
|
366
366
|
} \
|
367
367
|
void cls::setFillRule(FXFillRule fillrule){ \
|
368
|
-
FXRbCallVoidMethod(this,
|
368
|
+
FXRbCallVoidMethod(this,"setFillRule",fillrule); \
|
369
369
|
} \
|
370
370
|
void cls::setFunction(FXFunction func){ \
|
371
|
-
FXRbCallVoidMethod(this,
|
371
|
+
FXRbCallVoidMethod(this,"setFunction",func); \
|
372
372
|
} \
|
373
373
|
void cls::setTile(FXImage* image,FXint dx,FXint dy){ \
|
374
|
-
FXRbCallVoidMethod(this,
|
374
|
+
FXRbCallVoidMethod(this,"setTile",image,dx,dy); \
|
375
375
|
} \
|
376
376
|
void cls::setStipple(FXBitmap *bitmap,FXint dx,FXint dy){ \
|
377
|
-
FXRbCallVoidMethod(this,
|
377
|
+
FXRbCallVoidMethod(this,"setStipple",bitmap,dx,dy); \
|
378
378
|
} \
|
379
379
|
void cls::setStipple(FXStipplePattern pat,FXint dx,FXint dy){ \
|
380
|
-
FXRbCallVoidMethod(this,
|
380
|
+
FXRbCallVoidMethod(this,"setStipple",pat,dx,dy); \
|
381
381
|
} \
|
382
382
|
void cls::setClipRegion(const FXRegion& region){ \
|
383
|
-
FXRbCallVoidMethod(this,
|
383
|
+
FXRbCallVoidMethod(this,"setClipRegion",region); \
|
384
384
|
} \
|
385
385
|
void cls::setClipRectangle(FXint x,FXint y,FXint w,FXint h){ \
|
386
|
-
FXRbCallVoidMethod(this,
|
386
|
+
FXRbCallVoidMethod(this,"setClipRectangle",x,y,w,h); \
|
387
387
|
} \
|
388
388
|
void cls::setClipRectangle(const FXRectangle& rectangle){ \
|
389
|
-
FXRbCallVoidMethod(this,
|
389
|
+
FXRbCallVoidMethod(this,"setClipRectangle",rectangle); \
|
390
390
|
} \
|
391
391
|
void cls::clearClipRectangle(){ \
|
392
|
-
FXRbCallVoidMethod(this,
|
392
|
+
FXRbCallVoidMethod(this,"clearClipRectangle"); \
|
393
393
|
} \
|
394
394
|
void cls::setClipMask(FXBitmap* bitmap,FXint dx,FXint dy){ \
|
395
|
-
FXRbCallVoidMethod(this,
|
395
|
+
FXRbCallVoidMethod(this,"setClipMask",bitmap,dx,dy); \
|
396
396
|
} \
|
397
397
|
void cls::clearClipMask(){ \
|
398
|
-
FXRbCallVoidMethod(this,
|
398
|
+
FXRbCallVoidMethod(this,"clearClipMask"); \
|
399
399
|
} \
|
400
400
|
void cls::setFont(FXFont *fnt){ \
|
401
|
-
FXRbCallVoidMethod(this,
|
401
|
+
FXRbCallVoidMethod(this,"setFont",fnt); \
|
402
402
|
} \
|
403
403
|
void cls::clipChildren(FXbool yes){ \
|
404
|
-
FXRbCallVoidMethod(this,
|
404
|
+
FXRbCallVoidMethod(this,"clipChildren",yes); \
|
405
405
|
}
|
406
406
|
|
407
407
|
|