Creation/Dev/Script/Client/GuiMLTextCtrl: Difference between revisions

From Graal Bible
(Added picture, description and an example script)
(→‎Variables: added link to [v6])
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:Scripting Reference]]
Inherits [[Creation/Dev/Script/Client/GuiControl|GuiControl]].
Inherits [[Creation/Dev/Script/Client/GuiControl|GuiControl]].


Line 32: Line 33:
wordwrap - boolean
wordwrap - boolean


[http://forums.graalonline.com/forums/showpost.php?p=1634469&postcount=1[v6]] plaintext - string


=Functions=
=Functions=


addtext(str, bool)
addtext(str, bool) - adds text, second parameter specifies if it should automatically reflow; reflowing also updates width, height and line count, but if you plan to call addtext() several times then it's better to not let it reflow immediatelly because it can be slow on large text


getcursorline() - returns integer
getcursorline() - returns integer
Line 58: Line 60:


settext(str)
settext(str)


=Events=
=Events=
Line 76: Line 77:
a few HTML-tags and Torque-tags, you can use both
a few HTML-tags and Torque-tags, you can use both
of those tag types to define colors and fonts
of those tag types to define colors and fonts
or to include images. Currently following tags
or to include images. The Torque-tags (previously added for compatibility) will be disabled in some time in the future, so it's recommended to use plain HTML tags. Currently following tags are available:
are available:


'''HTML:'''
'''HTML:'''
<pre>
<pre>
<a href=url> text </a> - when the user clicks on 'text' then  
<a href=url> text </a> - when the user clicks on 'text' then a
   a web browser is opened for the specified url
   web browser is opened for the specified url (actually it is just
  calling controlname.onURL(url) and the script needs to call openurl(url) then)
<b> text </b> - draws text with bold font
<b> text </b> - draws text with bold font
<body bgcolor=colorname or #rrggbb> - sets the background color
<body bgcolor=colorname or #rrggbb background=imagename> - sets the background color or image
<br> - line break
<br> - line break
<center> text </center> - centers the contained text
<center> text </center> - centers the contained text
Line 90: Line 91:
   - draws text with a special font, size and color; you only
   - draws text with a special font, size and color; you only
   need to define one of those 3 attributes
   need to define one of those 3 attributes
<h1> text </h1> .. <h6> text <h6> - draws text as a head line (with bigger fonts)
<hr> - draws a horizontal line
<i> text </i> - draws text with italic font
<i> text </i> - draws text with italic font
<ignorelinebreaks> </ignorelinebreaks> - go into normal HTML mode where
<ignorelinebreaks> </ignorelinebreaks> - go into normal HTML mode where
Line 96: Line 99:
   can also specify a tagid if you want to get onSelectTag-events
   can also specify a tagid if you want to get onSelectTag-events
   for this image
   for this image
<p align=left/center/right> text </p> - sets the align of the  
<p align=left/center/right> text </p> - sets the alignment of the  
   contained text
   contained text
<span style="width=100; height=100;" id=integer> </span> - for  
<span style="width=100; height=100;" id=integer> </span> - for  
   displaying a subpage, you can also specifiy an id for  
   displaying a subpage, you can also specifiy an id for  
   onSelectTag-events; instead of <span> you can also use <div> tags
   onSelectTag-events; instead of <span> you can also use <div> tags
<ul type="disc" or "square" or "circle"><li>item</li><li></li></ol> - displays a list, each item is indented
<ol><li>item</li></ol> - like <ul>, but is numerating each list item
</pre>
</pre>


Line 115: Line 120:
<linkcolorhl:rrggbb> - sets the highlighted color, when
<linkcolorhl:rrggbb> - sets the highlighted color, when
   the user moves the mouse over a link
   the user moves the mouse over a link
<just:left/center/right> - sets the align of the following text
<just:left/center/right> - sets the alignment of the following text
<rmargin:pixels> - sets the right margin for the text
<rmargin:pixels> - sets the right margin for the text
<rmargin%:percent> - sets the size of the right margin depending  
<rmargin%:percent> - sets the size of the right margin depending  
Line 128: Line 133:
</pre>
</pre>


<h1> text </h1> .. <h6> text <h6> - draws text as a head line (with bigger fonts)
<hr> - draws a horizontal line
<i> text </i> - draws text with italic font
<ignorelinebreaks> </ignorelinebreaks> - go into normal HTML mode where
  you need to insert <br> to do a linebreak
<img src=filename id=integer> - an image is displayed, you
  can also specify a tagid if you want to get onSelectTag-events
  for this image
<p align=left/center/right> text </p> - sets the alignment of the
  contained text
<span style="width=100; height=100;" id=integer> </span> - for
  displaying a subpage, you can also specifiy an id for
  onSelectTag-events; instead of <span> you can also use <div> tags
<ul type="disc" or "square" or "circle"><li>item</li><li></li></ol> - displays a list, each item is indented
<ol><li>item</li></ol> - like <ul>, but is numerating each list item
</pre>
'''Torque:'''
<pre>
<a:url> text </a> - when the user clicks on 'text' then
  a web browser is opened for the specified url
<bitmap:filename> - an image is displayed
<color:rrggbb> - sets the color of the text (hexadecimal value)
<lmargin:pixels> - sets the left margin for the text
<lmargin%:percent> - sets the size of the left margin depending
  on the width of the whole control
<linkcolor:rrggbb> - sets the color of links (the <a>-tag)
<linkcolorhl:rrggbb> - sets the highlighted color, when
  the user moves the mouse over a link
<just:left/center/right> - sets the alignment of the following text
<rmargin:pixels> - sets the right margin for the text
<rmargin%:percent> - sets the size of the right margin depending
  on the width of the whole control
<sbreak> - line break
<spush> - switches to a new style (like <font>)
<spop> - switches back to the last saved style (like </font>)
<tab:tab1,tab2,..> - sets the position of where tabulators should
  be displayed if you have text like 'Apple \t Egg \t Chicken'
<tag:id> - inserts an invisible tag which can be used
  for the scrollToTag(id) function (beside image-tags)
</pre>


=Example=
=Example=

Latest revision as of 09:24, 4 March 2011

Inherits GuiControl.

Description

Guicontrol multiline.png

Displays a multi-lined text which can contain several HTML-tags. This should be put in a GuiScrollCtrl to avoid text being clipped and not being displayed.

GuiMLTextCtrl is also used for displaying hints when moving the mouse over a GuiControl.


Variables

allowcolorchars - boolean

allowedtags - string

alpha - float

deniedsound - string

disallowedtags - string

maxchars - integer

parsetags - boolean

syntaxhighlighting - boolean

text - string

wordwrap - boolean

[v6] plaintext - string

Functions

addtext(str, bool) - adds text, second parameter specifies if it should automatically reflow; reflowing also updates width, height and line count, but if you plan to call addtext() several times then it's better to not let it reflow immediatelly because it can be slow on large text

getcursorline() - returns integer

getline(int) - returns string

getlinecount() - returns integer

getlines() - returns object - array of lines

gettext() - returns string

reflow()

scrolltobottom()

scrolltotag(int)

scrolltotop()

setlines(obj)

settext(str)

Events

onCursorLineChanged(line) - the cursor has been moved to another line

onSelectedTag(tagid) - an image inside the control has been clicked (<img src=imagefile id=tagid>-tag)

onURL(url) - an url has been clicked (<a href=url>-tag)

onReflow(newwidth,newheight) - the size of the displayed text has been changed


Tags

The text of multi-line text controls can contain a few HTML-tags and Torque-tags, you can use both of those tag types to define colors and fonts or to include images. The Torque-tags (previously added for compatibility) will be disabled in some time in the future, so it's recommended to use plain HTML tags. Currently following tags are available:

HTML:

<a href=url> text </a> - when the user clicks on 'text' then a 
  web browser is opened for the specified url (actually it is just 
  calling controlname.onURL(url) and the script needs to call openurl(url) then)
<b> text </b> - draws text with bold font
<body bgcolor=colorname or #rrggbb background=imagename> - sets the background color or image
<br> - line break
<center> text </center> - centers the contained text
<font face=fontname size=textsize color=colorname or #rrggbb> text </font>
  - draws text with a special font, size and color; you only
  need to define one of those 3 attributes
<h1> text </h1> .. <h6> text <h6> - draws text as a head line (with bigger fonts)
<hr> - draws a horizontal line
<i> text </i> - draws text with italic font
<ignorelinebreaks> </ignorelinebreaks> - go into normal HTML mode where
  you need to insert <br> to do a linebreak
<img src=filename id=integer> - an image is displayed, you 
  can also specify a tagid if you want to get onSelectTag-events
  for this image
<p align=left/center/right> text </p> - sets the alignment of the 
  contained text
<span style="width=100; height=100;" id=integer> </span> - for 
  displaying a subpage, you can also specifiy an id for 
  onSelectTag-events; instead of <span> you can also use <div> tags
<ul type="disc" or "square" or "circle"><li>item</li><li></li></ol> - displays a list, each item is indented
<ol><li>item</li></ol> - like <ul>, but is numerating each list item

Torque:

<a:url> text </a> - when the user clicks on 'text' then 
  a web browser is opened for the specified url
<bitmap:filename> - an image is displayed
<color:rrggbb> - sets the color of the text (hexadecimal value)
<lmargin:pixels> - sets the left margin for the text
<lmargin%:percent> - sets the size of the left margin depending 
  on the width of the whole control
<linkcolor:rrggbb> - sets the color of links (the <a>-tag)
<linkcolorhl:rrggbb> - sets the highlighted color, when
  the user moves the mouse over a link
<just:left/center/right> - sets the alignment of the following text
<rmargin:pixels> - sets the right margin for the text
<rmargin%:percent> - sets the size of the right margin depending 
  on the width of the whole control
<sbreak> - line break
<spush> - switches to a new style (like <font>)
<spop> - switches back to the last saved style (like </font>)
<tab:tab1,tab2,..> - sets the position of where tabulators should
  be displayed if you have text like 'Apple \t Egg \t Chicken'
<tag:id> - inserts an invisible tag which can be used
  for the scrollToTag(id) function (beside image-tags)

text

..

text
- draws text as a head line (with bigger fonts)
- draws a horizontal line

text - draws text with italic font <ignorelinebreaks> </ignorelinebreaks> - go into normal HTML mode where

 you need to insert 
to do a linebreak

<img src=filename id=integer> - an image is displayed, you

 can also specify a tagid if you want to get onSelectTag-events
 for this image

text

- sets the alignment of the
 contained text

- for

 displaying a subpage, you can also specifiy an id for 
onSelectTag-events; instead of you can also use
tags
  • item
  • - displays a list, each item is indented
    1. item
    - like
      , but is numerating each list item

      Torque:

      <a:url> text </a> - when the user clicks on 'text' then 
        a web browser is opened for the specified url
      <bitmap:filename> - an image is displayed
      <color:rrggbb> - sets the color of the text (hexadecimal value)
      <lmargin:pixels> - sets the left margin for the text
      <lmargin%:percent> - sets the size of the left margin depending 
        on the width of the whole control
      <linkcolor:rrggbb> - sets the color of links (the <a>-tag)
      <linkcolorhl:rrggbb> - sets the highlighted color, when
        the user moves the mouse over a link
      <just:left/center/right> - sets the alignment of the following text
      <rmargin:pixels> - sets the right margin for the text
      <rmargin%:percent> - sets the size of the right margin depending 
        on the width of the whole control
      <sbreak> - line break
      <spush> - switches to a new style (like <font>)
      <spop> - switches back to the last saved style (like </font>)
      <tab:tab1,tab2,..> - sets the position of where tabulators should
        be displayed if you have text like 'Apple \t Egg \t Chicken'
      <tag:id> - inserts an invisible tag which can be used
        for the scrollToTag(id) function (beside image-tags)
      

      Example

      new GuiMLTextCtrl("Test_MultiLineText") {
        profile = GuiBlueMLTextProfile;
        x = 10;
        y = 10;
        width = 160;
        height = 60;
        text = "<font size=24><i>Multiline-<br>Text</i></font>";
      }