diff options
Diffstat (limited to 'ext/tcltklib')
-rw-r--r-- | ext/tcltklib/MANUAL.euc | 166 | ||||
-rw-r--r-- | ext/tcltklib/README.euc | 26 | ||||
-rw-r--r-- | ext/tcltklib/tcltklib.c | 42 |
3 files changed, 231 insertions, 3 deletions
diff --git a/ext/tcltklib/MANUAL.euc b/ext/tcltklib/MANUAL.euc index 789e85a9de..757cd40a4d 100644 --- a/ext/tcltklib/MANUAL.euc +++ b/ext/tcltklib/MANUAL.euc @@ -1,4 +1,20 @@ (tof) + 2003/06/19 Hidetoshi NAGAI + +�ܥɥ�����ȤˤϸŤ� tcltk �饤�֥�ꡤtcltklib �饤�֥������� +���ޤޤ�Ƥ��ޤ��������ε������ƤϸŤ���ΤȤʤäƤ��ޤ��� + +tcltk �饤�֥���tcltk.rb�ˤϸ��ߤǤϥ��ƥʥ����¾�Ԥ��� +���ʤ����ᡤ�Ť��ɥ�����Ȥ����������Τޤ�ͭ���Ǥ���������Ф��� +tcltklib �饤�֥��ˤĤ��Ƥϡ����ߤ� Ruby/Tk��tk.rb �ʲ��Υ饤�֥� +�귲�ˤ��Ư�����뤿����濴�Ȥ��ƥ��ƥʥ���Ƥ��뤿�ᡤ���� +�㤤�������Ƥ��ޤ��� + +�����ǡ��ޤ��Ť�����ʸ������塤���ߤ� tcltklib �饤�֥��ˤ� +���Ƥ�������ä��ޤ��� + +�ʲ����饤�֥��θŤ�����ʸ��Ǥ��� +============================================================== MANUAL.euc Sep. 19, 1997 Y. Shigehiro @@ -121,4 +137,154 @@ require "tcltklib" �����, �ʲ��Υ⥸�塼��, ���饹�����Ѳ�ǽ�Ǥ�. ����: ̵�� ����� (Fixnum): ľ���� Tcl_Eval() ���֤�����. +============================================================== + +�ʲ����ܥɥ�����Ⱥ��������Ǥ� tcltklib �饤�֥��������Ǥ��� +============================================================== +�⥸�塼�� TclTkLib + : �ġ��� Tcl/Tk �����ץ�˰�¸���ʤ����� ( == ���٥�ȥ롼 + : �פ˴ؤ������ ) ��ƤӽФ���åɤ���������⥸�塼�롥 + + �⥸�塼�� TclTkLib::EventFlag + : do_one_event ��ƤӽФ��ݤν����оݥ��٥�Ȥ���ꤹ�뤿��� + : �ե饰 ( WINDOW|DONT_WAIT �Ȥ����褦�˥ӥåȱ黻�Ҥ�Ϣ�뤷�� + : ���� ) ������Ȥ�����������⥸�塼�롥�ʲ���������ޤޤ�롥 + + ��� NONE + : �����ʤ����Υ��٥�Ȥ�����оݤȤ��ʤ� ( == 0 ) + + ��� WINDOW + : window ���٥�Ȥ�����оݤȤ��� + + ��� FILE + : file ���٥�Ȥ�����оݤȤ��� + + ��� TIMER + : timer ���٥�Ȥ�����оݤȤ��� + + ��� IDLE + : �����ɥ�롼���� ( ������ʤɡ�¾�μ���Υ��٥�Ȥ�ȯ�� + : ���Ƥ��ʤ��Ȥ��˹Ԥ������ ) ������оݤȤ��� + + ��� ALL + : ���٤Ƥμ���Υ��٥�Ȥ�����оݤȤ��� + : WINDOW|FILE|TIMER|IDLE ��Ʊ�� + + ��� DONT_WAIT + : �����оݥ��٥�Ȥ�¸�ߤ��ʤ����ˡ����٥��ȯ�����Ԥ��� + : �� do_one_event ��λ ( false ���֤� ) ���� + + �⥸�塼���å� + mainloop(check_root = true) + : ���٥�ȥ롼�פ�ư���롥check_root �� true �Ǥ���С� + : root widget ��¸�ߤ���¤ꡤ���Υ�åɤϽ�λ���ʤ��� + : check_root �� false �ξ��ϡ�root widget �����Ǥ��Ƥ� + : ���Υ�åɤϽ�λ���ʤ� ( root widget �����Ǥ��Ƥ⡤ + : WINDOW �ʳ��Υ��٥�Ȥ�ȯ�������뤿�� )����λ�ˤϡ����� + : �����Ư���ݤ� ( ����åɤ���Ѥ���ʤ� ) ��ɬ�ס� + + mainloop_watchdog(check_root = true) + : �̾�Υ��٥�ȥ롼�פǤϡ����٥�Ƚ��������Ƥˤ�äƤ� + : �ǥåɥ��å��������������ǽ�������� (�㤨�Х��٥�Ȥ� + : �Ф��륳����Хå�������� widget �������ν�λ�� + : �ԤĤʤ�)�����Υ�åɤϡ����������ǥåɥ��å������ + : �뤿��δƻ륹��å��դ��ǥ��٥�ȥ롼�פ�ư���� + : ( �ƻ륹��åɤ�����������˥��٥�ȥ롼�פ�¹Ԥ��� )�� + : �����ΰ�̣�� mainloop ��Ʊ���Ǥ��롥 + + do_one_event(flag = TclTkLib::EventFlag::ALL) + : �����Ԥ��Υ��٥�� 1 �Ĥ�¹Ԥ��롥 + : ���٥�Ȥ������������ true ���֤��� + : �ե饰�� DONT_WAIT ����ꤷ�Ƥ��ʤ���硤�ե饰�ǽ����� + : �ݤȤʤäƤ������Υ��٥�Ȥ�ȯ������ޤ��Ԥ�³���롥 + : DONT_WAIT ����ꤷ�Ƥ�����硤�����оݥ��٥�Ȥ��ʤ��Ƥ� + : �����˽�λ�� false ���֤��� + + set_eventloop_tick(timer_tick) + : ���٥�ȥ롼�פ�Ʊ�����̥���åɤ���Ư���Ƥ�����ˡ��� + : �֤˴�Ť�������Ū�ʥ���åɥ����å���ɤ����٤����� + : ( ���ֳִ� ) ��ȯ�������뤫��ߥ���ñ�̤������ͤǻ��ꤹ�롥 + : 0 ����ꤹ��ȡ����ζ���Ū�ʥ����å��ϹԤ��ʤ��� + : ɸ��Ǥ� 0 �����ꤵ��Ƥ��ꡤ���٥�Ƚ������˴�Ť������� + : ���������Ԥ��� ( see set_eventloop_weight )�� + : ����������Ư���Ƥ��륹��åɤ����٥�ȥ롼�פ����ξ�硤 + : timer_tick �� 0 �����ꤹ�뤳�ȤϤǤ��ʤ����⤷���ꤵ��� + : �����顤200 ms ( see NO_THREAD_INTERRUPT_TIME ) �˼�ư�� + : �ꤵ��롥 + : �ܺ٤�������ά����������� CPU �ѥ�����Ĥİ����� + : ���ꤷ��ư���¸����뤿��˼����������ͤǤ��롥 + + get_eventloop_tick + : timer_tick �θ����ͤ��֤��� + + set_no_event_wait(no_event_wait) + : ʣ���Υ���åɤ���Ư���Ƥ�����ǡ������Ԥ����٥�Ȥ��� + : ��¸�ߤ��ʤ��ä��ݤ� sleep ���֤��������Ĺ����ꤹ�롥 + : ��Ư����åɤ����٥�ȥ롼�פ����ξ��ˤϰ�̣��ʤ��ʤ��� + : �ǥե���Ȥ��ͤ� 20 (ms) + + get_no_event_wait + : no_event_wait �θ����ͤ��֤��� + + set_eventloop_weight(loop_max, no_event_tick) + : ʣ���Υ���åɤ���Ư���Ƥ���ݤ� Ruby/Tk �Υ��٥�ȥ롼 + : �פ˳�����Ƥ���Ť����뤿��Υѥ��������ꤹ�롥 + : ��Ư����åɤ����٥�ȥ롼�פ����ξ��ˤϰ�̣��ʤ��ʤ��� + : ���٤Υ���å��ڤ��ؤ��δ֤˽������륤�٥�Ȥκ�����ȡ� + : �����Ԥ��Υ��٥�Ȥ�¸�ߤ��ʤ��ݤβû����Ȥ����ꤹ�롥 + : �����Ԥ����٥�Ȥ�¸�ߤ��ʤ����� no_event_wait ( see + : set_no_event_wait ) �����δ� sleep ���֤����롥 + : �ǥե���ȤǤϤ��줾�� 800 ��� 10 �Ĥޤꡤ800 �ĤΥ� + : �٥�� (�����ɥ륤�٥�Ȥ�ޤ�) ���������Ȥ������٥�� + : ������ȯ�����ʤ��ޤޤ� 80 ��ν����Ԥ����٥�ȸ�������λ + : ����Ȥ��ǥ�����Ȥ� 800 �ʾ�ˤʤ�ȥ���åɥ����å��� + : ��ȯ�����뤳�Ȥˤʤ롥 + + get_eventloop_weight + : ���ߤ� loop_max �� no_event_tick �Ȥ��ͤ��֤��� + : ( see set_eventloop_wait ) + +���饹 TclTkIp + ������å� + restart + : Tcl/Tk �����ץ�� Tk ��ʬ�ν�������Ƶ�ư��Ԥ��� + : ��ö root widget ���˲�������˺��� Tk �ε�ǽ��ɬ�פ� + : �ʤä������Ѥ��롥 + + _eval(str) + _invoke(*args) + : Tcl/Tk �����ץ���ɾ����Ԥ��� + : _eval ��ɾ��������ץȤ���Ĥ�ʸ����Ǥ��뤳�Ȥ��Ф��� + : _invoke ��ɾ��������ץȤ� token ���Ȥ˰�Ĥΰ����Ȥ� + : ��褦��Ϳ���롥 + : _invoke ������ Tcl/Tk �����ץ�λ�����ϴ���Ѥ� + : �ʤ����ᡤɾ������٤���꾯�ʤ��Ƥ��ࡥ + + + _toUTF8(str, encoding) + _fromUTF8(str, encoding) + : Tcl/Tk ����¢���Ƥ��� UTF8 �Ѵ�������ƤӽФ��� + + _return_value + : ľ���� Tcl/Tk ��Ǥ�ɾ���μ¹Է�̤Ȥ��Ƥ�����ͤ��֤��� + + mainloop : ������ޤ�� TclTkLib.mainloop ��Ʊ�� + mainloop_watchdog : ������ޤ�� TclTkLib.mainloop_watchdog ��Ʊ�� + do_one_event : ������ޤ�� TclTkLib.do_one_event ��Ʊ�� + set_eventloop_tick : ������ޤ�� TclTkLib.set_eventloop_tick ��Ʊ�� + get_eventloop_tick : ������ޤ�� TclTkLib.get_eventloop_tick ��Ʊ�� + set_eventloop_weight : ������ޤ�� TclTkLib.set_eventloop_weight ��Ʊ�� + get_eventloop_weight : ������ޤ�� TclTkLib.set_eventloop_weight ��Ʊ�� + +���饹 TkCallbackBreak < StandardError +���饹 TkCallbackContinue < StandardError + : �����ϥ��٥�ȥ�����Хå��ˤ����ơ�������Хå�������Ŭ�ڤ��� + : �Ǥ����ꡤ���ΥХ���ɥ����ΥХ���ǥ������˿ʤ�ꤹ�뤳�� + : ���ǽ�ˤ��뤿����㳰���饹�Ǥ��롥 + : ������Хå��� break �� continue ��¸����뤿��ˤϡ�������Хå� + : �Ǥ��� Ruby ��³���� Tcl/Tk �����ץ¦��Ŭ�ڤʥ���� + : �ɤ��֤�ɬ�פ����롥Ruby �μ�³�������̤��ͤ��֤��ΤǤϡ����줬�� + : �̤�����ͤǤ���Τ��ݤ�����̤��Ǥ��ʤ����ᡤ�㳰ȯ�������Ѥ��� + : ������ԤäƤ��롥 + (eof) diff --git a/ext/tcltklib/README.euc b/ext/tcltklib/README.euc index 290ffb0b60..fd75202c18 100644 --- a/ext/tcltklib/README.euc +++ b/ext/tcltklib/README.euc @@ -1,4 +1,30 @@ (tof) + 2003/06/19 Hidetoshi NAGAI + +�ܥɥ�����ȤˤϸŤ� tcltk �饤�֥�ꡤtcltklib �饤�֥������� +���ޤޤ�Ƥ��ޤ��������ε������ƤϸŤ���ΤȤʤäƤ��ޤ��� + +�ޤ������ߤ� Ruby/Tk ���濴�Ǥ��� tk.rb �� wish ��ƤӽФ�����Ϥ� +����tcltklib �饤�֥��� wrap ����ư����ΤȤʤäƤ��ޤ������� +���ᡤ�Ť��������ҤǽҤ٤��Ƥ���褦�ʥץ��������̿��ˤ�륪���� +�إåɤ�¸�ߤ��ޤ��� + +���ߤ� tcltklib �饤�֥��Ǥ⡤Tcl/Tk �� C �饤�֥������� +ľ�ܤ�ư�������Ȥǡ������Хإåɤ����Ĥ� Tcl/Tk �����ץ +�Τۤ�����ǽ�ʳ�ĥ�饤�֥���ޤ�ˤ�Ȥ�������Ʊ���Ǥ����������� +�������Ϥۤܡ�tk.rb �ʲ��Υ饤�֥������Ū��Ư�����뤿��Τ�Ρ� +�ȸ��ʤ���Ƥ��ꡤ������Ū�ǥ��ƥʥ���Ƥ��ޤ��� + +tk.rb �ιⵡǽ����ȼ�äơ�����Υ饤�֥��Ǥ��� tcltk �饤�֥�� +��tcltk.rb�ˤϤ���¸�߰յ����Ƥ��ꡤ���ߤǤϥ��ƥʥϹԤ� +��Ƥ��ޤ��� + +�ʤ����Ť������ǤϥХ���ǥ��ˤ����륹����ץȤ��ɲäϤǤ��ʤ��� +�ȤȤʤäƤ��ޤ��������ߤ� tk.rb �ǤϤ�����ǽ�Ǥ��뤳�Ȥ������� +�����ޤ��� + +�ʲ����饤�֥��θŤ�����ʸ��Ǥ��� +============================================================== tcltk �饤�֥�� tcltklib �饤�֥�� Sep. 19, 1997 Y. Shigehiro diff --git a/ext/tcltklib/tcltklib.c b/ext/tcltklib/tcltklib.c index 9fa992e488..06322b54f1 100644 --- a/ext/tcltklib/tcltklib.c +++ b/ext/tcltklib/tcltklib.c @@ -153,6 +153,30 @@ get_eventloop_tick(self) } static VALUE +set_no_event_wait(self, wait) + VALUE self; + VALUE wait; +{ + int t_wait = NUM2INT(wait); + + if (t_wait <= 0) { + rb_raise(rb_eArgError, + "no_event_wait parameter must be positive number"); + } + + no_event_wait = t_wait; + + return wait; +} + +static VALUE +get_no_event_wait(self) + VALUE self; +{ + return INT2NUM(no_event_wait); +} + +static VALUE set_eventloop_weight(self, loop_max, no_event) VALUE self; VALUE loop_max; @@ -389,14 +413,20 @@ lib_do_one_event(argc, argv, self) { VALUE obj, vflags; int flags; + int ret; if (rb_scan_args(argc, argv, "01", &vflags) == 0) { - flags = 0; + flags = TCL_ALL_EVENTS; } else { Check_Type(vflags, T_FIXNUM); flags = FIX2INT(vflags); } - return INT2NUM(Tcl_DoOneEvent(flags)); + ret = Tcl_DoOneEvent(flags); + if (ret) { + return Qtrue; + } else { + return Qfalse; + } } /*---- class TclTkIp ----*/ @@ -911,6 +941,7 @@ Init_tcltklib() rb_raise(rb_eLoadError, "tcltklib: tcltk_stubs init error(%d)", ret); #endif + rb_define_const(ev_flag, "NONE", INT2FIX(0)); rb_define_const(ev_flag, "WINDOW", INT2FIX(TCL_WINDOW_EVENTS)); rb_define_const(ev_flag, "FILE", INT2FIX(TCL_FILE_EVENTS)); rb_define_const(ev_flag, "TIMER", INT2FIX(TCL_TIMER_EVENTS)); @@ -919,7 +950,8 @@ Init_tcltklib() rb_define_const(ev_flag, "DONT_WAIT", INT2FIX(TCL_DONT_WAIT)); eTkCallbackBreak = rb_define_class("TkCallbackBreak", rb_eStandardError); - eTkCallbackContinue = rb_define_class("TkCallbackContinue",rb_eStandardError); + eTkCallbackContinue = rb_define_class("TkCallbackContinue", + rb_eStandardError); rb_define_module_function(lib, "mainloop", lib_mainloop, -1); rb_define_module_function(lib, "mainloop_watchdog", @@ -927,6 +959,8 @@ Init_tcltklib() rb_define_module_function(lib, "do_one_event", lib_do_one_event, -1); rb_define_module_function(lib, "set_eventloop_tick",set_eventloop_tick,1); rb_define_module_function(lib, "get_eventloop_tick",get_eventloop_tick,0); + rb_define_module_function(lib, "set_no_event_wait", set_no_event_wait, 1); + rb_define_module_function(lib, "get_no_event_wait", get_no_event_wait, 0); rb_define_module_function(lib, "set_eventloop_weight", set_eventloop_weight, 2); rb_define_module_function(lib, "get_eventloop_weight", @@ -944,6 +978,8 @@ Init_tcltklib() rb_define_method(ip, "do_one_event", lib_do_one_event, -1); rb_define_method(ip, "set_eventloop_tick", set_eventloop_tick, 1); rb_define_method(ip, "get_eventloop_tick", get_eventloop_tick, 0); + rb_define_method(ip, "set_no_event_wait", set_no_event_wait, 1); + rb_define_method(ip, "get_no_event_wait", get_no_event_wait, 0); rb_define_method(ip, "set_eventloop_weight", set_eventloop_weight, 2); rb_define_method(ip, "get_eventloop_weight", get_eventloop_weight, 0); rb_define_method(ip, "restart", lib_restart, 0); |