Commit graph

101 commits

Author SHA1 Message Date
nagai
342aba0b84 * ext/tk/lib/tk.rb: add new methods (TkScrollbar#assign, assign_list)
* ext/tk/sample/tkmultilistframe.rb: use TkScrollbar#assign method


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-20 15:15:51 +00:00
nagai
dcd30a1236 * condition bug of if statement on {pack,grid}_propagate methods
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-16 04:27:15 +00:00
nagai
edc03a2912 * overrided instance methods, which are private methods on the super
class, are changed to 'private'


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-09 14:38:15 +00:00
nagai
a7c382223c * 'format'==>'Kernel.format' (avoid override trouble)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-03 04:55:07 +00:00
nagai
53dd83eebd * ext/tk/lib/tk.rb: bug fix [ruby-talk:86746]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-30 08:41:15 +00:00
nagai
615a54e77d * ext/tk/lib/tk.rb: add Tk.grab_release and fix bug of TkComposite
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@5007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 13:52:48 +00:00
nagai
cf971d47b9 * ext/tk/lib/tkentry.rb: fix the encoding trouble of percent
substitutions on validatecommand option of TkEntry widget
* ext/tk/lib/tk.rb: fix bug on {pack|grid}_propagate() method


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-21 07:49:11 +00:00
nagai
906d408e7c * ext/tcltklib/tcltklib.c: fix (en-bugged at 2003/11/07)
* ext/tk/lib/tkdialog.rb: TkDialog.new accepts the parent widget [ruby-talk:85066]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-14 04:25:11 +00:00
nagai
c90fab98a2 * ext/tk/lib/tk.rb,multi-tk.rb: stop freezing some classes
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-12 21:11:40 +00:00
nagai
0fd9439894 * ext/tk/lib/tk.rb: raise an exception when creating TkWindow
object, because TkWindow class is an abstract class.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-11 01:45:06 +00:00
nagai
ea03c3fc2c configure.in, eval.c, signal.c: : add '--with-pthread-ext' option
to fix the pthread trouble on 'tcltklib'
ext/tcltklib/README.1st: add the description of '--with-pthread-ext'
ext/tk/lib/tktext.rb : add TkText#text_copy, text_cut, text_paste to
        support Tcl/Tk8.4's tk_textCopy, tk_textCut, tk_textPaste
ext/tk/lib/tk.rb : add TkMenu#set_focus support Tcl/Tk's tk_menuSetFocus


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-05 14:00:11 +00:00
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
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
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
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
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
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
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