summaryrefslogtreecommitdiffstats
path: root/ext/tcltklib/tcltklib.c
Commit message (Collapse)AuthorAgeFilesLines
* * ext/tk/, ext/tcltklib/: bug fixnagai2004-07-151-2/+3
| | | | | | | | | | | | | | | | | | * ext/tk/lib/tk.rb: better operation for SIGINT when processing callbacks. * ext/tk/lib/tk/msgcat.rb: ditto. * ext/tk/lib/tk/variable.rb: ditto. * ext/tk/lib/tk/timer.rb: ditto. * ext/tk/lib/tk/validation.rb: add Tk::ValidateConfigure.__def_validcmd() to define validatecommand methods easier * ext/tk/lib/tk.rb (_genobj_for_tkwidget): support autoload Tk ext classes * ext/tk/lib/tk/canvas.rb and so on: remove the parent widget type check for items (e.g. canvas items; depends on the class) to avoid some troubles on Tk extension widget class definition. * ext/tk/lib/tkextlib/: add Iwidget and TkTable extension support * ext/tk/sample/tkextlib/: add samples of Iwidget and TkTable git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tk/lib/tcltklib : bug fixnagai2004-07-011-0/+12
| | | | | | | * ext/tk/lib/tk : bug fix and add Tcl/Tk extension support libraries git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tcltklib/extconf.rb: [EXPERIMENTAL] MacOS X (darwin) supportnagai2004-06-121-15/+50
| | | | | | | | | | | | | | * ext/tcltklib/tcltklib.c: fix thread trouble on callback proc, and eliminate warning about instance variable access * ext/tk/lib/tk/menubar.rb: improve supported menu_spec * ext/tk/lib/tk/menuspec.rb: [add] menu_spec support library * ext/tk/lib/tk/root.rb: add menu_spec support * ext/tk/lib/tk/text.rb: bug fix * ext/tk/lib/tk/toplevel.rb: add menu_spec support * ext/tk/sample/menubar?.rb: [add] sample of menu_spec usage git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * renewal Ruby/Tknagai2004-05-011-362/+3252
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * exception message clean-up by Ian Macdonald <ian@caliban.org>.matz2004-03-291-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tcltklib/tcltklib.c: define CONST84 when TCL_MAJOR_VERSION == 7nagai2004-01-261-0/+6
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_update): call rb_str_modify().matz2003-12-251-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_with_disable_interrupt): prohibit thread contextmatz2003-12-201-4/+4
| | | | | | | switch during proc execution. [ruby-dev:21899] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tk/lib/tk.rb: add Tk.grab_release and fix bug of TkCompositenagai2003-11-221-1/+3
| | | | | | | | | * ext/tk/lib/tkafter.rb: bug fix * ext/tk/sample/tkcombobox.rb: new sample script * ext/tcltklib/tcltklib.c: add native thread check git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tcltklib/tcltklib.c: fix (en-bugged at 2003/11/07)nagai2003-11-141-3/+1
| | | | | | | * ext/tk/lib/tkdialog.rb: TkDialog.new accepts the parent widget [ruby-talk:85066] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tcltklib/tcltklib.c: To fix 'pthread-enabled Tcl/Tk' problem,nagai2003-11-071-63/+221
| | | | | | | | TclTkIp#_eval calls Tcl_Eval() on the mainloop thread only (queueing a handler to the EventQueue). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tcltklib/tcltklib.c (CONST84): define CONST84 when it is notusa2003-10-291-50/+26
| | | | | | | | | | | | | defined and TCL_MAJOR_VERSION >= 8. * ext/tcltklib/tcltklib.c (VwaitVarProc, WaitVariableProc, rb_threadVwaitProc): use CONST84 instead of CONST. * ext/tcltklib/tcltklib.c (ip_rbTkWaitCommand, ip_rb_threadTkWaitCommand): use CONST84 always. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tcltklib/tcltklib.c (VwaitVarProc, ip_rbVwaitObjCmd,usa2003-10-281-4/+32
| | | | | | | | | | | WaitVariableProc, WaitVisibilityProc, WaitWindowProc, ip_rbTkWaitObjCmd, ip_rbTkWaitCommand, rb_threadVwaitProc, rb_threadWaitVisibilityProc, rb_threadWaitWindowProc, ip_rb_threadVwaitObjCmd, ip_rb_threadTkWaitObjCmd): prototype; avoid VC++ warnings. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* bug fix on Win : hang-up when calling 'exit' in the Tk callbacknagai2003-10-261-1/+5
| | | | | | | procedure. [ruby-list:38656] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/tcltklib/tcltklib.c:nagai2003-10-141-35/+780
| | | | | | | | | | | | | | | | | | | | | | | * replace Tcl/Tk's vwait and tkwait to switch on threads smoothly and avoid seg-fault. * add TclTkIp._thread_vwait and _thread_tkwait for waiting on a thread. ( Because Tcl/Tk's vwait and tkwait command wait on a eventloop. ) ext/tk/lib/multi-tk.rb: * support TclTkIp._thread_vwait and _thread_tkwait ext/tk/lib/tk.rb: * now, TkVariable#wait has 2 arguments. If 1st argument is true, waits on a thread. If false, waits on an eventloop. If 2nd argument is true, checks existence of rootwidgets. If false, doesn't. Default is wait(true, false). * add TkVariable#tkwait(arg) which is equal to TkVariable#wait(arg, true) * wait_visibility and wait_destroy have an argument for waiting on a thread or an eventloop. * improve of accessing Tcl/Tk's special variables ext/tk/lib/tkafter.rb: * support 'wait on a thread' and 'wait on an eventloop' git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tcltklib.c (lib_mainloop_core): fixed signal-trap bugnagai2003-09-071-11/+25
| | | | | | | | * multi-tk.rb, tk.rb, tkafter.rb, tkcanvas.rb, tkfont.rb, tktext.rb, tkvirtevent.rb : Ruby/Tk works at $SAFE == 4 git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tcltklib/tcltklib.c (ip_invoke): fixed bug on passing a exceptionnagai2003-09-021-1/+5
| | | | | | | | * ext/tk/lib/{tk.rb, tkcanvas.rb, tkfont.rb, tktext.rb} : bug fix and improvement of font control git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * doc/ChangeLog-1.8.0: add changes of Ruby/Tknagai2003-08-291-45/+259
| | | | | | | | | | | | | | | | | | | | | | * ext/tcltklib/tcltklib.c : some methods have no effect if on slave-IP * ext/tcltklib/tcltklib.c : can create a interpreter without Tk * ext/tcltklib/tcltklib.c : bug fix on handling exceptions * ext/tcltklib/MANUAL.euc : modify * ext/tk/lib/tk.rb : freeze some core modules * ext/tk/lib/multi-tk.rb : more secure * ext/tk/lib/tk.rb: TkVariable.new(array) --> treat the array as the Tk's list * ext/tk/lib/tk.rb: improve accessibility of TkVariable object * ext/tk/lib/tk.rb, ext/tk/lib/tkfont.rb, ext/tk/lib/tkcanvas.rb, ext/tk/lib/tktext.rb : fix bug of font handling * ext/tk/lib/tkfont.rb TkFont.new() accepts compound fonts * process.c: bug fix * process.c: add rb_secure(2) to methods of Process::{UID,GID,Sys} * process.c: deny handling IDs during evaluating the block given to the Process::{UID,GID}.switch method git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * additional check of Tk interpreters' status for a little more safetynagai2003-07-301-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bug fixnagai2003-07-291-32/+61
| | | | | | | | * change mainloop_abort_on_no_widget_cmd => mainloop_abort_on_exception ( to avoid thread timing trouble on accessing destroyed widgets ) git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tcltklib.c : use RTEST()nagai2003-07-291-4/+5
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tcltklib.c : bug fixnagai2003-07-291-24/+59
| | | | | | | | multi-tk.rb : bug fix and pack options are pssed to the safeTk container sample/safe-tk.rb : add example for pack options of safeTk container git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tcltklib.c : *bug fixnagai2003-07-281-4/+3
| | | | | | | | | multi-tk.rb : *bug fix *add methods depend on Tcl's 'interp' command *suppot to control safe-level of each interpreter git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* multi-tk.rb : (new) library to support multiple Tk interpreters (high level)nagai2003-07-271-134/+214
| | | | | | | | | | | tcltklib.c : add some methods to support multiple interpreters (low level) MANUAL.euc : modify descriptions tcltklib/sample/safeTk.rb : (new) sample : how to use safeTk interpreter tk/sample/safe-tk.rb : (new) sample : how to use multi-tk.rb tk.rb, tkafter.rb : bug fix and add feature to supprt multi-tk git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tcltklib.c : add TclTkIp#create_slave , TclTkIp#_make_safe and TclTkIp#safe?nagai2003-07-251-9/+74
| | | | | | | | | MANUAL.euc : modify descriptions tk.rb : bug fix [ruby-talk:76980] and modify to support multi Tk IPs tkafter.rb : modify to support multi Tk IPs git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gcc -Wall clean-up.matz2003-07-241-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tcltklib/tcltklib.c (ip_init): need at least one statement after label.usa2003-07-231-0/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c : unify indentationnagai2003-07-231-3/+24
| | | | | | | | | | | | configure.in : add --enable-setreuid option tcltklib.c : TclTkIp.new accepts 'ip-name' and 'options' ( e.g. TclTkIp.new('FOO', '-geometry 500x200 -use 0x2200009') ) tk.rb : support arguments of TclTkIp.new ( see TkCore::IP_NAME, TkCore::IP_OPTS ) tk*.rb : preparations for multi-Tk interpreter support git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tk.rb :nagai2003-07-011-1/+1
| | | | | | | | * TkWindow include TkWinfo * treat unknown widget classes as subclasses of TkWindow git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Ruby/Tk libraries except tk.rb :nagai2003-06-211-1/+19
| | | | | | | | | | | | | | | | | | | | | * remove direct-accesses to a TkComm::INTERP * remove direct-accesses to a TkComm::INITIALIZE_TARGETS * use TkINTERP_SETUP_SCRIPTS constant for setting up the interpreter tcltklib.c : * support to create a safe interpreter with safe-Tk ( Tk8.x ) you can test it by the following --------------------------------------------- require 'tk' safeip = Tk::INTERP._eval('::safe::interpCreate') Tk::INTERP._eval('::safe::loadTk ' + safeip) Tk::INTERP._eval(safeip + ' eval button .b -text SlaveIP -command exit') Tk::INTERP._eval(safeip + ' eval pack .b') Tk.mainloop --------------------------------------------- git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tcltklib.c :nagai2003-06-201-4/+8
| | | | | | | * Tk interpreter returns TAINTED strings. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tcltklib.c :nagai2003-06-191-3/+39
| | | | | | | | | | | | | | | | | | | | | | | | | * lib_do_one_event() : change default value of the argument * lib_do_one_event() : returns true/false * add TclTkLib::EventFlag::NONE ( == 0 ) * add set_no_event_wait() and get_no_event_wait() * modify MANUAL.euc and README.euc tk.rb : * change default value of TkCore.do_one_event argument * add TkCore.set_no_event_wait(wait) and TkCore.get_no_event_wait * add Tk.exit ( == destroy root widget ) tkafter.rb : * rename TkAfter => TkTimer ( TkAfter is an alias name now. ) * set_callback returns self * continue() raises an exception, if already running or no procedure. * skip() raises an exception, if not running. sample/tktimer2.rb * new sample for TkTimer class. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix : 100% CPU problem of Tk.mainloopnagai2003-06-091-6/+27
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* renew Tk.mainloopnagai2003-06-091-24/+66
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (ruby_finalize): turn off ruby_debug flag before callingmatz2003-05-231-4/+2
| | | | | | | | | | at_exit procs and finalizers. (ruby-bugs-ja:PR473) * ext/tcltklib/tcltklib.c (lib_mainloop_core): OK to block if there's no other thread. (ruby-bugs:PR#861) git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (ary_alloc), dir.c (dir_s_alloc), eval.c (thgroup_s_alloc),usa2002-12-211-0/+1
| | | | | | | | | | | | | | | file.c (rb_stat_s_alloc), hash.c (hash_alloc), io.c (io_alloc), object.c (rb_module_s_alloc, rb_class_allocate_instance), re.c (match_alloc, rb_reg_s_alloc), string.c (str_alloc), time.c (time_s_alloc), ext/digest/digest.c (rb_digest_base_alloc), ext/tcltklib/tcltklib.c (ip_alloc), ext/win32ole/win32ole.c (fole_s_allocate, fev_s_allocate) : add prototype to get rid of VC++ warnings. * ext/sdbm/init.c (fsdbm_alloc): allocator takes only one argument. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/curses/curses.c, ext/digest/digest.c, ext/dl/handle.c,nobu2002-12-201-1/+1
| | | | | | | | | | ext/dl/ptr.c, ext/dl/sym.c, ext/gdbm/gdbm.c, ext/iconv/iconv.c, ext/stringio/stringio.c, ext/strscan/strscan.c, ext/tcltklib/tcltklib.c, ext/win32ole/win32ole.c: use rb_define_alloc_func(). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bcc32/mkexports.rb: to work on cygwin via telnet.nobu2002-10-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ruby-win32:358] * ext/tcltklib/tcltklib.c (ip_invoke): requires command name argument. [ruby-dev:18438] * eval.c (ruby_init, ruby_options): Init_stack() with local location. (ruby-bugs-ja:PR#277) * eval.c (rb_call0): disable trace call. [ruby-dev:18074] * eval.c (eval, rb_load): enable trace call. [ruby-dev:18074] * eval.c (rb_f_require): set source file name for extension libraries. [ruby-dev:18445] * ruby.c (translate_char): translate a character in a string; DOSISH only. [ruby-dev:18274] * ruby.c (ruby_init_loadpath): added argv[0] handling under Human68K. [ruby-dev:18274] * ruby.c (proc_options): translate directory separator in $0 to '/'. [ruby-dev:18274] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (appendline): forget to terminate with nul.matz2002-09-251-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * eval.c (ruby_run): should set toplevel visibility again here. * eval.c (rb_eval): should not rely on ruby_class == rb_cObject check. Besides allow implicit publicity for attribute set methods. * parse.y (primary): need not to check class_nest, just set whether method is an attrset or not. * string.c (rb_str_each_line): p might be at the top of the string. * class.c (rb_make_metaclass): class of metaclass should be metaclass of superclass, unless class itself is a metaclass; class of metaclass of metaclass should point back to self. eh, confusing, isn't it. * class.c (rb_singleton_class): check if its class is singleton AND attached to self. * eval.c (rb_eval): should define class/module under ruby_cbase. * eval.c (rb_eval): should set class/module path based on ruby_cbase, not ruby_class. * eval.c (module_setup): use ruby_cbase instead of ruby_class. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tcltklib/tcltklib.c: prototype; invoke_queue_handler() to avoidusa2002-09-081-0/+1
| | | | | | | VC++ warning. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/Win32API/Win32API.c (Win32API_Call): RSTRING()->ptr may benobu2002-08-301-0/+2
| | | | | | | | | | | | | | | | | NULL. * ext/nkf/nkf.c (rb_nkf_guess): ditto. * ext/readline/readline.c (readline_s_set_completion_append_character): ditto. * ext/socket/socket.c (sock_s_getaddrinfo, sock_s_getnameinfo): ditto. * ext/tcltklib/tcltklib.c (ip_toUTF8, ip_fromUTF8): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (sort_2): *a - *b may overflow.matz2002-08-191-19/+37
| | | | | | | | | | | | | | | | * array.c (ary_new): len*sizeof(VALUE) may be a positive value. * array.c (rb_ary_initialize): ditto. * object.c (rb_class_allocate_instance): move singleton class check from rb_obj_alloc(). * re.c (rb_reg_initialize): should not modify frozen Regexp. * ext/tcltklib/tcltklib.c (ip_init): allocation framework. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tcltklib.c:nagai2002-06-051-26/+42
| | | | | | | Stop the running zombi-eventloop when mainloop_watchdog is killed. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tcltklib/tcltklib.c (Init_tcltklib): moved the definition before actions.eban2002-06-041-6/+7
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tkfont.rb: Fix bugs on TkFont.init_widget_font for Tk8.x.nagai2002-06-041-59/+351
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tkafter.rb: Add self to 1st argument of interval- and loop-proc TkAfter#current_interval returns an interval (sleep) time value TkAfter#current_args returns an array of arguments TkAfter#return_value returns a return value of last loop-proc e.g. TkAfter.new( proc{|obj| 500 - obj.current_interval}, 10, [proc{|obj| p obj.current_args}, 'proc', 1], proc{|obj| p obj.current_args; ['return', 2]}, [proc{|obj| p obj.return_value p ['proc', obj.current_args[0].call(obj.return_value[1], obj.current_args[1])]}, proc{|*args| args[0] + args[1]}, 1], proc{p ['proc', 4]} ).start(100) * tk*.rb: Allow to use Symbols for parameters. Allow new notation of constructor (also allow old notation). e.g. TkFrame.new('classname'=>'User'){|base| pack f = TkFrame.new(base, :classname=>'ButtonFrame').pack TkButton.new( :parent => f, :text => 'Quit', :command => proc{exit} ).pack( :fill => :x, :pady => 2 ) } * tkcanvas.rb: (TkcItem) Add 'coords' parameter to the canvas item constructor (for new notation of constructor). e.g. c = TkCanvas.new.pack l = TkcLine.new(c, :coords=>[[0,0], [100,100]]) * tcltklib.c: New 'mainloop' and 'mainloop_watchdog'. The priority of their event-loop can be controlled. They accept an optional argument. If it false, they don't exit although the root widget is destroyed. This function is sometimes useful, if it is used with 'restart'. 'mainloop' can't treat Thread#join/value in a callback routine. (e.g. TkButton.new(:command=>proc{p Thread.new{button.invoke}.value}) ) 'mainloop_watchdog' can treat them, but watchdog thread is always running (so, a little heavier than 'mainloop'). If the purpose of using Thread#join/value is to do something under some safe-level, please use Proc object. (e.g. :command=>proc{$SAFE=1;proc{$SAFE=2;button.invoke}.call;p $SAFE}) * tk.rb: Support functions of new 'mainloop' and 'mainloop_watchdog'. * tk.rb: (Tk.restart) Add 'app-name' paramater and 'use' parameter. 'app-name' specifies the name and the resource class of the application. If 'app-name' is specified to 'xxx', the application class on the resource database is set to 'Xxx' and the application name is changed by the same rule of Tk.appname method. 'use' specifies the main window for embedding the root widget instead of generating a new window. * tk.rb: Add new parameter 'widgetname' to the widget constructor to support effective use of Resource Database. For example, the resource 'Xxx*quit.text: QUIT' can set the text of the button generated by the following code. e.g. Tk.restart('Xxx') TkButton.new(nil, 'widgetname'=>'quit', 'command'=>proc{exit}).pack Tk.mainloop * tk.rb: TkOption::get always returns a tainted string. Add TkOption::new_proc_class. It generates a class to import procedures defined on the resource database. For example, there is a following resource file. ----< resource-test >------------ *CMD.foo: {|*args| p [$SAFE, :foo, args]} *CMD.XXX.bar: {|*args| p [$SAFE, :bar, args]} *Button.command: ruby {p self; p $SAFE; TkOption::CMD::XXX.bar(1,2,3)} --------------------------------- The following code is a sample of use of the resource file. e.g. require 'tk' TkOption.readfile 'resource-test' p TkOption.new_proc_class(:CMD, [:foo], 1) p TkOption.new_proc_class(:XXX, [:bar], 2, false, TkOption::CMD) TkButton.new(:text=>'test').pack Tk.mainloop git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/racc/cparse/cparse.c: prototype; call_scaniter().usa2002-04-011-0/+7
| | | | | | | | | * ext/sdbm/init.c: prototype; each_pair(). * ext/tcltklib/tcltklib.c: prototypes; _timer_for_tcl() and ip_ruby(), Nobu's patch at [ruby-dev:14483]. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (cvar_cbase): utility function to find innermost nonmatz2002-03-081-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | singleton cbase. * eval.c (is_defined): adopt new cvar behavior. * eval.c (rb_eval): ditto. * eval.c (assign): ditto. * class.c (rb_mod_clone): should not call rb_obj_clone(), since Module does not provide "allocate". * class.c (rb_singleton_class): should crate new singleton class if obj is a class or module and attached object is different, which means metaclass of singleton class is sought. * time.c (time_s_alloc): now follows allocation framework. * eval.c (rb_eval): should initialize outer class variables from methods in singleton class definitions. * eval.c (assign): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (str_extend): shuould allow interpolation of $-x.matz2001-10-291-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * variable.c (rb_cvar_set): empty iv_tbl may cause infinite loop. * variable.c (rb_cvar_get): ditto. * variable.c (cvar_override_check): ditto. * bignum.c (rb_big_eq): convert Bignum to Float, instead of reverse. * time.c (time_localtime): getting tm should not be prohibited for frozen time objects. * time.c (time_gmtime): ditto. * version.c (Init_version): freeze RUBY_VERSION, RUBY_RELEASE_DATE, and RUBY_PLATFORM. * file.c (Init_File): freeze File::SEPARATOR, ALT_SEPARATOR and PATH_SEPARATOR. * file.c (rb_stat_cmp): should check operand type before calling get_stat(). * eval.c (rb_eval_cmd): should not invoke "call" with a block on any occasion. * numeric.c (fix_aref): idx may be a Bignum. * numeric.c (num_remainder): a bug in Numeric#remainder. * eval.c (rb_exec_end_proc): END might be called within END block. * class.c (rb_mod_clone): should not copy class name, since clone should remain anonymous. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (bigdivrem): access boundary bug.matz2001-05-111-2/+2
| | | | | | | | | | | | | | | | | | | * marshal.c (w_object): prohibit dumping out singleton classes. * object.c (rb_mod_to_s): distinguish singleton classes. * variable.c (rb_class2name): it's ok to reveal NilClass, TrueClass, FalseClass. * eval.c (rb_yield_0): preserve and restore ruby_cref as well. * eval.c (is_defined): core dumped during instance_eval for special constants. * eval.c (rb_eval): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* forgot some checkins.matz2001-05-061-16/+23
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e