## Tcl9.0.3/Tk9.0.3 Documentation > Tk Commands > event

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    event — 種々の行事の機能: 假想行事の定義と行事の生成 Miscellaneous event facilities: define virtual events and generate events
  構文 SYNOPSIS
  説明 DESCRIPTION
    event add <<virtual>> sequence ?sequence ...?
    event delete <<virtual>> ?sequence sequence ...?
    event generate window event ?option value option value ...?
    event info ?<<virtual>>?
  EVENT FIELDS
    -above window
    -borderwidth size
    -button number
    -count number
    -data string
    -delta number
    -detail detail
    -focus boolean
    -height size
    -keycode number
    -keysym name
    -mode notify
    -override boolean
    -place where
    -root window
    -rootx coord
    -rooty coord
    -sendevent boolean
    -serial number
    -state state
    -subwindow window
    -time integer
    -warp boolean
    -width size
    -when when
      now
      tail
      head
      mark
    -x coord
    -y coord
  予め定義された假想行事 PREDEFINED VIRTUAL EVENTS
    <<AltUnderlined>>
    <<Invoke>>
    <<ListboxSelect>>
    <<MenuSelect>>
    <<Modified>>
    <<Selection>>
    <<ThemeChanged>>
    <<TkWorldChanged>>
    <<TraverseIn>>
    <<TraverseOut>>
    <<UndoStack>>
    <<WidgetViewSync>>
    <<Clear>>
    <<Copy>>
    <<Cut>>
    <<LineEnd>>
    <<LineStart>>
    <<NextChar>>
    <<NextLine>>
    <<NextPara>>
    <<NextWord>>
    <<Paste>>
    <<PasteSelection>>
    <<PrevChar>>
    <<PrevLine>>
    <<PrevPara>>
    <<PrevWindow>>
    <<PrevWord>>
    <<Redo>>
    <<SelectAll>>
    <<SelectLineEnd>>
    <<SelectLineStart>>
    <<SelectNextChar>>
    <<SelectNextLine>>
    <<SelectNextPara>>
    <<SelectNextWord>>
    <<SelectNone>>
    <<SelectPrevChar>>
    <<SelectPrevLine>>
    <<SelectPrevPara>>
    <<SelectPrevWord>>
    <<ToggleSelection>>
    <<Undo>>
  用例 EXAMPLES
  鍵盤から假想行事への対応付け 　MAPPING KEYS TO VIRTUAL EVENTS
  マウス位置子の移動 　MOVING THE MOUSE POINTER
  SEE ALSO
  KEYWORDS

### NAME

event — 種々の行事の機能: 假想行事の定義と行事の生成 Miscellaneous event facilities: define virtual events and generate events

### 構文 SYNOPSIS

event option ?arg ...?

### 説明 DESCRIPTION

event 命令は窓系行事に関する假想行事を定義するとか行事を合成するなどの幾つかの便益を提供する､命令は第１引数によって定められるいくかの異なった形式を有する｡次の形式が現在運営されている: The event command provides several facilities for dealing with window system events, such as defining virtual events and synthesizing events. The command has several different forms, determined by the first argument. The following forms are currently supported:

event add <<virtual>> sequence ?sequence ...?
  假想行事を sequence 引数によって与える物理行事並びと結びつけ､並びのどれかが生じると假想行事が引起される｡ virtual は何かの文字列値でもよく､ sequence は bind 命令に対する sequence 引数について許容されるどの値を有してもよい｡もし virtual が既に定義されていると､その行事の為の既存の並びに新しい物理的行事が加えられる｡ Associates the virtual event virtual with the physical event sequence(s) given by the sequence arguments, so that the virtual event will trigger whenever any one of the sequences occurs. Virtual may be any string value and sequence may have any of the values allowed for the sequence argument to the bind command. If virtual is already defined, the new physical event sequences add to the existing sequences for the event.

event delete <<virtual>> ?sequence sequence ...?
  virtual によって与えられる假想行事に結合しているそれぞれの sequence を削除する｡ virtual は何かの文字列値でもよく､ sequence は bind 命令に対する sequence 引数について許容されるどの値を有してもよい｡現在 virtual に結合していないどの sequence も無視される｡もし sequence 引数が与えられないと全ての物理行事並びは virtual から取去られ､假想行事は最早発動しなくなる｡ Deletes each of the sequences from those associated with the virtual event given by virtual. Virtual may be any string value and sequence may have any of the values allowed for the sequence argument to the bind command. Any sequences not currently associated with virtual are ignored. If no sequence argument is provided, all physical event sequences are removed for virtual, so that the virtual event will not trigger anymore.

event generate window event ?option value option value ...?
  窓の行事を生成しそれを恰も窓系から来たかのように処理する｡ window は窓の経路名を与え､それに行事が生成される; それは現在の応用譜内に関する限りは識別子( winfo id から返った様な)でもある｡ event は<Shift-Button-2> や <<Paste>> のような基本的な記述譜を提供する｡もし window が空であると全画面を意味し､座標は画面に相対になる｡ event は bind 命令に対する sequence 引数について許容されるどの値を有してもよい､但し､それは一つの行事模様で構成され､並びであってはならない｡ option-value 対が行事の追加の属性の指定に､譬えば x と y のマウスの位置の如く使用できる; 下の EVENT FIELDS を参照されたい｡もし -when 指示項目が指定されないと､行事が処理される時に決定される｡特定の行事､たとえば打鍵行事は窓が行事性質を適正に受取る注目を有することが必要である｡ Generates a window event and arranges for it to be processed just as if it had come from the window system. Window gives the path name of the window for which the event will be generated; it may also be an identifier (such as returned by winfo id) as long as it is for a window in the current application. Event provides a basic description of the event, such as <Shift-Button-2> or <<Paste>>. If Window is empty the whole screen is meant, and coordinates are relative to the screen. Event may have any of the forms allowed for the sequence argument of the bind command except that it must consist of a single event pattern, not a sequence. Option-value pairs may be used to specify additional attributes of the event, such as the x and y mouse position; see EVENT FIELDS below. If the -when option is not specified, the event is processed immediately: all of the handlers for the event will complete before the event generate command returns. If the -when option is specified then it determines when the event is processed. Certain events, such as key events, require that the window has focus to receive the event properly.

event info ?<<virtual>>?
  假想行事に関する情報を返す｡もし <<virtual>> 引数が省略されると､返り値は現在定義されている全ての假想行事のリストである｡もし <<virtual>> が指定されると返り値はリストであって､その要素は与えられた假想行事に関して現在定義された物理行事並びである; もし､假想行事が定義されていないと､空文字列が返る｡ Returns information about virtual events. If the <<virtual>> argument is omitted, the return value is a list of all the virtual events that are currently defined. If <<virtual>> is specified then the return value is a list whose elements are the physical event sequences currently defined for the given virtual event; if the virtual event is not defined then an empty string is returned.

  註意すべきは物理行事並びに束縛されていない假想行事は event info では返されないことである｡ Note that virtual events that are not bound to physical event sequences are not returned by event info.

### EVENT FIELDS

event generate 命令に次の指示項目が運営されている｡これらは bind 命令に対する束縛の記述譜内に許容される “%” 拡張に対応している｡ The following options are supported for the event generate command. These correspond to the “%” expansions allowed in binding scripts for the bind command.

-above window
  window は行事についての above 欄枠を､窓の経路名か整数の窓識別子として､指定する｡ Configure 行事に対して有効である｡束縛記述譜に対する %a 置換に対応する｡ Window specifies the above field for the event, either as a window path name or as an integer window id. Valid for Configure events. Corresponds to the %a substitution for binding scripts.

-borderwidth size
  size は画面の距離でなければならない; それは行事に対して border_width 欄枠を指定する｡ Configure 行事に対して有効である｡束縛記述譜に対する %B 置換に対応する｡ Size must be a screen distance; it specifies the border_width field for the event. Valid for Configure events. Corresponds to the %B substitution for binding scripts.

-button number
  number は整数でなければならない; それは Button か ButtonRelease 行事に対して detail 欄枠を指定し､基本の event 引数内に与えられるどの釦番号をも上書きする｡束縛記述譜に対する %b 置換に対応する｡ Number must be an integer; it specifies the detail field for a Button or ButtonRelease event, overriding any button number provided in the base event argument. Corresponds to the %b substitution for binding scripts.

-count number
  number は整数でなければならない; それは行事に対して count 欄枠を指定する｡ Expose 行事に対して有効である｡束縛記述譜に対する %c 置換に対応する｡ Number must be an integer; it specifies the count field for the event. Valid for Expose events. Corresponds to the %c substitution for binding scripts.

-data string
  string はどのような値でもよい; それは行事に対して user_data 欄枠を指定する｡假想行事に対してのみ有効である｡束縛内記述譜に対する %d 置換に対応する｡ String may be any value; it specifies the user_data field for the event. Only valid for virtual events. Corresponds to the %d substitution for virtual events in binding scripts.

-delta number
  number は整数でなければならない; それは MouseWheel 行事に対して delta 欄枠を指定する｡ delta はマウス輪が回転した方向と程度を参照する｡註意としては､値は画面距離ではなく､マウス輪の移動単位である｡典型的にはこの値は 120 の倍数である｡譬えば､ 120 は文書部品を４行上に摺動し､ -240 は文書部品を8行下に摺動する｡勿論他の部品はマウス輪の移動に異なる振舞いを定義する｡この欄枠は束縛記述譜に対する %D 置換に対応する｡ Number must be an integer; it specifies the delta field for the MouseWheel event. The delta refers to the direction and magnitude the mouse wheel was rotated. Note the value is not a screen distance but are units of motion in the mouse wheel. Typically these values are multiples of 120. For example, 120 should scroll the text widget up 4 lines and -240 would scroll the text widget down 8 lines. Of course, other widgets may define different behaviors for mouse wheel motion. This field corresponds to the %D substitution for binding scripts.

-detail detail
  detail は行事の detail 欄枠を指定し､次のうちの一つでなければならない: Detail specifies the detail field for the event and must be one of the following:

    NotifyAncestor | NotifyNonlinearVirtual
    NotifyDetailNone | NotifyPointer
    NotifyInferior | NotifyPointerRoot
    NotifyNonlinear | NotifyVirtual

  Enter と Leave と FocusIn と FocusOut 行事に対して有効である｡束縛記述譜に対する %d 置換に対応する｡ Valid for Enter, Leave, FocusIn and FocusOut events. Corresponds to the %d substitution for binding scripts.

-focus boolean
  boolean は論理値でなければならない; それは行事に対して focus 欄枠を指定する｡Enter と Leave 行事に対して有効である｡束縛記述譜に対する %f 置換に対応する｡ Boolean must be a boolean value; it specifies the focus field for the event. Valid for Enter and Leave events. Corresponds to the %f substitution for binding scripts.

-height size
  size は画面の距離でなければならない; それは行事に対して height 欄枠を指定する｡ Configure 行事に対して有効である｡束縛記述譜に対する %h 置換に対応する｡ Size must be a screen distance; it specifies the height field for the event. Valid for Configure events. Corresponds to the %h substitution for binding scripts.

-keycode number
  number は整数でなければならない; それは行事に対して keycode 欄枠を指定する｡ Key と KeyRelease 行事に対して有効である｡束縛記述譜に対する %k 置換に対応する｡ Number must be an integer; it specifies the keycode field for the event. Valid for Key and KeyRelease events. Corresponds to the %k substitution for binding scripts.

-keysym name
  name は有効な鍵盤表示でなければならない､譬えば g や space や Return ; それに対応する鍵番号値が､行事の為の keycode 欄枠として使用され､基本の event 引数内で指定されたどの詳細指定をも上書きする｡ Key と KeyRelease 行事に対して有効である｡束縛記述譜に対する %K 置換に対応する｡ Name must be the name of a valid keysym, such as g, space, or Return; its corresponding keycode value is used as the keycode field for event, overriding any detail specified in the base event argument. Valid for Key and KeyRelease events. Corresponds to the %K substitution for binding scripts.

-mode notify
  notify は行事に対して mode 欄枠を指定し､ NotifyNormal か NotifyGrab か NotifyUngrab か NotifyWhileGrabbed のどれかに一致しなければならない｡Enter と Leave と FocusIn と FocusOut 行事に対して有効である｡束縛記述譜に対する %m 置換に対応する｡ Notify specifies the mode field for the event and must be one of NotifyNormal, NotifyGrab, NotifyUngrab, or NotifyWhileGrabbed. Valid for Enter, Leave, FocusIn, and FocusOut events. Corresponds to the %m substitution for binding scripts.

-override boolean
  boolean は論理値でなければならない; それは行事に対して override_redirect 欄枠を指定する｡Map と Reparent と Configure 行事に対して有効である｡束縛記述譜に対する %o 置換に対応する｡ Boolean must be a boolean value; it specifies the override_redirect field for the event. Valid for Map, Reparent, and Configure events. Corresponds to the %o substitution for binding scripts.

-place where
  where は行事に対して place 欄枠を指定する; それは PlaceOnTopか PlaceOnBottom のどちらかに一致しなければならない｡Circulate 行事に対して有効である｡束縛記述譜に対する %p 置換に対応する｡ Where specifies the place field for the event; it must be either PlaceOnTop or PlaceOnBottom. Valid for Circulate events. Corresponds to the %p substitution for binding scripts.

-root window
  window は窓の経路名か整数の窓識別子でなければならない; 行事として､ root 欄枠を指定する｡ Key と KeyRelease と Button と ButtonRelease と Enter と Leave と Motion 行事に対して有効である｡束縛記述譜に対する %R 置換に対応する｡ Window must be either a window path name or an integer window identifier; it specifies the root field for the event. Valid for Key, KeyRelease, Button, ButtonRelease, Enter, Leave, and Motion events. Corresponds to the %R substitution for binding scripts.

-rootx coord
  coord は画面の距離でなければならない; 行事として､ x_root 欄枠を指定する｡ Key と KeyRelease と Button と ButtonRelease と Enter と Leave と Motion 行事に対して有効である｡束縛記述譜に対する %X 置換に対応する｡ Coord must be a screen distance; it specifies the x_root field for the event. Valid for Key, KeyRelease, Button, ButtonRelease, Enter, Leave, and Motion events. Corresponds to the %X substitution for binding scripts.

-rooty coord
  coord は画面の距離でなければならない; 行事として､ y_root 欄枠を指定する｡ Key と KeyRelease と Button と ButtonRelease と Enter と Leave と Motion 行事に対して有効である｡束縛記述譜に対する %Y 置換に対応する｡ Coord must be a screen distance; it specifies the y_root field for the event. Valid for Key, KeyRelease, Button, ButtonRelease, Enter, Leave, and Motion events. Corresponds to the %Y substitution for binding scripts.

-sendevent boolean
  boolean は論理値でなければならない; それは行事に対して send_event 欄枠を指定する｡全ての行事に対して有効である｡束縛記述譜に対する %E 置換に対応する｡ Boolean must be a boolean value; it specifies the send_event field for the event. Valid for all events. Corresponds to the %E substitution for binding scripts.

-serial number
  number は整数でなければならない; それは行事に対して serial 欄枠を指定する｡全ての行事に対して有効である｡束縛記述譜に対する %# 置換に対応する｡ Number must be an integer; it specifies the serial field for the event. Valid for all events. Corresponds to the %# substitution for binding scripts.

-state state
  state は行事に対して state 欄枠を指定する｡ Key と KeyRelease と Button と ButtonRelease と Enter と Leave と Motion 行事に対してそれは整数でなければならない｡Visibility 行事に対してそれは VisibilityUnobscured か VisibilityPartiallyObscured か VisibilityFullyObscured の内の一つでなければならない｡この指示項目は基本の event 引数内に指定されたどの修飾子､譬えば Meta やControl をも上書きする｡束縛記述譜に対する %s 置換に対応する｡ State specifies the state field for the event. For Key, KeyRelease, Buttons, ButtonRelease, Enter, Leave, and Motion events it must be an integer value. For Visibility events it must be one of VisibilityUnobscured, VisibilityPartiallyObscured, or VisibilityFullyObscured. This option overrides any modifiers such as Meta or Control specified in the base event. Corresponds to the %s substitution for binding scripts.

-subwindow window
  window は行事に対して subwindow 欄枠を指定する､ それは Tk 部品に対する経路名か整数の窓識別子のどちらかとして｡Key と KeyRelease と Button と ButtonRelease と Enter と Leave と Motion 行事に対して有効である｡束縛記述譜に対する %S 置換に似ている｡ Window specifies the subwindow field for the event, either as a path name for a Tk widget or as an integer window identifier. Valid for Key, KeyRelease, Button, ButtonRelease, Enter, Leave, and Motion events. Similar to %S substitution for binding scripts.

-time integer
  integer は整数値でなければならない; それは､行事として､ time 欄枠を指定する｡更に､特別な値 current が許容され､これは現在の行事時間によって置換えられることになる｡ Key と KeyRelease と Button と ButtonRelease と Enter と Leave と Motion と Property 行事に対して有効である｡束縛記述譜に対する %t 置換に対応する｡ Integer must be an integer value; it specifies the time field for the event. Additionally, the special value current is allowed; this value will be substituted by the current event time. Valid for Key, KeyRelease, Button, ButtonRelease, Enter, Leave, Motion, and Property events. Corresponds to the %t substitution for binding scripts.

-warp boolean
  boolean は論理値でなければならない; それは画面指示子が瞬間移動するかを指定する｡Key と KeyRelease と Button と ButtonRelease と Motion 行事に対して有効である｡指示子はそれが対応している場合のみ瞬間移動する｡ boolean must be a boolean value; it specifies whether the screen pointer should be warped as well. Valid for Key, KeyRelease, Button, ButtonRelease, and Motion events. The pointer will only warp to a window if it is mapped.

-width size
  size は画面の距離でなければならない; それは行事に対して width 欄枠を指定する｡ Configure 行事に対して有効である｡束縛記述譜に対する %w 置換に対応する｡ Size must be a screen distance; it specifies the width field for the event. Valid for Configure events. Corresponds to the %w substitution for binding scripts.

-when when
  when は行事が処理されている時に定められる; それは次の内の一つの値でなければならない: When determines when the event will be processed; it must have one of the following values:

  now
    命令が戻る前に､行事をすぐさま処理する｡これは､ -when 指示項目が省略されている場合にも生じる｡ Process the event immediately, before the command returns. This also happens if the -when option is omitted.

  tail
    行事を Tcl の行事待ち行列の後の､この応用譜について既に待たされているどの行事より後に置く｡ Place the event on Tcl's event queue behind any events already queued for this application.

  head
    行事を Tcl の行事待ち行列の前面に置き､この応用譜について既に待たされているどの行事よりも前に処理される｡ Place the event at the front of Tcl's event queue, so that it will be handled before any other events already queued.

  mark
    行事を Tcl の行事待ち行列の前面であるが､既に -when mark によって待たされているどの行事よりも後に置く｡この指示項目は一連の行事を作成してそれが順番に､但し待ち行列より前に処理されるべき時に便利である｡ Place the event at the front of Tcl's event queue but behind any other events already queued with -when mark. This option is useful when generating a series of events that should be processed in order but at the front of the queue.

-x coord
  coord は画面の距離でなければならない; それは行事に対して x 欄枠を指定する｡ Key と KeyRelease と Button と ButtonRelease と Enter と Leave と Expose と Configure と Gravity と Reparent 行事に対して有効である｡ Configure 行事に対して有効である｡束縛記述譜に対する %x 置換に対応する｡もし window が空であると座標は画面に対して相対的であり､この指示項目は束縛記述譜に対する %X 置換に対応する｡ Coord must be a screen distance; it specifies the x field for the event. Valid for Key, KeyRelease, Button, ButtonRelease, Motion, Enter, Leave, Expose, Configure, Gravity, and Reparent events. Corresponds to the %x substitution for binding scripts. If Window is empty the coordinate is relative to the screen, and this option corresponds to the %X substitution for binding scripts.

-y coord
  coord は画面の距離でなければならない; それは行事に対して y 欄枠を指定する｡ Key と KeyRelease と Button と ButtonRelease と Enter と Leave と Expose と Configure と Gravity と Reparent 行事に対して有効である｡ Configure 行事に対して有効である｡束縛記述譜に対する %x 置換に対応する｡もし window が空であると座標は画面に対して相対的であり､この指示項目は束縛記述譜に対する %Y 置換に対応する｡ Coord must be a screen distance; it specifies the y field for the event. Valid for Key, KeyRelease, Button, ButtonRelease, Motion, Enter, Leave, Expose, Configure, Gravity, and Reparent events. Corresponds to the %y substitution for binding scripts. If Window is empty the coordinate is relative to the screen, and this option corresponds to the %Y substitution for binding scripts.

生成する時にどの指示項目も指定されていない行事は値 0 で満たされている､例外として次の X 行事の連番で満たされている連続の行事を除いては｡ Any options that are not specified when generating an event are filled with the value 0, except for serial, which is filled with the next X event serial number.

### 予め定義された假想行事 PREDEFINED VIRTUAL EVENTS

Tk は通知の目的の為に次の假想行事を定義する: Tk defines the following virtual events for the purposes of notification:

<<AltUnderlined>>
  これは部品に､ Alt 鍵と一緒に押されたことにより､ -underline 指示項目によって､文字に下線を引かせる(簡便指示法として)ことを通知する為に送られる｡これに対する通常の反応は部品(又はなにかの関連部品)に注目を入れるか､部品の起動のどちらかである｡ This is sent to widget to notify it that the letter it has underlined (as an accelerator indicator) with the -underline option has been pressed in combination with the Alt key. The usual response to this is to either focus into the widget (or some related widget) or to invoke the widget.

<<Invoke>>
  之は幾つかの部品(譬えば､釦､リスト箱､指示項目聚)に <space> の代りとして送ることができる｡ This can be sent to some widgets (e.g. button, listbox, menu) as an alternative to <space>.

<<ListboxSelect>>
  これはリスト箱内の選択された品目の組が更新されたときにリスト箱に送られる｡ This is sent to a listbox when the set of selected item(s) in the listbox is updated.

<<MenuSelect>>
  これは現在選択されている指示項目表中の品目が変更された時に指示項目表に送られる｡文脈-感受性の回答装置への使用を意図している｡ This is sent to a menu when the currently selected item in the menu changes. It is intended for use with context-sensitive help systems.

<<Modified>>
  これは部品の内容が変更された時に文書部品に送られる｡ This is sent to a text widget when the contents of the widget are changed.

<<Selection>>
  これは部品内の選択対象が変わった時に文書部品に送られる｡ This is sent to a text widget when the selection in the widget is changed.

<<ThemeChanged>>
  ttk 主題が変更された時､これは全ての部品に送られる｡ ttk 部品はこの行事を傾聴していてそれが採用されると自身を再表示する｡旧来型の部品はこの行事を無視する｡　　　　　　 This is sent to all widgets when the ttk theme changed. The ttk widgets listen to this event and redisplay themselves when it fires. The legacy widgets ignore this event.

<<TkWorldChanged>>
  この行事は字母が変化した時全ての部品に送られる､譬えば､ [font configure] の使用による時｡使用者データ枠 (%d) は値 "FontChanged"を有することになる｡他のOSの大幅な変化について､この行事は全ての部品に送られ､使用者_データ枠は変更の原因を表示する｡註意:全ての tk 及び ttk 部品は既にこの行事を内部で取扱う｡ This event is sent to all widgets when a font is changed, for example, by the use of [font configure]. The user_data field (%d) will have the value "FontChanged". For other system wide changes, this event will be sent to all widgets, and the user_data field will indicate the cause of the change. NOTE: all tk and ttk widgets already handle this event internally.

<<TraverseIn>>
  これは使用者駆動による “tab to widget” 動作によって注目が部品に入った時に部品に送られる｡ This is sent to a widget when the focus enters the widget because of a user-driven “tab to widget” action.

<<TraverseOut>>
  これは使用者駆動による “tab to widget” 動作によって注目が部品から離れた時に部品に送られる｡ This is sent to a widget when the focus leaves the widget because of a user-driven “tab to widget” action.

<<UndoStack>>
  取消し棚かやり直し棚が空になった時か､逆に空でなくなった時に文書部品に送られる｡ This is sent to a text widget when its undo stack or redo stack becomes empty or unempty.

<<WidgetViewSync>>
  これは､その内部データが陳腐になった時と､その内部データが部品外観と再度一致した時に文書部品に送られる｡詳細欄(%d 置換)は論理的真値(部品と一致)か偽値(不一致)のいずれかである｡　 This is sent to a text widget when its internal data become obsolete, and again when these internal data are back in sync with the widget view. The detail field (%d substitution) is either true (when the widget is in sync) or false (when it is not).

Tk は次の假想行事を多数のOSを横断して束縛を揃える為に定義する｡使用者は次の方法に従う振舞いを期待できる: Tk defines the following virtual events for the purposes of unifying bindings across multiple platforms. Users expect them to behave in the following way:

<<Clear>>
  現在選択されている部品の内容を削除する｡ Delete the currently selected widget contents.

<<Copy>>
  現在選択されている部品の内容を臨時板に複写する｡ Copy the currently selected widget contents to the clipboard.

<<Cut>>
  現在選択されている部品の内容を臨時板に移動する｡ Move the currently selected widget contents to the clipboard.

<<LineEnd>>
  何かの選択された内容が選択が外れる間に現在の部品の行末に移動する｡ Move to the end of the line in the current widget while deselecting any selected contents.

<<LineStart>>
  何かの選択された内容が選択が外れる間に現在の部品の行頭に移動する｡ Move to the start of the line in the current widget while deselecting any selected contents.

<<NextChar>>
  何かの選択された内容が選択が外れる間に現在の部品の次の品目(即ち､可視文字)に移動する｡ Move to the next item (i.e., visible character) in the current widget while deselecting any selected contents.

<<NextLine>>
  何かの選択された内容が選択が外れる間に現在の部品の次の行に移動する｡ Move to the next line in the current widget while deselecting any selected contents.

<<NextPara>>
  何かの選択された内容が選択が外れる間に現在の部品の次の段落に移動する｡ Move to the next paragraph in the current widget while deselecting any selected contents.

<<NextWord>>
  何かの選択された内容が選択が外れる間に現在の部品の次の群の品目(即ち､可視語)に移動する｡ Move to the next group of items (i.e., visible word) in the current widget while deselecting any selected contents.

<<Paste>>
  現在選択されている部品の内容を臨時板の内容に置換える｡ Replace the currently selected widget contents with the contents of the clipboard.

<<PasteSelection>>
  マウスの位置に選択の内容を挿入する｡(この行事は %x と %y の置換に意味を有する) Insert the contents of the selection at the mouse location. (This event has meaningful %x and %y substitutions).

<<PrevChar>>
  何かの選択された内容が選択が外れる間に現在の部品の前の品目(即ち､可視文字)に移動する｡ Move to the previous item (i.e., visible character) in the current widget while deselecting any selected contents.

<<PrevLine>>
  何かの選択された内容が選択が外れる間に現在の部品の前の行に移動する｡ Move to the previous line in the current widget while deselecting any selected contents.

<<PrevPara>>
  何かの選択された内容が選択が外れる間に現在の部品の前の段落に移動する｡ Move to the previous paragraph in the current widget while deselecting any selected contents.

<<PrevWindow>>
  以前の窓に旋回する｡ Traverse to the previous window.

<<PrevWord>>
  何かの選択された内容が選択が外れる間に現在の部品の前の群の品目(即ち､可視語)に移動する｡ Move to the previous group of items (i.e., visible word) in the current widget while deselecting any selected contents.

<<Redo>>
  取り止めた動作をやり直す｡ Redo one undone action.

<<SelectAll>>
  選択された内容の範囲を完全な部品に設定する｡ Set the range of selected contents to the complete widget.

<<SelectLineEnd>>
  選択された内容の範囲を拡大する間に現在の部品内の行末に移動する｡ Move to the end of the line in the current widget while extending the range of selected contents.

<<SelectLineStart>>
  選択された内容の範囲を拡大する間に現在の部品内の行頭に移動する｡ Move to the start of the line in the current widget while extending the range of selected contents.

<<SelectNextChar>>
  選択された内容の範囲を拡大する間に現在の部品の次の品目(即ち､可視文字)に移動する｡ Move to the next item (i.e., visible character) in the current widget while extending the range of selected contents.

<<SelectNextLine>>
  選択された内容の範囲を拡大する間に現在の部品の次の行に移動する｡ Move to the next line in the current widget while extending the range of selected contents.

<<SelectNextPara>>
  選択された内容の範囲を拡大する間に現在の部品の次の段落に移動する｡ Move to the next paragraph in the current widget while extending the range of selected contents.

<<SelectNextWord>>
  選択された内容の範囲を拡大する間に現在の部品の次の群の品目(即ち､可視語)に移動する｡ Move to the next group of items (i.e., visible word) in the current widget while extending the range of selected contents.

<<SelectNone>>
  選択された内容の範囲を空に刷新する｡ Reset the range of selected contents to be empty.

<<SelectPrevChar>>
  選択された内容の範囲を拡大する間に現在の部品の前の品目(即ち､可視文字)に移動する｡ Move to the previous item (i.e., visible character) in the current widget while extending the range of selected contents.

<<SelectPrevLine>>
  選択された内容の範囲を拡大する間に現在の部品の前の行に移動する｡ Move to the previous line in the current widget while extending the range of selected contents.

<<SelectPrevPara>>
  選択された内容の範囲を拡大する間に現在の部品の前の段落に移動する｡ Move to the previous paragraph in the current widget while extending the range of selected contents.

<<SelectPrevWord>>
  選択された内容の範囲を拡大する間に現在の部品の前の群の品目(即ち､可視語)に移動する｡ Move to the previous group of items (i.e., visible word) in the current widget while extending the range of selected contents.

<<ToggleSelection>>
  選択を交替切替えする｡ Toggle the selection.

<<Undo>>
  最後の動作を取り止める｡ Undo the last action.

### 用例 EXAMPLES

#### 鍵盤から假想行事への対応付け 　MAPPING KEYS TO VIRTUAL EVENTS

假想行事の束縛について起動する為に二つのことが起る必要がある｡第一､假想行事が event add 命令によって定義されねばならない｡第二､假想行事について､束縛が bind 命令によって生成されなければならない｡次の假想行事定義を考慮すべき: In order for a virtual event binding to trigger, two things must happen. First, the virtual event must be defined with the event add command. Second, a binding must be created for the virtual event with the bind command. Consider the following virtual event definitions:

    event add <<Paste>> <Control-y>
    event add <<Paste>> <Button-2>
    event add <<Save>> <Control-X><Control-S>
    event add <<Save>> <Shift-F12>
    if {[tk windowingsystem] eq "aqua"} {
        event add <<Save>> <Command-s>
    }

bind 命令内で假想行事は次の如く他のどの組込み行事型の様に結合することができる: In the bind command, a virtual event can be bound like any other builtin event type as follows:

    bind Entry <<Paste>> {%W insert [selection get]}

假想行事が束縛されることを指定するために二重角形括弧が使われる｡もし使用者がコントロール-y 鍵 を打鍵するか釦 2 を押すか､ <<Paste>> 假想行事が event generate により合成されると <<Paste>> 束縛が起動する｡ The double angle brackets are used to specify that a virtual event is being bound. If the user types Control-y or presses button 2, or if a <<Paste>> virtual event is synthesized with event generate, then the <<Paste>> binding will be invoked.

もし假想束縛が正確に同じ個別の物理束縛の並びと同じであると､物理束縛が先行する｡次の例を考慮されたい: If a virtual binding has the exact same sequence as a separate physical binding, then the physical binding will take precedence. Consider the following example:

    event add <<Paste>> <Control-y> <Meta-Control-y>
    bind Entry <Control-y> {puts Control-y}
    bind Entry <<Paste>> {puts Paste}

もし使用者がコントロール-y 鍵 を打鍵すると <Control-y> 束縛が起動される､理由は物理行行事は假想行事よりも明快であると看做されるから､それ以外は等価である｡しかし､メタ-コントロール-y 鍵 を打鍵した時 <<Paste>> 束縛が起動される､理由は物理模様内のメタ 鍵 による修飾は､物理行事についての <Control-y> の並びよりもより明確に假想束縛に結合しているから｡ When the user types Control-y the <Control-y> binding will be invoked, because a physical event is considered more specific than a virtual event, all other things being equal. However, when the user types Meta-Control-y the <<Paste>> binding will be invoked, because the Meta modifier in the physical pattern associated with the virtual binding is more specific than the <Control-y> sequence for the physical event.

假想行事上の束縛は假想行事が存在する前に作成されるかもしれない｡実際､假想行事は決して定義される必要はない､譬えば､特定の假想行事が意味をなさないか生成されない様なOS上では｡ Bindings on a virtual event may be created before the virtual event exists. Indeed, the virtual event never actually needs to be defined, for instance, on platforms where the specific virtual event would be meaningless or ungeneratable.

假想行事の定義を実行時に変更するとき､全ての窓は新しい定義にすぐさま応答する｡以前の例題に次の命令が続いて実行されると: When a definition of a virtual event changes at run time, all windows will respond immediately to the new definition. Starting from the preceding example, if the following code is executed:

    bind Entry <Control-y> {}
    event add <<Paste>> <F6>

その振舞いは次の様に２つの方法で違うことになる｡第１､影のついた <<Paste>> 束縛が現れる｡コントロール-y 鍵 を打鍵してももはや <Control-y> 束縛は起動されず､代りに假想行事 <<Paste>> が起動される｡第２､ F6 鍵を押すと､今度は <<Paste>> 束縛が起動される｡ the behavior will change such in two ways. First, the shadowed <<Paste>> binding will emerge. Typing Control-y will no longer invoke the <Control-y> binding, but instead invoke the virtual event <<Paste>>. Second, pressing the F6 key will now also invoke the <<Paste>> binding.

#### マウス位置子の移動 　MOVING THE MOUSE POINTER

時にはマウス位置子を実際動かす事ができると便利である｡譬えば､もし､如何に算譜を使うか使用者に直接例示しうる能力のある算譜がある時等｡それを行う為に､ event generate を使うことによりマウスを “瞬間移動する” 必要がある､このように: Sometimes it is useful to be able to really move the mouse pointer. For example, if you have some software that is capable of demonstrating directly to the user how to use the program. To do this, you need to “warp” the mouse around by using event generate, like this:

    for {set xy 0} {$xy < 200} {incr xy} {
        event generate . <Motion> -x $xy -y $xy -warp 1
        update
        after 50
    }

註意すべきは､通常は使用者にとってマウス指示子を移動することは悪しき方式と看做される､理由はそこから制御を取去るから｡従ってこの技術には警告を伴うべきである｡又､全てのOS上で機能することは保障されない｡ Note that it is usually considered bad style to move the mouse pointer for the user because it removes control from them. Therefore this technique should be used with caution. Also note that it is not guaranteed to function on all platforms.

### SEE ALSO

bind

### KEYWORDS

event, binding, define, handle, virtual event
Copyright © 1996 Sun Microsystems, Inc.
Copyright © 1998-2000 Ajuba Solutions.