home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 April / PCWorld_2003-04_cd.bin / Software / Topware / winamp / winamp3_0-full.exe / Lib / std.mi < prev   
Text File  |  2002-07-30  |  52KB  |  2,086 lines

  1. //----------------------------------------------------------------------------------------------------------------
  2. // std.mi
  3. //
  4. // standard definitions for internal objects
  5. //----------------------------------------------------------------------------------------------------------------
  6.  
  7. #ifndef true
  8. #define true 1
  9. #endif
  10. #ifndef false
  11. #define false 0
  12. #endif
  13.  
  14.  
  15. // GUIDS
  16. extern class @{51654971-0D87-4a51-91E3-A6B53235F3E7}@ @{00000000-0000-0000-0000-000000000000}@ Object;
  17. extern class @{D6F50F64-93FA-49b7-93F1-BA66EFAE3E98}@ Object _predecl System;
  18. extern class @{E90DC47B-840D-4ae7-B02C-040BD275F7FC}@ Object Container;
  19. extern class @{00C074A0-FEA2-49a0-BE8D-FABBDB161640}@ Object Wac;
  20. extern class @{B2023AB5-434D-4ba1-BEAE-59637503F3C6}@ Object &List;
  21. extern class @{38603665-461B-42a7-AA75-D83F6667BF73}@ Object ⤅
  22. extern class @{F4787AF4-B2BB-4ef7-9CFB-E74BA9BEA88D}@ Object &PopupMenu;
  23. extern class @{3A370C02-3CBF-439f-84F1-86885BCF1E36}@ Object &Region;
  24. extern class @{5D0C5BB6-7DE1-4b1f-A70F-8D1659941941}@ Object &Timer;
  25. extern class @{4EE3E199-C636-4bec-97CD-78BC9C8628B0}@ Object &GuiObject;
  26. extern class @{45BE95E5-2072-4191-935C-BB5FF9F117FD}@ GuiObject &Group;
  27. extern class @{60906D4E-537E-482e-B004-CC9461885672}@ Group &Layout;
  28. extern class @{403ABCC0-6F22-4bd6-8BA4-10C829932547}@ GuiObject &Component;
  29. extern class @{97AA3E4D-F4D0-4fa8-817B-0AF22A454983}@ GuiObject &ComponentBucket;
  30. extern class @{64E4BBFA-81F4-49d9-B0C0-A85B2EC3BCFD}@ GuiObject &Edit;
  31. extern class @{62B65E3F-375E-408d-8DEA-76814AB91B77}@ GuiObject &Slider;
  32. extern class @{CE4F97BE-77B0-4e19-9956-D49833C96C27}@ GuiObject &Vis;
  33. extern class @{A8C2200D-51EB-4b2a-BA7F-5D4BC65D4C71}@ GuiObject &Browser;
  34. extern class @{8D1EBA38-489E-483e-B960-8D1F43C5C405}@ GuiObject &EqVis;
  35. extern class @{0F08C940-AF39-4b23-80F3-B8C48F7EBB59}@ GuiObject &Status;
  36. extern class @{EFAA8672-310E-41fa-B7DC-85A9525BCB4B}@ GuiObject &Text;
  37. extern class @{7DFD3244-3751-4e7c-BF40-82AE5F3ADC33}@ GuiObject &Title;
  38. extern class @{5AB9FA15-9A7D-4557-ABC8-6557A6C67CA9}@ GuiObject &Layer;
  39. extern class @{698EDDCD-8F1E-4fec-9B12-F944F909FF45}@ GuiObject &Button;
  40. extern class @{6B64CD27-5A26-4c4b-8C59-E6A70CF6493A}@ Layer &AnimatedLayer;
  41. extern class @{B4DCCFFF-81FE-4bcc-961B-720FD5BE0FFF}@ Button &ToggleButton;
  42. extern class @{01E28CE1-B059-11d5-979F-E4DE6F51760A}@ GuiObject &GroupList;
  43. extern class @{80F0F8BD-1BA5-42a6-A093-3236A00C8D4A}@ Group &CfgGroup;
  44. extern class @{CDCB785D-81F2-4253-8F05-61B872283CFA}@ GuiObject &QueryList;
  45. extern class @{9B2E341B-6C98-40fa-8B85-0C1B6EE89405}@ GuiObject &MouseRedir;
  46. extern class @{36D59B71-03FD-4af8-9795-0502B7DB267A}@ GuiObject &DropDownList;
  47. extern class @{7FD5F210-ACC4-48df-A6A0-5451576CDC76}@ GuiObject &LayoutStatus;
  48. extern class @{B5BAA535-05B3-4dcb-ADC1-E618D28F6896}@ GuiObject &TabSheet;
  49.  
  50.  
  51. // class tree member functions & events
  52.  
  53. //*****************************************************************************
  54. // Object CLASS
  55. //*****************************************************************************
  56. /**
  57.  Object Class.
  58.  
  59.  @short    This is the base class from which all other classes inherit.
  60.  @author   Nullsoft Inc.
  61.  @ver  1.0
  62. */
  63.  
  64. /**
  65.  getClassName()
  66.  
  67.  Returns the class name for the object.
  68.  
  69.  @ret The class name.
  70. */
  71. extern String Object.getClassName();
  72.  
  73. /**
  74.  getId()
  75.  
  76. */
  77. extern String Object.getId();
  78.  
  79. /**
  80.  onNotify()
  81.  
  82.  @ret
  83.  @param  command
  84.  @param  param
  85.  @param  a
  86.  @param  b
  87. */
  88. extern Int Object.onNotify(String command, String param, int a, int b);
  89.  
  90. //*****************************************************************************
  91. // System CLASS
  92. //*****************************************************************************
  93. /**
  94.  System Class.
  95.  
  96.  @short    The system class are basic system functions accessible to all.
  97.  @author   Nullsoft Inc.
  98.  @ver  1.0
  99. */
  100.  
  101. /**
  102.  onScriptLoaded()
  103.  
  104.  Hookable. Event happens when script has just finished being loaded.
  105.  No params.
  106. */
  107. extern System.onScriptLoaded();
  108.  
  109. /**
  110.  onScriptUnloading()
  111.  
  112.  Hookable. Event happens when script is going to be unloaded.
  113.  No params.
  114. */
  115. extern System.onScriptUnloading();
  116.  
  117. /**
  118.  onQuit()
  119.  
  120.  Hookable. Event happens when the user quits the application.
  121.  No params.
  122. */
  123. extern System.onQuit();
  124.  
  125. /**
  126.  onSetXuiParam(String param, String value)
  127.  
  128.  Hookable. Event happens when the script is in a group implementing
  129.  an xuiobject and a parameter has not been recognized by the group or
  130.  the embedded object.
  131.  
  132.  No params.
  133. */
  134. extern System.onSetXuiParam(String param, String value);
  135.  
  136. /**
  137.  onKeyDown()
  138.  
  139.  Hookable. Event happens when the user presses a key on the keyboard.
  140.  
  141.  @param  key   The key that was pressed.
  142. */
  143. extern System.onKeyDown(String key);
  144.  
  145. /**
  146.  onAccelerator()
  147.  
  148.  Hookable. Event happens when the user presses an accelerator key.
  149.  
  150.  @param  action   The action to perform (from locales)
  151.  @param  section  The locales section for the accelerator.
  152.  @param  key      The key, ie: "tab", "ctrl+a".
  153. */
  154. extern System.onAccelerator(String action, String section, String key);
  155.  
  156. /**
  157.  onCreateLayout()
  158.  
  159.  Hookable. Event happens when a layout is created.
  160.  
  161.  @param  _layout   The layout that was just created.
  162. */
  163. extern System.onCreateLayout(Layout _layout);
  164.  
  165. /**
  166.  onShowLayout()
  167.  
  168.  Hookable. Event happens when a layout is about to be shown.
  169.  This even only happens if the layout was previously hidden.
  170.  
  171.  @param  _layout   The layout that's about to be shown.
  172. */
  173. extern System.onShowLayout(Layout _layout);
  174.  
  175. /**
  176.  onHideLayout()
  177.  
  178.  Hookable.
  179.  
  180.  @param  _layout   The layout that's about to be hidden.
  181. */
  182. extern System.onHideLayout(Layout _layout);
  183.  
  184. /**
  185.  onStop()
  186.  
  187.  Hookable. Event happens when Winamp3 stops playing a file.
  188.  No params.
  189. */
  190. extern System.onStop();
  191.  
  192. /**
  193.  onPlay()
  194.  
  195.  Hookable. Event happens when Winamp3 starts playing a file.
  196.  No params.
  197. */
  198. extern System.onPlay();
  199.  
  200. /**
  201.  onPause()
  202.  
  203.  Hookable. Event happens when Winamp3 pauses playback.
  204.  No params.
  205. */
  206. extern System.onPause();
  207.  
  208. /**
  209.  onResume()
  210.  
  211.  Hookable. Event happens when Winamp3 resumes playback.
  212.  Event only happens when the song was previously set in a paused state.
  213.  No params.
  214. */
  215. extern System.onResume();
  216.  
  217. /**
  218.  onTitleChange()
  219.  
  220.  Hookable. Event happens when the song title changes.
  221. */
  222. extern System.onTitleChange(String newtitle);
  223.  
  224. extern System.onTitle2Change(String newtitle2);
  225. extern System.onInfoChange(String info);
  226. extern System.onStatusMsg(String msg);
  227.  
  228. /**
  229.  onEqBandChanged()
  230.  
  231.  Hookable. Event happens when an equalizer band changes values.
  232.  The bands are numbered from 0 to 9 (0 being 60Hz and 9 being 16kHz)
  233.  and their values range from -127 to +127.
  234.  
  235.  @param  band      The frequency band that has changed.
  236.  @param  newvalue  The new value of the frequency band.
  237. */
  238. extern System.onEqBandChanged(int band, int newvalue);
  239.  
  240. /**
  241.  onEqPreampChanged()
  242.  
  243.  Hookable. Event happens when the equalizer pre-amp has changed
  244.  values. Range of the value is from -127 to +127.
  245.  
  246.  @param  newvalue  The new pre-amp value.
  247. */
  248. extern System.onEqPreampChanged(int newvalue);
  249.  
  250. /**
  251.  onEqChanged()
  252.  
  253.  Hookable. Event happens when the EQ is switched on or off.
  254.  0 means the EQ was turned off. 1 means it was turned on.
  255.  You might want to use true and false to verify this, it's a bit
  256.  more elegant. :)
  257.  
  258.  @param  newstatus   The new status of the EQ.
  259. */
  260. extern System.onEqChanged(int newstatus);
  261.  
  262. /**
  263.  onVolumeChanged()
  264.  
  265.  Hookable. Event happens when the volume was changed.
  266.  The range of the volume is from 0 to 255.
  267.  
  268.  @param  newvol    The new volume value.
  269. */
  270. extern System.onVolumeChanged(int newvol);
  271.  
  272. /**
  273.  onSeek()
  274.  
  275.  Hookable. Event happens when the user seeks
  276.  to a position in the track.
  277.  
  278.  @param  newpos    The seekers new position.
  279. */
  280. extern System.onSeek(int newpos);
  281.  
  282. /**
  283.  getContainer()
  284.  
  285.  @ret                 The requested container.
  286.  @param  container_id    The containers identifier string.
  287. */
  288. extern Container System.getContainer(String container_id);
  289.  
  290. /**
  291.  newDynamicContainer()
  292.  
  293.  @ret                 The new container.
  294.  @param  container_id    The identifier for the container you want to create.
  295. */
  296. extern Container System.newDynamicContainer(String container_id);
  297.  
  298. /**
  299.  newGroup()
  300.  
  301.  @ret             The new group.
  302.  @param  group_id    The identifier for the group you want to create.
  303. */
  304. extern Group System.newGroup(String group_id);
  305.  
  306. extern Layout System.newGroupAsLayout(String group_id);
  307.  
  308. /**
  309.  getNumContainers()
  310.  
  311.  Get the number of containers currently created.
  312.  
  313.  @ret The number of containers.
  314. */
  315. extern Int System.getNumContainers();
  316.  
  317. /**
  318.  enumContainer()
  319.  
  320.  Returns the name of the container associated with it's number.
  321.  Use getNumContainers() to fetch the number of containers present.
  322.  The containers are numbered from 0 to the value returned by getNumContainers().
  323.  
  324.  @ret       The name of the specified container.
  325.  @param  num   The container's number for which you want to know the name.
  326. */  
  327. extern Container System.enumContainer(Int num);
  328.  
  329. /**
  330.  getWac()
  331.  
  332.  Gets the reference to the wac identified by the guid sent.
  333.  
  334.  @ret The requested WAC.
  335.  @param  wac_guid  The WAC's GUID.
  336. */
  337. extern Wac System.getWac(String wac_guid);
  338.  
  339. /**
  340.  messageBox()
  341.  
  342.  Creates a message box.
  343.  The flag paramater lets you set the style of the message box.
  344.  Just use the OR bitwise operator to set the style you want.
  345.  Here's a list of the flags you can use:
  346.  
  347.  MSGBOX_OK         Adds an OK button.      (1)
  348.  MSGBOX_CANCEL     Adds a CANCEL button.   (2)
  349.  MSGBOX_YES        Adds a YES button.      (4)
  350.  MSGBOX_NO         Adds a NO button.       (8)
  351.  MSGBOX_ALL        Adds ALL buttons.       (16)
  352.  MSGBOX_NEXT       Adds a NEXT button.     (32)
  353.  MSGBOX_PREVIOUS   Adds a PREVIOUS button. (64)
  354.  
  355.  Note that the notanymore_id parameter stores the users answer in the 
  356.  configuration file with the entry name specified by it's value.
  357.  
  358.  @ret   The value of the button that was pressed (example: if OK is pressed, 1 is returned).
  359.  @param    message         The message you want to display.
  360.  @param    msgtitle        The title of the message box.
  361.  @param    flag            The message box style you want.
  362.  @param    notanymore_id   Configuration item name in which to store the users answer.
  363. */
  364. extern Int System.messageBox(String message, String msgtitle, Int flag, String notanymore_id);
  365.  
  366. /**
  367.  getPlayItemString()
  368.  
  369.  @ret The name of what is playing.
  370. */
  371. extern String System.getPlayItemString();
  372.  
  373. /**
  374.  getPlayItemLength()
  375.  
  376.  Get the length of the track currently playing, in milliseconds.
  377.  
  378.  @ret Length of the track, in seconds.
  379. */
  380. extern Int System.getPlayItemLength();
  381.  
  382. /**
  383.  getPlayItemMetaDataString()
  384.  
  385.  Get metadata for the track currently playing. The metadata field names that
  386.  are available are the following:
  387.  
  388.  **ADD LIST**
  389.  
  390.  @ret                 The requested metadata.
  391.  @param  metadataname    The name of the metadata field you want to read.
  392. */
  393. extern String System.getPlayItemMetaDataString(String metadataname);
  394.  
  395. /**
  396.  playFile()
  397.  
  398.  Play the requested file. Path and filename are required
  399.  with proper extension (example: playFile("c:\music\mp3\file.mp3"); ).
  400.  It also works with URL's (example: playFile("http://myshoutcast.com:8000"); ).
  401.  
  402.  @param  playitem  The path and filename to play.
  403. */
  404. extern System.playFile(String playitem);
  405.  
  406. /**
  407.  getLeftVuMeter()
  408.  
  409.  Get the value of the left vu meter.
  410.  Range is from 0 to 255. Linear.
  411.  
  412.  @ret The value of the left vu meter.
  413. */
  414. extern Int System.getLeftVuMeter();
  415.  
  416. /**
  417.  getRightVuMeter()
  418.  
  419.  Get the value of the right vu meter.
  420.  Range is from 0 to 255. Linear.
  421.  
  422.  @ret The value of the left vu meter.
  423. */
  424. extern Int System.getRightVuMeter();
  425.  
  426. /**
  427.  getVolume()
  428.  
  429.  Get the current volume. Range is from 0 to 255.
  430.  
  431.  @ret The current volume.
  432. */
  433. extern Int System.getVolume();
  434.  
  435. /**
  436.  setVolume()
  437.  
  438.  Set the volume to the desired value.
  439.  Range is from 0 to 255.
  440.  
  441.  @param vol  The desired volume value.
  442. */
  443. extern System.setVolume(Int vol);
  444.  
  445. /**
  446.  play()
  447.  
  448.  Trigger the play event.
  449. */
  450. extern System.play();
  451.  
  452. /**
  453.  stop()
  454.  
  455.  Trigger the stop event.
  456. */
  457. extern System.stop();
  458.  
  459. /**
  460.  pause()
  461.  
  462.  Trigger the pause event.
  463. */
  464. extern System.pause();
  465.  
  466. /**
  467.  next()
  468.  
  469.  Trigger the next event.
  470. */
  471. extern System.next();
  472.  
  473. /**
  474.  previous()
  475.  
  476.  Trigger the previous event.
  477. */
  478. extern System.previous();
  479.  
  480. /**
  481.  eject()
  482.  
  483.  Trigger the eject event.
  484. */
  485. extern System.eject();
  486.  
  487. /**
  488.  seekTo()
  489.  
  490.  Seek to the desired position in the track. Range is from
  491.  0 to SONG LENGTH (in milliseconds).
  492. */
  493. extern System.seekTo(Int pos);
  494.  
  495. /**
  496.  getPosition()
  497.  
  498.  Get the current position in the track currently playing,
  499.  in milliseconds.
  500.  
  501.  @ret The current position in the track.
  502. */
  503. extern Int System.getPosition();
  504.  
  505. /**
  506.  setEqBand()
  507.  
  508.  Sets the requested equalizer band to the specified value.
  509.  The bands are numbered from 0 (60Hz) to 9 (16kHz) and
  510.  each range from -127 to +127.
  511.  
  512.  @param  band  The EQ band to set.
  513.  @param  value The desired value for the specified band.
  514. */
  515. extern System.setEqBand(int band, Int value);
  516.  
  517. /**
  518.  setEqPreamp()
  519.  
  520.  Set the equalizer pre-amp to the desired value.
  521.  Range is from -127 to +127 (0 means no preamp).
  522.  
  523.  @param  value The desired value for the pre-amp.
  524. */
  525. extern System.setEqPreamp(Int value);
  526.  
  527. /**
  528.  Set the equalizer to the desired state. On or off.
  529.  0 is off, 1 is on.
  530.  
  531.  @param  onoff The desired state for the eq.
  532. */
  533. extern System.setEq(Int onoff);
  534.  
  535. /**
  536.  getEqBand()
  537.  
  538.  Get the value of an equalizer band. The bands
  539.  are numbered from 0 (60Hz) to 9 (16kHz). The return
  540.  value range is from -127 to +127.
  541.  
  542.  @ret       The value of the band.
  543.  @param  band  The eq band number you want to get.
  544. */
  545. extern Int System.getEqBand(int band);
  546.  
  547. /**
  548.  getEqPreamp()
  549.  
  550.  Get the equalizer preamp value. The value range is
  551.  from -127 to +127 (0 means no preamp).
  552.  
  553.  @ret The preamp's current value.
  554. */
  555. extern int System.getEqPreamp();
  556.  
  557. /**
  558.  getEq()
  559.  
  560.  Get the equalizer state. 0 for off, 1 for on.
  561.  Remember to compare return value to true and false.
  562.  
  563.  @ret The EQ's state.
  564. */
  565. extern int System.getEq();
  566.  
  567. /**
  568.  getMousePosX()
  569.  
  570.  This returns the X position of the mouse in the screen,
  571.  using the screen coordinate system.
  572.  
  573.  @ret The mouse's current X pos.
  574. */
  575. extern int System.getMousePosX();
  576.  
  577. /**
  578.  getMousePosY()
  579.  
  580.  This returns the Y position of the mouse in the screen,
  581.  using the screen coordinate system.
  582.  
  583.  @ret The mouse's current Y pos.
  584. */
  585. extern int System.getMousePosY();
  586.  
  587. /**
  588.  integerToString()
  589.  
  590.  Get the string representation of an integer.
  591.  
  592.  @ret         The string equivalent of the integer.
  593.  @param  value   The integer to change into a string.
  594. */
  595. extern String System.integerToString(Int value);
  596.  
  597. /**
  598.  StringToInteger()
  599.  
  600.  Get the integer representation of a string.
  601.  
  602.  @ret     The integer equivalent of the string.
  603.  @param  str The string to change into an integer.
  604. */
  605. extern Int System.StringToInteger(String str);
  606.  
  607. /**
  608.  floatToString()
  609.  
  610.  Get the string representation of a floating point number.
  611.  
  612.  @ret         The string representation of the float number.
  613.  @param  value   The float to convert.
  614.  @param  ndigits Number of digits after the decimal point you want.
  615. */
  616. extern String System.floatToString(float value, int ndigits);
  617.  
  618. /**
  619.  stringToFloat()
  620.  
  621.  Get the floating point representation of a string.
  622.  
  623.  @ret     The float representation of the string.
  624.  @param  str The string to convert.
  625. */
  626. extern Float System.stringToFloat(String str);
  627.  
  628. /**
  629.  integerToLongTime()
  630.  
  631.  Convert a time in seconds to a HH:MM:SS value.
  632.  
  633.  @ret       The string representation of the time (HH:MM:SS).
  634.  @param  value Timestamp to use.
  635. */
  636. extern String System.integerToLongTime(Int value);
  637.  
  638. /**
  639.  integerToTime()
  640.  
  641.  Convert a time in seconds to a MM:SS value.
  642.  
  643.  @ret       The string representation of the time (MM:SS).
  644.  @param  value Timestamp to use.
  645. */
  646. extern String System.integerToTime(Int value);
  647.  
  648. /**
  649.  strmid()
  650.  
  651.  Get a substring from a string.
  652.  
  653.  @ret       The substring.
  654.  @param  str   The string.
  655.  @param  start The start position.
  656.  @param  len   The length of the string to extract, from start position.
  657. */
  658. extern String System.strmid(String str, Int start, Int len);
  659.  
  660. /**
  661.  strleft()
  662.  
  663.  Get a substring from a string, starting from the left.
  664.  
  665.  @ret         The substring.
  666.  @param  str     The string.
  667.  @param  nchars  The length of the string to extract, from the left.
  668. */
  669. extern String System.Strleft(string str, int nchars);
  670.  
  671. /**
  672.  strright()
  673.  
  674.  Get a substring from a string, starting from the right. Since
  675.  the start point is the right of the string (or the end). It will
  676.  extract the string starting from the END going towards the BEGINNING.
  677.  
  678.  @ret         The substring.
  679.  @param  str     The string.
  680.  @param  nchars  The length of the string to extract, from the right.
  681. */
  682. extern string System.strright(string str, int nchars);
  683.  
  684. /**
  685.  strsearch()
  686.  
  687.  Search a string for any occurance of substring. If the substring was
  688.  found in the string, it will return the position of the substring in
  689.  the string searched. If the substring is not found, the return value
  690.  is -1.
  691.  
  692.  @ret         Position at which the substring was found.
  693.  @param  str     The string to search in.
  694.  @param  substr  The substring to find.
  695. */
  696. extern int System.strsearch(string str, string substr);
  697.  
  698. /**
  699.  strlen()
  700.  
  701.  Returns the length of the string.
  702.  
  703.  @ret     The length of the string.
  704.  @param  str The string.
  705. */
  706. extern int System.strlen(string str);
  707.  
  708. /**
  709.  strupper()
  710.  
  711.  Convert a string to all uppercase.
  712.  
  713.  @ret     The uppercase string.
  714.  @param  str The string to uppercase.
  715. */
  716. extern string System.strupper(string str);
  717.  
  718. /**
  719.  strlower()
  720.  
  721.  Convert a string to all lowercase.
  722.  
  723.  @ret     The lowercase string.
  724.  @param  str The string to lowercase.
  725. */
  726. extern string System.strlower(string str);
  727.  
  728. /**
  729.  urlEncode()
  730.  
  731.  URL Encode a string. Characters that are NOT encoded
  732.  are: All letters, All digits, underscore (_), dash (-) and 
  733.  period (.).
  734.  
  735.  @ret       The URL encoded string.
  736.  @param  url   The string to URL encode.
  737. */
  738. extern string System.urlEncode(string url);
  739.  
  740. /**
  741.  removePath()
  742.  
  743.  Remove the path from a fullpath. (example:
  744.  c:\music\mp3\test.mp3 -> test.mp3)
  745.  Also works on URL's.
  746.  
  747.  @ret    The filename with the path removed.
  748.  @param str The fullpath of a file.
  749. */
  750. extern string System.removePath(string str);
  751.  
  752. /**
  753.  getToken()
  754.  
  755.  Retreive a token from a list of tokens seperated by separator.
  756.  The index starts at 0, not 1, so be careful.
  757.  Here's a short example:
  758.    getToken("1,2,3,4,5", ",", 3);
  759.  Would return, 3. If the token you ask for doesn't exist, an 
  760.  empty string is returned.
  761.  
  762.  @ret             The token requested.
  763.  @param  str         The tokenenized string.
  764.  @param  separator   The separator to use.
  765.  @param  tokennum    The token to retreive.
  766. */
  767. extern string System.getToken(string str, string separator, int tokennum);
  768.  
  769. /**
  770.  sin()
  771.  
  772.  Takes an angle in radians and returns the ratio of two sides of a right triangle. 
  773.  The ratio is the length of the side opposite the angle divided by the length 
  774.  of the hypotenuse. The result range is from -1 to 1.
  775.  
  776.  Converting from degrees to radians can be done by multiplying degrees by PI/180.
  777.  
  778.  @ret       The sine value of the angle.
  779.  @param  value The angle for which you want to know the sine value.
  780. */
  781. extern double System.sin(double value);
  782.  
  783. /**
  784.  cos()
  785.  
  786.  Takes an angle in radians and returns the ratio of the two sides of a right triangle.
  787.  The ratio is the length of the side adjacent to the angle divided by the length of the
  788.  hypotenuse. The result is range is from -1 to 1.
  789.  
  790.  @ret       The cosine value of the angle.
  791.  @param  value The angle for which you want to know the cosine value.
  792. */
  793. extern double System.cos(double value);
  794.  
  795. /**
  796.  tan()
  797.  
  798.  Takes an angle in radians and returns the ratio between two sides of a right triangle.
  799.  The ratio is sin(x) divided by cos(x).
  800.  
  801.  @ret       The tangent value of the angle.
  802.  @param  value The angle for which you want to know the tangent value.
  803. */
  804. extern double System.tan(double value);
  805.  
  806. /**
  807.  asin()
  808.  
  809.  Takes a sine value ranging from -1 to 1 and returns the angle in radians.
  810.  The return value ranges from -PI/2 to +PI/2.
  811.  
  812.  @ret       The angle in radians.
  813.  @param  value The sine value for which you want to know the angle.
  814. */
  815. extern double System.asin(double value);
  816.  
  817. /**
  818.  acos()
  819.  
  820.  Takes a cosine value ranging from -1 to 1 and returns the angle in radians.
  821.  The return value ranges from -PI/2 to +PI/2.
  822.  
  823.  @ret       The angle in radians.
  824.  @param  value The cosine value for which you want to know the angle.
  825. */
  826. extern double System.acos(double value);
  827.  
  828. /**
  829.  atan()
  830.  
  831.  Takes an angle in radians and returns the ration between two sides of a right triangle.
  832.  The ratio is cos(x) divided by sin(x).
  833.  
  834.  @ret     The arc tangent value of the angle.
  835. */
  836. extern double System.atan(double value);
  837.  
  838. /**
  839.   atan2()
  840.   
  841.   @ret The arctangent of y/x.
  842. */
  843. extern double System.atan2(double y, double x);
  844.   
  845.  
  846. /**
  847.  pow()
  848.  
  849.  Elevate a number to the N'th power.
  850.  
  851.  @ret         The number
  852.  @param  value   The number you want to elevate to the N power.
  853.  @param  pvalue  The power to which you want to elevate the number.
  854. */
  855. extern double System.pow(double value, double pvalue);
  856.  
  857. /**
  858.  sqr()
  859.  
  860.  Get the square of a number.
  861.  
  862.  @ret       The number, squared.
  863.  @param  value The number for which you want the square value.
  864. */
  865. extern double System.sqr(double value);
  866.  
  867. /**
  868.  sqrt()
  869.  
  870.  Get the square root of a number.
  871.  
  872.  @ret       The square root of the number.
  873.  @param  value The number for which you want the square root value.
  874. */
  875. extern double System.sqrt(double value);
  876.  
  877. /**
  878.  random()
  879.  
  880.  Get a randomely generated number. The random number will not
  881.  be bigger than the max value indicated. Smallest value is 0.
  882.  
  883.  @ret     The random number.
  884.  @param  max The maximum value of the random number to return.
  885. */
  886. extern int System.random(int max);
  887.  
  888. /**
  889.  setPrivateString()
  890.  
  891.  Create a private config entry for your script, of String type.
  892.  
  893.  @param  section   The section for the entry.
  894.  @param  item      The item name for the entry.
  895.  @param  value     The value of the entry.
  896. */
  897. extern System.setPrivateString(string section, string item, string value);
  898.  
  899. /**
  900.  setPrivateInt()
  901.  
  902.  Create a private config entry for your script, of Int type.
  903.  
  904.  @param  section   The section for the entry.
  905.  @param  item      The item name for the entry.
  906.  @param  value     The value of the entry.
  907. */
  908. extern System.setPrivateInt(string section, string item, int value);
  909.  
  910. /**
  911.  getPrivateString()
  912.  
  913.  Read a private config entry of String type. Returns
  914.  the specified default value if the section and item isn't
  915.  found.  
  916.  
  917.  @ret           The value of the config entry.
  918.  @param  section   The section from which to read the entry.
  919.  @param  item      The name of the item to read.
  920.  @param  defvalue  The default value to return if no item is found.
  921. */
  922. extern String System.getPrivateString(String section, String item, String defvalue);
  923.  
  924. /**
  925.  getPrivateInt()
  926.  
  927.  Read a private config entry of Integer type. Returns
  928.  the specified default value if the section and item isn't
  929.  found.  
  930.  
  931.  @ret           The value of the config entry.
  932.  @param  section   The section from which to read the entry.
  933.  @param  item      The name of the item to read.
  934.  @param  defvalue  The defautl value to return if no item is found.
  935. */
  936. extern Int System.getPrivateInt(String section, String item, Int defvalue);
  937.  
  938. /**
  939.  setPublicString()
  940.  
  941.  Create a public config entry for your script, of String type.
  942.  
  943.  @param  item  The item name for the entry.
  944.  @param  value The value of the entry.
  945. */
  946. extern System.setPublicString(String item, String value);
  947.  
  948. /**
  949.  setPublicInt()
  950.  
  951.  Create a public config entry for your script, of Int type.
  952.  
  953.  @param  item  The item name of the entry.
  954.  @param  value The value of the entry.
  955. */
  956. extern System.setPublicInt(String item, Int value);
  957.  
  958. /**
  959.  getPublicString()
  960.  
  961.  Read a public config entry of String type. Returns 
  962.  the specified default value if the item isn't found.
  963.  
  964.  @ret           The value of the config entry.
  965.  @param  item      The item name to read.
  966.  @param  defvalue  The default value to return if no item is found.
  967. */
  968. extern String System.getPublicString(String item, String defvalue);
  969.  
  970. /**
  971.  getPublicInt()
  972.  
  973.  Read a public config entry of Integer type. Returns
  974.  the specified default value if the item isn't found.
  975.  
  976.  @ret           The value of the config entry.
  977.  @param  item      The item name to read.
  978.  @param  defvalue  The default value to return if no item is found.
  979. */
  980. extern Int System.getPublicInt(String item, Int defvalue);
  981.  
  982. /**
  983.  getParam()
  984.  
  985.  Get the parameters with which the script is called.
  986.  This is the 'param="..."' attribute in the <script ...>
  987.  skin XML tag.
  988.  
  989.  @ret The parameter for the script.
  990. */
  991. extern String System.getParam();
  992.  
  993. /**
  994.  getScriptGroup()
  995.  
  996.  Get the group in which the script is instantiated. Returns
  997.  Null if it's not instantiated in a group.
  998.  
  999.  @ret 
  1000. */
  1001. extern Group System.getScriptGroup();
  1002.  
  1003. /**
  1004.  getViewPortWidth()
  1005.  
  1006.  Get the user's screen width in pixels.
  1007.  
  1008.  @ret The width of the user's screen.
  1009. */
  1010. extern Int System.getViewportWidth();
  1011.  
  1012. /**
  1013.  getViewPortHeight()
  1014.  
  1015.  Get the user's screen height in pixels.
  1016.  
  1017.  @ret The height of the user's screen.
  1018. */
  1019. extern Int System.getViewportHeight();
  1020.  
  1021. extern Int System.getViewportLeft();
  1022. extern Int System.getViewportTop();
  1023.  
  1024. /**
  1025.  debugString()
  1026.  
  1027.  Send a debug message to the Wasabi Console.
  1028.  The severity ranges from 0 (not serious) to 9 (very serious).
  1029.  
  1030.  @param  str       The debug message.
  1031.  @param  severity  The severity of the error.
  1032. */
  1033. extern System.debugString(String str, Int severity);
  1034.  
  1035. /**
  1036.  ddeSend()
  1037.  
  1038.  Send a DDE message to an application. The minimum
  1039.  interval between messages is specified in milliseconds.
  1040.  Here's an example:
  1041.  
  1042.  ddeSend("mIRC", "/msg #channel I'm using Winamp3", 300);
  1043.  
  1044.  @param  application   The DDE server name of the application.
  1045.  @param  command       The command to send.
  1046.  @param  mininterval   The minimum interval to respect between messages (in ms).
  1047. */
  1048. extern System.ddeSend(String application, String command, Int mininterval);
  1049.  
  1050. /**
  1051.  onLookForComponent()
  1052.  
  1053.  Hookable. Event happens when the component with the
  1054.  specified GUID is going to be shown. Don't forget
  1055.  to return the component when you're done doing what
  1056.  you want to do (example: animate something).
  1057.  
  1058.  @ret       The component requested.
  1059.  @param  guid  The requested components GUID.
  1060.  
  1061. */
  1062. extern Component System.onLookForComponent(String guid);
  1063.  
  1064. /**
  1065.  getCurAppLeft()
  1066.  
  1067.  Get the applications current left coordinate in the screen,
  1068.  using the screen coordinate system.
  1069.  
  1070.  @ret The left coordinate of the application.
  1071. */
  1072. extern Int System.getCurAppLeft();
  1073.  
  1074. /**
  1075.  getCurAppTop()
  1076.  
  1077.  Get the applications current top coordinate in the screen,
  1078.  using the screen coordinate system.
  1079.  
  1080.  @ret The top coordinate of the application.
  1081. */
  1082. extern Int System.getCurAppTop();
  1083.  
  1084. /**
  1085.  getCurAppWidth()
  1086.  
  1087.  Get the applications current window width, in pixels.
  1088.  
  1089.  @ret The width of the application window.
  1090. */
  1091. extern Int System.getCurAppWidth();
  1092.  
  1093. /**
  1094.  getCurAppHeight()
  1095.  
  1096.  Get the applications current window height, in pixels.
  1097.  
  1098.  @ret The height of the application window.
  1099. */
  1100. extern Int System.getCurAppHeight();
  1101.  
  1102. /**
  1103.  isAppActive()
  1104.  
  1105.  Get the current status of the application. If it's active,
  1106.  it means the application has focus. True is active, false is
  1107.  inactive.
  1108.  
  1109.  @ret The application's status.
  1110. */
  1111. extern Boolean System.isAppActive();
  1112.  
  1113. /**
  1114.  getSkinName()
  1115.  
  1116.  Get the skin name for the loaded skin.
  1117.  
  1118.  @ret The skin's name.
  1119. */
  1120. extern String System.getSkinName();
  1121.  
  1122. /**
  1123.  getMainBrowser()
  1124.  
  1125.  Get a reference to the main browser object.
  1126.  This is the browser object that's defined with
  1127.  mainmb="1" in the skin XML.
  1128.  
  1129.  @ret A reference to the main browser object.
  1130. */
  1131. extern Browser System.getMainBrowser();
  1132. extern System.popMainBrowser();
  1133. extern System.navigateUrl(String url); 
  1134.  
  1135. /**
  1136.  isObjectValid()
  1137.  
  1138.  Verifies if an object is valid. You can also verify
  1139.  this using the Null object. True means the object is valid,
  1140.  false means it isn't.
  1141.  
  1142.  @ret   The validity of the object.
  1143.  @param  o The object you want to verify.
  1144. */
  1145. extern Boolean System.isObjectValid(Object o);
  1146.  
  1147. /**
  1148.  integer()
  1149.  
  1150.  Takes a Double and returns the closest integer representation.
  1151.  
  1152.  @ret   The integer representation of the double.
  1153.  @param  d The double for which you want an integer representation.
  1154. */
  1155. extern Int System.integer(Double d);
  1156.  
  1157. /**
  1158.  getTimeOfDay()
  1159.  
  1160.  Read the current time of the day. Returns a number that's
  1161.  the number of milliseconds since the start of the day (0:00).
  1162.  
  1163.  @ret The number of milliseconds since midnight.
  1164. */
  1165. extern Int System.getTimeOfDay();
  1166.  
  1167. /**
  1168.  setMenuTransparency()
  1169.  
  1170.  Set the menu's transparency value (alpha blending). Ranges 
  1171.  from 0 to 255. 0 being totally transparent and 255 being 
  1172.  totally opaque.
  1173.  
  1174.  @param alphavalue   The transparency value to set.
  1175. */
  1176. extern System.setMenuTransparency(int alphavalue);
  1177.  
  1178. extern Boolean System.onGetCancelComponent(String guid, boolean goingvisible);
  1179.  
  1180. #define STATUS_PAUSED -1
  1181. #define STATUS_STOPPED 0
  1182. #define STATUS_PLAYING 1
  1183.  
  1184. /**
  1185.  getStatus()
  1186.  
  1187.  returns the status of the main player core.
  1188.  
  1189.  @ret STATUS_PAUSED (-1) if paused, STATUS_STOPPED (0) if stopped, STATUS_PLAYING (1) if playing.
  1190. */
  1191. extern Int System.getStatus();
  1192.  
  1193. #define VK_SHIFT   16
  1194. #define VK_CONTROL 17
  1195. #define VK_ALT     18
  1196.  
  1197. /**
  1198.  Int isKeyDown(int vk_code)
  1199.  
  1200.  Checks if a virtual key (like VK_CONTROL, VK_SHIFT, VK_ALT) is pressed.
  1201.  
  1202.  @ret 1 if key is pressed, 0 if not.
  1203. */
  1204.  
  1205. extern Int System.isKeyDown(int vk_code);
  1206.  
  1207. /**
  1208.  setClipboardText(String text)
  1209.  
  1210.  Sets the given text to the clipboard.
  1211. */
  1212.  
  1213. extern System.setClipboardText(String _text);
  1214.  
  1215. /**
  1216.  String Chr(Int charnum)
  1217.  
  1218.  Returns a string the ascii char.
  1219. */
  1220.  
  1221. extern String System.Chr(Int charnum);
  1222.  
  1223. extern System.systemMenu();
  1224. extern System.windowMenu();
  1225.  
  1226.  
  1227. //*****************************************************************************
  1228. // Container CLASS
  1229. //*****************************************************************************
  1230. /**
  1231.  Container Class.
  1232.  
  1233.  @short    The container class enables you to control current containers and also create them.
  1234.  @author   Nullsoft Inc.
  1235.  @ver  1.0
  1236. */
  1237.  
  1238. /**
  1239.  onSwitchToLayout()
  1240.  
  1241.  Hookable. Event happens when a container is going to switch 
  1242.  from the currently active layout to another layout (newlayout).
  1243.  
  1244.  @param newlayout  The new layout that will be used.
  1245. */
  1246. extern Container.onSwitchToLayout(Layout newlayout);
  1247.  
  1248. /**
  1249.  onHideLayout()
  1250.  
  1251.  Hookable. Event happens when a container is about to hide
  1252.  the currently active layout (_layout).
  1253.  
  1254.  @param  _layout The layout that's going to be hidden.
  1255. */
  1256. extern Container.onHideLayout(Layout _layout);
  1257.  
  1258. /**
  1259.  onShowLayout()
  1260.  
  1261.  Hookable. Event happens when a container is about to
  1262.  show a layout (_layout).
  1263.  
  1264.  @param  _layout The layout about to be shown
  1265. */
  1266. extern Container.onShowLayout(Layout _layout);
  1267.  
  1268. /**
  1269.  getLayout()
  1270.  
  1271.  Get the layout associated with the an id.
  1272.  This corresponds to the "id=..." attribute in
  1273.  the XML tag <layout .. />.
  1274.  
  1275.  @ret             The layout associated with the id.
  1276.  @param  layout_id   The id of the layout you wish to retrieve.
  1277. */
  1278. extern Layout Container.getLayout(String layout_id);
  1279.  
  1280. /**
  1281.  getNumLayouts()
  1282.  
  1283.  Get the number of layouts contained in the
  1284.  container.
  1285.  
  1286.  @ret       The number of layouts.
  1287. */
  1288. extern Int Container.getNumLayouts();
  1289.  
  1290. /**
  1291.  enumLayout()
  1292.  
  1293.  Get the layout by it's index number.
  1294.  Range is from 0 to the value returned 
  1295.  by getNumLayouts() - 1.
  1296.  
  1297.  @ret       The layout.
  1298.  @param  num   The index number of the layout you want.
  1299. */
  1300. extern Layout Container.enumLayout(Int num);
  1301.  
  1302. /**
  1303.  switchToLayout()
  1304.  
  1305.  Switch to a perticular layout by using the
  1306.  desired layout's id. This corresponds to the
  1307.  "id=..." attribute in the XML tag <layout .. />.
  1308.  
  1309.  @param  layout_id   The id of the layout to which you want to switch.
  1310. */
  1311. extern Container.switchToLayout(Layout layout_id);
  1312.  
  1313. /**
  1314.  show()
  1315.  
  1316.  Trigger the show event.
  1317. */
  1318. extern Container.show();
  1319.  
  1320. /**
  1321.  hide()
  1322.  
  1323.  Trigger the hide event.
  1324. */
  1325. extern Container.hide();
  1326.  
  1327. /**
  1328.  toggle()
  1329.  
  1330.  Toggle the containers state between Shown / Hidden.
  1331. */
  1332. extern Container.toggle();
  1333.  
  1334. /**
  1335.  isDynamic()
  1336.  
  1337.  Tells you if the current container is a dynamic 
  1338.  container or not. Values are true (1) for dynamic
  1339.  false (0) for static.
  1340.  
  1341.  @ret The container type (dynamic or static).
  1342. */
  1343. extern Int Container.isDynamic();
  1344.  
  1345. extern Container.setName(String name);
  1346.  
  1347. //*****************************************************************************
  1348. // WAC CLASS
  1349. //*****************************************************************************
  1350. /**
  1351.  WAC Class.
  1352.  
  1353.  @short    .
  1354.  @author   Nullsoft Inc.
  1355.  @ver  1.0
  1356. */
  1357.  
  1358. /**
  1359.  getGuid()
  1360.  
  1361.  Get the GUID of the WAC.
  1362.  
  1363.  @ret The GUID of the WAC.
  1364. */
  1365. extern String Wac.getGuid();
  1366.  
  1367. /**
  1368.  getName()
  1369.  
  1370.  Get the name of the WAC.
  1371.  
  1372.  @ret The name of the WAC.
  1373. */
  1374. extern String Wac.getName();
  1375.  
  1376. /**
  1377.  sendCommand()
  1378.  
  1379.  
  1380. */
  1381. extern Int Wac.sendCommand(String cmd, Int param1, Int param2, String param3);
  1382.  
  1383. /**
  1384.  show()
  1385.  
  1386.  Trigger the show event.
  1387. */
  1388. extern Wac.show();
  1389.  
  1390. /**
  1391.  hide()
  1392.  
  1393.  Trigger the hide event.
  1394. */
  1395. extern Wac.hide();
  1396.  
  1397. /**
  1398.  isVisible()
  1399.  
  1400.  
  1401. */
  1402. extern Boolean Wac.isVisible();
  1403.  
  1404. /**
  1405.  onNotify()
  1406.  
  1407.  
  1408. */
  1409. extern Wac.onNotify(String notifstr, Int a, Int b);
  1410.  
  1411. /**
  1412.  onShow()
  1413.  
  1414.  Hookable. The event happens when the WAC is about
  1415.  to be shown.
  1416. */
  1417. extern Wac.onShow();
  1418.  
  1419. /**
  1420.  onHide()
  1421.  
  1422.  Hookable. The event happens when the WAC is about
  1423.  to be hidden.
  1424. */
  1425. extern Wac.onHide();
  1426.  
  1427. /**
  1428.  setStatusBar()
  1429.  
  1430.  Set the status bars visibility.
  1431.  Sending true will make the status bar 
  1432.  visible while sending false will hide
  1433.  it.
  1434.  
  1435.  @param  onoff   The status bars visibility.
  1436. */
  1437. extern Wac.setStatusBar(Boolean onoff);
  1438.  
  1439. /**
  1440.  getStatusBar()
  1441.  
  1442.  Get the status bars visibility. True means
  1443.  it's visible, false means it's hidden.
  1444.  
  1445.  @ret The status bars visibility.
  1446. */
  1447. extern Boolean Wac.getStatusBar();
  1448.  
  1449. //*****************************************************************************
  1450. // GUIOBJECT CLASS
  1451. //*****************************************************************************
  1452. /**
  1453.  GuiObject Class.
  1454.  
  1455.  @short    .
  1456.  @author   Nullsoft Inc.
  1457.  @ver  1.0
  1458. */
  1459.  
  1460. /**
  1461.  show()
  1462.  
  1463.  Trigger the show event.
  1464. */
  1465. extern GuiObject.show();
  1466.  
  1467. /**
  1468.  hide()
  1469.  
  1470.  Trigger the hide event.
  1471. */ 
  1472. extern GuiObject.hide();
  1473.  
  1474. /**
  1475.  isVisible()
  1476.  
  1477.  Get the visibility status of the object.
  1478.  False means it's hidden, true means it's
  1479.  visible.
  1480.  
  1481.  @ret The visibility status of the object.
  1482. */
  1483. extern int GuiObject.isVisible();
  1484.  
  1485. /**
  1486.  onSetVisible()
  1487.  
  1488.  Hookable. Event happens when the visibility
  1489.  status of the object is changed from visible to
  1490.  hidden or vice-versa.
  1491.  
  1492.  @param  onoff   The objects visibility status.
  1493. */
  1494. extern GuiObject.onSetVisible(Boolean onoff);
  1495.  
  1496. /**
  1497.  setAlpha()
  1498.  
  1499.  Set the alphablending value of the object.
  1500.  Value ranges from 0 (fully transparent) to 
  1501.  255 (fully opaque).
  1502.  
  1503.  @param  alpha   The alpha value.
  1504. */
  1505. extern GuiObject.setAlpha(int alpha);
  1506.  
  1507. /**
  1508.  getAlpha()
  1509.  
  1510.  Get the current alphablending value of
  1511.  the object. Value ranges from 0 (fully
  1512.  transparent) to 255 (fully opaque).
  1513.  
  1514.  @ret The alpha value.
  1515. */
  1516. extern int GuiObject.getAlpha();
  1517.  
  1518. /**
  1519.  onLeftButtonUp()
  1520.  
  1521.  Hookable. Event happens when the left mouse
  1522.  button was previously down and is now up.
  1523.  
  1524.  @param  x   The X position in the screen where the cursor was when the event was triggered.
  1525.  @param  y   The Y position in the screen where the cursor was when the event was triggered.
  1526. */
  1527. extern GuiObject.onLeftButtonUp(int x, int y);
  1528.  
  1529. /**
  1530.  onLeftButtonDown()
  1531.  
  1532.  Hookable. Event happens when the left mouse button
  1533.  is pressed.
  1534.  
  1535.  @param  x   The X position in the screen where the cursor was when the event was triggered.
  1536.  @param  y   The Y position in the screen where the cursor was when the event was triggered.
  1537. */
  1538. extern GuiObject.onLeftButtonDown(int x, int y);
  1539.  
  1540. /**
  1541.  onRightButtonUp()
  1542.  
  1543.  Hookable. Event happens when the right mouse button
  1544.  was previously down and is now up.
  1545.  
  1546.  @param  x   The X position in the screen where the cursor was when the event was triggered.
  1547.  @param  y   The Y position in the screen where the cursor was when the event was triggered.
  1548. */
  1549. extern GuiObject.onRightButtonUp(int x, int y);
  1550.  
  1551. /**
  1552.  onRightButtonDown()
  1553.  
  1554.  Hookable. Event happens when the right mouse button
  1555.  is pressed.
  1556.  
  1557.  @param  x   The X position in the screen where the cursor was when the event was triggered.
  1558.  @param  y   The Y position in the screen where the cursor was when the event was triggered.
  1559. */
  1560. extern GuiObject.onRightButtonDown(int x, int y);
  1561.  
  1562. /**
  1563.  onRightButtonDlbClk()
  1564.  
  1565.  Hookable. Event happens when the right mouse button
  1566.  is double clicked.
  1567.  
  1568.  @param  x   The X position in the screen where the cursor was when the event was triggered.
  1569.  @param  y   The Y position in the screen where the cursor was when the event was triggered.
  1570. */
  1571. extern GuiObject.onRightButtonDblClk(int x, int y);
  1572.  
  1573. /**
  1574.  onLeftButtonDlbClk()
  1575.  
  1576.  Hookable. Event happens when the left mouse button
  1577.  is double clicked.
  1578.  
  1579.  @param  x   The X position in the screen where the cursor was when the event was triggered.
  1580.  @param  y   The Y position in the screen where the cursor was when the event was triggered.
  1581. */
  1582. extern GuiObject.onLeftButtonDblClk(int x, int y);
  1583.  
  1584. /**
  1585.  onMouseMove()
  1586.  
  1587.  Hookable. Event happens when the mouse is moved.
  1588.  
  1589.  @param  x   The new X screen position of the mouse.
  1590.  @param  y   The new Y screen position of the mouse.
  1591. */
  1592. extern GuiObject.onMouseMove(int x, int y);
  1593.  
  1594. /**
  1595.  onEnterArea()
  1596.  
  1597.  Hookable. Event happens when the mouse
  1598.  enters the objects area.
  1599. */
  1600. extern GuiObject.onEnterArea();
  1601.  
  1602. /**
  1603.  onLeaveArea()
  1604.  
  1605.  Hookable. Event happens when the mouse
  1606.  leaves the objects area.
  1607. */
  1608. extern GuiObject.onLeaveArea();
  1609.  
  1610. /**
  1611.  setEnabled()
  1612. */
  1613. extern GuiObject.setEnabled(boolean onoff);
  1614.  
  1615. /**
  1616.  getEnabled()
  1617. */
  1618. extern boolean GuiObject.getEnabled();
  1619.  
  1620. /**
  1621.  onEnabled()
  1622. */
  1623. extern GuiObject.onEnable(boolean onoff);
  1624.  
  1625. /**
  1626.  resize()
  1627.  
  1628.  Resize the object to the desired size and position.
  1629.  
  1630.  @param  x   The X position where to anchor the object before resize.
  1631.  @param  y   The Y position where to anchor the object before resize.
  1632.  @param  w   The width you wish the object to have.
  1633.  @param  h   The height you wish the object to have.
  1634. */
  1635. extern GuiObject.resize(int x, int y, int w, int h);
  1636.  
  1637. /**
  1638.  onResize()
  1639.  
  1640.  Hookable. Event happens when the object is about
  1641.  to be resized.
  1642.  
  1643.  @param  x   The X position where the object will be anchored.
  1644.  @param  y   The Y position where the object will be anchored.
  1645.  @param  w   The width the object will have.
  1646.  @param  h   The height the object will have.
  1647. */
  1648. extern GuiObject.onResize(int x, int y, int w, int h);
  1649.  
  1650. /**
  1651.  isMouseOver()
  1652.  
  1653. */
  1654. extern boolean GuiObject.isMouseOver(int x, int y);
  1655.  
  1656. /**
  1657.  getLeft()
  1658.  
  1659.  Get the X position, in the screen, of the 
  1660.  left edge of the object.
  1661.  
  1662.  @ret The left edge's position (in screen coordinates).
  1663. */
  1664. extern int GuiObject.getLeft();
  1665.  
  1666. /**
  1667.  getTop()
  1668.  
  1669.  Get the Y position, in the screen, of the
  1670.  top edge of the object.
  1671.  
  1672.  @ret The top edge's position (in screen coordinates).
  1673. */
  1674. extern int GuiObject.getTop();
  1675.  
  1676. /**
  1677.  getWidth()
  1678.  
  1679.  Get the width of the object, in pixels.
  1680.  
  1681.  @ret The width of the object.
  1682. */
  1683. extern int GuiObject.getWidth();
  1684.  
  1685. /**
  1686.  getHeight()
  1687.  
  1688.  Get the height of the object, in pixels.
  1689.  
  1690.  @ret The height of the object.
  1691. */
  1692. extern int GuiObject.getHeight();
  1693.  
  1694. /**
  1695.  setTargetX()
  1696.  
  1697.  Set a target X position, in the screen, for
  1698.  the object.
  1699.  
  1700.  @param  x   The target X position of the object.
  1701. */
  1702. extern GuiObject.setTargetX(int x);
  1703.  
  1704. /**
  1705.  setTargetY()
  1706.  
  1707.  Set a target Y position, in the screen, for
  1708.  the object.
  1709.  
  1710.  @param  y   The target Y position of the object.
  1711. */
  1712. extern GuiObject.setTargetY(int y);
  1713.  
  1714. /**
  1715.  setTargetW()
  1716.  
  1717.  Set a target width, in pixels, for the object.
  1718.  
  1719.  @param  w   The target width of the object.
  1720. */
  1721. extern GuiObject.setTargetW(int w);
  1722.  
  1723. /**
  1724.  setTargetH()
  1725.  
  1726.  Set a target height, in pixels, for the object.
  1727.  
  1728.  @param  h   The target height of the object.
  1729. */
  1730. extern GuiObject.setTargetH(int r);
  1731.  
  1732. /**
  1733.  setTargetA()
  1734.  
  1735.  Set a target alphablending value for the object.
  1736.  The value range is from 0 (totally transparent)
  1737.  to 255 (totally opaque).
  1738.  
  1739.  @param  alpha   The target alpha value.
  1740. */
  1741. extern GuiObject.setTargetA(int alpha);
  1742.  
  1743. /**
  1744.  setTargetSpeed()
  1745.  
  1746.  The amount of time in which you wish to arrive at
  1747.  the target(s) previously set, in seconds.
  1748.  
  1749.  @param  insecond    The number of seconds in which to reach the target.
  1750. */
  1751. extern GuiObject.setTargetSpeed(float insecond);
  1752.  
  1753. /**
  1754.  gotoTarget()
  1755.  
  1756.  Begin transition to previously set target.
  1757. */
  1758. extern GuiObject.gotoTarget();
  1759.  
  1760. /**
  1761.  onTargetReached()
  1762.  
  1763.  Hookable. Event happens when the object has reached
  1764.  it's previously set target.
  1765. */
  1766. extern GuiObject.onTargetReached();
  1767.  
  1768. extern GuiObject.cancelTarget();
  1769. /**
  1770.  isGoingToTarget() 
  1771.  
  1772. */
  1773. extern boolean GuiObject.isGoingToTarget();
  1774. extern GuiObject.setXmlParam(String param, String value);
  1775. extern String GuiObject.getXmlParam(String param);
  1776. extern GuiObject.init(Group parent);
  1777. extern GuiObject.bringToFront();
  1778. extern GuiObject.bringToBack();
  1779. extern GuiObject.bringAbove(GuiObject guiobj);
  1780. extern GuiObject.bringBelow(GuiObject guiobj);
  1781. extern Int GuiObject.getGuiX();
  1782. extern Int GuiObject.getGuiY();
  1783. extern Int GuiObject.getGuiW();
  1784. extern Int GuiObject.getGuiH();
  1785. extern Int GuiObject.getGuiRelatX();
  1786. extern Int GuiObject.getGuiRelatY();
  1787. extern Int GuiObject.getGuiRelatW();
  1788. extern Int GuiObject.getGuiRelatH();
  1789. extern Boolean GuiObject.isActive();
  1790. extern GuiObject GuiObject.getParent();
  1791. extern Layout GuiObject.getParentLayout();
  1792. extern int GuiObject.runModal();
  1793. extern GuiObject.endModal(int retcode);
  1794. extern GuiObject GuiObject.findObject(String id);
  1795. extern String GuiObject.getName();
  1796. extern int GuiObject.clientToScreenX(int x);
  1797. extern int GuiObject.clientToScreenY(int y);
  1798. extern int GuiObject.screenToClientX(int x);
  1799. extern int GuiObject.screenToClientY(int y);
  1800. extern int GuiObject.getAutoWidth();
  1801. extern int GuiObject.getAutoHeight();
  1802. extern GuiObject.setFocus();
  1803. extern GuiObject.onChar(String c);
  1804. extern GuiObject.onAccelerator(String accel);
  1805. extern Boolean GuiObject.isMouseOverRect();
  1806.  
  1807. #define VK_PRIOR    33
  1808. #define VK_NEXT     34
  1809. #define VK_END      35
  1810. #define VK_HOME     36
  1811. #define VK_LEFT     37
  1812. #define VK_UP       38
  1813. #define VK_RIGHT    39
  1814. #define VK_DOWN     40
  1815.  
  1816. extern GuiObject.onKeyDown(int vk_code);
  1817. extern GuiObject.onKeyUp(int vk_code);
  1818. extern GuiObject.onGetFocus();
  1819. extern GuiObject.onKillFocus();
  1820. extern Int GuiObject.sendAction(String action, String param, Int x, int y, int p1, int p2);
  1821.  
  1822.   // Group
  1823.  
  1824. extern GuiObject Group.getObject(String object_id);
  1825. extern Int Group.getNumObjects();
  1826. extern GuiObject Group.enumObject(Int num);
  1827. extern Group.onCreateObject(GuiObject newobj);
  1828. extern Int Group.getMousePosX();
  1829. extern Int Group.getMousePosY();
  1830. extern Boolean Group.isLayout();
  1831.  
  1832.  
  1833.   // Layout
  1834.  
  1835. extern Layout.onDock();
  1836. extern Layout.onUndock();
  1837. extern Layout.onScale(Double newscalevalue);
  1838. extern Double Layout.getScale();
  1839. extern Layout.setScale(Double scalevalue);
  1840. extern Layout.setDesktopAlpha(Boolean onoff);
  1841. extern Container Layout.getContainer();
  1842. extern Layout.center();
  1843.  
  1844.   // List
  1845.  
  1846. extern List.addItem(Any _object);
  1847. extern List.removeItem(int pos);
  1848. extern Any List.enumItem(int pos);
  1849. extern Int List.findItem(Any _object);
  1850. extern int List.getNumItems();
  1851. extern List.removeAll();
  1852.  
  1853.   // Map
  1854.  
  1855. extern Int Map.getValue(int x, int y);
  1856. extern Boolean Map.inRegion(int x, int y);
  1857. extern Map.loadMap(String bitmapid);
  1858. extern Int Map.getWidth();
  1859. extern Int Map.getHeight();
  1860. extern Region Map.getRegion();
  1861.  
  1862.   // PopupMenu
  1863.  
  1864. extern PopupMenu.addSubMenu(PopupMenu submenu, String submenutext);
  1865. extern PopupMenu.addCommand(String cmdtxt, Int cmd_id, Boolean checked, Boolean disabled);
  1866. extern PopupMenu.addSeparator();
  1867. extern Int PopupMenu.popAtXY(int x, int y);
  1868. extern Int PopupMenu.popAtMouse();
  1869. extern Int PopupMenu.getNumCommands();
  1870. extern PopupMenu.checkCommand(int cmd_id, boolean check);
  1871. extern PopupMenu.disableCommand(int cmd_id, boolean disable);
  1872.  
  1873.   // Region
  1874.  
  1875. extern Region.add(Region reg);
  1876. extern Region.sub(Region reg);
  1877. extern Region.offset(int x, int y);
  1878. extern Region.stretch(double r);
  1879. extern Region.copy(Region reg);
  1880. extern Region.loadFromMap(Map regionmap, Int threshold, Boolean reversed);
  1881. extern Region.loadFromBitmap(String bitmapid);
  1882. extern Int Region.getBoundingBoxX();
  1883. extern Int Region.getBoundingBoxY();
  1884. extern Int Region.getBoundingBoxW();
  1885. extern Int Region.getBoundingBoxH();
  1886.  
  1887.   // Timer
  1888.  
  1889. extern Timer.onTimer();
  1890. extern Timer.setDelay(int millisec);
  1891. extern Int Timer.getDelay();
  1892. extern Timer.start();
  1893. extern Timer.stop();
  1894. extern Timer.isRunning();
  1895.  
  1896.   // Component
  1897.  
  1898. extern Component.onGetWac(Wac wacobj);
  1899. extern Component.onGiveUpWac(Wac wacobj);
  1900. extern String Component.getGuid();
  1901. extern Wac Component.getWac();
  1902. extern Component.setRegionFromMap(Map regionmap, Int threshold, Boolean reverse);
  1903. extern Component.setRegion(Region reg);
  1904. extern Component.setAcceptWac(Boolean onoff);
  1905.  
  1906.   // Edit
  1907.  
  1908. extern Edit.onEnter();
  1909. extern Edit.onAbort();
  1910. extern Edit.onIdleEditUpdate();
  1911. extern Edit.onEditUpdate();
  1912. extern Edit.setText(String txt); 
  1913. extern Edit.setAutoEnter(boolean onoff);
  1914. extern Int Edit.getAutoEnter();
  1915. extern String Edit.getText();
  1916. extern Edit.selectAll();
  1917. extern Edit.enter();
  1918. extern Edit.setIdleEnabled(boolean onoff);
  1919. extern Int Edit.getIdleEnabled();
  1920.  
  1921.   // Slider
  1922.  
  1923. extern Slider.onSetPosition(int newpos);
  1924. extern Slider.onPostedPosition(int newpos);
  1925. extern Slider.onSetFinalPosition(int pos);
  1926. extern Slider.setPosition(int pos);
  1927. extern Int Slider.getPosition();
  1928. extern Slider.lock(); // locks descendant core collbacks
  1929. extern Slider.unlock(); // unloads them
  1930.  
  1931.  
  1932.   // Vis
  1933.  
  1934. extern Vis.onFrame();
  1935. extern Vis.setRealtime(Boolean onoff);
  1936. extern Boolean Vis.getRealtime();
  1937. extern Int Vis.getMode();
  1938. extern Vis.setMode(Int mode);
  1939. extern Vis.nextMode();
  1940.  
  1941.   // Browser
  1942.  
  1943. extern Browser.navigateUrl(String url);
  1944. extern Browser.back();
  1945. extern Browser.forward();
  1946. extern Browser.stop();
  1947. extern Browser.refresh();
  1948. extern Browser.home();
  1949. extern Browser.setTargetName(String targetname);
  1950. extern Boolean Browser.onBeforeNavigate(String url, Int flags, String targetframename); // return TRUE to cancel navigation
  1951. extern Browser.onDocumentComplete(String url);
  1952.  
  1953.  
  1954.   // Text
  1955.  
  1956. extern Text.setText(String txt); // changes the display/text="something" param
  1957. extern Text.setAlternateText(String txt); // overrides the display/text parameter with a custom string, set "" to cancel
  1958. extern String Text.getText();
  1959. extern int Text.getTextWidth();
  1960. extern Text.onTextChanged(String newtxt);
  1961.  
  1962.   // Layer
  1963.  
  1964. extern Layer.onBeginResize(int x, int y, int w, int h);
  1965. extern Layer.onEndResize(int x, int y, int w, int h);
  1966. extern Layer.fx_onInit();
  1967. extern Layer.fx_onFrame();
  1968. extern Double Layer.fx_onGetPixelR(double r, double d, double x, double y);
  1969. extern Double Layer.fx_onGetPixelD(double r, double d, double x, double y);
  1970. extern Double Layer.fx_onGetPixelX(double r, double d, double x, double y);
  1971. extern Double Layer.fx_onGetPixelY(double r, double d, double x, double y);
  1972. extern Double Layer.fx_onGetPixelA(double r, double d, double x, double y);
  1973. extern Layer.setRegionFromMap(Map regionmap, int threshold, boolean reverse);
  1974. extern Layer.setRegion(Region reg);
  1975. extern Layer.fx_setEnabled(boolean onoff);
  1976. extern Boolean Layer.fx_getEnabled();
  1977. extern Layer.fx_setWrap(Boolean onoff);
  1978. extern Boolean Layer.fx_getWrap();
  1979. extern Layer.fx_setRect(Boolean onoff);
  1980. extern Boolean Layer.fx_getRect();
  1981. extern Layer.fx_setBgFx(Boolean onoff);
  1982. extern Boolean Layer.fx_getBgFx();
  1983. extern Layer.fx_setClear(Boolean onoff);
  1984. extern Boolean Layer.fx_getClear();
  1985. extern Layer.fx_setSpeed(Int msperframe);
  1986. extern Int Layer.fx_getSpeed();
  1987. extern Layer.fx_setRealtime(Boolean onoff);
  1988. extern Boolean Layer.fx_getRealtime();
  1989. extern Layer.fx_setLocalized(Boolean onoff);
  1990. extern Boolean Layer.fx_getLocalized();
  1991. extern Layer.fx_setBilinear(Boolean onoff);
  1992. extern Boolean Layer.fx_getBilinear();
  1993. extern Layer.fx_setAlphaMode(Boolean onoff);
  1994. extern Boolean Layer.fx_getAlphaMode();
  1995. extern Layer.fx_setGridSize(Int x, Int y);
  1996. extern Layer.fx_update();
  1997. extern Layer.fx_restart();
  1998.  
  1999.   // Button
  2000.  
  2001. extern Button.onActivate(int activated);
  2002. extern Button.onLeftClick();
  2003. extern Button.onRightClick();
  2004. extern Button.setActivated(Boolean onoff);
  2005. extern Button.setActivatedNoCallback(Boolean onoff);
  2006. extern Boolean Button.getActivated();
  2007. extern Button.leftClick();
  2008. extern Button.rightClick();
  2009.  
  2010.   // AnimatedLayer
  2011.  
  2012. extern AnimatedLayer.onPlay();
  2013. extern AnimatedLayer.onPause();
  2014. extern AnimatedLayer.onResume();
  2015. extern AnimatedLayer.onStop();
  2016. extern AnimatedLayer.onFrame(Int framenum);
  2017. extern AnimatedLayer.setSpeed(Int msperframe);
  2018. extern AnimatedLayer.gotoFrame(int framenum);
  2019. extern AnimatedLayer.setStartFrame(Int framenum);
  2020. extern AnimatedLayer.setEndFrame(int framenum);
  2021. extern AnimatedLayer.setAutoReplay(Boolean onoff);
  2022. extern AnimatedLayer.play();
  2023. extern AnimatedLayer.stop();
  2024. extern AnimatedLayer.pause();
  2025. extern Boolean AnimatedLayer.isPlaying();
  2026. extern Boolean AnimatedLayer.isPaused();
  2027. extern Boolean AnimatedLayer.isStopped();
  2028. extern Int AnimatedLayer.getStartFrame();
  2029. extern Int AnimatedLayer.getEndFrame();
  2030. extern Int AnimatedLayer.getLength();
  2031. extern Int AnimatedLayer.getDirection();
  2032. extern Boolean AnimatedLayer.getAutoReplay();
  2033. extern Int AnimatedLayer.getCurFrame();
  2034. extern AnimatedLayer.setRealtime(Boolean onoff);
  2035.  
  2036.   // ToggleButton
  2037.  
  2038. extern ToggleButton.onToggle(Boolean);
  2039.  
  2040.   // GroupList
  2041.  
  2042. extern Group GroupList.instantiate(String group_id, int num_groups);
  2043. extern Int GroupList.getNumItems();
  2044. extern Group GroupList.enumItem(int num);
  2045. extern GroupList.removeAll();
  2046. extern GroupList.scrollToPercent(Int percent);
  2047.  
  2048.   // CfgGroup
  2049.  
  2050. extern Int CfgGroup.cfgGetInt();
  2051. extern CfgGroup.cfgSetInt(Int intvalue);
  2052. extern String CfgGroup.cfgGetString();
  2053. extern Int CfgGroup.cfgGetFloat();
  2054. extern CfgGroup.cfgSetFloat(Float floatvalue);
  2055. extern CfgGroup.cfgSetString(String strvalue);
  2056. extern CfgGroup.onCfgChanged();
  2057. extern String CfgGroup.cfgGetGuid();
  2058. extern String CfgGroup.cfgGetName();
  2059.  
  2060.   // QueryList
  2061.  
  2062. extern QueryList.onResetQuery();
  2063.  
  2064.   // MouseRedir
  2065.  
  2066. extern MouseRedir.setRedirection(GuiObject o);
  2067. extern GuiObject MouseRedir.getRedirection();
  2068. extern MouseRedir.setRegionFromMap(Map regionmap, Int threshold, Boolean reverse);
  2069. extern MouseRedir.setRegion(Region reg);
  2070.  
  2071.   // DropDownList
  2072.  
  2073. extern String DropDownList.getItemSelected();
  2074.  
  2075.   // LayoutStatus
  2076.  
  2077. extern LayoutStatus.callme(String str); 
  2078.  
  2079.   // TabSheet
  2080.  
  2081. extern Int TabSheet.getCurPage();
  2082. extern TabSheet.setCurPage(Int a);
  2083.  
  2084. .CODE
  2085.  
  2086.