vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="GENERATOR" content="PageBreeze Free HTML Editor (http://www.pagebreeze.com)">
<title>FlexBar_GUI_Panels</title>
</head>
<body bgcolor="#ffffff">
<p align="center"><strong><em><font size="5">Flex Bar has some GUI 
stuff</font></em></strong></p>
<p align="left"><strong>Flexbar is arcane:</strong> Okay - this criticism holds 
water -- the programmer of Flexbar found Vi to be user friendly.&nbsp; The heavy 
reliance on slash commands stems from both that and the fact that editing GUI 
elements in WoW is a royal pain.</p>
<p align="left">However, Flexbar 1.37 has several GUI panels to make some things a 
bit easier.&nbsp;</p>
<ul>
  <li>
  <div align="left">Global Options - from here you can set things such as verbose 
  level, tooltips, load speed and more</div>
  <li>
  <div align="left">Event Editor -- Forget countless tries of /flexbar xxx on xxxx 
  - The event editor makes adding, editing and deleting events much 
  easier.&nbsp; It includes context sensitive lists of potential values for each 
  parameter -- makes remembering the spelling of some of my longer event names 
  much easier.</div>
  <li>
  <div align="left">Performance Panel -- Set event checking for some of the CPU 
  hogs to off or low to get better performance.&nbsp; There is a penalty for 
  some of this, if you turn of Unit Buffs (or set it to low) the conditionals 
  unitbuff/unitdebuff/unitdebufftype will not work.&nbsp; However, in most cases 
  (particularly isusable, enoughmana, cooldown, inrange) setting to low is a 
  very good idea.</div>
  <li>
  <div align="left">Scripts Editor -- A simple text editor that will allow you to 
  write scripts/macros/config files up to 10240 characters, save them to 
  SavedVariables.lua and run them as script/macro/configs from the editor.&nbsp; 
  A saved macro/script can later be used in runmacro/script or flexmacro/script 
  commands.</div>
  <li>
  <div align="left">Auto Items Manager -- A simple panel to allow you to toggle 
  on/off auto items.</div></li></ul>
<p align="left"><em>For all windows - escape will close any 
open menus, if there are no open menus it will close any open GUI panels, if 
there are no open GUI panels it will close the FlexBar Main Menu, if it isn't 
open it will behave like normal.</em></p>
<p align="left"><em>Look in KeyBindings in the Main Game Menu for direct bindings 
to the FlexBar main menu and to all these panels.</em></p>
<p align="left"><strong>Global Options</strong></p>
<ol>
  <li>
  <div align="left">Load Speed:&nbsp; This defaults to std 
  (standard) which has a pause in it before loading the profile.&nbsp; The 
  reason for this was a poor design decision early on in FlexBar that caused WoW 
  to store where it thought some of the buttons should be.&nbsp; The conflict 
  cause some of them to move.&nbsp; I have fixed this in the XML - BUT, if you 
  have had flexbar before then those locations are cached.&nbsp; If you want to 
  use fast load, go to your World of Warcraft\WTF\Account\&lt;account 
  name&gt;\&lt;character name&gt;\ directory to the&nbsp;layout-cache.txt 
  file.&nbsp; Remove all entries with "FlexFrame" in them (or delete it 
  entirely).&nbsp; This may cause some of your empty buttons to show a clear 
  background - just drag an action them, then remove it, that will fix it.&nbsp; 
  Now you can toggle fast load.&nbsp; Safe load is a holdover from the lost 
  configurations, there should be no need for it now.</div>
  <li>
  <div align="left">Detailed Feedback:&nbsp; Also known as 
  verbose mode, this gives a great deal of feed back on the actions FlexBar is 
  taking.&nbsp; Keep it off most times for your sanity.</div>
  <li>
  <div align="left">Hide Tooltips:&nbsp; Check to hide 
  FlexBar Button tooltips</div>
  <li>
  <div align="left">Force Shading:&nbsp; This will enable 
  buttons to automatically shade red if they are out of range, green if they are 
  unusable and blue if they don't have enough mana.</div>
  <li>
  <div align="left">Auto Performance:&nbsp; Check to have 
  FlexBar try to automatically set your event notification level.&nbsp; For any 
  event group which does not have one of its events int he event list, that 
  event group will be turned off (see performance panel).&nbsp; For any event 
  group with an event in the event list, it will be set to low.&nbsp; Please be 
  aware of the potential problems this will cause with certain 
  conditionals.&nbsp; See performance panel for details.</div></li></ol>
<p align="left"><strong>Event 
Editor:</strong></p>
<p align="left">The most powerful part of FlexBar is also its 
most difficult to manage - taking actions on events.&nbsp; Among the problems 
I've seen are:&nbsp; Long and not consistently named events, a lack of 
understanding of the possible targets for events and a cumbersome interface for 
editing/adding/deleting events.</p>
<p align="left">Enter the Event Editor window:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <p align="left">At the top is a scrolling list of events 
  (scroll with either the large arrow buttons on the top left or with your 
  scroll wheel).&nbsp; To the right of each event are 5 buttons - EDT (edit this 
  event), DEL (insert above this line), DEL (delete this event), a down arrow 
  (swap this event with the one underneath it) and and up arrow (swap this event 
  with the one above it).</p>
  <p align="left">At the bottom is a set of entry boxes for 
  the various parameters of an event - most with drop-down menus accessed by the 
  down arrow to the right.&nbsp; For every event the following fields are 
  available:</p>
  <ol>
    <li>
    <div align="left">On=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    This is the event name to watch for.&nbsp; The drop down list is 
    prepopulated with EVERY event that FlexBar currently raises.&nbsp; If you 
    hand type the event, single quotes are still required.&nbsp; On tabbing out 
    of this box, the drop down arrow to the second box becomes available.</div>
    <li>
    <div align="left">Target=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is 
    the target that raised the event.&nbsp; The drop down menu will contain a 
    list of possible targets <em>if the are available</em>.&nbsp; Most events have a limited list of possible 
    targets.&nbsp; Some, however, I was unable to enumerate when I wrote 
    this.&nbsp; Among those are buff names, debuff names and aura names and 
    combat targets.&nbsp; What I've had FlexBar do is keep track of every 
    buff/debuff/combat type/aura name it sees so it eventually will give you a 
    better list of these.&nbsp; One thing you should do is turn the event group 
    Unit Combat to high and go melee a bit to populate that list with the 5 
    actions in your native language.</div>
    <li>
    <div align="left">If 
    =&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This 
    has a dual drop down - one a list of conditionals and the other a list of 
    (,),and,or,not - use these to build your if expression.&nbsp; One thing it 
    does not have is auto target fill in for the conditions, you'll still have 
    to do that manually.</div>
    <li>
    <div align="left">Command=&nbsp; This is the command you 
    want to execute on that event, the drop down shows a list of all commands 
    that can be do on an event.&nbsp; On selecting a command, a series of 
    parameter boxes appear with drops downs for each paramter the command can 
    take.</div>
    <li>
    <div align="left">In=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This 
    is the delay to wait before executing the command.&nbsp; Delay is in tenths 
    of a second</div>
    <li>
    <div align="left">Tname=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This 
    the optional name for the timer started with the In= parameter, using this 
    name the timer can be terminated</div>
    <li>
    <div align="left">TToggle=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The only 
    value for this is 'true' - if it is true, then if a timer is already running 
    with that name, it is cancelled.</div></li></ol>
  <p align="left">Below this are the command specific 
  parameters</p>
  <p align="left">Finally there are two buttons -</p>
  <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
    <ul>
      <li>
      <div align="left">&lt;Save All Changes&gt; saves the 
      current event to the event list</div>
      <li>
      <div align="left">&lt;Cancel All Changes&gt; erases the 
      current event info</div></li></ul></blockquote>
  <p dir="ltr" align="left">See the topic "Advanced Use: Events, Delays and 
  Conditionals" for examples.</p></blockquote>
<p dir="ltr" align="left"><strong>Performance Panel:</strong></p>
<p dir="ltr" align="left">FlexBar has a lot going on under the hood, and this brings 
up justified worries about its impact on framerates.&nbsp; In order to address 
this, the Performance Panel allows you to customize Event detection and 
reporting to reduce CPU load.</p>
<p dir="ltr" align="left">Every event is part of an Events Group (see the detailed 
list of events for the group name for each event).&nbsp; The performance panel 
has a button for each group with options of Off, Low and High.</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <p dir="ltr" align="left"><strong>OFF</strong>&nbsp; At this setting the events in 
  the group will not be raised at all, moreover the least amount of processing 
  takes place determining that we don't want to do it (for polled events like 
  isusable, inrange etc, the timer on which these states are checked are turned 
  off.&nbsp; For events that happen off of WoW events, we exit in the first line 
  of the handler)&nbsp; For some (like buttonpresses) it just disables reporting 
  (so we don't process the event list - although it is a negligible savings, 
  since that routine exits immediately if we don't have any commands attached to 
  that event)</p>
  <p dir="ltr" align="left"><strong>LOW</strong>&nbsp; At Low, the event is 
  processed, but it is raised only for those targets that are specified in the 
  events list.&nbsp; IE:&nbsp; if the only usable event we have in the list is 
  Show Button=1 on='IsUsable' Target=1, then on low setting it will only raise 
  IsUsable for button 1, not the rest.&nbsp; Moreover, for items like 
  not/isusable, outof/nowinrange, (not)enoughmana, cooldownmet/start - it only 
  loops through the buttons we are interested - potentially avoiding a 
  tremendous amount of cpu usage.&nbsp; For other events it merely restricts 
  reporting.&nbsp; For many events Low and High are indistinguisable (for those 
  events with no target need).</p>
  <p dir="ltr" align="left"><strong>HIGH</strong>&nbsp; The default state, scan 
  every target, report every target.&nbsp; Potentially CPU expensive for button 
  the events mentioned in Low because it requires scanning each of 120 buttons 
  for an action, then for the mana/range/usable/cooldown state of teh button of 
  buttons with an action.</p></blockquote>
<p dir="ltr" align="left"><strong>Important Caveat:</strong>&nbsp; Several 
conditionals 
(UnitBuff/UnitDebuff/UnitDebuffType/HasBuff/HasDeBuff/HasDebuffType) are 
dependent on the event group of the associated events being turned to high to 
always produce accurate results.&nbsp; If it is turned to Low, then these 
conditionals will only be accurate for units specified as targets of one of the 
events.&nbsp; If you are a class with buffs or the ability to dispell debuffs, I 
recommend this either be turned to High, or (in the case of having Auto 
Performance set) you include the units you are interested in in dummy 
events:&nbsp; EG Runscript Script='do end' on='UnitBuff' Target=['player' 
'party1' 'party2' 'party3' 'party4']&nbsp; -- this will force FlexBar to keep 
this info up to date.</p>
<p dir="ltr" align="left">&nbsp;</p>
<p dir="ltr" style="MARGIN-RIGHT: 0px" align="left"><strong>Scripts 
Editor:</strong></p>
<p dir="ltr" style="MARGIN-RIGHT: 0px" align="left">The FlexBar scripts editor 
provides a (very) simple note-pad like editor that can hold 10240 
characters.&nbsp; There are some quirks to it:&nbsp; Hitting home or end will 
take you to the beginning/end of the whole edit box, not the line as in a 
regular editor.&nbsp; If you hit return at the bottom of the editor and it is 
the last line in the script the cursor will dissappear below the border until 
you start typing -- just keep an extra blank line at the bottom to avoid 
this.&nbsp; Clicking in the box sometimes causes a large portion to be 
highlighted, be careful.</p>
<p dir="ltr" style="MARGIN-RIGHT: 0px" align="left">At the bottom of the window are 
several UI elements</p>
<ul dir="ltr">
  <li>
  <div style="MARGIN-RIGHT: 0px" align="left">The Script Name 
  Edit box, this is where you'll type in the name of a script to be 
  loaded, deleted or saved to.&nbsp; To the right of this box is a down arrow 
  that will show a list of all saved scripts - clicking on one will load its name 
  in the Name edit box, right-clicking will load the script into the editor as 
  well.</div>
  <li>
  <div style="MARGIN-RIGHT: 0px" align="left">Run - as &lt;Script&gt; -- This 
  button will execute the contents of the script box as Lua code.&nbsp; Do not 
  use this option for FlexBar commands or Macro (slash) commands - it will just 
  give you an error.&nbsp; </div>
  <li>
  <div style="MARGIN-RIGHT: 0px" align="left">Run - as &lt;Macro&gt; -- This 
  button executes each line as though you had typed it at the command line of 
  WoW.&nbsp; Do not use this for lua code or multiple flexbar commands (the 
  first it will just say the lua code, the second causes timing issues with some 
  commands).</div>
  <li>
  <div style="MARGIN-RIGHT: 0px" align="left">Configuration - Management 
  &lt;Config&gt;&nbsp; -- This button executes the lines in the file as FlexBar 
  commands with the proper delay between them to help prevent timing 
  issues.</div>
  <li>
  <div style="MARGIN-RIGHT: 0px" align="left">Configuration - Management 
  &lt;Import&gt;&nbsp; -- The original implementation of configs had them in 
  FlexBar_Config.lua - this has problems, but people would like to edit/keep 
  those.&nbsp; Using this button, the editor will search for that config in the 
  config.lua file and load it as a series of flexbar commands.&nbsp; 
  Recommended:&nbsp; Import each config and resave it to 
  SavedVariables.lua.</div>
  <li>
  <div style="MARGIN-RIGHT: 0px" align="left">Configuration - Mangement 
  &lt;Restore&gt;&nbsp; -- Each time you run &lt;Config&gt; a copy of the old 
  profile is stored to a <strong><em>temporary</em></strong> undo buffer.&nbsp; 
  This buffer only holds the last profile and only lasts until 
  logoff/reloadui.&nbsp; Hitting &lt;Restore&gt; will bring that profile 
  back.</div>
  <li>
  <div style="MARGIN-RIGHT: 0px" align="left">&lt;Save&gt; -- Saves the current 
  text block to the named location.&nbsp; This will overwrite any previous text 
  block of that name without warning.</div>
  <li>
  <div style="MARGIN-RIGHT: 0px" align="left">&lt;Delete&gt; -- Delete the named 
  text block - this will delete without warning.</div>
  <li>
  <div style="MARGIN-RIGHT: 0px" align="left">&lt;Load&gt; -- Load the named text 
  block into the editor</div>
  <li>
  <div style="MARGIN-RIGHT: 0px" align="left">&lt;List&gt; -- Pop up a scrolling 
  list of all text blocks - not as nice as the new drop down.</div>
  <li>
  <div style="MARGIN-RIGHT: 0px" align="left">&lt;Close&gt; -- Close script 
  editor</div>
  <li>
  <div style="MARGIN-RIGHT: 0px" align="left">&lt;New&gt;&nbsp;-- Erase current 
  text editor contents.</div></li></ul>
<p style="MARGIN-RIGHT: 0px" align="left"><strong>Auto Items Manager:</strong></p>
<p style="MARGIN-RIGHT: 0px" align="left"><strong>Note:</strong> Auto items are no longer <font 
size="3">necessary </font>       
               
                
               
              for 
the most part. as of WoW patch 1.6 most of this functionality is built into the default button 
interface, and thus into Flexbar buttons.&nbsp;</p>
<p style="MARGIN-RIGHT: 0px" align="left">This window displays a scrolling list of 
all usable items that you have in your action bar (such as potions, bandaids and 
the like).&nbsp; To the left of each item is a check box, to the right the 
number of them you have and the ID at which they reside.&nbsp; Checking the box 
will cause FlexBar to try to make those items stick in that ID slot:&nbsp; When 
you run out it will keep the icon in there and it will try to reload them into 
that ID when you get more.</p>
<p style="MARGIN-RIGHT: 0px" align="left">When you run out of an Auto Item, an 
event is raised (autoitemout) as is an event when they are replaced in the 
action bar.</p>
<p style="MARGIN-RIGHT: 0px" align="left">If you are out of an Auto Item it is 
still displayed in the box - until you uncheck it, at which time it will 
dissappear.</p>
<p style="MARGIN-RIGHT: 0px" align="left">Auto Items can not be dragged out of 
their buttons, nor can other actions be dragged onto them.</p>
</body>
</html>

Generated by GNU Enscript 1.6.5.90.