class TK_TEXT < $TK_WIDGET
****
A text widget that corresponds to a TK text widget The widget must first be created, either using the default create routine, or the full creation routine that supplies a parent widget, text configuration options and packing information
_
Eg: t ::= #TK_TEXT(#TK_ROOT_WINDOW,"mytext",#TK_TEXT_CFG,#TK_PACK);
_
Once created, text may be inserted into the widget at locations that are specified using TINDEX es. A TINDEX indicates a location in the text widget in a number of ways - see the interface to TINDEX.
_
Eg. t.insert_at(TINDEX::at(1,0,"text");
_
Ranges of text may also be tagged using a TEXT_TAG, either at insertion or later on by specifying positions
_
Callbacks, basically bound routines, may then be associated with a particular text tag
_
mytag ::= #TK_TEXT_TAG("mytag"); t.bind(mytag,EVENT_INCLUDE::enter,bind(myput(_)));
_
The callback routine myput is of the form myput(arg: TEXT_CB) is
____--_do_something_with_arg

end; It is best to use TK_TEXT widgets by first including GUI_UTIL which makes many commonly used functions conveniently accessible.


Ancestors
$TK_WIDGET



Public


Readable Attributes
attr actual_widget_name: STR; .. Included as actual_widget_name
**** Name of the actual widget
attr frame: TK_FRAME; .. Included as frame
**** Outer frame that holds widget + scrolls
attr hscroll_name,vscroll_name: STR; .. Included as hscroll_name
**** Scroll bar names
attr name: STR; .. Included as name
**** name of the full path to the widget proper
attr parent: $TK_WIDGET; .. Included as parent
**** which may contain scrollbars etc.
attr path_name: STR; .. Included as path_name
**** refers to the path to the outermost frame which may contain scrollbars etc.
attr hscroll_name,vscroll_name: STR; .. Included as vscroll_name
**** Scroll bar names

Features
act_on(id: INT,cb: ARRAY{STR})
**** Internal GUI interface. Do not use explicitly Go through the args - convert them into a TEXT_CB and then call the appropriate function 0 = id 1 = button 2 = x 3 = y
actual_widget: TK_GEN_WIDGET .. Included as actual_widget
add_tag(t: TK_TEXT_TAG,from,to: TK_INDEX)
**** Add a tag "t" to the text from "from" to "to"
bind_event(t: TK_TEXT_TAG,event: $TK_EVENT, action: ROUT{TK_TEXT_CB})
bind_event(event: $TK_EVENT,action: ROUT{TK_EVENT_INFO}) .. Included as bind_event
**** Bind the event "event" to the action "action", a bound routine which takes an EVENT_INFO as an argument The first argument to the callback is an index in to the list of bindings that corresponds to this "action"
configure(cf: CFGINFO) .. Included as configure
**** Reconfigure the widget with the new configuration "cf" Unstated parameters of "cf" remain unchanged
configure_tag(t: TK_TEXT_TAG,c: TK_TEXT_TAG_CFG)
**** Configure the text associated with the tag "t" to have the properties specified by the configuration "c".
create(parent: $TK_WIDGET): SAME .. Included as create
**** Create a new widget, specifying a particular parent widget/window.
create(parent: $TK_WIDGET,np: STR): SAME .. Included as create
**** Create a new widget, specifying a particular parent and a name for the widget. The name "np" controls what tcl name is used and is only useful just for debugging purposes
create(parent: $TK_WIDGET,np: STR, pack: TK_PACK): SAME .. Included as create
**** Create a new widget.
___Arg_parent_specifies_the_container_parent_window/widget
___Arg_np_is_used_to_specify_a_widget_name_for_debugging
___Arg_pack_specifies_the_packing_options
create(parent:$TK_WIDGET,np:STR,cf: CFGINFO,pack:TK_PACK): SAME .. Included as create
**** Actual widget creation routine. All the rest are wrappers.
___Arg_parent_specifies_the_container_parent_window/widget
___Arg_np_is_used_to_specify_a_widget_name_for_debugging
___Arg_cf_specifies_configuration_options_(a_parameter_of
___TK_WIDGET_INCL)
___Arg_pack_specifies_the_packing_options
___Returns_a_configured,_packed_widget
create(parent: $TK_WIDGET,pack: TK_PACK): SAME .. Included as create
**** Create a new widget
__Arg_parent_specifies_the_container_parent_window/widget
__Arg_pack_specifies_the_location_of_the_widget_within_the
___parent_(packing).
create(parent: $TK_WIDGET,cf: CFGINFO): SAME .. Included as create
**** Create a new widget
__Arg_parent_specifies_the_parent_window/widget._This_could
____be_a_#TK_ROOTWINDOW_or_a_TK_TOPLEVEL
____toplevel_win_::=_#TK_TOPLEVEL;
____this_win_:=_#<some_widget_class>(toplevel_win,
__Arg_cf_specifies_a_configuration_option_that_should_be_used
____by_this_widget._This_routine_is_declared_in_TK_WIDGET_INCL
____where_the_type_of_the_configuration_option_is_a_type_parameter
____CFGINFO,_which_is_usually_set_to_<widget_name>TK__CFG
create(parent: $TK_WIDGET,cf: CFGINFO,pack: TK_PACK): SAME .. Included as create
**** Create a new widget.
___Arg_parent_specifies_the_container_parent_window/widget
___Arg_cf_specifies_configuration_options_(a_parameter_of
___TK_WIDGET_INCL)
___Arg_pack_specifies_the_packing_options
create: SAME .. Included as create
delete(from,to: TK_INDEX)
destroy .. Included as destroy
**** Destroy the widget associated with self
get(from,to: TK_INDEX): STR
hscroll .. Included as hscroll
**** Create a horizontal scrollbar
hscroll: SAME .. Included as hscroll
insert_at(position: TK_INDEX,text:STR)
**** Insert untagged text at "position"
insert_tagged(position: TK_INDEX,text: STR, tags: ARRAY{TK_TEXT_TAG})
**** Insert text "text" with the tags "tags" at the location indicated by "position"
is_eq(o:$TK_WIDGET): BOOL .. Included as is_eq
plus(text: $STR)
plus(text: $STR):SAME
see(index: TK_INDEX)
**** Make index visible
vscroll .. Included as vscroll
**** Add a vertical scrollbar
vscroll: SAME .. Included as vscroll
widget_name: STR .. Included as widget_name


Private

attr actual_widget_name: STR; .. Included as actual_widget_name
**** Name of the actual widget
arr_str(a: ARRAY{STR}): STR .. Included as arr_str
**** Print out an array version of the string, since ARRAY does not have a .str routien in the standar library.
attr bindings: A_LIST{ROUT{TK_EVENT_INFO}}; .. Included as bindings
**** Store the bindings
attr bindings: A_LIST{ROUT{TK_EVENT_INFO}}; .. Included as bindings
**** Store the bindings
deb(s: STR) .. Included as deb
**** Print out a debugging message
debug: BOOL .. Included as debug
**** Return the value of the debug flag
default_config: CFGINFO .. Included as default_config
**** Default configuration information
default_init(c: TK_TEXT_CFG)
**** By default, use scrollbars
default_packing: TK_PACK .. Included as default_packing
err(s: STR) .. Included as err
**** Print out an error message.
eval(a1: $STR) .. Included as eval
eval(a1,a2: $STR) .. Included as eval
eval(a1,a2,a3: $STR) .. Included as eval
eval(a1,a2,a3,a4: $STR) .. Included as eval
eval(a1,a2,a3,a4,a5: $STR) .. Included as eval
fix_tcl_name(s: STR): STR .. Included as fix_tcl_name
**** SEF:Eliminate problems with tcl name, returning the empty string if necessary.
flt_if_poss(s: STR,default: FLT): FLT .. Included as flt_if_poss
**** Convert the string "s" to a float and return it, if possible. If an error occurs in the conversion, return the "default" value
attr frame: TK_FRAME; .. Included as frame
**** Outer frame that holds widget + scrolls
attr hscroll_name,vscroll_name: STR; .. Included as hscroll_name
**** Scroll bar names
init(a_parent: $TK_WIDGET,name:STR,cfg: CFGINFO) .. Included as init
**** Creation of the widget and its frame
int_if_poss(s: STR,default: INT): INT .. Included as int_if_poss
**** Convert the string "s" to an integer and return it, if possible. If an error occurs in the conversion, return the "default" value
join(a1,a2: $STR): STR .. Included as join
attr name: STR; .. Included as name
**** name of the full path to the widget proper
attr parent: $TK_WIDGET; .. Included as parent
**** which may contain scrollbars etc.
attr path_name: STR; .. Included as path_name
**** refers to the path to the outermost frame which may contain scrollbars etc.
quote(s:STR): STR .. Included as quote
**** Return a (tcl) quoted version of the string "s"
register .. Included as register
**** Register this widget with the widget map so that subsequent callbacks that belong to this widget may be directed here.
attr tag_callbacks: TK_WIDGET_CALLBACKS{ROUT{TK_TEXT_CB}};
attr tag_callbacks: TK_WIDGET_CALLBACKS{ROUT{TK_TEXT_CB}};
tag_str(tags: ARRAY{TK_TEXT_TAG}): STR
const tk_widget_type: STR := "text";
attr hscroll_name,vscroll_name: STR; .. Included as vscroll_name
**** Scroll bar names

The Sather Home Page