diff options
author | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-12 23:08:32 +0000 |
---|---|---|
committer | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-12 23:08:32 +0000 |
commit | ed6ce8b43b6f25df1d4809ac799de4dd1c85c1f3 (patch) | |
tree | 09bc05d679d0f224a29fee44d10beea321bdc0b5 /ext/tk/stubs.c | |
parent | e13fb8029b87943ab8af2211226b7c9347d3976d (diff) | |
download | ruby-ed6ce8b43b6f25df1d4809ac799de4dd1c85c1f3.tar.gz |
* ext/tk/extconf.rb: New strategy for searching Tcl/Tk libraries.
* ext/tk/*: Support new features of Tcl/Tk8.6b1 and minor bug fixes.
( [KNOWN BUG] Ruby/Tk on Ruby 1.9 will not work on Cygwin. )
* ext/tk/*: Unify sources between Ruby 1.8 & 1.9.
Improve default_widget_set handling.
* ext/tk/*: Multi-TkInterpreter (multi-tk.rb) works on Ruby 1.8 & 1.9.
( [KNOWN BUG] On Ruby 1.8, join to a long term Thread on Tk
callbacks may freeze. On Ruby 1.9, cannot create a second
master interpreter (creating slaves are OK); supported master
interpreter is the default master interpreter only. )
* ext/tk/lib/tkextlib/*: Update supported versions of Tk extensions.
Tcllib 1.8/Tklib 0.4.1 ==> Tcllib 1.11.1/Tklib 0.5
BWidgets 1.7 ==> BWidgets 1.8
TkTable 2.9 ==> TkTable 2.10
TkTreeCtrl 2005-12-02 ==> TkTreeCtrl 2.2.9
Tile 0.8.0/8.5.1 ==> Tile 0.8.3/8.6b1
IncrTcl 2005-02-14 ==> IncrTcl 2008-12-15
TclX 2005-02-07 ==> TclX 2008-12-15
Trofs 0.4.3 ==> Trofs 0.4.4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/stubs.c')
-rw-r--r-- | ext/tk/stubs.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/ext/tk/stubs.c b/ext/tk/stubs.c index e7ef79dda8..4388fb294d 100644 --- a/ext/tk/stubs.c +++ b/ext/tk/stubs.c @@ -11,6 +11,25 @@ /*------------------------------*/ +#ifdef __MACOS__ +# include <tkMac.h> +# include <Quickdraw.h> + +static int call_macinit = 0; + +static void +_macinit() +{ + if (!call_macinit) { + tcl_macQdPtr = &qd; /* setup QuickDraw globals */ + Tcl_MacSetEventProc(TkMacConvertEvent); /* setup event handler */ + call_macinit = 1; + } +} +#endif + +/*------------------------------*/ + static int nativethread_checked = 0; static void @@ -301,6 +320,10 @@ ruby_tk_stubs_init(tcl_ip) if (!Tk_InitStubs(tcl_ip, (char *)"8.1", 0)) return FAIL_Tk_InitStubs; + +#ifdef __MACOS__ + _macinit(); +#endif } return TCLTK_STUBS_OK; @@ -336,6 +359,10 @@ ruby_tk_stubs_safeinit(tcl_ip) if (!Tk_InitStubs(tcl_ip, (char *)"8.1", 0)) return FAIL_Tk_InitStubs; + +#ifdef __MACOS__ + _macinit(); +#endif } return TCLTK_STUBS_OK; @@ -490,6 +517,9 @@ ruby_tk_stubs_init(tcl_ip) return FAIL_Tk_Init; if (!call_tk_stubs_init) { +#ifdef __MACOS__ + _macinit(); +#endif call_tk_stubs_init = 1; } @@ -509,6 +539,9 @@ ruby_tk_stubs_safeinit(tcl_ip) return FAIL_Tk_Init; if (!call_tk_stubs_init) { +#ifdef __MACOS__ + _macinit(); +#endif call_tk_stubs_init = 1; } |