LavishGUI:Release Notes

From Lavish Software Wiki
Jump to: navigation, search
          Version 0.71
  (c) 2004-2005 Lavish Software

- Improved LavishScript integration.  More specifically, most element types that allow use of
  data sequences now do so more efficiently

- LavishGUI API Version 9
- Various crash issues fixed
- Added stubs for fade-in

- Added -parent option to UI -load and -reload, to load an interface file as a child
  of a given element.  This switch must come before -skin, if -skin is used as well.
  For example:
    ui -load -parent output@console -skin myskin stuff.xml
  Loads stuff.xml, with skin myskin, as children of output@console (the output child of console)
- Fixed lguicombobox datatype inheritance

- Fixed crash when destroying a map blip
- Added data type methods:
- LavishGUI API Version 8
- Fonts are now properly done through Windows, instead of scaled images. All Windows
  fonts are available.  Bold is also supported.
- Some old text-drawing functions that have been deprecated are now removed.
- Gauge fillers now support repeating textures, improving visual quality in many cases
- Check boxes now scale the box image up to the height of the given texture, instead of 16,
  except when no texture is given or the texture size cannot be determined
- Elements themselves now have an alpha component.  Element alpha is given as a floating point
  value, with 0 being transparent and 1 being opaque.  Each element will be this number times
  as opaque as its parent.  This means that an element with 0.5 can have a child with an alpha
  level of 2.0, and the resulting alpha level of the child will be 1.0 (e.g. 0.5*2.0=1.0).  This
  value is carried to all descendants during rendering, so if that same child with the value of
  2.0 but calculated alpha of 1.0 had its own child with a value of 0.5, the math would be
  1.0*0.5=0.5.  Note that any value over 1 is going to appear the same as 1 (they do not get
  any more opaque).  Additionally, a fade effect is available for all elements as well, with
  automatic fading based on mouse position
- Texture alpha has been changed from a whole number from 0 to 255 to a floating point with
  0 being transparent and 1 being opaque, to be consistent with element alpha
- Window elements now have OffsetTitleBarHeight and OffsetTitleBarWidth properties, which 
  indicate whether the window should add the titlebar width and height (offset), or consider
  it part of the window size.  This allows specialized titlebar placement to work properly.
- Templates can now be multiply-templated by separating templates named in the Templates attribute 
  by commas.  If that doesnt confuse you, I dont know what will.
- Fixed bugs that prevented AutoTooltip from working properly on buttons, checkboxes, and textentry
  (and types of elements derived from those)
- Fixed bug that prevented OnRender from working properly on direct children of a window element
- Fixed bug with templating that prevented element positioning properties (X,Y,Width,Height) to 
  template correctly with fixed values of zero
- Added element types:
  map, mapblip
- Added data types:
  lguimap, lguimapblip, lguitooltip
- Added data type members:
  bool lguifont.Bold
  lguitexture lguiframe.Texture
  bool lguielement.LeftClickThru
  bool lguielement.RightClickThru
  float lguielement.Alpha
  float lguielement.AbsoluteAlpha
  float lguielement.FadeAlpha
  uint lguielement.FadeDelay
  uint lguielement.FadeDuration
  string lguielement.FadeState
- Added data type methods:

- Added data type members:
  int lguibutton.BackgroundColor
- Added data type methods:
- Added data types:

- Console elements now accept "Texture" and "ScrollbackTexture"

- LavishGUI API Version 7
- Most things updated for UTF-8 character set, at least as far as the API goes.  Fonts
  still need an overhaul to be able to work with non-ASCII characters, but for the most
  part, UTF-8 is in.

- LavishGUI API Version 6
- Console elements now wrap text to the current width of the console

- Added Skin items.  Skins are used to map template names to other template names, and
  are applied dynamically when loading UI XML files
- Fixed certain combobox behaviors
- Fixed lguilistbox.Item[#]
- Added data type members:
  lguilistboxitem lguilistbox.OrderedItem[#]
- Added data type methods:

- Fixed lguicombobox inheritance
- Fixed combobox and listbox Sort properties not accepting textreverse or valuereverse
- Fixed list/combo box sorting by value
- Fixed listbox border
- Combo box now uses a ListBox container, which will translate directly into a list box,
  and then tailored to the combo box, instead of individual list box properties

- Elements should now be more happy to move to the foreground when you click on them

- LavishGUI API Version 5
- Fixed bug with textentry:SetText
- Resizable windows may now specify minimum height and minimum width
- Fixed bug with removing list box items
- Clicking in a textentry element is more exciting, but still cant be used for
  selecting text (coming soon still, sorry)
- Frames no longer click-through unless they are transparent (no texture, no
  background color)
- Added data type methods:
- Added data types:
- Added Top-Level Object forms:
  lavishgui LavishGUI

- Fixed item removal issue with list boxes
- Fixed display issue with combo box text
- Combobox no longer requires the "Full Height" be within the bounds of its parent
- Comboboxes are now placed at the top of the parent's Z order when displaying the
  dropdown portion
- lguicombobox data type is now correctly available
- Auto tooltips now correctly use the configuration setting for wait time, and no
  longer automatically disappear after 1 second
- Most element types that used events have now been updated to allow for the new embedded 
  scripts.  Type-specific events (such as OnSelect for listbox and combobox) will be added 
  in the next API revision 
- Fixed inheritance issue with LavishGUI data types (Failed operations would result
  in erraneous syntax errors because inheritance)
- Non-existent texture filenames will now result in the element not using that texture,
  instead of a texture that fails to draw
- Added data type members:
  lguilistboxitem lguilistbox.ItemByText[text]
  lguilistboxitem lguilistbox.ItemByValue[#]

- LavishGUI API Version 4
- "command" elements (such as commandbutton) now have a Console property, which can
  contain the Fully-Qualified Name of a console element to output to
- The LGUIConsoleSelector class can be used in the API to select a console while
  executing a command (this is what the "command" elements use)
- Fixed bug with Reset Window Position not including borders in the window size
- The UI command now allows single-element duplication.  To use this, use the load
  or reload commands as normal, but also provide the name of the element as used in
  the file, and a name for the duplicated element.  For example:
    ui -load DefaultUI Console MyConsole

- LavishGUI API version 3
- Improved handling of LavishScript Data Type Definitions for UI elements
- Support added for embedded LavishScript atoms, handled by the "LGUIEmbeddedScript"
  class.  Note that in these embedded atoms, the "This" Top-Level Object refers to the 
  current element.
- The base element type now has embedded atoms for the following events:
  * OnLoad
  * OnUnload
  * OnLeftClick
  * OnRightClick
  * OnDoubleLeftClick
  * OnDoubleRightClick
  * OnMouseEnter
  * OnMouseExit
  * OnMouseMove
  * OnMouseWheel
  * OnKeyboardEnter
  * OnKeyboardExit
  * OnKeyUp
  * OnKeydown
  NOTE: Not all of these events will work for all element types at this time.  Elements
        that use these events internally still need to be updated to allow the embedded

- Fixed variable-width children issue inside tab controls
- Fixed bug with clicking on any area of tab controls forcing tab switching, rather
  than just the tab selector at the top
- Tab control left/right buttons are now hidden unless there are more tabs to be seen
  on that particular side (or one is partially hidden).  Additionally, the left button 
  is now on the left end of the tab selector
- Fixed bug with variableslider controls resetting the variable on load
- Fixed bug with multiline left-aligned Text elements not displaying the first lines

- LavishGUI API version 2
- Fixed issue with mouse click fall through ignoring other elements behind it
- Mouse focus is now locked between clicking and releasing the mouse buttons on a UI
  element that accepts the mouse clicks
- Fixed issue with "Reset Window Position" and title bars

- Fixed listbox display issue
- Fixed data type members and methods:
  * lguilistbox.SelectedItems
  * lguilistbox.SelectedItem
  * lguilistbox.SelectedItem[#]
  * lguilistbox.Item[#]
- Added data type members and methods:
  * int lguilistbox.Items

- Moved commands out of Inner Space and into LavishGUI:
  * UI
  * UIElement
  * MessageBox
  * InputBox
- Moved Top-Level Objects out of Inner Space and into LavishGUI:
  * UIElement
- Moved UI elements out of Inner Space and into LavishGUI:
  * scriptmessagebox
  * scriptinputbox
- Added data type members and methods:
  * int lguilistbox.SelectedItems
  * lguilistboxitem lguilistbox.SelectedItem
  * lguilistboxitem lguilistbox.SelectedItem[#]
- Added data types:
  * lguitextentry

- Separated LavishGUI from Inner Space