Commit graph

256 commits

Author SHA1 Message Date
nagai
90e087b697 add TkRoot.destroy
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-25 22:36:50 +00:00
nagai
477f730aa4 bug fix
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-21 04:46:21 +00:00
nagai
b860656cb0 add some documents
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-17 07:59:32 +00:00
matz
8ef5da3be1 consistent parentheses in assignment RHS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-16 17:47:19 +00:00
nagai
653ad6fd4b (bug fix) instance variable @frame was used without initializing on
TkComposite module


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-16 15:14:41 +00:00
nagai
6559430fb7 If $DEBUG == true and some exception is caused in a callback
operation, Ruby/Tk shows a (verbose) backtrace information on
the callback process.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-16 14:53:47 +00:00
nagai
98a3a9db97 Add Tk::EncodedString and Tk::UTF8_String class to support characters
using the \uXXXX escape to the UNICODE string.
sample/{demos-en,demos-jp}/unicodeout.rb are samples of Tk::UTF8_String.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-16 07:45:51 +00:00
nagai
b4337be29f ext/tk/lib/tk.rb:
* fixed trouble on auto-load Tcl commands (enbug on the last commit).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-14 18:54:21 +00:00
nagai
382b4ae9a3 ext/tcltklib/tcltklib.c:
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@4762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-14 15:25:45 +00:00
nagai
8951a69a16 * multi-tk.rb: modify security check at creating a new interpreter
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-08 13:16:57 +00:00
nagai
865ff7fb4f * tcltklib.c (lib_mainloop_core): fixed signal-trap bug
* multi-tk.rb, tk.rb, tkafter.rb, tkcanvas.rb, tkfont.rb, tktext.rb,
  tkvirtevent.rb : Ruby/Tk works at $SAFE == 4


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-07 07:10:44 +00:00
nagai
9388ed284d * ext/tcltklib/tcltklib.c (ip_invoke): fixed bug on passing a exception
* ext/tk/lib/{tk.rb, tkcanvas.rb, tkfont.rb, tktext.rb} :
  bug fix and improvement of font control


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-02 05:04:30 +00:00
matz
b6feeb2945 * parse.y (aref_args): forgot to call NEW_SPLAT(). reported by
Dave Butcher.

* eval.c (Init_Thread): protect thgroup_default.  suggested by Guy
  Decoux in [ruby-talk:80623]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-01 09:02:43 +00:00
nagai
24ff3f4448 * doc/ChangeLog-1.8.0: add changes of Ruby/Tk
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@4456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-29 08:34:14 +00:00
nagai
a09c02a600 * ready to use 'validatecommand' option of TkEntry/TkSpinbox widget
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-03 22:07:47 +00:00
nagai
ebe22aafa2 * typo bug
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-03 10:53:09 +00:00
nagai
d34dbd1118 * (bug fix) bug on Tk object ID management
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-03 08:53:06 +00:00
nagai
6c288fe84a * sorry. fixed commit miss
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-03 06:00:54 +00:00
nagai
f820839f17 * add or modify some widget demo scripts
* (bug fix) TkGrid failed to treat RELATIVE PLACEMENT


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-02 21:39:23 +00:00
matz
2c225e77e0 * numeric.c (flo_to_s): get rid of buffer overflow.
* io.c (appendline): clearerr(3) before raising exception, since
  exception may be captured by rescue. [ruby-talk:77794]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-02 18:05:02 +00:00
nagai
6277a66deb * (bug fix) forgot to entry a widget class name of 'labelframe' widget
* add demo-scripts to the JP/EN widget demos


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-02 09:58:13 +00:00
nagai
4c3328f547 * (bug fix) TkEntry#delete
* (bug fix) some widget demos
* support <TkVariable object> == <Symbol>
  ( "coerce TkVariable" add to the TODO list :-) )
* freeze some object for security reason


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-02 05:04:30 +00:00
nagai
c49c8a942e * bug fix : forget to eval given block to TkRoot.new method
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-01 03:53:38 +00:00
nagai
bc8b42fc1e * bug fix : wrong resource file format (resource.{en,jp})
* add Tk::Encoding.{encoding_convertfrom, encoding_convertto}
* add TkOptionDB.read_with_encoding to read non-utf8 resource file


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-31 23:04:45 +00:00
nagai
75362fbd47 * (IMPORTANT BUG FIX) scan of event keywords doesn't work on recent
versions of Tck/Tk
* (bug fix) initialize error of instance variable on TkComposite
* (bug fix) initialize error on encoding-system on MultiTkIp
* (bug fix) trouble on destroying widgets
* (new) add JP and EN version of Ruby/Tk widget demos


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-31 20:52:40 +00:00
nagai
7126624b4e * wrap the command-proc of TkScale : pass the numeric object to the proc
* better support for widgets created on Tk interpreter (without Ruby)
* a little more stable on Multiple Tk interpreters running


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-31 07:59:18 +00:00
nagai
8b97353bf2 * MultiTkIp.new_* accept a block to eval under the new interpreter
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-30 07:23:14 +00:00
nagai
4e0bb56f21 * bug fix
* fix lack of methods for TkEntry
* fix reference of uninitialized variables


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-30 07:15:00 +00:00
nagai
b873f41c1e * additional check of Tk interpreters' status for a little more safety
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-30 04:36:29 +00:00
nagai
7d1de7464b * fix a bug of the procedure for 'Delete' button on the safe-Tk frmae
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-29 16:20:36 +00:00
nagai
12d3662b39 * change default mode of mainloop_abort_on_exception on multi-tk.rb
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-29 15:45:51 +00:00
nagai
a3dbb3c822 * bug fix
* change mainloop_abort_on_no_widget_cmd => mainloop_abort_on_exception
  ( to avoid thread timing trouble on accessing destroyed widgets )


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-29 15:39:59 +00:00
nagai
7544bfc130 * bug fix ( tested with Ruby/Tk widget demo )
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-29 08:05:30 +00:00
nagai
df33012935 tcltklib.c : bug fix
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@4200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-29 01:24:32 +00:00
nagai
4158a73ee4 tcltklib.c : *bug fix
multi-tk.rb : *bug fix
              *add methods depend on Tcl's 'interp' command
              *suppot to control safe-level of each interpreter


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-28 06:10:13 +00:00
nagai
b388591ab7 multi-tk.rb : (new) library to support multiple Tk interpreters (high level)
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@4186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-27 19:35:06 +00:00
matz
56408f7abc * ext/tk/lib/tk.rb (TkCore::chooseDirectory): back up wrongly
removed method.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-26 05:27:42 +00:00
matz
34ca2ab058 * variable.c (rb_mod_const_missing): "const_missing" should not
appear in the caller(); add call frame adjustment.

* eval.c (rb_method_missing): simplify call frame adjustment.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-26 02:26:08 +00:00
nagai
cc66b1fae4 tcltklib.c : add TclTkIp#create_slave , TclTkIp#_make_safe and TclTkIp#safe?
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@4163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-25 16:43:03 +00:00
nagai
fd46a1da0a process.c : unify indentation
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@4127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-23 16:07:35 +00:00
nagai
9a27cf9499 tk.rb :
* recover and fix typo : Tk.chooseDirectory (Tk8.4 feature)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-17 06:40:28 +00:00
matz
46bf621737 * eval.c (ruby_init): set ruby_running to true after
initialization.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-17 05:23:54 +00:00
nagai
7a89869340 tk.rb :
* not create a Tcl/Tk interpreter if already defined TkCore::INTERP
  * bugfix on TkWindow#configure


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-11 07:17:46 +00:00
nagai
28f8fc7f88 tk.rb :
* TkWindow include TkWinfo
  * treat unknown widget classes as subclasses of TkWindow


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-01 22:08:19 +00:00
nagai
79edd1af70 tk.rb :
* add and modify :
      TkWidget.database_class, TkWidget.database_classname,
      TkWidget#database_class, TkWidget#database_classname
  * instances of a subclass of TkToplevel or TkFrame are
    created with ":class=>subclass" option as default.
    For example, the followings create similar objects.
      (1) TkFrame.new(:class=>'XXX')
      (2) class XXX < TkFrame; end; XXX.new

sample/tkoptdb.rb :
  * add new part of sample script


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-25 14:40:32 +00:00
nagai
9a47a04607 tkcanvas.rb :
* Although requiring manual control of GC, memory eating problem
    of TkCanvas Items is fixed. Probably, a time when GC should run
    is only after removing many canvas items. GC's cost is large
    and the man who knows proper timing to start GC is the man who
    create the script. So, Ruby/Tk doesn't start GC automatically.

tktext.rb :
  * add some methods and bug fix

tk.rb :
  * add widget destroy hook binding to TkBindTag::ALL


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-25 05:49:10 +00:00
nagai
17e1936d8b tk.rb :
* TkToplevel, TkFrame, TkPanedwindow, TkOptionDB : bug fix
  * TkOptionDB : make it more secure to use procs defined on resourceDB

sample/tkoptdb.rb, sample/resource.ja, sample/resource.en :
  * sample script how to use TkOptionDB.
    resource.ja and resource.en are samples of resource definition file
    which are read by tkoptdb.rb.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-24 16:46:07 +00:00
nagai
65e7ebb14f tk.rb :
* TkRoot and TkToplevel : bug fix


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-23 14:22:44 +00:00
nagai
f34b15e5d2 tk.rb :
* TkRoot.new and TkToplevel.new accept Wm commands as elements
    of a hash argument.
    e.g. TkRoot.new(:title=>'App Title')
         TkToplevel.new(:parent=>Tk.root, :title=>'XXX', :class=>'ZZZ')
  * TkMenu :: add some methods
  * TkOptionMenubutton :: bug fix

sample/tktimer2.rb
  * add comments about the usage of a TkTimer object.

sample/tkmenubutton.rb
  * sample of TkMenubutton and TkOptionMenubutton


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-22 16:17:02 +00:00
nagai
07cff4bd71 tk.rb :
* TkRoot.new and TkToplevel.new accept Wm commands as elements
    of a hash argument.
    e.g. TkRoot.new(:title=>'App Title')
         TkToplevel.new(:parent=>Tk.root, :title=>'XXX', :class=>'ZZZ')

sample/tktimer2.rb
  * add comments about the usage of a TkTimer object.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-21 12:55:17 +00:00