diff --git a/Fonts/DUF_Font1.ttf b/Fonts/DUF_Font1.ttf
new file mode 100644
index 0000000..6f8f872
Binary files /dev/null and b/Fonts/DUF_Font1.ttf differ
diff --git a/Fonts/DUF_Font2.ttf b/Fonts/DUF_Font2.ttf
new file mode 100644
index 0000000..ee4c740
Binary files /dev/null and b/Fonts/DUF_Font2.ttf differ
diff --git a/Fonts/DUF_Font3.ttf b/Fonts/DUF_Font3.ttf
new file mode 100644
index 0000000..d17e1be
Binary files /dev/null and b/Fonts/DUF_Font3.ttf differ
diff --git a/Fonts/DUF_Font4.ttf b/Fonts/DUF_Font4.ttf
new file mode 100644
index 0000000..e2da8d8
Binary files /dev/null and b/Fonts/DUF_Font4.ttf differ
diff --git a/Fonts/DUF_Font5.ttf b/Fonts/DUF_Font5.ttf
new file mode 100644
index 0000000..7e28e41
Binary files /dev/null and b/Fonts/DUF_Font5.ttf differ
diff --git a/Fonts/FUTURABC.TTF b/Fonts/FUTURABC.TTF
new file mode 100644
index 0000000..be89668
Binary files /dev/null and b/Fonts/FUTURABC.TTF differ
diff --git a/Fonts/FUTUXKCI.TTF b/Fonts/FUTUXKCI.TTF
new file mode 100644
index 0000000..e5ec6d5
Binary files /dev/null and b/Fonts/FUTUXKCI.TTF differ
diff --git a/Fonts/IX_Font_Bold.ttf b/Fonts/IX_Font_Bold.ttf
new file mode 100644
index 0000000..b2cd14e
Binary files /dev/null and b/Fonts/IX_Font_Bold.ttf differ
diff --git a/Fonts/IX_Font_Bold_Italic.ttf b/Fonts/IX_Font_Bold_Italic.ttf
new file mode 100644
index 0000000..8b385a3
Binary files /dev/null and b/Fonts/IX_Font_Bold_Italic.ttf differ
diff --git a/Fonts/Montreal_Bold.ttf b/Fonts/Montreal_Bold.ttf
new file mode 100644
index 0000000..e1d813f
Binary files /dev/null and b/Fonts/Montreal_Bold.ttf differ
diff --git a/Fonts/Montreal_Heavy_Bold.ttf b/Fonts/Montreal_Heavy_Bold.ttf
new file mode 100644
index 0000000..633f832
Binary files /dev/null and b/Fonts/Montreal_Heavy_Bold.ttf differ
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..9cecc1d
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ {one line to give the program's name and a brief idea of what it does.}
+ Copyright (C) {year} {name of author}
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ {project} Copyright (C) {year} {fullname}
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/VCB.lua b/VCB.lua
new file mode 100644
index 0000000..c8b946b
--- /dev/null
+++ b/VCB.lua
@@ -0,0 +1,3865 @@
+-- Title: Vanilla Consolidate Buffs (VCB)
+-- Author: Shino - Kronos
+
+-- Global variables
+VCB_NAME = "Vanilla Consolidate Buffs"
+VCB_VERSION = "4.1"
+VCB_IS_LOADED = false
+VCB_BF_DUMMY_MODE = false
+VCB_FONT_ARRAY = {}
+VCB_FONT_ARRAY[1] = "Fonts\\FRIZQT__.ttf"
+VCB_FONT_ARRAY[2] = "Fonts\\ARIALN.ttf"
+VCB_FONT_ARRAY[3] = "Fonts\\skurri.ttf"
+VCB_FONT_ARRAY[4] = "Fonts\\MORPHEUS.ttf"
+VCB_FONT_ARRAY[5] = "Interface\\AddOns\\VCB\\Fonts\\DUF_Font1.ttf"
+VCB_FONT_ARRAY[6] = "Interface\\AddOns\\VCB\\Fonts\\DUF_Font2.ttf"
+VCB_FONT_ARRAY[7] = "Interface\\AddOns\\VCB\\Fonts\\DUF_Font3.ttf"
+VCB_FONT_ARRAY[8] = "Interface\\AddOns\\VCB\\Fonts\\DUF_Font4.ttf"
+VCB_FONT_ARRAY[9] = "Interface\\AddOns\\VCB\\Fonts\\DUF_Font5.ttf"
+VCB_FONT_ARRAY[10] = "Interface\\AddOns\\VCB\\Fonts\\FUTURABC.TTF"
+VCB_FONT_ARRAY[11] = "Interface\\AddOns\\VCB\\Fonts\\FUTUXKCI.TTF"
+VCB_FONT_ARRAY[12] = "Interface\\AddOns\\VCB\\Fonts\\IX_Font_Bold.ttf"
+VCB_FONT_ARRAY[13] = "Interface\\AddOns\\VCB\\Fonts\\IX_Font_Bold_Italic.ttf"
+VCB_FONT_ARRAY[14] = "Interface\\AddOns\\VCB\\Fonts\\Montreal_Bold.ttf"
+VCB_FONT_ARRAY[15] = "Interface\\AddOns\\VCB\\Fonts\\Montreal_Heavy_Bold.ttf"
+VCB_ANCHOR_ARRAY = {}
+VCB_ANCHOR_ARRAY[1] = "Bottom"
+VCB_ANCHOR_ARRAY[2] = "Right"
+VCB_ANCHOR_ARRAY[3] = "Top"
+VCB_ANCHOR_ARRAY[4] = "Left"
+VCB_BF_COLOR_OBJ = nil
+VCB_BF_COLOR_VAR = nil
+VCB_BF_COLOR_TAR = nil
+VCB_BF_COLOR_TYPE = nil
+VCB_ICON_ARRAY = {}
+VCB_ICON_ARRAY[1] = "icon"
+VCB_BORDER_ARRAY = {}
+VCB_BORDER_ARRAY[1] = "Interface\\Tooltips\\UI-Tooltip-Border.tga"
+VCB_BORDER_ARRAY[2] = "Interface\\DialogFrame\\UI-DialogBox-Border.tga"
+VCB_AURABORDER_ARRAY = {}
+VCB_AURABORDER_ARRAY[1] = "Interface\\Buttons\\UI-Debuff-Overlays.tga"
+VCB_WEAPONBORDER_ARRAY = {}
+VCB_WEAPONBORDER_ARRAY[1] = "Interface\\Buttons\\UI-TempEnchant-Border.tga"
+VCB_BACKGROUND_ARRAY = {}
+VCB_BACKGROUND_ARRAY[1] = "Interface\\Tooltips\\UI-Tooltip-Background.tga"
+VCB_BACKGROUND_ARRAY[2] = "Interface\\DialogFrame\\UI-DialogBox-Background.tga"
+VCB_BACKGROUND_ARRAY[3] = "Interface\\CHARACTERFRAME\\UI-Party-Background.tga"
+VCB_THEME_NAME = {}
+VCB_THEME_NAME[1] = "Default"
+VCB_THEME = {}
+VCB_THEME[1] = {
+ Timer_yoffset = 0,
+ Timer_disableUnit = false,
+ Timer_hours = false,
+ Timer_hours_convert = false,
+ Timer_minutes = true,
+ Timer_minutes_convert = false,
+ Timer_tenth = false,
+ Timer_round = false,
+ Timer_font = "Fonts\\FRIZQT__.ttf",
+ Timer_flash = false,
+ Timer_below_60 = false,
+ Timer_below_60_color_r = 1,
+ Timer_below_60_color_g = 0.82,
+ Timer_below_60_color_b = 0,
+ Timer_usecfont = false,
+ Timer_customfont = "",
+ CF_icon_color_r = 1,
+ CF_icon_color_g = 1,
+ CF_icon_color_b = 1,
+ CF_icon_fontsize = 13,
+ CF_icon_font = "Fonts\\FRIZQT__.ttf",
+ CF_icon_opacity = 1,
+ CF_icon_fontopacity = 1,
+ CF_icon_texture = "icon",
+ CF_icon_border = true,
+ CF_icon_possiblebuffs = false,
+ CF_icon_showpbgrayedout = false,
+ CF_icon_attach = true,
+ CF_icon_usecfont = false,
+ CF_icon_customfont = "",
+ CF_BF_anchor = 1,
+ CF_BF_scale = 1,
+ CF_BF_invert = false,
+ CF_BF_numperrow = 5,
+ CF_BF_bgopacity = 1,
+ CF_BF_bgcolor_r = 0,
+ CF_BF_bgcolor_g = 0,
+ CF_BF_bgcolor_b = 0,
+ CF_BF_borderopacity = 1,
+ CF_BF_bordercolor_r = 1,
+ CF_BF_bordercolor_g = 1,
+ CF_BF_bordercolor_b = 1,
+ CF_BF_border = 1,
+ CF_BF_customborder = false,
+ CF_BF_customborderpath = "",
+ CF_BF_background = 1,
+ CF_BF_custombackground = false,
+ CF_BF_custombackgroundpath = "",
+ CF_BF_invertorientation = false,
+ CF_AURA_bgopacity = 1,
+ CF_AURA_enableborder = false,
+ CF_AURA_borderopacity = 1,
+ CF_AURA_bordercolor_r = 1,
+ CF_AURA_bordercolor_g = 1,
+ CF_AURA_bordercolor_b = 1,
+ CF_AURA_padding_h = 2,
+ CF_AURA_padding_v = 2,
+ CF_AURA_border = 1,
+ CF_AURA_customborder = false,
+ CF_AURA_customborderpath = "",
+ CF_AURA_bgcolor_r = 1,
+ CF_AURA_bgcolor_g = 1,
+ CF_AURA_bgcolor_b = 1,
+ CF_AURA_enablebgcolor = false,
+ CF_AURA_enablefontborder = true,
+ CF_AURA_fontcolor_r = 1,
+ CF_AURA_fontcolor_g = 1,
+ CF_AURA_fontcolor_b = 1,
+ CF_AURA_font = "Fonts\\FRIZQT__.ttf",
+ CF_AURA_fontopacity = 1,
+ CF_AURA_fontsize = 13,
+ CF_AURA_fontoffset_x = -5,
+ CF_AURA_fontoffset_y = 5,
+ CF_TIMER_border = true,
+ CF_TIMER_fontcolor_r = 1,
+ CF_TIMER_fontcolor_g = 0.82,
+ CF_TIMER_fontcolor_b = 0,
+ CF_TIMER_fontsize = 10,
+ CF_TIMER_fontopacity = 1,
+ BF_GENERAL_verticalmode = false,
+ BF_GENERAL_numperrow = 16,
+ BF_GENERAL_padding_h = 2,
+ BF_GENERAL_padding_v = 2,
+ BF_GENERAL_scale = 1,
+ BF_GENERAL_bgopacity = 1,
+ BF_GENERAL_enablebgcolor = false,
+ BF_GENERAL_bgcolor_r = 1,
+ BF_GENERAL_bgcolor_g = 1,
+ BF_GENERAL_bgcolor_b = 1,
+ BF_GENERAL_enableborder = true,
+ BF_GENERAL_fontcolor_r = 1,
+ BF_GENERAL_fontcolor_g = 1,
+ BF_GENERAL_fontcolor_b = 1,
+ BF_GENERAL_font = "Fonts\\FRIZQT__.ttf",
+ BF_GENERAL_fontopacity = 1,
+ BF_GENERAL_fontsize = 13,
+ BF_GENERAL_fontoffset_x = -5,
+ BF_GENERAL_fontoffset_y = 5,
+ BF_GENERAL_invert = false,
+ BF_GENERAL_invertorientation = false,
+ BF_GENERAL_usecfont = false,
+ BF_GENERAL_customfont = "",
+ BF_BORDER_enableborder = false,
+ BF_BORDER_bordercolor_r = 1,
+ BF_BORDER_bordercolor_g = 1,
+ BF_BORDER_bordercolor_b = 1,
+ BF_BORDER_borderopacity = 1,
+ BF_BORDER_border = 1,
+ BF_BORDER_usecustomborder = false,
+ BF_BORDER_customborderpath = "",
+ BF_TIMER_border = true,
+ BF_TIMER_fontcolor_r = 1,
+ BF_TIMER_fontcolor_g = 0.82,
+ BF_TIMER_fontcolor_b = 0,
+ BF_TIMER_fontopacity = 1,
+ BF_TIMER_fontsize = 10,
+ DBF_GENERAL_verticalmode = false,
+ DBF_GENERAL_numperrow = 16,
+ DBF_GENERAL_padding_h = 2,
+ DBF_GENERAL_padding_v = 2,
+ DBF_GENERAL_bgopacity = 1,
+ DBF_GENERAL_scale = 1,
+ DBF_GENERAL_enablebgcolor = false,
+ DBF_GENERAL_bgcolor_r = 1,
+ DBF_GENERAL_bgcolor_g = 1,
+ DBF_GENERAL_bgcolor_b = 1,
+ DBF_GENERAL_enableborder = true,
+ DBF_GENERAL_fontcolor_r = 1,
+ DBF_GENERAL_fontcolor_g = 1,
+ DBF_GENERAL_fontcolor_b = 1,
+ DBF_GENERAL_font = "Fonts\\FRIZQT__.ttf",
+ DBF_GENERAL_fontopacity = 1,
+ DBF_GENERAL_fontsize = 13,
+ DBF_GENERAL_fontoffset_x = -5,
+ DBF_GENERAL_fontoffset_y = 5,
+ DBF_GENERAL_invert = false,
+ DBF_GENERAL_invertorientation = false,
+ DBF_GENERAL_usecfont = false,
+ DBF_GENERAL_customfont = "",
+ DBF_BORDER_enableborder = true,
+ DBF_BORDER_usecustomborder = false,
+ DBF_BORDER_customborderpath = "",
+ DBF_BORDER_border = 1,
+ DBF_BORDER_borderopacity = 1,
+ DBF_BORDER_nonecolor_r = 0.8,
+ DBF_BORDER_nonecolor_g = 0,
+ DBF_BORDER_nonecolor_b = 0,
+ DBF_BORDER_poisoncolor_r = 0,
+ DBF_BORDER_poisoncolor_g = 0.6,
+ DBF_BORDER_poisoncolor_b = 0,
+ DBF_BORDER_magiccolor_r = 0.2,
+ DBF_BORDER_magiccolor_g = 0.6,
+ DBF_BORDER_magiccolor_b = 1,
+ DBF_BORDER_cursecolor_r = 0.6,
+ DBF_BORDER_cursecolor_g = 0,
+ DBF_BORDER_cursecolor_b = 1,
+ DBF_BORDER_diseasecolor_r = 0.6,
+ DBF_BORDER_diseasecolor_g = 0.4,
+ DBF_BORDER_diseasecolor_b = 0,
+ DBF_TIMER_enableborder = true,
+ DBF_TIMER_fontcolor_r = 1,
+ DBF_TIMER_fontcolor_g = 0.82,
+ DBF_TIMER_fontcolor_b = 0,
+ DBF_TIMER_fontsize = 10,
+ DBF_TIMER_fontopacity = 1,
+ WP_GENERAL_invert = false,
+ WP_GENERAL_verticalmode = false,
+ WP_GENERAL_enablebgcolor = false,
+ WP_GENERAL_enableborder = true,
+ WP_GENERAL_bgcolor_r = 1,
+ WP_GENERAL_bgcolor_g = 1,
+ WP_GENERAL_bgcolor_b = 1,
+ WP_GENERAL_attach = false,
+ WP_GENERAL_padding_h = 2,
+ WP_GENERAL_padding_v = 2,
+ WP_GENERAL_fontsize = 13,
+ WP_GENERAL_fontopacity = 1,
+ WP_GENERAL_fontcolor_r = 1,
+ WP_GENERAL_fontcolor_g = 1,
+ WP_GENERAL_fontcolor_b = 1,
+ WP_GENERAL_bgopacity = 1,
+ WP_GENERAL_scale = 1,
+ WP_GENERAL_font = "Fonts\\FRIZQT__.ttf",
+ WP_GENERAL_offset_x = -2,
+ WP_GENERAL_offset_y = 2,
+ WP_GENERAL_usecfont = false,
+ WP_GENERAL_customfont = "",
+ WP_BORDER_enableborder = true,
+ WP_BORDER_usecustomborder = false,
+ WP_BORDER_bordercolor_r = 0.2,
+ WP_BORDER_bordercolor_g = 0.2,
+ WP_BORDER_bordercolor_b = 0.8,
+ WP_BORDER_borderopacity = 1,
+ WP_BORDER_border = 1,
+ WP_BORDER_customborderpath = "",
+ WP_TIMER_enableborder = true,
+ WP_TIMER_fontcolor_r = 1,
+ WP_TIMER_fontcolor_g = 0.82,
+ WP_TIMER_fontcolor_b = 0,
+ WP_TIMER_fontopacity = 1,
+ WP_TIMER_fontsize = 10,
+ MISC_disable_CF = false,
+ MISC_disable_BB = false,
+ BF_POS = {
+ [1] = "CENTER",
+ [2] = 0,
+ [3] = 0,
+ },
+ DBF_POS = {
+ [1] = "CENTER",
+ [2] = 0,
+ [3] = 0,
+ },
+}
+
+--[[
+-- VCB_OnLoad()
+-- @returns: Void
+-- Use: Initialization and registering events
+--]]
+function VCB_OnLoad()
+ this:RegisterEvent("VARIABLES_LOADED")
+ this:RegisterEvent("PARTY_MEMBERS_CHANGED")
+ this:RegisterEvent("RAID_ROSTER_UPDATE")
+ this:RegisterEvent("PLAYER_ENTERING_WORLD")
+
+ SLASH_VCB1 = "/VanillaConsolidateBuffs"
+ SLASH_VCB2 = "/vanillaconsolidatebuffs"
+ SLASH_VCB3 = "/VCB"
+ SLASH_VCB4 = "/vcb"
+ SlashCmdList["VCB"] = function(msg)
+ VCB_SlashCommandHandler(msg)
+ end
+
+ DEFAULT_CHAT_FRAME:AddMessage("VCB "..VCB_VERSION..VCB_WELCOME_TEXT)
+end
+
+function VCB_OnEvent(event)
+ if event == "VARIABLES_LOADED" and VCB_IS_LOADED == false then
+ if VCB_SAVE == nil then
+ VCB_SAVE = {}
+ VCB_SAVE = {
+ Timer_yoffset = 0,
+ Timer_disableUnit = false,
+ Timer_hours = false,
+ Timer_hours_convert = false,
+ Timer_minutes = true,
+ Timer_minutes_convert = false,
+ Timer_tenth = false,
+ Timer_round = false,
+ Timer_font = "Fonts\\FRIZQT__.ttf",
+ Timer_flash = false,
+ Timer_below_60 = false,
+ Timer_below_60_color_g = 0.82,
+ Timer_below_60_color_b = 0,
+ Timer_usecfont = false,
+ Timer_customfont = "",
+ CF_icon_color_r = 1,
+ CF_icon_color_g = 1,
+ CF_icon_color_b = 1,
+ CF_icon_fontsize = 13,
+ CF_icon_font = "Fonts\\FRIZQT__.ttf",
+ CF_icon_opacity = 1,
+ CF_icon_fontopacity = 1,
+ CF_icon_texture = "icon",
+ CF_icon_border = true,
+ CF_icon_possiblebuffs = false,
+ CF_icon_showpbgrayedout = false,
+ CF_icon_attach = true,
+ CF_icon_usecfont = false,
+ CF_icon_customfont = "",
+ CF_BF_anchor = 1,
+ CF_BF_scale = 1,
+ CF_BF_invert = false,
+ CF_BF_numperrow = 5,
+ CF_BF_bgopacity = 1,
+ CF_BF_bgcolor_r = 0,
+ CF_BF_bgcolor_g = 0,
+ CF_BF_bgcolor_b = 0,
+ CF_BF_borderopacity = 1,
+ CF_BF_bordercolor_r = 1,
+ CF_BF_bordercolor_g = 1,
+ CF_BF_bordercolor_b = 1,
+ CF_BF_border = 1,
+ CF_BF_customborder = false,
+ CF_BF_customborderpath = "",
+ CF_BF_background = 1,
+ CF_BF_custombackground = false,
+ CF_BF_custombackgroundpath = "",
+ CF_BF_invertorientation = false,
+ CF_AURA_bgopacity = 1,
+ CF_AURA_enableborder = false,
+ CF_AURA_borderopacity = 1,
+ CF_AURA_bordercolor_r = 1,
+ CF_AURA_bordercolor_g = 1,
+ CF_AURA_bordercolor_b = 1,
+ CF_AURA_padding_h = 2,
+ CF_AURA_padding_v = 2,
+ CF_AURA_border = 1,
+ CF_AURA_customborder = false,
+ CF_AURA_customborderpath = "",
+ CF_AURA_bgcolor_r = 1,
+ CF_AURA_bgcolor_g = 1,
+ CF_AURA_bgcolor_b = 1,
+ CF_AURA_enablebgcolor = false,
+ CF_AURA_enablefontborder = true,
+ CF_AURA_fontcolor_r = 1,
+ CF_AURA_fontcolor_g = 1,
+ CF_AURA_fontcolor_b = 1,
+ CF_AURA_font = "Fonts\\FRIZQT__.ttf",
+ CF_AURA_fontopacity = 1,
+ CF_AURA_fontsize = 13,
+ CF_AURA_fontoffset_x = -5,
+ CF_AURA_fontoffset_y = 5,
+ CF_TIMER_border = true,
+ CF_TIMER_fontcolor_r = 1,
+ CF_TIMER_fontcolor_g = 0.82,
+ CF_TIMER_fontcolor_b = 0,
+ CF_TIMER_fontsize = 10,
+ CF_TIMER_fontopacity = 1,
+ BF_GENERAL_verticalmode = false,
+ BF_GENERAL_numperrow = 16,
+ BF_GENERAL_padding_h = 2,
+ BF_GENERAL_padding_v = 2,
+ BF_GENERAL_scale = 1,
+ BF_GENERAL_bgopacity = 1,
+ BF_GENERAL_enablebgcolor = false,
+ BF_GENERAL_bgcolor_r = 1,
+ BF_GENERAL_bgcolor_g = 1,
+ BF_GENERAL_bgcolor_b = 1,
+ BF_GENERAL_enableborder = true,
+ BF_GENERAL_fontcolor_r = 1,
+ BF_GENERAL_fontcolor_g = 1,
+ BF_GENERAL_fontcolor_b = 1,
+ BF_GENERAL_font = "Fonts\\FRIZQT__.ttf",
+ BF_GENERAL_fontopacity = 1,
+ BF_GENERAL_fontsize = 13,
+ BF_GENERAL_fontoffset_x = -5,
+ BF_GENERAL_fontoffset_y = 5,
+ BF_GENERAL_invert = false,
+ BF_GENERAL_invertorientation = false,
+ BF_GENERAL_usecfont = false,
+ BF_GENERAL_customfont = "",
+ BF_BORDER_enableborder = false,
+ BF_BORDER_bordercolor_r = 1,
+ BF_BORDER_bordercolor_g = 1,
+ BF_BORDER_bordercolor_b = 1,
+ BF_BORDER_borderopacity = 1,
+ BF_BORDER_border = 1,
+ BF_BORDER_usecustomborder = false,
+ BF_BORDER_customborderpath = "",
+ BF_TIMER_border = true,
+ BF_TIMER_fontcolor_r = 1,
+ BF_TIMER_fontcolor_g = 0.82,
+ BF_TIMER_fontcolor_b = 0,
+ BF_TIMER_fontopacity = 1,
+ BF_TIMER_fontsize = 10,
+ DBF_GENERAL_verticalmode = false,
+ DBF_GENERAL_numperrow = 16,
+ DBF_GENERAL_padding_h = 2,
+ DBF_GENERAL_padding_v = 2,
+ DBF_GENERAL_bgopacity = 1,
+ DBF_GENERAL_scale = 1,
+ DBF_GENERAL_enablebgcolor = false,
+ DBF_GENERAL_bgcolor_r = 1,
+ DBF_GENERAL_bgcolor_g = 1,
+ DBF_GENERAL_bgcolor_b = 1,
+ DBF_GENERAL_enableborder = true,
+ DBF_GENERAL_fontcolor_r = 1,
+ DBF_GENERAL_fontcolor_g = 1,
+ DBF_GENERAL_fontcolor_b = 1,
+ DBF_GENERAL_font = "Fonts\\FRIZQT__.ttf",
+ DBF_GENERAL_fontopacity = 1,
+ DBF_GENERAL_fontsize = 13,
+ DBF_GENERAL_fontoffset_x = -5,
+ DBF_GENERAL_fontoffset_y = 5,
+ DBF_GENERAL_invert = false,
+ DBF_GENERAL_invertorientation = false,
+ DBF_GENERAL_usecfont = false,
+ DBF_GENERAL_customfont = "",
+ DBF_BORDER_enableborder = true,
+ DBF_BORDER_usecustomborder = false,
+ DBF_BORDER_customborderpath = "",
+ DBF_BORDER_border = 1,
+ DBF_BORDER_borderopacity = 1,
+ DBF_BORDER_nonecolor_r = 0.8,
+ DBF_BORDER_nonecolor_g = 0,
+ DBF_BORDER_nonecolor_b = 0,
+ DBF_BORDER_poisoncolor_r = 0,
+ DBF_BORDER_poisoncolor_g = 0.6,
+ DBF_BORDER_poisoncolor_b = 0,
+ DBF_BORDER_magiccolor_r = 0.2,
+ DBF_BORDER_magiccolor_g = 0.6,
+ DBF_BORDER_magiccolor_b = 1,
+ DBF_BORDER_cursecolor_r = 0.6,
+ DBF_BORDER_cursecolor_g = 0,
+ DBF_BORDER_cursecolor_b = 1,
+ DBF_BORDER_diseasecolor_r = 0.6,
+ DBF_BORDER_diseasecolor_g = 0.4,
+ DBF_BORDER_diseasecolor_b = 0,
+ DBF_TIMER_enableborder = true,
+ DBF_TIMER_fontcolor_r = 1,
+ DBF_TIMER_fontcolor_g = 0.82,
+ DBF_TIMER_fontcolor_b = 0,
+ DBF_TIMER_fontsize = 10,
+ DBF_TIMER_fontopacity = 1,
+ WP_GENERAL_invert = false,
+ WP_GENERAL_verticalmode = false,
+ WP_GENERAL_enablebgcolor = false,
+ WP_GENERAL_enableborder = true,
+ WP_GENERAL_bgcolor_r = 1,
+ WP_GENERAL_bgcolor_g = 1,
+ WP_GENERAL_bgcolor_b = 1,
+ WP_GENERAL_attach = false,
+ WP_GENERAL_padding_h = 2,
+ WP_GENERAL_padding_v = 2,
+ WP_GENERAL_fontsize = 13,
+ WP_GENERAL_fontopacity = 1,
+ WP_GENERAL_fontcolor_r = 1,
+ WP_GENERAL_fontcolor_g = 1,
+ WP_GENERAL_fontcolor_b = 1,
+ WP_GENERAL_bgopacity = 1,
+ WP_GENERAL_scale = 1,
+ WP_GENERAL_font = "Fonts\\FRIZQT__.ttf",
+ WP_GENERAL_offset_x = -2,
+ WP_GENERAL_offset_y = 2,
+ WP_GENERAL_usecfont = false,
+ WP_GENERAL_customfont = "",
+ WP_BORDER_enableborder = true,
+ WP_BORDER_usecustomborder = false,
+ WP_BORDER_bordercolor_r = 0.2,
+ WP_BORDER_bordercolor_g = 0.2,
+ WP_BORDER_bordercolor_b = 0.8,
+ WP_BORDER_borderopacity = 1,
+ WP_BORDER_border = 1,
+ WP_BORDER_customborderpath = "",
+ WP_TIMER_enableborder = true,
+ WP_TIMER_fontcolor_r = 1,
+ WP_TIMER_fontcolor_g = 0.82,
+ WP_TIMER_fontcolor_b = 0,
+ WP_TIMER_fontopacity = 1,
+ WP_TIMER_fontsize = 10,
+ MISC_disable_CF = false,
+ MISC_disable_BB = false,
+ BF_POS = {
+ [1] = "CENTER",
+ [2] = 0,
+ [3] = 0,
+ },
+ DBF_POS = {
+ [1] = "CENTER",
+ [2] = 0,
+ [3] = 0,
+ },
+ }
+ end
+ if VCB_BF_LOCKED == nil then
+ VCB_BF_LOCKED = false
+ end
+ if Consolidated_Buffs == nil then
+ Consolidated_Buffs = {}
+ Consolidated_Buffs = {
+ -- Druid Buffs
+ [1] = VCB_CONSOLIDATED_BUFFS_TEXT_1,
+ [2] = VCB_CONSOLIDATED_BUFFS_TEXT_2,
+ -- Priest Buffs
+ [3] = VCB_CONSOLIDATED_BUFFS_TEXT_3,
+ [4] = VCB_CONSOLIDATED_BUFFS_TEXT_4,
+ [5] = VCB_CONSOLIDATED_BUFFS_TEXT_5,
+ [6] = VCB_CONSOLIDATED_BUFFS_TEXT_6,
+ [7] = VCB_CONSOLIDATED_BUFFS_TEXT_7,
+ [8] = VCB_CONSOLIDATED_BUFFS_TEXT_8,
+ -- Mage Buffs
+ [9] = VCB_CONSOLIDATED_BUFFS_TEXT_9,
+ [10] = VCB_CONSOLIDATED_BUFFS_TEXT_10,
+ -- Paladin Buffs
+ [11] = VCB_CONSOLIDATED_BUFFS_TEXT_11,
+ [12] = VCB_CONSOLIDATED_BUFFS_TEXT_12,
+ [13] = VCB_CONSOLIDATED_BUFFS_TEXT_13,
+ [14] = VCB_CONSOLIDATED_BUFFS_TEXT_14,
+ [15] = VCB_CONSOLIDATED_BUFFS_TEXT_15,
+ [16] = VCB_CONSOLIDATED_BUFFS_TEXT_16,
+ -- Hunter
+ [17] = VCB_CONSOLIDATED_BUFFS_TEXT_17,
+ -- Warlock, Rogue and Warrior left out
+ }
+ end
+ if Banned_Buffs == nil then
+ Banned_Buffs = {}
+ end
+ if VCB_Profile == nil then
+ VCB_Profile = {}
+ end
+ if VCB_Profile_Name == nil then
+ VCB_Profile_Name = {}
+ end
+ if VCB_CUR_PROFILE == nil then
+ VCB_CUR_PROFILE = VCB_CUR_PROFILE_TEXT
+ end
+ if VCB_WP_POSX == nil then
+ VCB_WP_POSX = 0
+ end
+ if VCB_WP_POSY == nil then
+ VCB_WP_POSY = 0
+ end
+ if VCB_WP_POINT == nil then
+ VCB_WP_POINT = "CENTER"
+ end
+ if VCB_ICON_POSX == nil then
+ VCB_ICON_POSX = 0
+ end
+ if VCB_ICON_POSY == nil then
+ VCB_ICON_POSY = 0
+ end
+ if VCB_ICON_POINT == nil then
+ VCB_ICON_POINT = "CENTER"
+ end
+ if not VCB_SAVE["Timer_yoffset"] then
+ VCB_SAVE["Timer_yoffset"] = 0
+ end
+
+ -- New variables since v2.5:
+ if VCB_SAVE["Timer_below_60"] == nil then VCB_SAVE["Timer_below_60"] = false end
+ if VCB_SAVE["Timer_below_60_color_r"] == nil then VCB_SAVE["Timer_below_60_color_r"] = 1 end
+ if VCB_SAVE["Timer_below_60_color_g"] == nil then VCB_SAVE["Timer_below_60_color_g"] = 0.82 end
+ if VCB_SAVE["Timer_below_60_color_b"] == nil then VCB_SAVE["Timer_below_60_color_b"] = 0 end
+ if VCB_SAVE["CF_icon_attach"] == nil then VCB_SAVE["CF_icon_attach"] = true end
+ if VCB_MM_ICON == nil then VCB_MM_ICON = false end
+ if VCB_SAVE["CF_icon_usecfont"] == nil then VCB_SAVE["CF_icon_usecfont"] = false end
+ if VCB_SAVE["CF_icon_customfont"] == nil then VCB_SAVE["CF_icon_customfont"] = "" end
+ if VCB_SAVE["Timer_usecfont"] == nil then VCB_SAVE["Timer_usecfont"] = false end
+ if VCB_SAVE["Timer_customfont"] == nil then VCB_SAVE["Timer_customfont"] = "" end
+ if VCB_SAVE["BF_GENERAL_usecfont"] == nil then VCB_SAVE["BF_GENERAL_usecfont"] = false end
+ if VCB_SAVE["BF_GENERAL_customfont"] == nil then VCB_SAVE["BF_GENERAL_customfont"] = "" end
+ if VCB_SAVE["DBF_GENERAL_usecfont"] == nil then VCB_SAVE["DBF_GENERAL_usecfont"] = false end
+ if VCB_SAVE["DBF_GENERAL_customfont"] == nil then VCB_SAVE["DBF_GENERAL_customfont"] = "" end
+ if VCB_SAVE["WP_GENERAL_usecfont"] == nil then VCB_SAVE["WP_GENERAL_usecfont"] = false end
+ if VCB_SAVE["WP_GENERAL_customfont"] == nil then VCB_SAVE["WP_GENERAL_customfont"] = "" end
+
+ -- To catch a crash due to the font update
+ if strsub(VCB_SAVE["Timer_font"], 1, 5) ~= "Fonts" then
+ VCB_SAVE["Timer_font"] = "Fonts\\FRIZQT__.ttf"
+ VCB_SAVE["CF_icon_font"] = "Fonts\\FRIZQT__.ttf"
+ VCB_SAVE["CF_AURA_font"] = "Fonts\\FRIZQT__.ttf"
+ VCB_SAVE["BF_GENERAL_font"] = "Fonts\\FRIZQT__.ttf"
+ VCB_SAVE["DBF_GENERAL_font"] = "Fonts\\FRIZQT__.ttf"
+ VCB_SAVE["WP_GENERAL_font"] = "Fonts\\FRIZQT__.ttf"
+ end
+
+ VCB_INITIALIZE()
+ VCB_BF_Lock(VCB_BF_LOCKED)
+
+ VCB_BF_WEAPON_BUTTON_OnEvent(false)
+ if (VCB_SAVE["BF_POS"] and VCB_SAVE["BF_POS"][1]) then
+ VCB_BF_BUFF_FRAME:ClearAllPoints()
+ VCB_BF_BUFF_FRAME:SetPoint(VCB_SAVE["BF_POS"][1], UIParent, VCB_SAVE["BF_POS"][1], VCB_SAVE["BF_POS"][2], VCB_SAVE["BF_POS"][3])
+ end
+ if (VCB_SAVE["DBF_POS"] and VCB_SAVE["DBF_POS"][1]) then
+ VCB_BF_DEBUFF_FRAME:ClearAllPoints()
+ VCB_BF_DEBUFF_FRAME:SetPoint(VCB_SAVE["DBF_POS"][1], UIParent, VCB_SAVE["DBF_POS"][1], VCB_SAVE["DBF_POS"][2], VCB_SAVE["DBF_POS"][3])
+ end
+ VCB_IS_LOADED = true
+ elseif (event == "PARTY_MEMBERS_CHANGED" or event == "RAID_ROSTER_UPDATE") then
+ if VCB_SAVE["CF_icon_possiblebuffs"] then
+ VCB_BF_RepositioningAndResizing()
+ end
+ elseif (event == "PLAYER_ENTERING_WORLD") and VCB_IS_LOADED then
+ VCB_BF_WEAPON_BUTTON_OnEvent(false)
+ if (VCB_SAVE["BF_POS"] and VCB_SAVE["BF_POS"][1]) then
+ VCB_BF_BUFF_FRAME:ClearAllPoints()
+ VCB_BF_BUFF_FRAME:SetPoint(VCB_SAVE["BF_POS"][1], UIParent, VCB_SAVE["BF_POS"][1], VCB_SAVE["BF_POS"][2], VCB_SAVE["BF_POS"][3])
+ end
+ if (VCB_SAVE["DBF_POS"] and VCB_SAVE["DBF_POS"][1]) then
+ VCB_BF_DEBUFF_FRAME:ClearAllPoints()
+ VCB_BF_DEBUFF_FRAME:SetPoint(VCB_SAVE["DBF_POS"][1], UIParent, VCB_SAVE["DBF_POS"][1], VCB_SAVE["DBF_POS"][2], VCB_SAVE["DBF_POS"][3])
+ end
+ end
+end
+
+function VCB_SAVEFRAMEPOS()
+ local point, _, _, xOfs, yOfs = VCB_BF_BUFF_FRAME:GetPoint()
+ VCB_SAVE["BF_POS"] = {}
+ VCB_SAVE["BF_POS"][1] = point;
+ VCB_SAVE["BF_POS"][2] = xOfs;
+ VCB_SAVE["BF_POS"][3] = yOfs;
+ point, _, _, xOfs, yOfs = VCB_BF_DEBUFF_FRAME:GetPoint()
+ VCB_SAVE["DBF_POS"] = {}
+ VCB_SAVE["DBF_POS"][1] = point;
+ VCB_SAVE["DBF_POS"][2] = xOfs;
+ VCB_SAVE["DBF_POS"][3] = yOfs;
+ if not VCB_SAVE["CF_icon_attach"] then
+ point, _, _, xOfs, yOfs = VCB_BF_CONSOLIDATED_ICON:GetPoint()
+ VCB_ICON_POINT = point
+ VCB_ICON_POSX = xOfs
+ VCB_ICON_POSY = yOfs
+ end
+ if not VCB_SAVE["WP_GENERAL_attach"] then
+ point, _, _, xOfs, yOfs = VCB_BF_WEAPON_FRAME:GetPoint()
+ VCB_WP_POINT = point
+ VCB_WP_POSX = xOfs
+ VCB_WP_POSY = yOfs
+ end
+end
+
+function VCB_INITIALIZE()
+ VCB_BF_CONSOLIDATED_BUFFFRAME:ClearAllPoints()
+ if VCB_SAVE["CF_BF_anchor"] == 1 then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetPoint("TOP", VCB_BF_CONSOLIDATED_ICON, "BOTTOM", 0, 0)
+ elseif VCB_SAVE["CF_BF_anchor"] == 2 then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetPoint("LEFT", VCB_BF_CONSOLIDATED_ICON, "RIGHT", 0, 0)
+ elseif VCB_SAVE["CF_BF_anchor"] == 3 then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetPoint("BOTTOM", VCB_BF_CONSOLIDATED_ICON, "TOP", 0, 0)
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetPoint("RIGHT", VCB_BF_CONSOLIDATED_ICON, "LEFT", 0, 0)
+ end
+
+ VCB_BF_CONSOLIDATED_ICON:SetAlpha(VCB_SAVE["CF_icon_opacity"])
+ if VCB_SAVE["CF_icon_border"] then
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_font"], VCB_SAVE["CF_icon_fontsize"], "OUTLINE")
+ else
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_font"], VCB_SAVE["CF_icon_fontsize"])
+ end
+ VCB_BF_CONSOLIDATED_ICONCount:SetTextColor(VCB_SAVE["CF_icon_color_r"], VCB_SAVE["CF_icon_color_g"], VCB_SAVE["CF_icon_color_b"], VCB_SAVE["CF_icon_fontopacity"])
+ VCB_BF_CONSOLIDATED_ICONIcon:SetTexture(nil)
+ VCB_BF_CONSOLIDATED_ICONIcon:SetTexture("Interface\\AddOns\\VCB\\images\\"..VCB_SAVE["CF_icon_texture"]..".tga")
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop(nil)
+ if VCB_SAVE["CF_BF_customborder"] then
+ if VCB_SAVE["CF_BF_custombackground"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_SAVE["CF_BF_custombackgroundpath"], edgeFile=VCB_SAVE["CF_BF_customborderpath"], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_BACKGROUND_ARRAY[VCB_SAVE["CF_BF_background"]], edgeFile=VCB_SAVE["CF_BF_customborderpath"], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ end
+ else
+ if VCB_SAVE["CF_BF_custombackground"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_SAVE["CF_BF_custombackgroundpath"], edgeFile=VCB_BORDER_ARRAY[VCB_SAVE["CF_BF_border"]], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_BACKGROUND_ARRAY[VCB_SAVE["CF_BF_background"]], edgeFile=VCB_BORDER_ARRAY[VCB_SAVE["CF_BF_border"]], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ end
+ end
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropColor(VCB_SAVE["CF_BF_bgcolor_r"],VCB_SAVE["CF_BF_bgcolor_g"],VCB_SAVE["CF_BF_bgcolor_b"],VCB_SAVE["CF_BF_bgopacity"])
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropBorderColor(VCB_SAVE["CF_BF_bordercolor_r"],VCB_SAVE["CF_BF_bordercolor_g"],VCB_SAVE["CF_BF_bordercolor_b"],VCB_SAVE["CF_BF_borderopacity"])
+ for i=0,15 do
+
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetPoint("TOPLEFT", getglobal("VCB_BF_DEBUFF_BUTTON"..i), "BOTTOMLEFT", -20, VCB_SAVE["Timer_yoffset"])
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetPoint("TOPRIGHT", getglobal("VCB_BF_DEBUFF_BUTTON"..i), "BOTTOMRIGHT", 20, VCB_SAVE["Timer_yoffset"])
+
+ if VCB_SAVE["DBF_GENERAL_invertorientation"] then
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ end
+ if VCB_SAVE["DBF_GENERAL_enablebgcolor"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Icon"):SetVertexColor(VCB_SAVE["DBF_GENERAL_bgcolor_r"],VCB_SAVE["DBF_GENERAL_bgcolor_g"],VCB_SAVE["DBF_GENERAL_bgcolor_b"],VCB_SAVE["DBF_GENERAL_bgopacity"])
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Icon"):SetVertexColor(1,1,1,VCB_SAVE["DBF_GENERAL_bgopacity"])
+ end
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ if VCB_SAVE["DBF_BORDER_enableborder"] then
+ if VCB_SAVE["DBF_BORDER_usecustomborder"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["DBF_BORDER_customborderpath"])
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(VCB_AURABORDER_ARRAY[VCB_SAVE["DBF_BORDER_border"]])
+ end
+ end
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetAlpha(VCB_SAVE["DBF_BORDER_borderopacity"]) -- Need colors
+ if VCB_SAVE["Timer_usecfont"] then
+ if VCB_SAVE["DBF_TIMER_enableborder"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["DBF_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["DBF_TIMER_fontsize"])
+ end
+ else
+ if VCB_SAVE["DBF_TIMER_enableborder"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["DBF_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["DBF_TIMER_fontsize"])
+ end
+ end
+ if VCB_SAVE["DBF_GENERAL_usecfont"] then
+ if VCB_SAVE["DBF_GENERAL_enableborder"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_customfont"], VCB_SAVE["DBF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_customfont"], VCB_SAVE["DBF_GENERAL_fontsize"])
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_enableborder"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_font"], VCB_SAVE["DBF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_font"], VCB_SAVE["DBF_GENERAL_fontsize"])
+ end
+ end
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetVertexColor(VCB_SAVE["DBF_GENERAL_fontcolor_r"],VCB_SAVE["DBF_GENERAL_fontcolor_g"],VCB_SAVE["DBF_GENERAL_fontcolor_b"],VCB_SAVE["DBF_GENERAL_fontopacity"])
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetPoint("BOTTOMRIGHT", VCB_SAVE["DBF_GENERAL_fontoffset_x"], VCB_SAVE["DBF_GENERAL_fontoffset_y"])
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetTextColor(VCB_SAVE["DBF_TIMER_fontcolor_r"],VCB_SAVE["DBF_TIMER_fontcolor_g"],VCB_SAVE["DBF_TIMER_fontcolor_b"],VCB_SAVE["DBF_TIMER_fontopacity"])
+ end
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):ClearAllPoints()
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetPoint("TOPLEFT", getglobal("VCB_BF_WEAPON_BUTTON"..i), "BOTTOMLEFT", -20, VCB_SAVE["Timer_yoffset"])
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetPoint("TOPRIGHT", getglobal("VCB_BF_WEAPON_BUTTON"..i), "BOTTOMRIGHT", 20, VCB_SAVE["Timer_yoffset"])
+
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):ClearAllPoints()
+ if VCB_SAVE["WP_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", 0, -(44+VCB_SAVE["WP_GENERAL_padding_v"])*i)
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", -(32+VCB_SAVE["WP_GENERAL_padding_h"])*i, 0)
+ end
+ if VCB_SAVE["WP_GENERAL_enablebgcolor"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Icon"):SetVertexColor(VCB_SAVE["WP_GENERAL_bgcolor_r"],VCB_SAVE["WP_GENERAL_bgcolor_g"],VCB_SAVE["WP_GENERAL_bgcolor_b"],VCB_SAVE["WP_GENERAL_bgopacity"])
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Icon"):SetVertexColor(1,1,1,VCB_SAVE["WP_GENERAL_bgopacity"])
+ end
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(nil)
+ if VCB_SAVE["WP_BORDER_enableborder"] then
+ if VCB_SAVE["WP_BORDER_usecustomborder"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["WP_BORDER_customborderpath"])
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(VCB_WEAPONBORDER_ARRAY[VCB_SAVE["WP_BORDER_border"]]) -- why does the debuff border not work :/
+ end
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["WP_BORDER_bordercolor_r"],VCB_SAVE["WP_BORDER_bordercolor_g"],VCB_SAVE["WP_BORDER_bordercolor_b"],VCB_SAVE["WP_BORDER_borderopacity"])
+ end
+ if VCB_SAVE["Timer_usecfont"] then
+ if VCB_SAVE["WP_TIMER_enableborder"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["WP_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["WP_TIMER_fontsize"])
+ end
+ else
+ if VCB_SAVE["WP_TIMER_enableborder"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["WP_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["WP_TIMER_fontsize"])
+ end
+ end
+ if VCB_SAVE["WP_GENERAL_usecfont"] then
+ if VCB_SAVE["WP_GENERAL_enableborder"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_customfont"], VCB_SAVE["WP_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_customfont"], VCB_SAVE["WP_GENERAL_fontsize"])
+ end
+ else
+ if VCB_SAVE["WP_GENERAL_enableborder"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_font"], VCB_SAVE["WP_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_font"], VCB_SAVE["WP_GENERAL_fontsize"])
+ end
+ end
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetVertexColor(VCB_SAVE["WP_GENERAL_fontcolor_r"],VCB_SAVE["WP_GENERAL_fontcolor_g"],VCB_SAVE["WP_GENERAL_fontcolor_b"],VCB_SAVE["WP_GENERAL_fontopacity"])
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetPoint("BOTTOMRIGHT", VCB_SAVE["WP_GENERAL_offset_x"], VCB_SAVE["WP_GENERAL_offset_y"])
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetTextColor(VCB_SAVE["WP_TIMER_fontcolor_r"],VCB_SAVE["WP_TIMER_fontcolor_g"],VCB_SAVE["WP_TIMER_fontcolor_b"],VCB_SAVE["WP_TIMER_fontopacity"])
+ end
+ VCB_BF_CONSOLIDATED_ICON:ClearAllPoints()
+ if VCB_SAVE["CF_icon_attach"] then
+ VCB_BF_CONSOLIDATED_ICON:SetPoint("TOPRIGHT", 0, 0)
+ else
+ VCB_BF_CONSOLIDATED_ICON:SetPoint(VCB_ICON_POINT, UIParent, VCB_ICON_POINT, VCB_ICON_POSX, VCB_ICON_POSY)
+ end
+ if VCB_SAVE["CF_icon_usecfont"] then
+ if VCB_SAVE["CF_icon_border"] then
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_customfont"], VCB_SAVE["CF_icon_fontsize"], "OUTLINE")
+ else
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_customfont"], VCB_SAVE["CF_icon_fontsize"])
+ end
+ else
+ if VCB_SAVE["CF_icon_border"] then
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_font"], VCB_SAVE["CF_icon_fontsize"], "OUTLINE")
+ else
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_font"], VCB_SAVE["CF_icon_fontsize"])
+ end
+ end
+ if (not VCB_BF_PM_FRAME:IsVisible()) then
+ VCB_BF_WEAPON_BUTTON_OnEvent(false)
+ end
+ if VCB_SAVE["WP_GENERAL_attach"] then
+ VCB_BF_WEAPON_FRAME:ClearAllPoints()
+ VCB_BF_WEAPON_FRAME:SetScale(1)
+ VCB_BF_WEAPON_FRAME:SetParent(VCB_BF_BUFF_FRAME)
+ VCB_BF_WEAPON_FRAME:SetPoint("TOPRIGHT", VCB_BF_BUFF_FRAME, "TOPRIGHT", 0, 0)
+ else
+ VCB_BF_WEAPON_FRAME:SetPoint(VCB_WP_POINT, UIParent, VCB_WP_POINT, VCB_WP_POSX, VCB_WP_POSY)
+ VCB_BF_WEAPON_FRAME:SetScale(VCB_SAVE["WP_GENERAL_scale"])
+ end
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetScale(VCB_SAVE["CF_BF_scale"])
+ VCB_BF_BUFF_FRAME:SetScale(VCB_SAVE["BF_GENERAL_scale"])
+ VCB_BF_DEBUFF_FRAME:SetScale(VCB_SAVE["DBF_GENERAL_scale"])
+ if VCB_SAVE["MISC_disable_CF"] then
+ VCB_BF_CONSOLIDATED_ICON:Hide()
+ end
+ if VCB_MM_ICON then
+ VCB_BF_MINIMAP_FRAME:Hide()
+ end
+end
+
+function VCB_SlashCommandHandler(msg)
+ if(msg) then
+ VCB_BF_ConfigFrame:Show()
+ end
+end
+
+function VCB_tablelength(T)
+ local count = 0
+ for _ in pairs(T) do
+ count = count + 1
+ end
+ return count
+end
+
+function VCB_Contains(table, element)
+ for _, value in pairs(table) do
+ if value == element then
+ return true
+ end
+ end
+ return false
+end
+
+function VCB_GetKeys(a, b)
+ local i = 0
+ while true do
+ if a[i] == b then
+ return i
+ end
+ end
+end
+
+function VCB_Table_GetKeys(a, b)
+ local i = 1
+ while true do
+ if a[i] == b then
+ return i
+ end
+ i = i + 1
+ end
+end
+
+function VCB_EmptyTable(t)
+ for k in pairs (t) do
+ t [k] = nil
+ end
+end
+
+function VCB_SendMessage(msg)
+ DEFAULT_CHAT_FRAME:AddMessage("|cFFFF8080VCB v"..VCB_VERSION..":|r "..msg)
+end
+
+---------------------------------------OPTION FRAME BEGIN-----------------------------------------------------------------------------------------------------------------
+
+function VCB_OPTIONS_HIDE_ALL()
+ getglobal("VCB_BF_CONSOLIDATED_FRAME"):Hide()
+ getglobal("VCB_BF_BANNED_FRAME"):Hide()
+ getglobal("VCB_BF_TIMER_FRAME"):Hide()
+ getglobal("VCB_BF_CF_FRAME"):Hide()
+ getglobal("VCB_BF_CF_FRAME2"):Hide()
+ getglobal("VCB_BF_BF_FRAME"):Hide()
+ getglobal("VCB_BF_BF_FRAME2"):Hide()
+ getglobal("VCB_BF_DBF_FRAME"):Hide()
+ getglobal("VCB_BF_DBF_FRAME2"):Hide()
+ getglobal("VCB_BF_WP_FRAME"):Hide()
+ getglobal("VCB_BF_WP_FRAME2"):Hide()
+ getglobal("VCB_BF_MISC_FRAME"):Hide()
+ getglobal("VCB_BF_PM_FRAME"):Hide()
+ --getglobal("VCB_BF_OM_FRAME"):Hide()
+ getglobal("VCB_BF_ABOUT_FRAME"):Hide()
+end
+
+function VCB_OPTIONS_SHOW(frame, text)
+ getglobal(frame):Show()
+ getglobal("VCB_BF_CONFIG_FRAME_TITLE_TEXT"):SetText(text)
+ VCB_PAGEINIT(frame)
+ PlaySound("igMainMenuOptionCheckBoxOff")
+end
+
+function VCB_PAGEINIT(frame)
+ if frame == "VCB_BF_TIMER_FRAME" then
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON1"):SetChecked(VCB_SAVE["Timer_hours"])
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON2"):SetChecked(VCB_SAVE["Timer_hours_convert"])
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON3"):SetChecked(VCB_SAVE["Timer_minutes"])
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON4"):SetChecked(VCB_SAVE["Timer_minutes_convert"])
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON5"):SetChecked(VCB_SAVE["Timer_tenth"])
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON_DISABLE"):SetChecked(VCB_SAVE["Timer_disableUnit"])
+ if VCB_SAVE["Timer_round"] then
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON6"):SetChecked(false)
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON7"):SetChecked(true)
+ else
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON6"):SetChecked(true)
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON7"):SetChecked(false)
+ end
+ getglobal("VCB_BF_TIMER_FRAME_FontSlider"):SetValue(VCB_Table_GetKeys(VCB_FONT_ARRAY, VCB_SAVE["Timer_font"]))
+ getglobal("VCB_BF_TIMER_FRAME_YOffset"):SetValue(tonumber(VCB_SAVE["Timer_yoffset"]) or 0)
+ getglobal("VCB_BF_TIMER_FRAME_FontSliderText"):SetText(VCB_COMMON_SLIDER_FONT..": "..VCB_SAVE["Timer_font"])
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON8"):SetChecked(VCB_SAVE["Timer_flash"])
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON9"):SetChecked(VCB_SAVE["Timer_below_60"])
+ getglobal("VCB_BF_TIMER_FRAME_ColorNormalTexture"):SetVertexColor(VCB_SAVE["Timer_below_60_color_r"], VCB_SAVE["Timer_below_60_color_g"], VCB_SAVE["Timer_below_60_color_b"])
+ getglobal("VCB_BF_TIMER_FRAME_Color_SwatchBg").r = VCB_SAVE["Timer_below_60_color_r"]
+ getglobal("VCB_BF_TIMER_FRAME_Color_SwatchBg").g = VCB_SAVE["Timer_below_60_color_g"]
+ getglobal("VCB_BF_TIMER_FRAME_Color_SwatchBg").b = VCB_SAVE["Timer_below_60_color_b"]
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON_CUSTOMFONT"):SetChecked(VCB_SAVE["Timer_usecfont"])
+ getglobal("VCB_BF_TIMER_FRAME_EDITBOX_CUSTOMFONT"):SetText(VCB_SAVE["Timer_customfont"])
+ elseif frame == "VCB_BF_CF_FRAME" then
+ getglobal("VCB_BF_CF_FRAME_AnchorSlider"):SetValue(VCB_SAVE["CF_BF_anchor"])
+ getglobal("VCB_BF_CF_FRAME_AnchorSliderText"):SetText(VCB_CF_FRAME_BF_ANCHOR..": "..VCB_ANCHOR_ARRAY[VCB_SAVE["CF_BF_anchor"]])
+ getglobal("VCB_BF_CF_FRAME_ScaleSlider"):SetValue(VCB_SAVE["CF_BF_scale"])
+ getglobal("VCB_BF_CF_FRAME_ScaleSliderText"):SetText(VCB_COMMON_SLIDER_SCALE..": "..VCB_SAVE["CF_BF_scale"])
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON1"):SetChecked(VCB_SAVE["CF_BF_invert"])
+ getglobal("VCB_BF_CF_FRAME_NumPerRowSlider"):SetValue(VCB_SAVE["CF_BF_numperrow"])
+ getglobal("VCB_BF_CF_FRAME_NumPerRowSliderText"):SetText(VCB_COMMON_SLIDER_BUFFS_PER_ROW..": "..VCB_SAVE["CF_BF_numperrow"])
+ getglobal("VCB_BF_CF_FRAME_ColorNormalTexture"):SetVertexColor(VCB_SAVE["CF_icon_color_r"], VCB_SAVE["CF_icon_color_g"], VCB_SAVE["CF_icon_color_b"])
+ getglobal("VCB_BF_CF_FRAME_Color_SwatchBg").r = VCB_SAVE["CF_icon_color_r"]
+ getglobal("VCB_BF_CF_FRAME_Color_SwatchBg").g = VCB_SAVE["CF_icon_color_g"]
+ getglobal("VCB_BF_CF_FRAME_Color_SwatchBg").b = VCB_SAVE["CF_icon_color_b"]
+ getglobal("VCB_BF_CF_FRAME_SizeSlider"):SetValue(VCB_SAVE["CF_icon_fontsize"])
+ getglobal("VCB_BF_CF_FRAME_SizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["CF_icon_fontsize"])
+ getglobal("VCB_BF_CF_FRAME_FontSlider"):SetValue(VCB_Table_GetKeys(VCB_FONT_ARRAY, VCB_SAVE["CF_icon_font"]))
+ getglobal("VCB_BF_CF_FRAME_FontSliderText"):SetText(VCB_COMMON_SLIDER_FONT..": "..VCB_SAVE["CF_icon_font"])
+ getglobal("VCB_BF_CF_FRAME_AlphaSlider"):SetValue(VCB_SAVE["CF_icon_opacity"])
+ getglobal("VCB_BF_CF_FRAME_AlphaSliderText"):SetText(VCB_CF_FRAME_ICON_OPACITY..": "..VCB_SAVE["CF_icon_opacity"])
+ getglobal("VCB_BF_CF_FRAME_FontAlphaSlider"):SetValue(VCB_SAVE["CF_icon_fontopacity"])
+ getglobal("VCB_BF_CF_FRAME_FontAlphaSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["CF_icon_fontopacity"])
+ getglobal("VCB_BF_CF_FRAME_TextureSlider"):SetValue(VCB_Table_GetKeys(VCB_ICON_ARRAY, VCB_SAVE["CF_icon_texture"]))
+ getglobal("VCB_BF_CF_FRAME_TextureSliderText"):SetText(VCB_CF_FRAME_ICON_TEXTURE..": "..VCB_SAVE["CF_icon_texture"])
+ getglobal("VCB_BF_CF_FRAME_BGOpaSlider"):SetValue(VCB_SAVE["CF_BF_bgopacity"])
+ getglobal("VCB_BF_CF_FRAME_BGOpaSliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["CF_BF_bgopacity"])
+ getglobal("VCB_BF_CF_FRAME_Color3NormalTexture"):SetVertexColor(VCB_SAVE["CF_BF_bgcolor_r"], VCB_SAVE["CF_BF_bgcolor_g"], VCB_SAVE["CF_BF_bgcolor_b"])
+ getglobal("VCB_BF_CF_FRAME_Color3_SwatchBg").r = VCB_SAVE["CF_BF_bgcolor_r"]
+ getglobal("VCB_BF_CF_FRAME_Color3_SwatchBg").g = VCB_SAVE["CF_BF_bgcolor_g"]
+ getglobal("VCB_BF_CF_FRAME_Color3_SwatchBg").b = VCB_SAVE["CF_BF_bgcolor_b"]
+ getglobal("VCB_BF_CF_FRAME_Color2NormalTexture"):SetVertexColor(VCB_SAVE["CF_BF_bordercolor_r"], VCB_SAVE["CF_BF_bordercolor_g"], VCB_SAVE["CF_BF_bordercolor_b"])
+ getglobal("VCB_BF_CF_FRAME_Color2_SwatchBg").r = VCB_SAVE["CF_BF_bordercolor_r"]
+ getglobal("VCB_BF_CF_FRAME_Color2_SwatchBg").g = VCB_SAVE["CF_BF_bordercolor_g"]
+ getglobal("VCB_BF_CF_FRAME_Color2_SwatchBg").b = VCB_SAVE["CF_BF_bordercolor_b"]
+ getglobal("VCB_BF_CF_FRAME_BFBorderSlider"):SetValue(VCB_SAVE["CF_BF_border"])
+ getglobal("VCB_BF_CF_FRAME_BFBorderSliderText"):SetText(VCB_COMMON_SLIDER_BORDER..": "..VCB_SAVE["CF_BF_border"])
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON4"):SetChecked(VCB_SAVE["CF_BF_customborder"])
+ getglobal("VCB_BF_CF_FRAME_EDITBOX_BORDER"):SetText(VCB_SAVE["CF_BF_customborderpath"])
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON_BORDER"):SetChecked(VCB_SAVE["CF_icon_border"])
+ getglobal("VCB_BF_CF_FRAME_BackdropSlider"):SetValue(VCB_SAVE["CF_BF_background"])
+ getglobal("VCB_BF_CF_FRAME_BackdropSliderText"):SetText(VCB_CF_FRAME_BF_BACKGROUND..": "..VCB_SAVE["CF_BF_background"])
+ getglobal("VCB_BF_CF_FRAME_BorderOpaSlider"):SetValue(VCB_SAVE["CF_BF_borderopacity"])
+ getglobal("VCB_BF_CF_FRAME_BorderOpaSliderText"):SetText(VCB_COMMON_SLIDER_BORDER_OPACITY..": "..VCB_SAVE["CF_BF_borderopacity"])
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON_CBG"):SetChecked(VCB_SAVE["CF_BF_custombackground"])
+ getglobal("VCB_BF_CF_FRAME_EDITBOX_BACKGROUND"):SetText(VCB_SAVE["CF_BF_custombackgroundpath"])
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON2"):SetChecked(VCB_SAVE["CF_icon_possiblebuffs"])
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON3"):SetChecked(VCB_SAVE["CF_icon_showpbgrayedout"])
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON_IBO"):SetChecked(VCB_SAVE["CF_BF_invertorientation"])
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON_ATTACH"):SetChecked(VCB_SAVE["CF_icon_attach"])
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON_CUSTOMFONT"):SetChecked(VCB_SAVE["CF_icon_usecfont"])
+ getglobal("VCB_BF_CF_FRAME_EDITBOX_CUSTOMFONT"):SetText(VCB_SAVE["CF_icon_customfont"])
+ elseif frame == "VCB_BF_CF_FRAME2" then
+ getglobal("VCB_BF_CF_FRAME2_CHECKBUTTON1"):SetChecked(VCB_SAVE["CF_AURA_enableborder"])
+ getglobal("VCB_BF_CF_FRAME2_ColorNormalTexture"):SetVertexColor(VCB_SAVE["CF_AURA_bordercolor_r"], VCB_SAVE["CF_AURA_bordercolor_g"], VCB_SAVE["CF_AURA_bordercolor_b"])
+ getglobal("VCB_BF_CF_FRAME2_Color_SwatchBg").r = VCB_SAVE["CF_AURA_bordercolor_r"]
+ getglobal("VCB_BF_CF_FRAME2_Color_SwatchBg").g = VCB_SAVE["CF_AURA_bordercolor_g"]
+ getglobal("VCB_BF_CF_FRAME2_Color_SwatchBg").b = VCB_SAVE["CF_AURA_bordercolor_b"]
+ getglobal("VCB_BF_CF_FRAME2_AuraPaddingHSlider"):SetValue(VCB_SAVE["CF_AURA_padding_h"])
+ getglobal("VCB_BF_CF_FRAME2_AuraPaddingHSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_H..": "..VCB_SAVE["CF_AURA_padding_h"])
+ getglobal("VCB_BF_CF_FRAME2_AuraPaddingVSlider"):SetValue(VCB_SAVE["CF_AURA_padding_v"])
+ getglobal("VCB_BF_CF_FRAME2_AuraPaddingVSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_V..": "..VCB_SAVE["CF_AURA_padding_v"])
+ getglobal("VCB_BF_CF_FRAME2_AuraBorderSlider"):SetValue(VCB_SAVE["CF_AURA_border"])
+ getglobal("VCB_BF_CF_FRAME2_AuraBorderSliderText"):SetText(VCB_COMMON_SLIDER_BORDER..": "..VCB_SAVE["CF_AURA_border"])
+ getglobal("VCB_BF_CF_FRAME2_CHECKBUTTON3"):SetChecked(VCB_SAVE["CF_AURA_customborder"])
+ getglobal("VCB_BF_CF_FRAME2_EDITBOX_BORDER"):SetText(VCB_SAVE["CF_AURA_customborderpath"])
+ getglobal("VCB_BF_CF_FRAME2_Color2NormalTexture"):SetVertexColor(VCB_SAVE["CF_AURA_bgcolor_r"], VCB_SAVE["CF_AURA_bgcolor_g"], VCB_SAVE["CF_AURA_bgcolor_b"])
+ getglobal("VCB_BF_CF_FRAME2_Color2_SwatchBg").r = VCB_SAVE["CF_AURA_bgcolor_r"]
+ getglobal("VCB_BF_CF_FRAME2_Color2_SwatchBg").g = VCB_SAVE["CF_AURA_bgcolor_g"]
+ getglobal("VCB_BF_CF_FRAME2_Color2_SwatchBg").b = VCB_SAVE["CF_AURA_bgcolor_b"]
+ getglobal("VCB_BF_CF_FRAME2_CHECKBUTTON2"):SetChecked(VCB_SAVE["CF_AURA_enablebgcolor"])
+ getglobal("VCB_BF_CF_FRAME2_CHECKBUTTON4"):SetChecked(VCB_SAVE["CF_TIMER_border"])
+ getglobal("VCB_BF_CF_FRAME2_Color3NormalTexture"):SetVertexColor(VCB_SAVE["CF_TIMER_fontcolor_r"], VCB_SAVE["CF_TIMER_fontcolor_g"], VCB_SAVE["CF_TIMER_fontcolor_b"])
+ getglobal("VCB_BF_CF_FRAME2_Color3_SwatchBg").r = VCB_SAVE["CF_TIMER_fontcolor_r"]
+ getglobal("VCB_BF_CF_FRAME2_Color3_SwatchBg").g = VCB_SAVE["CF_TIMER_fontcolor_g"]
+ getglobal("VCB_BF_CF_FRAME2_Color3_SwatchBg").b = VCB_SAVE["CF_TIMER_fontcolor_b"]
+ getglobal("VCB_BF_CF_FRAME2_AuraTimerFontSizeSlider"):SetValue(VCB_SAVE["CF_TIMER_fontsize"])
+ getglobal("VCB_BF_CF_FRAME2_AuraTimerFontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["CF_TIMER_fontsize"])
+ getglobal("VCB_BF_CF_FRAME2_AuraTimerOpacitySlider"):SetValue(VCB_SAVE["CF_TIMER_fontopacity"])
+ getglobal("VCB_BF_CF_FRAME2_AuraTimerOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["CF_TIMER_fontopacity"])
+ getglobal("VCB_BF_CF_FRAME2_GFontSlider"):SetValue(VCB_Table_GetKeys(VCB_FONT_ARRAY, VCB_SAVE["CF_AURA_font"]))
+ getglobal("VCB_BF_CF_FRAME2_GFontSliderText"):SetText(VCB_COMMON_SLIDER_FONT..": "..VCB_SAVE["CF_AURA_font"])
+ getglobal("VCB_BF_CF_FRAME2_GFontOpacitySlider"):SetValue(VCB_SAVE["CF_AURA_fontopacity"])
+ getglobal("VCB_BF_CF_FRAME2_GFontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["CF_AURA_fontopacity"])
+ getglobal("VCB_BF_CF_FRAME2_GFontSizeSlider"):SetValue(VCB_SAVE["CF_AURA_fontsize"])
+ getglobal("VCB_BF_CF_FRAME2_GFontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["CF_AURA_fontsize"])
+ getglobal("VCB_BF_CF_FRAME2_GFontOffsetXSlider"):SetValue(VCB_SAVE["CF_AURA_fontoffset_x"])
+ getglobal("VCB_BF_CF_FRAME2_GFontOffsetXSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_X..": "..VCB_SAVE["CF_AURA_fontoffset_x"])
+ getglobal("VCB_BF_CF_FRAME2_GFontOffsetYSlider"):SetValue(VCB_SAVE["CF_AURA_fontoffset_y"])
+ getglobal("VCB_BF_CF_FRAME2_GFontOffsetYSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y..": "..VCB_SAVE["CF_AURA_fontoffset_y"])
+ getglobal("VCB_BF_CF_FRAME2_CHECKBUTTON_FBorder"):SetChecked(VCB_SAVE["CF_AURA_enablefontborder"])
+ getglobal("VCB_BF_CF_FRAME2_Color_fontcolorNormalTexture"):SetVertexColor(VCB_SAVE["CF_AURA_fontcolor_r"], VCB_SAVE["CF_AURA_fontcolor_g"], VCB_SAVE["CF_AURA_fontcolor_b"])
+ getglobal("VCB_BF_CF_FRAME2_Color_fontcolor_SwatchBg").r = VCB_SAVE["CF_AURA_fontcolor_r"]
+ getglobal("VCB_BF_CF_FRAME2_Color_fontcolor_SwatchBg").g = VCB_SAVE["CF_AURA_fontcolor_g"]
+ getglobal("VCB_BF_CF_FRAME2_Color_fontcolor_SwatchBg").b = VCB_SAVE["CF_AURA_fontcolor_b"]
+ getglobal("VCB_BF_CF_FRAME2_GBGOpacitySlider"):SetValue(VCB_SAVE["CF_AURA_bgopacity"])
+ getglobal("VCB_BF_CF_FRAME2_GBGOpacitySliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["CF_AURA_bgopacity"])
+ elseif frame == "VCB_BF_BF_FRAME" then
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON1"):SetChecked(VCB_SAVE["BF_GENERAL_verticalmode"])
+ getglobal("VCB_BF_BF_FRAME_NumPerRowSlider"):SetValue(VCB_SAVE["BF_GENERAL_numperrow"])
+ getglobal("VCB_BF_BF_FRAME_NumPerRowSliderText"):SetText(VCB_COMMON_SLIDER_BUFFS_PER_ROW..": "..VCB_SAVE["BF_GENERAL_numperrow"])
+ getglobal("VCB_BF_BF_FRAME_AuraPaddingHSlider"):SetValue(VCB_SAVE["BF_GENERAL_padding_h"])
+ getglobal("VCB_BF_BF_FRAME_AuraPaddingHSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_H..": "..VCB_SAVE["BF_GENERAL_padding_h"])
+ getglobal("VCB_BF_BF_FRAME_AuraPaddingVSlider"):SetValue(VCB_SAVE["BF_GENERAL_padding_v"])
+ getglobal("VCB_BF_BF_FRAME_AuraPaddingVSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_V..": "..VCB_SAVE["BF_GENERAL_padding_v"])
+ getglobal("VCB_BF_BF_FRAME_ScaleSlider"):SetValue(VCB_SAVE["BF_GENERAL_scale"])
+ getglobal("VCB_BF_BF_FRAME_ScaleSliderText"):SetText(VCB_COMMON_SLIDER_SCALE..": "..VCB_SAVE["BF_GENERAL_scale"])
+ getglobal("VCB_BF_BF_FRAME_BGOpaSlider"):SetValue(VCB_SAVE["BF_GENERAL_bgopacity"])
+ getglobal("VCB_BF_BF_FRAME_BGOpaSliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["BF_GENERAL_bgopacity"])
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON2"):SetChecked(VCB_SAVE["BF_GENERAL_enablebgcolor"])
+ getglobal("VCB_BF_BF_FRAME_Color1NormalTexture"):SetVertexColor(VCB_SAVE["BF_GENERAL_bgcolor_r"], VCB_SAVE["BF_GENERAL_bgcolor_g"], VCB_SAVE["BF_GENERAL_bgcolor_b"])
+ getglobal("VCB_BF_BF_FRAME_Color1_SwatchBg").r = VCB_SAVE["BF_GENERAL_bgcolor_r"]
+ getglobal("VCB_BF_BF_FRAME_Color1_SwatchBg").g = VCB_SAVE["BF_GENERAL_bgcolor_g"]
+ getglobal("VCB_BF_BF_FRAME_Color1_SwatchBg").b = VCB_SAVE["BF_GENERAL_bgcolor_b"]
+ getglobal("VCB_BF_BF_FRAME_GFontSlider"):SetValue(VCB_Table_GetKeys(VCB_FONT_ARRAY, VCB_SAVE["BF_GENERAL_font"]))
+ getglobal("VCB_BF_BF_FRAME_GFontSliderText"):SetText(VCB_COMMON_SLIDER_FONT..": "..VCB_SAVE["BF_GENERAL_font"])
+ getglobal("VCB_BF_BF_FRAME_GFontOpacitySlider"):SetValue(VCB_SAVE["BF_GENERAL_fontopacity"])
+ getglobal("VCB_BF_BF_FRAME_GFontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["BF_GENERAL_fontopacity"])
+ getglobal("VCB_BF_BF_FRAME_GFontSizeSlider"):SetValue(VCB_SAVE["BF_GENERAL_fontsize"])
+ getglobal("VCB_BF_BF_FRAME_GFontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["BF_GENERAL_fontsize"])
+ getglobal("VCB_BF_BF_FRAME_GFontOffsetXSlider"):SetValue(VCB_SAVE["BF_GENERAL_fontoffset_x"])
+ getglobal("VCB_BF_BF_FRAME_GFontOffsetXSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_X..": "..VCB_SAVE["BF_GENERAL_fontoffset_x"])
+ getglobal("VCB_BF_BF_FRAME_GFontOffsetYSlider"):SetValue(VCB_SAVE["BF_GENERAL_fontoffset_y"])
+ getglobal("VCB_BF_BF_FRAME_GFontOffsetYSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y..": "..VCB_SAVE["BF_GENERAL_fontoffset_y"])
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON_FBorder"):SetChecked(VCB_SAVE["BF_GENERAL_enableborder"])
+ getglobal("VCB_BF_BF_FRAME_Color_fontcolorNormalTexture"):SetVertexColor(VCB_SAVE["BF_GENERAL_fontcolor_r"], VCB_SAVE["BF_GENERAL_fontcolor_g"], VCB_SAVE["BF_GENERAL_fontcolor_b"])
+ getglobal("VCB_BF_BF_FRAME_Color_fontcolor_SwatchBg").r = VCB_SAVE["BF_GENERAL_fontcolor_r"]
+ getglobal("VCB_BF_BF_FRAME_Color_fontcolor_SwatchBg").g = VCB_SAVE["BF_GENERAL_fontcolor_g"]
+ getglobal("VCB_BF_BF_FRAME_Color_fontcolor_SwatchBg").b = VCB_SAVE["BF_GENERAL_fontcolor_b"]
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON3"):SetChecked(VCB_SAVE["BF_GENERAL_invert"])
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON_IBO"):SetChecked(VCB_SAVE["BF_GENERAL_invertorientation"])
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON_CUSTOMFONT"):SetChecked(VCB_SAVE["BF_GENERAL_usecfont"])
+ getglobal("VCB_BF_BF_FRAME_EDITBOX_CUSTOMFONT"):SetText(VCB_SAVE["BF_GENERAL_customfont"])
+ elseif frame == "VCB_BF_BF_FRAME2" then
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON5"):SetChecked(VCB_SAVE["BF_BORDER_enableborder"])
+ getglobal("VCB_BF_BF_FRAME_Color4NormalTexture"):SetVertexColor(VCB_SAVE["BF_BORDER_bordercolor_r"], VCB_SAVE["BF_BORDER_bordercolor_g"], VCB_SAVE["BF_BORDER_bordercolor_b"])
+ getglobal("VCB_BF_BF_FRAME_Color4_SwatchBg").r = VCB_SAVE["BF_BORDER_bordercolor_r"]
+ getglobal("VCB_BF_BF_FRAME_Color4_SwatchBg").g = VCB_SAVE["BF_BORDER_bordercolor_g"]
+ getglobal("VCB_BF_BF_FRAME_Color4_SwatchBg").b = VCB_SAVE["BF_BORDER_bordercolor_b"]
+ getglobal("VCB_BF_BF_FRAME_BorderOpacitySlider"):SetValue(VCB_SAVE["BF_BORDER_borderopacity"])
+ getglobal("VCB_BF_BF_FRAME_BorderOpacitySliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["BF_BORDER_borderopacity"])
+ getglobal("VCB_BF_BF_FRAME_BorderSlider"):SetValue(VCB_SAVE["BF_BORDER_border"])
+ getglobal("VCB_BF_BF_FRAME_BorderSliderText"):SetText(VCB_COMMON_SLIDER_BORDER..": "..VCB_SAVE["BF_BORDER_border"])
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON6"):SetChecked(VCB_SAVE["BF_BORDER_usecustomborder"])
+ getglobal("VCB_BF_BF_FRAME_EDITBOX_BORDER"):SetText(VCB_SAVE["BF_BORDER_customborderpath"])
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON4"):SetChecked(VCB_SAVE["BF_TIMER_border"])
+ getglobal("VCB_BF_BF_FRAME_FontSizeSlider"):SetValue(VCB_SAVE["BF_TIMER_fontsize"])
+ getglobal("VCB_BF_BF_FRAME_FontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["BF_TIMER_fontsize"])
+ getglobal("VCB_BF_BF_FRAME_FontOpacitySlider"):SetValue(VCB_SAVE["BF_TIMER_fontopacity"])
+ getglobal("VCB_BF_BF_FRAME_FontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["BF_TIMER_fontopacity"])
+ getglobal("VCB_BF_BF_FRAME_Color2NormalTexture"):SetVertexColor(VCB_SAVE["BF_TIMER_fontcolor_r"], VCB_SAVE["BF_TIMER_fontcolor_g"], VCB_SAVE["BF_TIMER_fontcolor_b"])
+ getglobal("VCB_BF_BF_FRAME_Color2_SwatchBg").r = VCB_SAVE["BF_TIMER_fontcolor_r"]
+ getglobal("VCB_BF_BF_FRAME_Color2_SwatchBg").g = VCB_SAVE["BF_TIMER_fontcolor_g"]
+ getglobal("VCB_BF_BF_FRAME_Color2_SwatchBg").b = VCB_SAVE["BF_TIMER_fontcolor_b"]
+ elseif frame == "VCB_BF_DBF_FRAME" then
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON1"):SetChecked(VCB_SAVE["DBF_GENERAL_verticalmode"])
+ getglobal("VCB_BF_DBF_FRAME_NumPerRowSlider"):SetValue(VCB_SAVE["DBF_GENERAL_numperrow"])
+ getglobal("VCB_BF_DBF_FRAME_NumPerRowSliderText"):SetText(VCB_COMMON_SLIDER_BUFFS_PER_ROW..": "..VCB_SAVE["DBF_GENERAL_numperrow"])
+ getglobal("VCB_BF_DBF_FRAME_AuraPaddingHSlider"):SetValue(VCB_SAVE["DBF_GENERAL_padding_h"])
+ getglobal("VCB_BF_DBF_FRAME_AuraPaddingHSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_H..": "..VCB_SAVE["DBF_GENERAL_padding_h"])
+ getglobal("VCB_BF_DBF_FRAME_AuraPaddingVSlider"):SetValue(VCB_SAVE["DBF_GENERAL_padding_v"])
+ getglobal("VCB_BF_DBF_FRAME_AuraPaddingVSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_V..": "..VCB_SAVE["DBF_GENERAL_padding_v"])
+ getglobal("VCB_BF_DBF_FRAME_BGOpaSlider"):SetValue(VCB_SAVE["DBF_GENERAL_bgopacity"])
+ getglobal("VCB_BF_DBF_FRAME_BGOpaSliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["DBF_GENERAL_bgopacity"])
+ getglobal("VCB_BF_DBF_FRAME_ScaleSlider"):SetValue(VCB_SAVE["DBF_GENERAL_scale"])
+ getglobal("VCB_BF_DBF_FRAME_ScaleSliderText"):SetText(VCB_COMMON_SLIDER_SCALE..": "..VCB_SAVE["DBF_GENERAL_scale"])
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON2"):SetChecked(VCB_SAVE["DBF_GENERAL_enablebgcolor"])
+ getglobal("VCB_BF_DBF_FRAME_Color1NormalTexture"):SetVertexColor(VCB_SAVE["DBF_GENERAL_bgcolor_r"], VCB_SAVE["DBF_GENERAL_bgcolor_g"], VCB_SAVE["DBF_GENERAL_bgcolor_b"])
+ getglobal("VCB_BF_DBF_FRAME_Color1_SwatchBg").r = VCB_SAVE["DBF_GENERAL_bgcolor_r"]
+ getglobal("VCB_BF_DBF_FRAME_Color1_SwatchBg").g = VCB_SAVE["DBF_GENERAL_bgcolor_g"]
+ getglobal("VCB_BF_DBF_FRAME_Color1_SwatchBg").b = VCB_SAVE["DBF_GENERAL_bgcolor_b"]
+ getglobal("VCB_BF_DBF_FRAME_GFontSlider"):SetValue(VCB_Table_GetKeys(VCB_FONT_ARRAY, VCB_SAVE["DBF_GENERAL_font"]))
+ getglobal("VCB_BF_DBF_FRAME_GFontSliderText"):SetText(VCB_COMMON_SLIDER_FONT..": "..VCB_SAVE["DBF_GENERAL_font"])
+ getglobal("VCB_BF_DBF_FRAME_GFontOpacitySlider"):SetValue(VCB_SAVE["DBF_GENERAL_fontopacity"])
+ getglobal("VCB_BF_DBF_FRAME_GFontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["DBF_GENERAL_fontopacity"])
+ getglobal("VCB_BF_DBF_FRAME_GFontSizeSlider"):SetValue(VCB_SAVE["DBF_GENERAL_fontsize"])
+ getglobal("VCB_BF_DBF_FRAME_GFontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["DBF_GENERAL_fontsize"])
+ getglobal("VCB_BF_DBF_FRAME_GFontOffsetXSlider"):SetValue(VCB_SAVE["DBF_GENERAL_fontoffset_x"])
+ getglobal("VCB_BF_DBF_FRAME_GFontOffsetXSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_X..": "..VCB_SAVE["DBF_GENERAL_fontoffset_x"])
+ getglobal("VCB_BF_DBF_FRAME_GFontOffsetYSlider"):SetValue(VCB_SAVE["DBF_GENERAL_fontoffset_y"])
+ getglobal("VCB_BF_DBF_FRAME_GFontOffsetYSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y..": "..VCB_SAVE["DBF_GENERAL_fontoffset_y"])
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON_FBorder"):SetChecked(VCB_SAVE["DBF_GENERAL_enableborder"])
+ getglobal("VCB_BF_DBF_FRAME_Color_fontcolorNormalTexture"):SetVertexColor(VCB_SAVE["DBF_GENERAL_fontcolor_r"], VCB_SAVE["DBF_GENERAL_fontcolor_g"], VCB_SAVE["DBF_GENERAL_fontcolor_b"])
+ getglobal("VCB_BF_DBF_FRAME_Color_fontcolor_SwatchBg").r = VCB_SAVE["DBF_GENERAL_fontcolor_r"]
+ getglobal("VCB_BF_DBF_FRAME_Color_fontcolor_SwatchBg").g = VCB_SAVE["DBF_GENERAL_fontcolor_g"]
+ getglobal("VCB_BF_DBF_FRAME_Color_fontcolor_SwatchBg").b = VCB_SAVE["DBF_GENERAL_fontcolor_b"]
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON3"):SetChecked(VCB_SAVE["DBF_GENERAL_invert"])
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON_IBO"):SetChecked(VCB_SAVE["DBF_GENERAL_invertorientation"])
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON_CUSTOMFONT"):SetChecked(VCB_SAVE["DBF_GENERAL_usecfont"])
+ getglobal("VCB_BF_DBF_FRAME_EDITBOX_CUSTOMFONT"):SetText(VCB_SAVE["DBF_GENERAL_customfont"])
+ elseif frame == "VCB_BF_DBF_FRAME2" then
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON5"):SetChecked(VCB_SAVE["DBF_BORDER_enableborder"])
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON6"):SetChecked(VCB_SAVE["DBF_BORDER_usecustomborder"])
+ getglobal("VCB_BF_DBF_FRAME_EDITBOX_BORDER"):SetText(VCB_SAVE["DBF_BORDER_customborderpath"])
+ getglobal("VCB_BF_DBF_FRAME_BorderSlider"):SetValue(VCB_SAVE["DBF_BORDER_border"])
+ getglobal("VCB_BF_DBF_FRAME_BorderSliderText"):SetText(VCB_COMMON_SLIDER_BORDER..": "..VCB_SAVE["DBF_BORDER_border"])
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON4"):SetChecked(VCB_SAVE["DBF_TIMER_enableborder"])
+ getglobal("VCB_BF_DBF_FRAME_Color2NormalTexture"):SetVertexColor(VCB_SAVE["DBF_TIMER_fontcolor_r"], VCB_SAVE["DBF_TIMER_fontcolor_g"], VCB_SAVE["DBF_TIMER_fontcolor_b"])
+ getglobal("VCB_BF_DBF_FRAME_Color2_SwatchBg").r = VCB_SAVE["DBF_TIMER_fontcolor_r"]
+ getglobal("VCB_BF_DBF_FRAME_Color2_SwatchBg").g = VCB_SAVE["DBF_TIMER_fontcolor_g"]
+ getglobal("VCB_BF_DBF_FRAME_Color2_SwatchBg").b = VCB_SAVE["DBF_TIMER_fontcolor_b"]
+ getglobal("VCB_BF_DBF_FRAME_FontSizeSlider"):SetValue(VCB_SAVE["DBF_TIMER_fontsize"])
+ getglobal("VCB_BF_DBF_FRAME_FontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["DBF_TIMER_fontsize"])
+ getglobal("VCB_BF_DBF_FRAME_FontOpacitySlider"):SetValue(VCB_SAVE["DBF_TIMER_fontopacity"])
+ getglobal("VCB_BF_DBF_FRAME_FontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["DBF_TIMER_fontopacity"])
+ getglobal("VCB_BF_DBF_FRAME_BorderOpacitySlider"):SetValue(VCB_SAVE["DBF_BORDER_borderopacity"])
+ getglobal("VCB_BF_DBF_FRAME_BorderOpacitySliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["DBF_BORDER_borderopacity"])
+ getglobal("VCB_BF_DBF_FRAME_Color_NONENormalTexture"):SetVertexColor(VCB_SAVE["DBF_BORDER_nonecolor_r"], VCB_SAVE["DBF_BORDER_nonecolor_g"], VCB_SAVE["DBF_BORDER_nonecolor_b"])
+ getglobal("VCB_BF_DBF_FRAME_Color_NONE_SwatchBg").r = VCB_SAVE["DBF_BORDER_nonecolor_r"]
+ getglobal("VCB_BF_DBF_FRAME_Color_NONE_SwatchBg").g = VCB_SAVE["DBF_BORDER_nonecolor_g"]
+ getglobal("VCB_BF_DBF_FRAME_Color_NONE_SwatchBg").b = VCB_SAVE["DBF_BORDER_nonecolor_b"]
+ getglobal("VCB_BF_DBF_FRAME_Color_POISONNormalTexture"):SetVertexColor(VCB_SAVE["DBF_BORDER_poisoncolor_r"], VCB_SAVE["DBF_BORDER_poisoncolor_g"], VCB_SAVE["DBF_BORDER_poisoncolor_b"])
+ getglobal("VCB_BF_DBF_FRAME_Color_POISON_SwatchBg").r = VCB_SAVE["DBF_BORDER_poisoncolor_r"]
+ getglobal("VCB_BF_DBF_FRAME_Color_POISON_SwatchBg").g = VCB_SAVE["DBF_BORDER_poisoncolor_g"]
+ getglobal("VCB_BF_DBF_FRAME_Color_POISON_SwatchBg").b = VCB_SAVE["DBF_BORDER_poisoncolor_b"]
+ getglobal("VCB_BF_DBF_FRAME_Color_MAGICNormalTexture"):SetVertexColor(VCB_SAVE["DBF_BORDER_magiccolor_r"], VCB_SAVE["DBF_BORDER_magiccolor_g"], VCB_SAVE["DBF_BORDER_magiccolor_b"])
+ getglobal("VCB_BF_DBF_FRAME_Color_MAGIC_SwatchBg").r = VCB_SAVE["DBF_BORDER_magiccolor_r"]
+ getglobal("VCB_BF_DBF_FRAME_Color_MAGIC_SwatchBg").g = VCB_SAVE["DBF_BORDER_magiccolor_g"]
+ getglobal("VCB_BF_DBF_FRAME_Color_MAGIC_SwatchBg").b = VCB_SAVE["DBF_BORDER_magiccolor_b"]
+ getglobal("VCB_BF_DBF_FRAME_Color_CURSENormalTexture"):SetVertexColor(VCB_SAVE["DBF_BORDER_cursecolor_r"], VCB_SAVE["DBF_BORDER_cursecolor_g"], VCB_SAVE["DBF_BORDER_cursecolor_b"])
+ getglobal("VCB_BF_DBF_FRAME_Color_CURSE_SwatchBg").r = VCB_SAVE["DBF_BORDER_cursecolor_r"]
+ getglobal("VCB_BF_DBF_FRAME_Color_CURSE_SwatchBg").g = VCB_SAVE["DBF_BORDER_cursecolor_g"]
+ getglobal("VCB_BF_DBF_FRAME_Color_CURSE_SwatchBg").b = VCB_SAVE["DBF_BORDER_cursecolor_b"]
+ getglobal("VCB_BF_DBF_FRAME_Color_DISEASENormalTexture"):SetVertexColor(VCB_SAVE["DBF_BORDER_diseasecolor_r"], VCB_SAVE["DBF_BORDER_diseasecolor_g"], VCB_SAVE["DBF_BORDER_diseasecolor_b"])
+ getglobal("VCB_BF_DBF_FRAME_Color_DISEASE_SwatchBg").r = VCB_SAVE["DBF_BORDER_diseasecolor_r"]
+ getglobal("VCB_BF_DBF_FRAME_Color_DISEASE_SwatchBg").g = VCB_SAVE["DBF_BORDER_diseasecolor_g"]
+ getglobal("VCB_BF_DBF_FRAME_Color_DISEASE_SwatchBg").b = VCB_SAVE["DBF_BORDER_diseasecolor_b"]
+ elseif frame == "VCB_BF_WP_FRAME" then
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON1"):SetChecked(VCB_SAVE["WP_GENERAL_verticalmode"])
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON2"):SetChecked(VCB_SAVE["WP_GENERAL_enablebgcolor"])
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON7"):SetChecked(VCB_SAVE["WP_GENERAL_attach"])
+ getglobal("VCB_BF_WP_FRAME_Color1NormalTexture"):SetVertexColor(VCB_SAVE["WP_GENERAL_bgcolor_r"], VCB_SAVE["WP_GENERAL_bgcolor_g"], VCB_SAVE["WP_GENERAL_bgcolor_b"])
+ getglobal("VCB_BF_WP_FRAME_Color1_SwatchBg").r = VCB_SAVE["WP_GENERAL_bgcolor_r"]
+ getglobal("VCB_BF_WP_FRAME_Color1_SwatchBg").g = VCB_SAVE["WP_GENERAL_bgcolor_g"]
+ getglobal("VCB_BF_WP_FRAME_Color1_SwatchBg").b = VCB_SAVE["WP_GENERAL_bgcolor_b"]
+ getglobal("VCB_BF_WP_FRAME_AuraPaddingHSlider"):SetValue(VCB_SAVE["WP_GENERAL_padding_h"])
+ getglobal("VCB_BF_WP_FRAME_AuraPaddingHSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_H..": "..VCB_SAVE["WP_GENERAL_padding_h"])
+ getglobal("VCB_BF_WP_FRAME_FontSizeSlider"):SetValue(VCB_SAVE["WP_GENERAL_fontsize"])
+ getglobal("VCB_BF_WP_FRAME_FontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["WP_GENERAL_fontsize"])
+ getglobal("VCB_BF_WP_FRAME_BGOpaSlider"):SetValue(VCB_SAVE["WP_GENERAL_bgopacity"])
+ getglobal("VCB_BF_WP_FRAME_BGOpaSliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["WP_GENERAL_bgopacity"])
+ getglobal("VCB_BF_WP_FRAME_ScaleSlider"):SetValue(VCB_SAVE["WP_GENERAL_scale"])
+ getglobal("VCB_BF_WP_FRAME_ScaleSliderText"):SetText(VCB_COMMON_SLIDER_SCALE..": "..VCB_SAVE["WP_GENERAL_scale"])
+ getglobal("VCB_BF_WP_FRAME_FontSlider"):SetValue(VCB_Table_GetKeys(VCB_FONT_ARRAY, VCB_SAVE["WP_GENERAL_font"]))
+ getglobal("VCB_BF_WP_FRAME_FontSliderText"):SetText(VCB_COMMON_SLIDER_FONT..": "..VCB_SAVE["WP_GENERAL_font"])
+ getglobal("VCB_BF_WP_FRAME_FontOpacitySlider"):SetValue(VCB_SAVE["WP_GENERAL_fontopacity"])
+ getglobal("VCB_BF_WP_FRAME_FontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["WP_GENERAL_fontopacity"])
+ getglobal("VCB_BF_WP_FRAME_AuraPaddingVSlider"):SetValue(VCB_SAVE["WP_GENERAL_padding_v"])
+ getglobal("VCB_BF_WP_FRAME_AuraPaddingVSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_V..": "..VCB_SAVE["WP_GENERAL_padding_v"])
+ getglobal("VCB_BF_WP_FRAME_Color5NormalTexture"):SetVertexColor(VCB_SAVE["WP_GENERAL_fontcolor_r"], VCB_SAVE["WP_GENERAL_fontcolor_g"], VCB_SAVE["WP_GENERAL_fontcolor_b"])
+ getglobal("VCB_BF_WP_FRAME_Color5_SwatchBg").r = VCB_SAVE["WP_GENERAL_fontcolor_r"]
+ getglobal("VCB_BF_WP_FRAME_Color5_SwatchBg").g = VCB_SAVE["WP_GENERAL_fontcolor_g"]
+ getglobal("VCB_BF_WP_FRAME_Color5_SwatchBg").b = VCB_SAVE["WP_GENERAL_fontcolor_b"]
+ getglobal("VCB_BF_WP_FRAME_OffsetXSlider"):SetValue(VCB_SAVE["WP_GENERAL_offset_x"])
+ getglobal("VCB_BF_WP_FRAME_OffsetXSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_X..": "..VCB_SAVE["WP_GENERAL_offset_x"])
+ getglobal("VCB_BF_WP_FRAME_OffsetYSlider"):SetValue(VCB_SAVE["WP_GENERAL_offset_y"])
+ getglobal("VCB_BF_WP_FRAME_OffsetYSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y..": "..VCB_SAVE["WP_GENERAL_offset_y"])
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON8"):SetChecked(VCB_SAVE["WP_GENERAL_enableborder"])
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON_CUSTOMFONT"):SetChecked(VCB_SAVE["WP_GENERAL_usecfont"])
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON_INVERTORDER"):SetChecked(VCB_SAVE["WP_GENERAL_invert"])
+ getglobal("VCB_BF_WP_FRAME_EDITBOX_CUSTOMFONT"):SetText(VCB_SAVE["WP_GENERAL_customfont"])
+ elseif frame == "VCB_BF_WP_FRAME2" then
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON5"):SetChecked(VCB_SAVE["WP_BORDER_enableborder"])
+ getglobal("VCB_BF_WP_FRAME_Color4NormalTexture"):SetVertexColor(VCB_SAVE["WP_BORDER_bordercolor_r"], VCB_SAVE["WP_BORDER_bordercolor_g"], VCB_SAVE["WP_BORDER_bordercolor_b"])
+ getglobal("VCB_BF_WP_FRAME_Color4_SwatchBg").r = VCB_SAVE["WP_BORDER_bordercolor_r"]
+ getglobal("VCB_BF_WP_FRAME_Color4_SwatchBg").g = VCB_SAVE["WP_BORDER_bordercolor_g"]
+ getglobal("VCB_BF_WP_FRAME_Color4_SwatchBg").b = VCB_SAVE["WP_BORDER_bordercolor_b"]
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON6"):SetChecked(VCB_SAVE["WP_BORDER_usecustomborder"])
+ getglobal("VCB_BF_WP_FRAME_EDITBOX_BORDER"):SetText(VCB_SAVE["WP_BORDER_customborderpath"])
+ getglobal("VCB_BF_WP_FRAME_BorderSlider"):SetValue(VCB_SAVE["WP_BORDER_border"])
+ getglobal("VCB_BF_WP_FRAME_BorderSliderText"):SetText(VCB_COMMON_SLIDER_BORDER..": "..VCB_SAVE["WP_BORDER_border"])
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON4"):SetChecked(VCB_SAVE["WP_TIMER_enableborder"])
+ getglobal("VCB_BF_WP_FRAME_Color2NormalTexture"):SetVertexColor(VCB_SAVE["WP_TIMER_fontcolor_r"], VCB_SAVE["WP_TIMER_fontcolor_g"], VCB_SAVE["WP_TIMER_fontcolor_b"])
+ getglobal("VCB_BF_WP_FRAME_Color2_SwatchBg").r = VCB_SAVE["WP_TIMER_fontcolor_r"]
+ getglobal("VCB_BF_WP_FRAME_Color2_SwatchBg").g = VCB_SAVE["WP_TIMER_fontcolor_g"]
+ getglobal("VCB_BF_WP_FRAME_Color2_SwatchBg").b = VCB_SAVE["WP_TIMER_fontcolor_b"]
+ getglobal("VCB_BF_WP_FRAME_TIMER_FontSizeSlider"):SetValue(VCB_SAVE["WP_TIMER_fontsize"])
+ getglobal("VCB_BF_WP_FRAME_TIMER_FontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["WP_TIMER_fontsize"])
+ getglobal("VCB_BF_WP_FRAME_TIMER_FontOpacitySlider"):SetValue(VCB_SAVE["WP_TIMER_fontopacity"])
+ getglobal("VCB_BF_WP_FRAME_TIMER_FontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["WP_TIMER_fontopacity"])
+ getglobal("VCB_BF_WP_FRAME_BorderOpacitySlider"):SetValue(VCB_SAVE["WP_BORDER_borderopacity"])
+ getglobal("VCB_BF_WP_FRAME_BorderOpacitySliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["WP_BORDER_borderopacity"])
+ elseif frame == "VCB_BF_MISC_FRAME" then
+ getglobal("VCB_BF_MISC_FRAME_CHECKBUTTON1"):SetChecked(VCB_SAVE["MISC_disable_CF"])
+ getglobal("VCB_BF_MISC_FRAME_CHECKBUTTON2"):SetChecked(VCB_SAVE["MISC_disable_BB"])
+ elseif frame == "VCB_BF_PM_FRAME" then
+ getglobal("VCB_BF_PM_FRAME_LEFT_CURRENT_INBOX_TEXT"):SetText(VCB_CUR_PROFILE)
+ end
+end
+
+function VCB_BF_CHECKBUTTON(obj)
+ if (VCB_SAVE[obj]) then
+ VCB_SAVE[obj] = false
+ else
+ VCB_SAVE[obj] = true
+ end
+end
+
+function VCB_BF_MINIMAP_OnClick(arg1)
+ if arg1 == "LeftButton" then
+ if VCB_BF_ConfigFrame:IsVisible() then
+ VCB_BF_ConfigFrame:Hide()
+ else
+ VCB_BF_ConfigFrame:Show()
+ end
+ else
+ VCB_BF_ToggleLock()
+ end
+end
+
+function VCB_BF_OptionsFrame_SetColor()
+ local r,g,b = ColorPickerFrame:GetColorRGB();
+ local swatch,frame;
+ swatch = getglobal(VCB_BF_COLOR_OBJ:GetName().."NormalTexture"); -- juste le visuel
+ frame = getglobal(VCB_BF_COLOR_OBJ:GetName().."_SwatchBg"); -- enregistre la couleur
+ swatch:SetVertexColor(r,g,b);
+ frame.r = r;
+ frame.g = g;
+ frame.b = b;
+
+ VCB_SAVE[VCB_BF_COLOR_VAR.."color_r"] = r;
+ VCB_SAVE[VCB_BF_COLOR_VAR.."color_g"] = g;
+ VCB_SAVE[VCB_BF_COLOR_VAR.."color_b"] = b;
+
+ if VCB_BF_COLOR_TYPE == "font" then
+ getglobal(VCB_BF_COLOR_TAR):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."fontopacity"]);
+ elseif VCB_BF_COLOR_TYPE=="bg" then
+ getglobal(VCB_BF_COLOR_TAR):SetBackdropColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opacity"])
+ elseif VCB_BF_COLOR_TYPE=="border" then
+ getglobal(VCB_BF_COLOR_TAR):SetBackdropBorderColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opacity"])
+ elseif VCB_BF_COLOR_TYPE=="buffsborder" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="buffsbg" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if VCB_SAVE[VCB_BF_COLOR_TAR] and getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Icon"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="buffsfont" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="BFbg" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if VCB_SAVE[VCB_BF_COLOR_TAR] and getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Icon"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="BFborder" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME and VCB_SAVE[VCB_BF_COLOR_TAR] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="BFfont" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="DebuffBG" then
+ for i=0,15 do
+ if VCB_SAVE[VCB_BF_COLOR_TAR] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Icon"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="DebuffFont" then
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ elseif VCB_BF_COLOR_TYPE=="DebuffGFont" then
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ elseif VCB_BF_COLOR_TYPE=="BuffGFont" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="CFGFont" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="WeaponBG" then
+ for i=0,1 do
+ if VCB_SAVE[VCB_BF_COLOR_TAR] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Icon"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="WPFont" then
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ elseif VCB_BF_COLOR_TYPE=="WPBorder" then
+ for i=0,1 do
+ if VCB_SAVE[VCB_BF_COLOR_TAR] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="WPTimer" then
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ elseif VCB_BF_COLOR_TYPE=="DebuffBorderColor" then
+ for i=0,15 do
+ if VCB_SAVE[VCB_BF_COLOR_TAR] then
+ if i < 3 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_nonecolor_r"],VCB_SAVE["DBF_BORDER_nonecolor_g"],VCB_SAVE["DBF_BORDER_nonecolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ elseif i >= 3 and i < 6 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_poisoncolor_r"],VCB_SAVE["DBF_BORDER_poisoncolor_g"],VCB_SAVE["DBF_BORDER_poisoncolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ elseif i >= 6 and i < 9 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_magiccolor_r"],VCB_SAVE["DBF_BORDER_magiccolor_g"],VCB_SAVE["DBF_BORDER_magiccolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ elseif i >= 9 and i < 12 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_cursecolor_r"],VCB_SAVE["DBF_BORDER_cursecolor_g"],VCB_SAVE["DBF_BORDER_cursecolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_diseasecolor_r"],VCB_SAVE["DBF_BORDER_diseasecolor_g"],VCB_SAVE["DBF_BORDER_diseasecolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_OptionsFrame_CancelColor()
+ local r = ColorPickerFrame.previousValues.r;
+ local g = ColorPickerFrame.previousValues.g;
+ local b = ColorPickerFrame.previousValues.b;
+ local swatch,frame;
+ swatch = getglobal(VCB_BF_COLOR_OBJ:GetName().."NormalTexture"); -- juste le visuel
+ frame = getglobal(VCB_BF_COLOR_OBJ:GetName().."_SwatchBg"); -- enregistre la couleur
+ swatch:SetVertexColor(r,g,b);
+ frame.r = r;
+ frame.g = g;
+ frame.b = b;
+
+ if VCB_BF_COLOR_TYPE == "font" then
+ getglobal(VCB_BF_COLOR_TAR):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."fontopacity"]);
+ elseif VCB_BF_COLOR_TYPE=="bg" then
+ getglobal(VCB_BF_COLOR_TAR):SetBackdropColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opacity"])
+ elseif VCB_BF_COLOR_TYPE=="border" then
+ getglobal(VCB_BF_COLOR_TAR):SetBackdropBorderColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opacity"])
+ elseif VCB_BF_COLOR_TYPE=="buffsborder" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="buffsbg" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if VCB_SAVE[VCB_BF_COLOR_TAR] and getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Icon"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="buffsfont" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="BFbg" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if VCB_SAVE[VCB_BF_COLOR_TAR] and getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Icon"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="BFborder" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME and VCB_SAVE[VCB_BF_COLOR_TAR] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="BFfont" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="DebuffBG" then
+ for i=0,15 do
+ if VCB_SAVE[VCB_BF_COLOR_TAR] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Icon"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="DebuffFont" then
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ elseif VCB_BF_COLOR_TYPE=="DebuffGFont" then
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ elseif VCB_BF_COLOR_TYPE=="BuffGFont" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="CFGFont" then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="WeaponBG" then
+ for i=0,1 do
+ if VCB_SAVE[VCB_BF_COLOR_TAR] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Icon"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="WPFont" then
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ elseif VCB_BF_COLOR_TYPE=="WPBorder" then
+ for i=0,1 do
+ if VCB_SAVE[VCB_BF_COLOR_TAR] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetVertexColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ end
+ elseif VCB_BF_COLOR_TYPE=="WPTimer" then
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetTextColor(r,g,b,VCB_SAVE[VCB_BF_COLOR_VAR.."opactiy"])
+ end
+ elseif VCB_BF_COLOR_TYPE=="DebuffBorderColor" then
+ for i=0,15 do
+ if VCB_SAVE[VCB_BF_COLOR_TAR] then
+ if i < 3 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_nonecolor_r"],VCB_SAVE["DBF_BORDER_nonecolor_g"],VCB_SAVE["DBF_BORDER_nonecolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ elseif i >= 3 and i < 6 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_poisoncolor_r"],VCB_SAVE["DBF_BORDER_poisoncolor_g"],VCB_SAVE["DBF_BORDER_poisoncolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ elseif i >= 6 and i < 9 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_magiccolor_r"],VCB_SAVE["DBF_BORDER_magiccolor_g"],VCB_SAVE["DBF_BORDER_magiccolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ elseif i >= 9 and i < 12 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_cursecolor_r"],VCB_SAVE["DBF_BORDER_cursecolor_g"],VCB_SAVE["DBF_BORDER_cursecolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_diseasecolor_r"],VCB_SAVE["DBF_BORDER_diseasecolor_g"],VCB_SAVE["DBF_BORDER_diseasecolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_OpenColorPicker(obj, var, tar, type)
+ VCB_BF_COLOR_OBJ = obj
+ VCB_BF_COLOR_VAR = var
+ VCB_BF_COLOR_TAR = tar
+ VCB_BF_COLOR_TYPE = type
+
+ CloseMenus();
+
+ button = getglobal(obj:GetName().."_SwatchBg");
+
+ ColorPickerFrame.func = VCB_BF_OptionsFrame_SetColor -- button.swatchFunc;
+ ColorPickerFrame:SetColorRGB(button.r, button.g, button.b);
+ ColorPickerFrame.previousValues = {r = button.r, g = button.g, b = button.b, opacity = button.opacity};
+ ColorPickerFrame.cancelFunc = VCB_BF_OptionsFrame_CancelColor
+
+ ColorPickerFrame:SetPoint("TOPLEFT", obj, "TOPRIGHT", 0, 0)
+
+ ColorPickerFrame:SetFrameStrata("TOOLTIP")
+
+ ColorPickerFrame:Show();
+end
+
+---------------------------------------START CONSOLIDATED BUFFS FRAME-----------------------------------------------------------------------------------------------------------------
+
+function VCB_BF_CONSOLIDATED_FRAME_RIGHT_SCROLLFRAME_Update()
+ local line -- 1 through 5 of our window to scroll
+ local lineplusoffset -- an index into our data calculated from the scroll offset
+ local FRAME = getglobal("VCB_BF_CONSOLIDATED_FRAME_RIGHT_SCROLLFRAME")
+ FauxScrollFrame_Update(FRAME,VCB_tablelength(Consolidated_Buffs),10,40)
+ for line=1,10 do
+ lineplusoffset = line + FauxScrollFrame_GetOffset(FRAME)
+ if Consolidated_Buffs[lineplusoffset] ~= nil then
+ getglobal("VCB_CONSOLIDATED_BUFFS_ENTRY_TEXT"..line):SetText(lineplusoffset..". "..Consolidated_Buffs[lineplusoffset])
+ getglobal("VCB_CONSOLIDATED_BUFFS_ENTRY"..line).buff = Consolidated_Buffs[lineplusoffset]
+ getglobal("VCB_CONSOLIDATED_BUFFS_ENTRY"..line):Show()
+ else
+ getglobal("VCB_CONSOLIDATED_BUFFS_ENTRY"..line):Hide()
+ end
+ end
+end
+
+function VCB_CONSOLIDATED_SCROLLFRAME_ENTRY(button)
+ getglobal("VCB_BF_CONSOLIDATED_FRAME_LEFT_DELETE_INBOX_TEXT"):SetText(button.buff)
+end
+
+function VCB_CONSOLIDATED_BUFFS_DELETE()
+ VCB_BF_ConsolidatedRemove(getglobal("VCB_BF_CONSOLIDATED_FRAME_LEFT_DELETE_INBOX_TEXT"):GetText())
+ VCB_BF_CONSOLIDATED_FRAME_RIGHT_SCROLLFRAME_Update()
+end
+
+function VCB_CONSOLIDATED_BUFFS_ADD()
+ VCB_BF_ConsolidatedAdd(getglobal("VCB_BF_CONSOLIDATED_FRAME_EditBox"):GetText())
+ VCB_BF_CONSOLIDATED_FRAME_RIGHT_SCROLLFRAME_Update()
+end
+
+function VCB_CONSOLIDATED_BUFFS_REMOVE_ALL()
+ VCB_BF_RemoveAllFromConsolidate()
+ VCB_BF_CONSOLIDATED_FRAME_RIGHT_SCROLLFRAME_Update()
+end
+
+---------------------------------------END CONSOLIDATED BUFFS FRAME-----------------------------------------------------------------------------------------------------------------
+
+---------------------------------------START BANNED BUFFS FRAME-----------------------------------------------------------------------------------------------------------------
+function VCB_BF_BANNED_FRAME_RIGHT_SCROLLFRAME_Update()
+ local line -- 1 through 5 of our window to scroll
+ local lineplusoffset -- an index into our data calculated from the scroll offset
+ local FRAME = getglobal("VCB_BF_BANNED_FRAME_RIGHT_SCROLLFRAME")
+ FauxScrollFrame_Update(FRAME,VCB_tablelength(Banned_Buffs),10,40)
+ for line=1,10 do
+ lineplusoffset = line + FauxScrollFrame_GetOffset(FRAME)
+ if Banned_Buffs[lineplusoffset] ~= nil then
+ getglobal("VCB_BANNED_BUFFS_ENTRY_TEXT"..line):SetText(lineplusoffset..". "..Banned_Buffs[lineplusoffset])
+ getglobal("VCB_BANNED_BUFFS_ENTRY"..line).buff = Banned_Buffs[lineplusoffset]
+ getglobal("VCB_BANNED_BUFFS_ENTRY"..line):Show()
+ else
+ getglobal("VCB_BANNED_BUFFS_ENTRY"..line):Hide()
+ end
+ end
+end
+
+function VCB_BANNED_SCROLLFRAME_ENTRY(button)
+ getglobal("VCB_BF_BANNED_FRAME_LEFT_DELETE_INBOX_TEXT"):SetText(button.buff)
+end
+
+function VCB_BANNED_BUFFS_DELETE()
+ VCB_BF_RemoveFromBanned(getglobal("VCB_BF_BANNED_FRAME_LEFT_DELETE_INBOX_TEXT"):GetText())
+ VCB_BF_BANNED_FRAME_RIGHT_SCROLLFRAME_Update()
+end
+
+function VCB_BANNED_BUFFS_ADD()
+ VCB_BF_AddToBanned(getglobal("VCB_BF_BANNED_FRAME_EditBox"):GetText())
+ VCB_BF_BANNED_FRAME_RIGHT_SCROLLFRAME_Update()
+end
+
+function VCB_BANNED_BUFFS_REMOVE_ALL()
+ VCB_BF_RemoveAllFromBanned()
+ VCB_BF_BANNED_FRAME_RIGHT_SCROLLFRAME_Update()
+end
+
+---------------------------------------END BANNED BUFFS FRAME-----------------------------------------------------------------------------------------------------------------
+---------------------------------------START TIMER FRAME-----------------------------------------------------------------------------------------------------------------
+function VCB_BF_CHECKBUTTON_TIMER_HOURS()
+ if not VCB_SAVE["Timer_hours"] then
+ VCB_SAVE["Timer_hours"] = true
+ VCB_BF_TIMER_FRAME_CHECKBUTTON3:SetChecked(true)
+ VCB_SAVE["Timer_minutes"] = true
+ else
+ VCB_SAVE["Timer_hours"] = false
+ VCB_BF_TIMER_FRAME_CHECKBUTTON2:SetChecked(false)
+ VCB_SAVE["Timer_hours_convert"] = false
+ end
+end
+
+function VCB_BF_CHECKBUTTON_TIMER_DISABLEUNIT()
+ if not VCB_SAVE["Timer_disableUnit"] then
+ VCB_SAVE["Timer_disableUnit"] = true
+ VCB_BF_TIMER_FRAME_CHECKBUTTON_DISABLE:SetChecked(true)
+ else
+ VCB_SAVE["Timer_disableUnit"] = false
+ VCB_BF_TIMER_FRAME_CHECKBUTTON_DISABLE:SetChecked(false)
+ end
+end
+
+function VCB_BF_CHECKBUTTON_TIMER_HOURS_CONVERT()
+ if not VCB_SAVE["Timer_hours_convert"] then
+ VCB_SAVE["Timer_hours_convert"] = true
+ VCB_BF_TIMER_FRAME_CHECKBUTTON1:SetChecked(true)
+ VCB_SAVE["Timer_hours"] = true
+ VCB_BF_TIMER_FRAME_CHECKBUTTON3:SetChecked(true)
+ VCB_SAVE["Timer_minutes"] = true
+ else
+ VCB_SAVE["Timer_hours_convert"] = false
+ end
+end
+
+function VCB_BF_CHECKBUTTON_TIMER_MINUTES()
+ if not VCB_SAVE["Timer_minutes"] then
+ VCB_SAVE["Timer_minutes"] = true
+ else
+ VCB_SAVE["Timer_minutes"] = false
+ VCB_BF_TIMER_FRAME_CHECKBUTTON1:SetChecked(false)
+ VCB_SAVE["Timer_hours"] = false
+ VCB_BF_TIMER_FRAME_CHECKBUTTON2:SetChecked(false)
+ VCB_SAVE["Timer_hours_convert"] = false
+ VCB_BF_TIMER_FRAME_CHECKBUTTON4:SetChecked(false)
+ VCB_SAVE["Timer_minutes_convert"] = false
+ end
+end
+
+function VCB_BF_CHECKBUTTON_TIMER_MINUTES_CONVERT()
+ if not VCB_SAVE["Timer_minutes_convert"] then
+ VCB_SAVE["Timer_minutes_convert"] = true
+ VCB_BF_TIMER_FRAME_CHECKBUTTON3:SetChecked(true)
+ VCB_SAVE["Timer_minutes"] = true
+ else
+ VCB_SAVE["Timer_minutes_convert"] = false
+ VCB_BF_TIMER_FRAME_CHECKBUTTON1:SetChecked(false)
+ VCB_SAVE["Timer_hours"] = false
+ VCB_BF_TIMER_FRAME_CHECKBUTTON2:SetChecked(false)
+ VCB_SAVE["Timer_hours_convert"] = false
+ end
+end
+
+function VCB_BF_CHECKBUTTON_ROUND()
+ if VCB_SAVE["Timer_round"] then
+ VCB_SAVE["Timer_round"] = false
+ VCB_BF_TIMER_FRAME_CHECKBUTTON7:SetChecked(false)
+ else
+ VCB_SAVE["Timer_round"] = true
+ VCB_BF_TIMER_FRAME_CHECKBUTTON6:SetChecked(false)
+ end
+end
+
+function VCB_BF_CHECKBUTTON_TIMER_BORDER()
+ if VCB_SAVE["Timer_border"] then
+ VCB_SAVE["Timer_border"] = false
+ else
+ VCB_SAVE["Timer_border"] = true
+ end
+ for cat, tname in pairs(VCB_BUTTONNAME) do
+ for i=VCB_MININDEX[cat], VCB_MAXINDEX[cat] do
+ if VCB_SAVE["Timer_border"] then
+ getglobal(tname..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["Timer_fontsize"], "OUTLINE")
+ else
+ getglobal(tname..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["Timer_fontsize"])
+ end
+ end
+ end
+end
+
+function VCB_BF_TIMER_FRAME_FontSliderChange(obj)
+ VCB_SAVE["Timer_font"] = VCB_FONT_ARRAY[obj:GetValue()]
+ getglobal("VCB_BF_TIMER_FRAME_FontSliderText"):SetText(VCB_COMMON_SLIDER_FONT..": "..VCB_SAVE["Timer_font"])
+ for cat, tname in pairs(VCB_BUTTONNAME) do
+ for i=VCB_MININDEX[cat], VCB_MAXINDEX[cat] do
+ if getglobal(tname..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal(tname..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["CF_TIMER_fontsize"])
+ else
+ getglobal(tname..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["CF_TIMER_fontsize"])
+ end
+ end
+ end
+end
+
+function VCB_BF_TIMER_FRAME_CHECKBUTTON_CUSTOMFONT_CLICK()
+ if VCB_SAVE["Timer_usecfont"] then
+ VCB_SAVE["Timer_usecfont"] = false
+ for cat, template in pairs(VCB_BUTTONNAME) do
+ for i=VCB_MININDEX[cat], VCB_MAXINDEX[cat] do
+ local button = getglobal(template..i.."Duration")
+ if cat == "buff" then
+ if VCB_SAVE["BF_TIMER_enableborder"] then
+ button:SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["BF_TIMER_fontsize"], "OUTLINE")
+ else
+ button:SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["BF_TIMER_fontsize"])
+ end
+ elseif cat == "debuff" then
+ if VCB_SAVE["DBF_TIMER_enableborder"] then
+ button:SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["DBF_TIMER_fontsize"], "OUTLINE")
+ else
+ button:SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["DBF_TIMER_fontsize"])
+ end
+ else
+ if VCB_SAVE["WP_TIMER_enableborder"] then
+ button:SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["WP_TIMER_fontsize"], "OUTLINE")
+ else
+ button:SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["WP_TIMER_fontsize"])
+ end
+ end
+ end
+ end
+ else
+ VCB_SAVE["Timer_usecfont"] = true
+ for cat, template in pairs(VCB_BUTTONNAME) do
+ for i=VCB_MININDEX[cat], VCB_MAXINDEX[cat] do
+ local button = getglobal(template..i.."Duration")
+ if cat == "buff" then
+ if VCB_SAVE["BF_TIMER_enableborder"] then
+ button:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["BF_TIMER_fontsize"], "OUTLINE")
+ else
+ button:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["BF_TIMER_fontsize"])
+ end
+ elseif cat == "debuff" then
+ if VCB_SAVE["DBF_TIMER_enableborder"] then
+ button:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["DBF_TIMER_fontsize"], "OUTLINE")
+ else
+ button:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["DBF_TIMER_fontsize"])
+ end
+ else
+ if VCB_SAVE["WP_TIMER_enableborder"] then
+ button:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["WP_TIMER_fontsize"], "OUTLINE")
+ else
+ button:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["WP_TIMER_fontsize"])
+ end
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_TIMER_FRAME_EDITBOX_CUSTOMFONT_CHANGE(obj)
+ VCB_SAVE["Timer_customfont"] = obj:GetText()
+ if VCB_SAVE["Timer_usecfont"] then
+ for cat, template in pairs(VCB_BUTTONNAME) do
+ for i=VCB_MININDEX[cat], VCB_MAXINDEX[cat] do
+ local button = getglobal(template..i.."Duration")
+ if cat == "buff" then
+ if VCB_SAVE["BF_TIMER_enableborder"] then
+ button:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["BF_TIMER_fontsize"], "OUTLINE")
+ else
+ button:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["BF_TIMER_fontsize"])
+ end
+ elseif cat == "debuff" then
+ if VCB_SAVE["DBF_TIMER_enableborder"] then
+ button:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["DBF_TIMER_fontsize"], "OUTLINE")
+ else
+ button:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["DBF_TIMER_fontsize"])
+ end
+ else
+ if VCB_SAVE["WP_TIMER_enableborder"] then
+ button:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["WP_TIMER_fontsize"], "OUTLINE")
+ else
+ button:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["WP_TIMER_fontsize"])
+ end
+ end
+ end
+ end
+ end
+end
+
+---------------------------------------END TIMER FRAME-----------------------------------------------------------------------------------------------------------------
+---------------------------------------START CONSOLIDATED FRAME-----------------------------------------------------------------------------------------------------------------
+
+function VCB_BF_CF_FRAME_AnchorSliderChange(obj)
+ VCB_SAVE["CF_BF_anchor"] = obj:GetValue()
+ getglobal("VCB_BF_CF_FRAME_AnchorSliderText"):SetText(VCB_CF_FRAME_BF_ANCHOR..": "..VCB_ANCHOR_ARRAY[VCB_SAVE["CF_BF_anchor"]])
+ VCB_BF_CONSOLIDATED_BUFFFRAME:ClearAllPoints()
+ if VCB_SAVE["CF_BF_anchor"] == 1 then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetPoint("TOP", VCB_BF_CONSOLIDATED_ICON, "BOTTOM", 0, 0)
+ elseif VCB_SAVE["CF_BF_anchor"] == 2 then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetPoint("LEFT", VCB_BF_CONSOLIDATED_ICON, "RIGHT", 0, 0)
+ elseif VCB_SAVE["CF_BF_anchor"] == 3 then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetPoint("BOTTOM", VCB_BF_CONSOLIDATED_ICON, "TOP", 0, 0)
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetPoint("RIGHT", VCB_BF_CONSOLIDATED_ICON, "LEFT", 0, 0)
+ end
+end
+
+function VCB_BF_CF_FRAME_ScaleSliderChange(obj)
+ VCB_SAVE["CF_BF_scale"] = string.format("%.1f", obj:GetValue())
+ getglobal("VCB_BF_CF_FRAME_ScaleSliderText"):SetText(VCB_COMMON_SLIDER_SCALE..": "..VCB_SAVE["CF_BF_scale"])
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_CF_FRAME_INVERTBUTTON()
+ if VCB_SAVE["CF_BF_invert"] then
+ VCB_SAVE["CF_BF_invert"] = false
+ else
+ VCB_SAVE["CF_BF_invert"] = true
+ end
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_CF_FRAME_NumPerRowSliderChange(obj)
+ VCB_SAVE["CF_BF_numperrow"] = obj:GetValue()
+ getglobal("VCB_BF_CF_FRAME_NumPerRowSliderText"):SetText(VCB_COMMON_SLIDER_BUFFS_PER_ROW..": "..VCB_SAVE["CF_BF_numperrow"])
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_CF_FRAME_CHANGE_PAGE()
+ if VCB_BF_CF_FRAME:IsVisible() then
+ VCB_OPTIONS_HIDE_ALL()
+ VCB_OPTIONS_SHOW("VCB_BF_CF_FRAME2", VCB_MENU_BUTTON4_LINK2)
+ else
+ VCB_OPTIONS_HIDE_ALL()
+ VCB_OPTIONS_SHOW("VCB_BF_CF_FRAME", VCB_MENU_BUTTON4_LINK)
+ end
+end
+
+function VCB_BF_CF_FRAME_SizeSliderChange(obj)
+ VCB_SAVE["CF_icon_fontsize"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["CF_icon_fontsize"])
+ if VCB_SAVE["CF_icon_usecfont"] then
+ if VCB_SAVE["CF_icon_border"] then
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_customfont"], VCB_SAVE["CF_icon_fontsize"], "OUTLINE")
+ else
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_customfont"], VCB_SAVE["CF_icon_fontsize"])
+ end
+ else
+ if VCB_SAVE["CF_icon_border"] then
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_font"], VCB_SAVE["CF_icon_fontsize"], "OUTLINE")
+ else
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_font"], VCB_SAVE["CF_icon_fontsize"])
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME_FontSliderChange(obj)
+ VCB_SAVE["CF_icon_font"] = VCB_FONT_ARRAY[obj:GetValue()]
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT..": "..VCB_FONT_ARRAY[obj:GetValue()])
+ if (not VCB_SAVE["CF_icon_usecfont"]) then
+ if VCB_SAVE["CF_icon_border"] then
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_font"], VCB_SAVE["CF_icon_fontsize"], "OUTLINE")
+ else
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_font"], VCB_SAVE["CF_icon_fontsize"])
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME_CHECKBUTTON_BORDER_CLICK()
+ if VCB_SAVE["CF_icon_border"] then
+ VCB_SAVE["CF_icon_border"] = false
+ if VCB_SAVE["CF_icon_usecfont"] then
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_customfont"], VCB_SAVE["CF_icon_fontsize"])
+ else
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_font"], VCB_SAVE["CF_icon_fontsize"])
+ end
+ else
+ VCB_SAVE["CF_icon_border"] = true
+ if VCB_SAVE["CF_icon_usecfont"] then
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_customfont"], VCB_SAVE["CF_icon_fontsize"], "OUTLINE")
+ else
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_font"], VCB_SAVE["CF_icon_fontsize"], "OUTLINE")
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME_AlphaSliderChange(obj)
+ VCB_SAVE["CF_icon_opacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText("Icon opacity: "..VCB_SAVE["CF_icon_opacity"])
+ VCB_BF_CONSOLIDATED_ICON:SetAlpha(VCB_SAVE["CF_icon_opacity"])
+end
+
+function VCB_BF_CF_FRAME_FontAlphaSliderChange(obj)
+ VCB_SAVE["CF_icon_fontopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["CF_icon_fontopacity"])
+ VCB_BF_CONSOLIDATED_ICONCount:SetAlpha(VCB_SAVE["CF_icon_fontopacity"])
+end
+
+function VCB_BF_CF_FRAME_TextureSliderChange(obj)
+ VCB_SAVE["CF_icon_texture"] = VCB_ICON_ARRAY[obj:GetValue()]
+ getglobal(obj:GetName().."Text"):SetText("Texture: "..VCB_SAVE["CF_icon_texture"])
+ VCB_BF_CONSOLIDATED_ICONIcon:SetTexture(nil)
+ VCB_BF_CONSOLIDATED_ICONIcon:SetTexture("Interface\\AddOns\\VCB\\images\\"..VCB_SAVE["CF_icon_texture"]..".tga")
+end
+
+function VCB_BF_CF_FRAME_BGOpaSliderChange(obj)
+ VCB_SAVE["CF_BF_bgopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["CF_BF_bgopacity"])
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropColor(VCB_SAVE["CF_BF_bgcolor_r"],VCB_SAVE["CF_BF_bgcolor_g"],VCB_SAVE["CF_BF_bgcolor_b"],VCB_SAVE["CF_BF_bgopacity"])
+end
+
+function VCB_BF_CF_FRAME_BFBorderSliderChange(obj)
+ VCB_SAVE["CF_BF_border"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BORDER..": "..VCB_SAVE["CF_BF_border"])
+ if VCB_SAVE["CF_BF_customborder"] == false then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop(nil)
+ if VCB_SAVE["CF_BF_custombackground"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_SAVE["CF_BF_custombackgroundpath"], edgeFile=VCB_BORDER_ARRAY[VCB_SAVE["CF_BF_border"]], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_BACKGROUND_ARRAY[VCB_SAVE["CF_BF_background"]], edgeFile=VCB_BORDER_ARRAY[VCB_SAVE["CF_BF_border"]], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ end
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropColor(VCB_SAVE["CF_BF_bgcolor_r"],VCB_SAVE["CF_BF_bgcolor_g"],VCB_SAVE["CF_BF_bgcolor_b"],VCB_SAVE["CF_BF_bgopacity"])
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropBorderColor(VCB_SAVE["CF_BF_bordercolor_r"],VCB_SAVE["CF_BF_bordercolor_g"],VCB_SAVE["CF_BF_bordercolor_b"],VCB_SAVE["CF_BF_borderopacity"])
+ end
+end
+
+function VCB_BF_CF_FRAME_USE_CUSTOM_BORDER()
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop(nil)
+ if VCB_SAVE["CF_BF_customborder"] then
+ VCB_SAVE["CF_BF_customborder"] = false
+ if VCB_SAVE["CF_BF_custombackground"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_SAVE["CF_BF_custombackgroundpath"], edgeFile=VCB_BORDER_ARRAY[VCB_SAVE["CF_BF_border"]], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_BACKGROUND_ARRAY[VCB_SAVE["CF_BF_background"]], edgeFile=VCB_BORDER_ARRAY[VCB_SAVE["CF_BF_border"]], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ end
+ else
+ VCB_SAVE["CF_BF_customborder"] = true
+ if VCB_SAVE["CF_BF_custombackground"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_SAVE["CF_BF_custombackgroundpath"], edgeFile=VCB_SAVE["CF_BF_customborderpath"], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_BACKGROUND_ARRAY[VCB_SAVE["CF_BF_background"]], edgeFile=VCB_SAVE["CF_BF_customborderpath"], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ end
+ end
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropColor(VCB_SAVE["CF_BF_bgcolor_r"],VCB_SAVE["CF_BF_bgcolor_g"],VCB_SAVE["CF_BF_bgcolor_b"],VCB_SAVE["CF_BF_bgopacity"])
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropBorderColor(VCB_SAVE["CF_BF_bordercolor_r"],VCB_SAVE["CF_BF_bordercolor_g"],VCB_SAVE["CF_BF_bordercolor_b"],VCB_SAVE["CF_BF_borderopacity"])
+end
+
+function VCB_BF_CF_FRAME_USE_CUSTOM_BACKGROUND()
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop(nil)
+ if VCB_SAVE["CF_BF_custombackground"] then
+ VCB_SAVE["CF_BF_custombackground"] = false
+ if VCB_SAVE["CF_BF_customborder"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_BACKGROUND_ARRAY[VCB_SAVE["CF_BF_background"]], edgeFile=VCB_SAVE["CF_BF_customborderpath"], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_BACKGROUND_ARRAY[VCB_SAVE["CF_BF_background"]], edgeFile=VCB_BORDER_ARRAY[VCB_SAVE["CF_BF_border"]], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ end
+ else
+ VCB_SAVE["CF_BF_custombackground"] = true
+ if VCB_SAVE["CF_BF_customborder"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_SAVE["CF_BF_custombackgroundpath"], edgeFile=VCB_SAVE["CF_BF_customborderpath"], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_SAVE["CF_BF_custombackgroundpath"], edgeFile=VCB_BORDER_ARRAY[VCB_SAVE["CF_BF_border"]], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ end
+ end
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropColor(VCB_SAVE["CF_BF_bgcolor_r"],VCB_SAVE["CF_BF_bgcolor_g"],VCB_SAVE["CF_BF_bgcolor_b"],VCB_SAVE["CF_BF_bgopacity"])
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropBorderColor(VCB_SAVE["CF_BF_bordercolor_r"],VCB_SAVE["CF_BF_bordercolor_g"],VCB_SAVE["CF_BF_bordercolor_b"],VCB_SAVE["CF_BF_borderopacity"])
+end
+
+function VCB_BF_CF_FRAME_EDITBOX_BORDER_CHANGE(obj)
+ VCB_SAVE["CF_BF_customborderpath"] = obj:GetText()
+ if VCB_SAVE["CF_BF_customborder"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop(nil)
+ if VCB_SAVE["CF_BF_custombackground"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_SAVE["CF_BF_custombackgroundpath"], edgeFile=VCB_SAVE["CF_BF_customborderpath"], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_BACKGROUND_ARRAY[VCB_SAVE["CF_BF_background"]], edgeFile=VCB_SAVE["CF_BF_customborderpath"], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ end
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropColor(VCB_SAVE["CF_BF_bgcolor_r"],VCB_SAVE["CF_BF_bgcolor_g"],VCB_SAVE["CF_BF_bgcolor_b"],VCB_SAVE["CF_BF_bgopacity"])
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropBorderColor(VCB_SAVE["CF_BF_bordercolor_r"],VCB_SAVE["CF_BF_bordercolor_g"],VCB_SAVE["CF_BF_bordercolor_b"],VCB_SAVE["CF_BF_borderopacity"])
+ end
+end
+
+function VCB_BF_CF_FRAME_EDITBOX_BACKGROUND_CHANGE(obj)
+ VCB_SAVE["CF_BF_customborderpath"] = obj:GetText()
+ if VCB_SAVE["CF_BF_custombackground"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop(nil)
+ if VCB_SAVE["CF_BF_customborder"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_SAVE["CF_BF_custombackgroundpath"], edgeFile=VCB_SAVE["CF_BF_customborderpath"], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_SAVE["CF_BF_custombackgroundpath"], edgeFile=VCB_BORDER_ARRAY[VCB_SAVE["CF_BF_border"]], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ end
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropColor(VCB_SAVE["CF_BF_bgcolor_r"],VCB_SAVE["CF_BF_bgcolor_g"],VCB_SAVE["CF_BF_bgcolor_b"],VCB_SAVE["CF_BF_bgopacity"])
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropBorderColor(VCB_SAVE["CF_BF_bordercolor_r"],VCB_SAVE["CF_BF_bordercolor_g"],VCB_SAVE["CF_BF_bordercolor_b"],VCB_SAVE["CF_BF_borderopacity"])
+ end
+end
+
+function VCB_BF_CF_FRAME_BackdropSliderChange(obj)
+ VCB_SAVE["CF_BF_background"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_CF_FRAME_BF_BACKGROUND..": "..VCB_SAVE["CF_BF_background"])
+ if VCB_SAVE["CF_BF_custombackground"] == false then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop(nil)
+ if VCB_SAVE["CF_BF_customborder"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_BACKGROUND_ARRAY[VCB_SAVE["CF_BF_background"]], edgeFile=VCB_SAVE["CF_BF_customborderpath"], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_BACKGROUND_ARRAY[VCB_SAVE["CF_BF_background"]], edgeFile=VCB_BORDER_ARRAY[VCB_SAVE["CF_BF_border"]], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ end
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropColor(VCB_SAVE["CF_BF_bgcolor_r"],VCB_SAVE["CF_BF_bgcolor_g"],VCB_SAVE["CF_BF_bgcolor_b"],VCB_SAVE["CF_BF_bgopacity"])
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropBorderColor(VCB_SAVE["CF_BF_bordercolor_r"],VCB_SAVE["CF_BF_bordercolor_g"],VCB_SAVE["CF_BF_bordercolor_b"],VCB_SAVE["CF_BF_borderopacity"])
+ end
+end
+
+function VCB_BF_CF_FRAME_BorderOpaSliderChange(obj)
+ VCB_SAVE["CF_BF_borderopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BORDER_OPACITY..": "..VCB_SAVE["CF_BF_borderopacity"])
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropBorderColor(VCB_SAVE["CF_BF_bordercolor_r"],VCB_SAVE["CF_BF_bordercolor_g"],VCB_SAVE["CF_BF_bordercolor_b"],VCB_SAVE["CF_BF_borderopacity"])
+end
+
+function VCB_BF_CF_FRAME_EDITBOX_BACKGROUND_CHANGE(obj)
+ VCB_SAVE["CF_BF_custombackgroundpath"] = obj:GetText()
+ if VCB_SAVE["CF_BF_custombackground"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop(nil)
+ if VCB_SAVE["CF_BF_customborder"] then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_SAVE["CF_BF_custombackgroundpath"], edgeFile=VCB_SAVE["CF_BF_customborderpath"], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ else
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdrop({bgFile=VCB_SAVE["CF_BF_custombackgroundpath"], edgeFile=VCB_BORDER_ARRAY[VCB_SAVE["CF_BF_border"]], tile=true, tileSize=16, edgeSize=16, insets={left=4,right=4,top=4,bottom=4}})
+ end
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropColor(VCB_SAVE["CF_BF_bgcolor_r"],VCB_SAVE["CF_BF_bgcolor_g"],VCB_SAVE["CF_BF_bgcolor_b"],VCB_SAVE["CF_BF_bgopacity"])
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetBackdropBorderColor(VCB_SAVE["CF_BF_bordercolor_r"],VCB_SAVE["CF_BF_bordercolor_g"],VCB_SAVE["CF_BF_bordercolor_b"],VCB_SAVE["CF_BF_borderopacity"])
+ end
+end
+
+function VCB_BF_CF_FRAME2_ENABLEBORDER()
+ if VCB_SAVE["CF_AURA_enableborder"] then
+ VCB_SAVE["CF_AURA_enableborder"] = false
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["CF_AURA_bordercolor_r"],VCB_SAVE["CF_AURA_bordercolor_g"],VCB_SAVE["CF_AURA_bordercolor_b"],VCB_SAVE["CF_AURA_borderopactiy"])
+ end
+ end
+ else
+ VCB_SAVE["CF_AURA_enableborder"] = true
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ if VCB_SAVE["CF_AURA_customborder"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["CF_AURA_customborderpath"])
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(VCB_AURABORDER_ARRAY[VCB_SAVE["CF_AURA_border"]])
+ end
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["CF_AURA_bordercolor_r"],VCB_SAVE["CF_AURA_bordercolor_g"],VCB_SAVE["CF_AURA_bordercolor_b"],VCB_SAVE["CF_AURA_borderopactiy"])
+ end
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_AuraPaddingHSliderChange(obj)
+ VCB_SAVE["CF_AURA_padding_h"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_PADDING_H..": "..VCB_SAVE["CF_AURA_padding_h"])
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_CF_FRAME2_AuraPaddingVSliderChange(obj)
+ VCB_SAVE["CF_AURA_padding_v"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_PADDING_V..": "..VCB_SAVE["CF_AURA_padding_v"])
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_CF_FRAME_AuraBorderSliderChange(obj)
+ VCB_SAVE["CF_AURA_border"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BORDER..": "..VCB_SAVE["CF_AURA_border"])
+ if VCB_SAVE["CF_AURA_customborder"] == false and VCB_SAVE["CF_AURA_enableborder"] then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(VCB_AURABORDER_ARRAY[VCB_SAVE["CF_AURA_border"]])
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["CF_AURA_bordercolor_r"],VCB_SAVE["CF_AURA_bordercolor_g"],VCB_SAVE["CF_AURA_bordercolor_b"],VCB_SAVE["CF_AURA_borderopactiy"])
+ end
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_USE_CUSTOMBORDER()
+ if VCB_SAVE["CF_AURA_enableborder"] then
+ if VCB_SAVE["CF_AURA_customborder"] then
+ VCB_SAVE["CF_AURA_customborder"] = false
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(VCB_AURABORDER_ARRAY[VCB_SAVE["CF_AURA_border"]])
+ end
+ end
+ else
+ VCB_SAVE["CF_AURA_customborder"] = true
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["CF_AURA_customborderpath"])
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_EDITBOX_BORDER_CHANGE(obj)
+ VCB_SAVE["CF_AURA_customborderpath"] = obj:GetText()
+ if VCB_SAVE["CF_AURA_enableborder"] and VCB_SAVE["CF_AURA_customborder"] then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["CF_AURA_customborderpath"])
+ end
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_ENABLEBGCOLOR()
+ if VCB_SAVE["CF_AURA_enablebgcolor"] then
+ VCB_SAVE["CF_AURA_enablebgcolor"] = false
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Icon"):SetVertexColor(1,1,1)
+ end
+ end
+ else
+ VCB_SAVE["CF_AURA_enablebgcolor"] = true
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Icon"):SetVertexColor(VCB_SAVE["CF_AURA_bgcolor_r"],VCB_SAVE["CF_AURA_bgcolor_g"],VCB_SAVE["CF_AURA_bgcolor_b"])
+ end
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_TIMER_ENABLEBORDER()
+ if VCB_SAVE["CF_TIMER_border"] then
+ VCB_SAVE["CF_TIMER_border"] = false
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["CF_TIMER_fontsize"])
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["CF_TIMER_fontsize"])
+ end
+ end
+ end
+ else
+ VCB_SAVE["CF_TIMER_border"] = true
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["CF_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["CF_TIMER_fontsize"], "OUTLINE")
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME_AuraTimerFontSizeSliderChange(obj)
+ VCB_SAVE["CF_TIMER_fontsize"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["CF_TIMER_fontsize"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ if VCB_SAVE["Timer_usecfont"] then
+ if VCB_SAVE["CF_TIMER_border"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["CF_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["CF_TIMER_fontsize"])
+ end
+ else
+ if VCB_SAVE["CF_TIMER_border"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["CF_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["CF_TIMER_fontsize"])
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME_AuraTimerOpacitySliderChange(obj)
+ VCB_SAVE["CF_TIMER_fontopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["CF_TIMER_fontopacity"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetAlpha(VCB_SAVE["CF_TIMER_fontopacity"])
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_G_ENABLE_BORDER()
+ if VCB_SAVE["CF_AURA_enablefontborder"] then
+ VCB_SAVE["CF_AURA_enablefontborder"] = false
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ if VCB_SAVE["CF_AURA_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_customfont"], VCB_SAVE["CF_AURA_fontsize"])
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_font"], VCB_SAVE["CF_AURA_fontsize"])
+ end
+ end
+ end
+ else
+ VCB_SAVE["CF_AURA_enablefontborder"] = true
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ if VCB_SAVE["CF_AURA_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_customfont"], VCB_SAVE["CF_AURA_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_font"], VCB_SAVE["CF_AURA_fontsize"], "OUTLINE")
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_GFontSizeSliderChange(obj)
+ VCB_SAVE["CF_AURA_fontsize"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["CF_AURA_fontsize"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ if VCB_SAVE["CF_AURA_enablefontborder"] then
+ if VCB_SAVE["CF_AURA_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_customfont"], VCB_SAVE["CF_AURA_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_font"], VCB_SAVE["CF_AURA_fontsize"], "OUTLINE")
+ end
+ else
+ if VCB_SAVE["CF_AURA_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_font"], VCB_SAVE["CF_AURA_fontsize"])
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_font"], VCB_SAVE["CF_AURA_fontsize"])
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_GFontOffsetXSliderChange(obj)
+ VCB_SAVE["CF_AURA_fontoffset_x"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_X..": "..VCB_SAVE["CF_AURA_fontoffset_x"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):ClearAllPoints()
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetPoint("BOTTOMRIGHT", VCB_SAVE["CF_AURA_fontoffset_x"],VCB_SAVE["CF_AURA_fontoffset_y"])
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_GFontOffsetYSliderChange(obj)
+ VCB_SAVE["CF_AURA_fontoffset_y"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y..": "..VCB_SAVE["CF_AURA_fontoffset_y"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):ClearAllPoints()
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetPoint("BOTTOMRIGHT", VCB_SAVE["CF_AURA_fontoffset_x"],VCB_SAVE["CF_AURA_fontoffset_y"])
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_GFontSliderChange(obj)
+ VCB_SAVE["CF_AURA_font"] = VCB_FONT_ARRAY[obj:GetValue()]
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT..": "..VCB_SAVE["CF_AURA_font"])
+ if (not VCB_SAVE["CF_AURA_usecfont"]) then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ if VCB_SAVE["CF_AURA_enablefontborder"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_font"], VCB_SAVE["CF_AURA_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_font"], VCB_SAVE["CF_AURA_fontsize"])
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_GFontOpacitySliderChange(obj)
+ VCB_SAVE["CF_AURA_fontopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["CF_AURA_fontopacity"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetAlpha(VCB_SAVE["CF_AURA_fontopacity"])
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME_SHOW_POSSIBLE_BUFFS()
+ if VCB_SAVE["CF_icon_possiblebuffs"] then
+ VCB_SAVE["CF_icon_possiblebuffs"] = false
+ else
+ VCB_SAVE["CF_icon_possiblebuffs"] = true
+ end
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_CF_FRAME_SHOW_BUFFS_GRAYED_OUT()
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ VCB_SAVE["CF_icon_showpbgrayedout"] = false
+ else
+ VCB_SAVE["CF_icon_showpbgrayedout"] = true
+ end
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_CF_FRAME2_GBGOpacitySliderChange(obj)
+ VCB_SAVE["CF_AURA_bgopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["CF_AURA_bgopacity"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Icon"):SetAlpha(VCB_SAVE["CF_AURA_bgopacity"])
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME_INVERT_BUFF_ORIENTATION()
+ if VCB_SAVE["CF_BF_invertorientation"] then
+ VCB_SAVE["CF_BF_invertorientation"] = false
+ else
+ VCB_SAVE["CF_BF_invertorientation"] = true
+ end
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_CF_FRAME_CHECKBUTTON_ATTACH_CLICK()
+ if VCB_SAVE["CF_icon_attach"] then
+ VCB_SAVE["CF_icon_attach"] = false
+ VCB_BF_CONSOLIDATED_ICON:ClearAllPoints()
+ VCB_BF_CONSOLIDATED_ICON:SetParent(UIParent)
+ VCB_BF_CONSOLIDATED_ICON:SetPoint(VCB_ICON_POINT, UIParent, VCB_ICON_POINT, VCB_ICON_POSX, VCB_ICON_POSY)
+ VCB_BF_CONSOLIDATED_ICON:SetScale(1)
+ else
+ VCB_SAVE["CF_icon_attach"] = true
+ VCB_BF_CONSOLIDATED_ICON:ClearAllPoints()
+ VCB_BF_CONSOLIDATED_ICON:SetParent(VCB_BF_BUFF_FRAME)
+ VCB_BF_CONSOLIDATED_ICON:SetPoint("TOPRIGHT", VCB_BF_BUFF_FRAME, "TOPRIGHT", 0, 0)
+ VCB_BF_WEAPON_FRAME:SetScale(1)
+ end
+ VCB_BF_WEAPON_BUTTON_OnEvent(false)
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_CF_FRAME_CHECKBUTTON_CUSTOMFONT_CLICK()
+ if VCB_SAVE["CF_icon_usecfont"] then
+ VCB_SAVE["CF_icon_usecfont"] = false
+ if VCB_SAVE["CF_icon_border"] then
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_font"], VCB_SAVE["CF_icon_fontsize"], "OUTLINE")
+ else
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_font"], VCB_SAVE["CF_icon_fontsize"])
+ end
+ else
+ VCB_SAVE["CF_icon_usecfont"] = true
+ if VCB_SAVE["CF_icon_border"] then
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_customfont"], VCB_SAVE["CF_icon_fontsize"], "OUTLINE")
+ else
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_customfont"], VCB_SAVE["CF_icon_fontsize"])
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME_EDITBOX_CUSTOMFONT_CHANGE(obj)
+ VCB_SAVE["CF_icon_customfont"] = obj:GetText()
+ if VCB_SAVE["CF_icon_usecfont"] then
+ if VCB_SAVE["CF_icon_border"] then
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_customfont"], VCB_SAVE["CF_icon_fontsize"], "OUTLINE")
+ else
+ VCB_BF_CONSOLIDATED_ICONCount:SetFont(VCB_SAVE["CF_icon_customfont"], VCB_SAVE["CF_icon_fontsize"])
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_CHECKBUTTON_CUSTOMFONT_CLICK()
+ if VCB_SAVE["CF_AURA_usecfont"] then
+ VCB_SAVE["CF_AURA_usecfont"] = false
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ if VCB_SAVE["CF_AURA_enableborder"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_font"], VCB_SAVE["CF_AURA_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_font"], VCB_SAVE["CF_AURA_fontsize"])
+ end
+ end
+ end
+ else
+ VCB_SAVE["CF_AURA_usecfont"] = true
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ if VCB_SAVE["CF_AURA_enableborder"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_customfont"], VCB_SAVE["CF_AURA_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_customfont"], VCB_SAVE["CF_AURA_fontsize"])
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_CF_FRAME2_EDITBOX_CUSTOMFONT_CHANGE(obj)
+ VCB_SAVE["CF_AURA_customfont"] = obj:GetText()
+ if VCB_SAVE["CF_AURA_usecfont"] then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ if VCB_SAVE["CF_AURA_enableborder"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_customfont"], VCB_SAVE["CF_AURA_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["CF_AURA_customfont"], VCB_SAVE["CF_AURA_fontsize"])
+ end
+ end
+ end
+ end
+end
+
+---------------------------------------END CONSOLIDATED FRAME-----------------------------------------------------------------------------------------------------------------
+---------------------------------------START BUFF FRAME-----------------------------------------------------------------------------------------------------------------
+
+function VCB_BF_BF_FRAME_VERTICAL_MODE()
+ if VCB_SAVE["BF_GENERAL_verticalmode"] then
+ VCB_SAVE["BF_GENERAL_verticalmode"] = false
+ if VCB_SAVE["WP_GENERAL_attach"] and VCB_SAVE["WP_GENERAL_verticalmode"] then
+ VCB_BF_WP_FRAME_VERTICAL_MODE()
+ end
+ else
+ VCB_SAVE["BF_GENERAL_verticalmode"] = true
+ if VCB_SAVE["WP_GENERAL_attach"] and (not VCB_SAVE["WP_GENERAL_verticalmode"]) then
+ VCB_BF_WP_FRAME_VERTICAL_MODE()
+ end
+ end
+ VCB_BF_WEAPON_BUTTON_OnEvent(false)
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_BF_FRAME_NumPerRowSlider_CHANGE(obj)
+ VCB_SAVE["BF_GENERAL_numperrow"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BUFFS_PER_ROW..": "..VCB_SAVE["BF_GENERAL_numperrow"])
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_BF_FRAME_AuraPaddingHChange(obj)
+ VCB_SAVE["BF_GENERAL_padding_h"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_PADDING_H..": "..VCB_SAVE["BF_GENERAL_padding_h"])
+ if VCB_SAVE["WP_GENERAL_attach"] and (not VCB_SAVE["WP_GENERAL_verticalmode"]) then
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):ClearAllPoints()
+ if VCB_SAVE["BF_GENERAL_invertorientation"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["BF_GENERAL_padding_h"])*i, 0)
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["BF_GENERAL_padding_h"])*i, 0)
+ end
+ end
+ end
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_BF_FRAME_AuraPaddingVChange(obj)
+ VCB_SAVE["BF_GENERAL_padding_v"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_PADDING_V..": "..VCB_SAVE["BF_GENERAL_padding_v"])
+ if VCB_SAVE["WP_GENERAL_attach"] and VCB_SAVE["WP_GENERAL_verticalmode"] then
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):ClearAllPoints()
+ if VCB_SAVE["BF_GENERAL_invertorientation"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):SetPoint("TOPLEFT", 0, -(44+VCB_SAVE["BF_GENERAL_padding_v"])*i)
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):SetPoint("TOPRIGHT", 0, -(44+VCB_SAVE["BF_GENERAL_padding_v"])*i)
+ end
+ end
+ end
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_BF_FRAME_ScaleSliderChange(obj)
+ VCB_SAVE["BF_GENERAL_scale"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_SCALE..": "..VCB_SAVE["BF_GENERAL_scale"])
+ VCB_BF_BUFF_FRAME:SetScale(VCB_SAVE["BF_GENERAL_scale"])
+end
+
+function VCB_BF_BF_FRAME_BGOpaSliderChange(obj)
+ VCB_SAVE["BF_GENERAL_bgopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["BF_GENERAL_bgopacity"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i):SetAlpha(VCB_SAVE["BF_GENERAL_bgopacity"])
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_ENABLE_BGCOLOR()
+ if VCB_SAVE["BF_GENERAL_enablebgcolor"] then
+ VCB_SAVE["BF_GENERAL_enablebgcolor"] = false
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Icon"):SetVertexColor(1,1,1,VCB_SAVE["BF_GENERAL_bgopacity"])
+ end
+ end
+ else
+ VCB_SAVE["BF_GENERAL_enablebgcolor"] = true
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Icon"):SetVertexColor(VCB_SAVE["BF_GENERAL_bgcolor_r"],VCB_SAVE["BF_GENERAL_bgcolor_g"],VCB_SAVE["BF_GENERAL_bgcolor_b"],VCB_SAVE["BF_GENERAL_bgopacity"])
+ end
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_ENABLE_BORDER()
+ if VCB_SAVE["BF_BORDER_enableborder"] then
+ VCB_SAVE["BF_BORDER_enableborder"] = false
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ end
+ end
+ else
+ VCB_SAVE["BF_BORDER_enableborder"] = true
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(VCB_AURABORDER_ARRAY[VCB_SAVE["BF_BORDER_border"]])
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["BF_BORDER_bordercolor_r"],VCB_SAVE["BF_BORDER_bordercolor_g"],VCB_SAVE["BF_BORDER_bordercolor_b"],VCB_SAVE["BF_BORDER_borderopacity"])
+ end
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_BorderOpacityChange(obj)
+ VCB_SAVE["BF_BORDER_borderopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["BF_BORDER_borderopacity"])
+ if VCB_SAVE["BF_BORDER_enableborder"] then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetAlpha(VCB_SAVE["BF_BORDER_borderopacity"])
+ end
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_BorderChange(obj)
+ VCB_SAVE["BF_BORDER_border"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BORDER..": "..VCB_SAVE["BF_BORDER_border"])
+ if VCB_SAVE["BF_BORDER_enableborder"] then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(VCB_AURABORDER_ARRAY[VCB_SAVE["BF_BORDER_border"]])
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["BF_BORDER_bordercolor_r"],VCB_SAVE["BF_BORDER_bordercolor_g"],VCB_SAVE["BF_BORDER_bordercolor_b"],VCB_SAVE["BF_BORDER_borderopacity"])
+ end
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_USE_CUSTOM_BORDER()
+ if VCB_SAVE["BF_BORDER_usecustomborder"] then
+ VCB_SAVE["BF_BORDER_usecustomborder"] = false
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ if VCB_SAVE["BF_BORDER_enableborder"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(VCB_AURABORDER_ARRAY[VCB_SAVE["BF_BORDER_border"]])
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["BF_BORDER_bordercolor_r"],VCB_SAVE["BF_BORDER_bordercolor_g"],VCB_SAVE["BF_BORDER_bordercolor_b"],VCB_SAVE["BF_BORDER_borderopacity"])
+ end
+ end
+ end
+ else
+ VCB_SAVE["BF_BORDER_usecustomborder"] = true
+ if VCB_SAVE["BF_BORDER_enableborder"] then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["BF_BORDER_customborderpath"])
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["BF_BORDER_bordercolor_r"],VCB_SAVE["BF_BORDER_bordercolor_g"],VCB_SAVE["BF_BORDER_bordercolor_b"],VCB_SAVE["BF_BORDER_borderopacity"])
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_EDITBOX_BORDERCHANGE(obj)
+ VCB_SAVE["BF_BORDER_customborderpath"] = obj:GetText()
+ if VCB_SAVE["BF_BORDER_enableborder"] then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["BF_BORDER_customborderpath"])
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["BF_BORDER_bordercolor_r"],VCB_SAVE["BF_BORDER_bordercolor_g"],VCB_SAVE["BF_BORDER_bordercolor_b"],VCB_SAVE["BF_BORDER_borderopacity"])
+ end
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_TIMER_ENABLE_BORDER()
+ if VCB_SAVE["BF_TIMER_border"] then
+ VCB_SAVE["BF_TIMER_border"] = false
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["BF_TIMER_fontsize"])
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["BF_TIMER_fontsize"])
+ end
+ end
+ end
+ else
+ VCB_SAVE["BF_TIMER_border"] = true
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["BF_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["BF_TIMER_fontsize"], "OUTLINE")
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_FontSizeChange(obj)
+ VCB_SAVE["BF_TIMER_fontsize"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["BF_TIMER_fontsize"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ if VCB_SAVE["BF_TIMER_border"] then
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["BF_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["BF_TIMER_fontsize"], "OUTLINE")
+ end
+ else
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["BF_TIMER_fontsize"])
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["BF_TIMER_fontsize"])
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_FontOpacityChange(obj)
+ VCB_SAVE["BF_TIMER_fontopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["BF_TIMER_fontopacity"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetAlpha(VCB_SAVE["BF_TIMER_fontopacity"])
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_CHANGE_PAGE()
+ if VCB_BF_BF_FRAME:IsVisible() then
+ VCB_OPTIONS_HIDE_ALL()
+ VCB_OPTIONS_SHOW("VCB_BF_BF_FRAME2", VCB_MENU_BUTTON5_LINK2)
+ else
+ VCB_OPTIONS_HIDE_ALL()
+ VCB_OPTIONS_SHOW("VCB_BF_BF_FRAME", VCB_MENU_BUTTON5_LINK)
+ end
+end
+
+function VCB_BF_BF_FRAME_G_ENABLE_BORDER()
+ if VCB_SAVE["BF_GENERAL_enableborder"] then
+ VCB_SAVE["BF_GENERAL_enableborder"] = false
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ if VCB_SAVE["BF_GENERAL_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_customfont"], VCB_SAVE["BF_GENERAL_fontsize"])
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_font"], VCB_SAVE["BF_GENERAL_fontsize"])
+ end
+ end
+ end
+ else
+ VCB_SAVE["BF_GENERAL_enableborder"] = true
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ if VCB_SAVE["BF_GENERAL_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_customfont"], VCB_SAVE["BF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_font"], VCB_SAVE["BF_GENERAL_fontsize"], "OUTLINE")
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_GFontSizeSliderChange(obj)
+ VCB_SAVE["BF_GENERAL_fontsize"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["BF_GENERAL_fontsize"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ if VCB_SAVE["BF_GENERAL_enableborder"] then
+ if VCB_SAVE["BF_GENERAL_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_customfont"], VCB_SAVE["BF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_font"], VCB_SAVE["BF_GENERAL_fontsize"], "OUTLINE")
+ end
+ else
+ if VCB_SAVE["BF_GENERAL_usecfont"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_customfont"], VCB_SAVE["BF_GENERAL_fontsize"])
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_font"], VCB_SAVE["BF_GENERAL_fontsize"])
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_GFontOffsetXSliderChange(obj)
+ VCB_SAVE["BF_GENERAL_fontoffset_x"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_X..": "..VCB_SAVE["BF_GENERAL_fontoffset_x"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):ClearAllPoints()
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetPoint("BOTTOMRIGHT", VCB_SAVE["BF_GENERAL_fontoffset_x"],VCB_SAVE["BF_GENERAL_fontoffset_y"])
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_GFontOffsetYSliderChange(obj)
+ VCB_SAVE["BF_GENERAL_fontoffset_y"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y..": "..VCB_SAVE["BF_GENERAL_fontoffset_y"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):ClearAllPoints()
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetPoint("BOTTOMRIGHT", VCB_SAVE["BF_GENERAL_fontoffset_x"],VCB_SAVE["BF_GENERAL_fontoffset_y"])
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_GFontSliderChange(obj)
+ VCB_SAVE["BF_GENERAL_font"] = VCB_FONT_ARRAY[obj:GetValue()]
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT..": "..VCB_SAVE["BF_GENERAL_font"])
+ if (not VCB_SAVE["BF_GENERAL_usecfont"]) then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ if VCB_SAVE["BF_GENERAL_enableborder"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_font"], VCB_SAVE["BF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_font"], VCB_SAVE["BF_GENERAL_fontsize"])
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_GFontOpacitySliderChange(obj)
+ VCB_SAVE["BF_GENERAL_fontopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["BF_GENERAL_fontopacity"])
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetAlpha(VCB_SAVE["BF_GENERAL_fontopacity"])
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_INVERTBUFFMODE()
+ if VCB_SAVE["BF_GENERAL_invert"] then
+ VCB_SAVE["BF_GENERAL_invert"] = false
+ else
+ VCB_SAVE["BF_GENERAL_invert"] = true
+ end
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_BF_FRAME_INVERT_AURA_ORIENTATION()
+ if VCB_SAVE["BF_GENERAL_invertorientation"] then
+ VCB_SAVE["BF_GENERAL_invertorientation"] = false
+ else
+ VCB_SAVE["BF_GENERAL_invertorientation"] = true
+ end
+ VCB_BF_WEAPON_BUTTON_OnEvent(false)
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_BF_FRAME_CHECKBUTTON_CUSTOMFONT_CLICK()
+ if VCB_SAVE["BF_GENERAL_usecfont"] then
+ VCB_SAVE["BF_GENERAL_usecfont"] = false
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ if VCB_SAVE["BF_GENERAL_enableborder"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_font"], VCB_SAVE["BF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_font"], VCB_SAVE["BF_GENERAL_fontsize"])
+ end
+ end
+ end
+ else
+ VCB_SAVE["BF_GENERAL_usecfont"] = true
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ if VCB_SAVE["BF_GENERAL_enableborder"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_customfont"], VCB_SAVE["BF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_customfont"], VCB_SAVE["BF_GENERAL_fontsize"])
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_BF_FRAME_EDITBOX_CUSTOMFONT_CHANGE(obj)
+ VCB_SAVE["BF_GENERAL_customfont"] = obj:GetText()
+ if VCB_SAVE["BF_GENERAL_usecfont"] then
+ for i=0, VCB_MAXINDEX["buff"] do
+ if getglobal("VCB_BF_BUFF_BUTTON"..i):GetParent() == VCB_BF_BUFF_FRAME then
+ if VCB_SAVE["BF_GENERAL_enableborder"] then
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_customfont"], VCB_SAVE["BF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["BF_GENERAL_customfont"], VCB_SAVE["BF_GENERAL_fontsize"])
+ end
+ end
+ end
+ end
+end
+
+---------------------------------------END BUFF FRAME-----------------------------------------------------------------------------------------------------------------
+---------------------------------------START DEBUFF FRAME-----------------------------------------------------------------------------------------------------------------
+
+function VCB_BF_DBF_FRAME_VERTICAL_MODE()
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ VCB_SAVE["DBF_GENERAL_verticalmode"] = false
+ for i=0,15 do
+ if VCB_SAVE["DBF_GENERAL_invertorientation"] then
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ end
+ else
+ VCB_SAVE["DBF_GENERAL_verticalmode"] = true
+ for i=0,15 do
+ if VCB_SAVE["DBF_GENERAL_invertorientation"] then
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_NumPerRowSliderChange(obj)
+ VCB_SAVE["DBF_GENERAL_numperrow"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BUFFS_PER_ROW..": "..VCB_SAVE["DBF_GENERAL_numperrow"])
+ for i=0,15 do
+ if VCB_SAVE["DBF_GENERAL_invertorientation"] then
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_AuraPaddingHSliderChange(obj)
+ VCB_SAVE["DBF_GENERAL_padding_h"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_PADDING_H..": "..VCB_SAVE["DBF_GENERAL_padding_h"])
+ for i=0,15 do
+ if VCB_SAVE["DBF_GENERAL_invertorientation"] then
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_AuraPaddingVSliderChange(obj)
+ VCB_SAVE["DBF_GENERAL_padding_v"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_PADDING_V..": "..VCB_SAVE["DBF_GENERAL_padding_v"])
+ for i=0,15 do
+ if VCB_SAVE["DBF_GENERAL_invertorientation"] then
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_BGOpaSliderChange(obj)
+ VCB_SAVE["DBF_GENERAL_bgopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["DBF_GENERAL_bgopacity"])
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetAlpha(VCB_SAVE["DBF_GENERAL_bgopacity"])
+ end
+end
+
+function VCB_BF_DBF_FRAME_ScaleSliderChange(obj)
+ VCB_SAVE["DBF_GENERAL_scale"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_SCALE..": "..VCB_SAVE["DBF_GENERAL_scale"])
+ VCB_BF_DEBUFF_FRAME:SetScale(VCB_SAVE["DBF_GENERAL_scale"])
+end
+
+function VCB_BF_DBF_FRAME_ENABLE_BGCOLOR()
+ if VCB_SAVE["DBF_GENERAL_enablebgcolor"] then
+ VCB_SAVE["DBF_GENERAL_enablebgcolor"] = false
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Icon"):SetVertexColor(1,1,1,VCB_SAVE["DBF_GENERAL_bgopacity"])
+ end
+ else
+ VCB_SAVE["DBF_GENERAL_enablebgcolor"] = true
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Icon"):SetVertexColor(VCB_SAVE["DBF_GENERAL_bgcolor_r"],VCB_SAVE["DBF_GENERAL_bgcolor_g"],VCB_SAVE["DBF_GENERAL_bgcolor_b"],VCB_SAVE["DBF_GENERAL_bgopacity"])
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_ENABLE_BORDER()
+ if VCB_SAVE["DBF_BORDER_enableborder"] then
+ VCB_SAVE["DBF_BORDER_enableborder"] = false
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ end
+ else
+ VCB_SAVE["DBF_BORDER_enableborder"] = true
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ if VCB_SAVE["DBF_BORDER_usecustomborder"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["DBF_BORDER_customborderpath"])
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(VCB_AURABORDER_ARRAY[VCB_SAVE["DBF_BORDER_border"]])
+ end
+ if i < 3 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_nonecolor_r"],VCB_SAVE["DBF_BORDER_nonecolor_g"],VCB_SAVE["DBF_BORDER_nonecolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ elseif i >= 3 and i < 6 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_poisoncolor_r"],VCB_SAVE["DBF_BORDER_poisoncolor_g"],VCB_SAVE["DBF_BORDER_poisoncolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ elseif i >= 6 and i < 9 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_magiccolor_r"],VCB_SAVE["DBF_BORDER_magiccolor_g"],VCB_SAVE["DBF_BORDER_magiccolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ elseif i >= 9 and i < 12 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_cursecolor_r"],VCB_SAVE["DBF_BORDER_cursecolor_g"],VCB_SAVE["DBF_BORDER_cursecolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["DBF_BORDER_diseasecolor_r"],VCB_SAVE["DBF_BORDER_diseasecolor_g"],VCB_SAVE["DBF_BORDER_diseasecolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_USE_CUSTOM_BORDER()
+ if VCB_SAVE["DBF_BORDER_usecustomborder"] then
+ VCB_SAVE["DBF_BORDER_usecustomborder"] = false
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ if VCB_SAVE["DBF_BORDER_enableborder"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(VCB_AURABORDER_ARRAY[VCB_SAVE["DBF_BORDER_border"]])
+ end
+ end
+ else
+ VCB_SAVE["DBF_BORDER_usecustomborder"] = true
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ if VCB_SAVE["DBF_BORDER_enableborder"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["DBF_BORDER_customborderpath"])
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_EDITBOX_BORDER_CHANGE(obj)
+ VCB_SAVE["DBF_BORDER_customborderpath"] = obj:GetText()
+ if VCB_SAVE["DBF_BORDER_enableborder"] and VCB_SAVE["DBF_BORDER_usecustomborder"] then
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["DBF_BORDER_customborderpath"])
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_BorderSliderChange(obj)
+ VCB_SAVE["DBF_BORDER_border"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BORDER..": "..VCB_SAVE["DBF_BORDER_border"])
+ if VCB_SAVE["DBF_BORDER_enableborder"] and (not VCB_SAVE["DBF_BORDER_usecustomborder"]) then
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetTexture(VCB_AURABORDER_ARRAY[VCB_SAVE["DBF_BORDER_border"]])
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_ENABLE_FONTBORDER()
+ if VCB_SAVE["DBF_TIMER_enableborder"] then
+ VCB_SAVE["DBF_TIMER_enableborder"] = false
+ for i=0,15 do
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["DBF_TIMER_fontsize"])
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["DBF_TIMER_fontsize"])
+ end
+ end
+ else
+ VCB_SAVE["DBF_TIMER_enableborder"] = true
+ for i=0,15 do
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["DBF_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["DBF_TIMER_fontsize"], "OUTLINE")
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_FontSizeSliderChange(obj)
+ VCB_SAVE["DBF_TIMER_fontsize"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["DBF_TIMER_fontsize"])
+ for i=0,15 do
+ if VCB_SAVE["DBF_TIMER_enableborder"] then
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["DBF_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["DBF_TIMER_fontsize"], "OUTLINE")
+ end
+ else
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["DBF_TIMER_fontsize"])
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["DBF_TIMER_fontsize"])
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_FontOpacitySliderChange(obj)
+ VCB_SAVE["DBF_TIMER_fontopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["DBF_TIMER_fontopacity"])
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetAlpha(VCB_SAVE["DBF_TIMER_fontopacity"])
+ end
+end
+
+function VCB_BF_DBF_FRAME_BorderOpacitySliderChange(obj)
+ VCB_SAVE["DBF_BORDER_borderopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["DBF_BORDER_borderopacity"])
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Border"):SetAlpha(VCB_SAVE["DBF_BORDER_borderopacity"])
+ end
+end
+
+function VCB_BF_DBF_FRAME_CHANGE_PAGE()
+ if VCB_BF_DBF_FRAME:IsVisible() then
+ VCB_OPTIONS_HIDE_ALL()
+ VCB_OPTIONS_SHOW("VCB_BF_DBF_FRAME2", VCB_MENU_BUTTON6_LINK2)
+ else
+ VCB_OPTIONS_HIDE_ALL()
+ VCB_OPTIONS_SHOW("VCB_BF_DBF_FRAME", VCB_MENU_BUTTON6_LINK)
+ end
+end
+
+function VCB_BF_DBF_FRAME_G_ENABLE_BORDER()
+ if VCB_SAVE["DBF_GENERAL_enableborder"] then
+ VCB_SAVE["DBF_GENERAL_enableborder"] = false
+ for i=0, 15 do
+ if VCB_SAVE["DBF_GENERAL_usecfont"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_customfont"], VCB_SAVE["DBF_GENERAL_fontsize"])
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_font"], VCB_SAVE["DBF_GENERAL_fontsize"])
+ end
+ end
+ else
+ VCB_SAVE["DBF_GENERAL_enableborder"] = true
+ for i=0, 15 do
+ if VCB_SAVE["DBF_GENERAL_usecfont"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_customfont"], VCB_SAVE["DBF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_font"], VCB_SAVE["DBF_GENERAL_fontsize"], "OUTLINE")
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_GFontSizeSliderChange(obj)
+ VCB_SAVE["DBF_GENERAL_fontsize"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["DBF_GENERAL_fontsize"])
+ for i=0, 15 do
+ if VCB_SAVE["DBF_GENERAL_enableborder"] then
+ if VCB_SAVE["DBF_GENERAL_usecfont"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_customfont"], VCB_SAVE["DBF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_font"], VCB_SAVE["DBF_GENERAL_fontsize"], "OUTLINE")
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_usecfont"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_customfont"], VCB_SAVE["DBF_GENERAL_fontsize"])
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_font"], VCB_SAVE["DBF_GENERAL_fontsize"])
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_GFontOffsetXSliderChange(obj)
+ VCB_SAVE["DBF_GENERAL_fontoffset_x"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_X..": "..VCB_SAVE["DBF_GENERAL_fontoffset_x"])
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetPoint("BOTTOMRIGHT", VCB_SAVE["DBF_GENERAL_fontoffset_x"],VCB_SAVE["DBF_GENERAL_fontoffset_y"])
+ end
+end
+
+function VCB_BF_DBF_FRAME_GFontOffsetYSliderChange(obj)
+ VCB_SAVE["DBF_GENERAL_fontoffset_y"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y..": "..VCB_SAVE["DBF_GENERAL_fontoffset_y"])
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetPoint("BOTTOMRIGHT", VCB_SAVE["DBF_GENERAL_fontoffset_x"],VCB_SAVE["DBF_GENERAL_fontoffset_y"])
+ end
+end
+
+function VCB_BF_DBF_FRAME_GFontSliderChange(obj)
+ VCB_SAVE["DBF_GENERAL_font"] = VCB_FONT_ARRAY[obj:GetValue()]
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT..": "..VCB_SAVE["DBF_GENERAL_font"])
+ if (not VCB_SAVE["DBF_GENERAL_usecfont"]) then
+ for i=0, 15 do
+ if VCB_SAVE["DBF_GENERAL_enableborder"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_font"], VCB_SAVE["DBF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_font"], VCB_SAVE["DBF_GENERAL_fontsize"])
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_GFontOpacitySliderChange(obj)
+ VCB_SAVE["DBF_GENERAL_fontopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["DBF_GENERAL_fontopacity"])
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetAlpha(VCB_SAVE["DBF_GENERAL_fontopacity"])
+ end
+end
+
+function VCB_BF_DBF_FRAME_INVERTBUFFORDER()
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ VCB_SAVE["DBF_GENERAL_invert"] = false
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ if VCB_SAVE["DBF_GENERAL_invertorientation"] then
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ end
+ else
+ VCB_SAVE["DBF_GENERAL_invert"] = true
+ for i=0,15 do
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ if VCB_SAVE["DBF_GENERAL_invertorientation"] then
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_INVERT_AURA_ORIENTATION()
+ if VCB_SAVE["DBF_GENERAL_invertorientation"] then
+ VCB_SAVE["DBF_GENERAL_invertorientation"] = false
+ for i=0,15 do
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ end
+ else
+ VCB_SAVE["DBF_GENERAL_invertorientation"] = true
+ for i=0,15 do
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):ClearAllPoints()
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i):SetPoint("TOPLEFT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_CHECKBUTTON_CUSTOMFONT_CLICK()
+ if VCB_SAVE["DBF_GENERAL_usecfont"] then
+ VCB_SAVE["DBF_GENERAL_usecfont"] = false
+ for i=0, 15 do
+ if VCB_SAVE["DBF_GENERAL_enableborder"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_font"], VCB_SAVE["DBF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_font"], VCB_SAVE["DBF_GENERAL_fontsize"])
+ end
+ end
+ else
+ VCB_SAVE["DBF_GENERAL_usecfont"] = true
+ for i=0, 15 do
+ if VCB_SAVE["DBF_GENERAL_enableborder"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_customfont"], VCB_SAVE["DBF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_customfont"], VCB_SAVE["DBF_GENERAL_fontsize"])
+ end
+ end
+ end
+end
+
+function VCB_BF_DBF_FRAME_EDITBOX_CUSTOMFONT_CHANGE(obj)
+ VCB_SAVE["DBF_GENERAL_customfont"] = obj:GetText()
+ if VCB_SAVE["DBF_GENERAL_usecfont"] then
+ for i=0, 15 do
+ if VCB_SAVE["DBF_GENERAL_enableborder"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_customfont"], VCB_SAVE["DBF_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Count"):SetFont(VCB_SAVE["DBF_GENERAL_customfont"], VCB_SAVE["DBF_GENERAL_fontsize"])
+ end
+ end
+ end
+end
+
+---------------------------------------END DEBUFF FRAME-----------------------------------------------------------------------------------------------------------------
+---------------------------------------START WP FRAME-----------------------------------------------------------------------------------------------------------------
+function VCB_BF_WP_FRAME_VERTICAL_MODE()
+ if VCB_SAVE["WP_GENERAL_verticalmode"] then
+ VCB_SAVE["WP_GENERAL_verticalmode"] = false
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["WP_GENERAL_padding_h"])*i, 0)
+ end
+ if (VCB_SAVE["BF_GENERAL_verticalmode"]) and VCB_SAVE["WP_GENERAL_attach"] then
+ VCB_BF_BF_FRAME_VERTICAL_MODE()
+ end
+ else
+ VCB_SAVE["WP_GENERAL_verticalmode"] = true
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):SetPoint("TOPRIGHT", 0, -(44+VCB_SAVE["WP_GENERAL_padding_v"])*i)
+ end
+ if (not VCB_SAVE["BF_GENERAL_verticalmode"]) and VCB_SAVE["WP_GENERAL_attach"] then
+ VCB_BF_BF_FRAME_VERTICAL_MODE()
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_ENABLEBGCOLOR()
+ if VCB_SAVE["WP_GENERAL_enablebgcolor"] then
+ VCB_SAVE["WP_GENERAL_enablebgcolor"] = false
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Icon"):SetVertexColor(1,1,1, VCB_SAVE["WP_GENERAL_bgopacity"])
+ end
+ else
+ VCB_SAVE["WP_GENERAL_enablebgcolor"] = true
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Icon"):SetVertexColor(VCB_SAVE["WP_GENERAL_bgcolor_r"],VCB_SAVE["WP_GENERAL_bgcolor_g"],VCB_SAVE["WP_GENERAL_bgcolor_b"],VCB_SAVE["WP_GENERAL_bgopacity"])
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_ATTACH()
+ if VCB_SAVE["WP_GENERAL_attach"] then
+ VCB_SAVE["WP_GENERAL_attach"] = false
+ VCB_BF_WEAPON_FRAME:ClearAllPoints()
+ VCB_BF_WEAPON_FRAME:SetParent(UIParent)
+ VCB_BF_WEAPON_FRAME:SetPoint(VCB_WP_POINT, UIParent, VCB_WP_POINT, VCB_WP_POSX, VCB_WP_POSY)
+ if VCB_SAVE["CF_icon_attach"] then
+ VCB_BF_CONSOLIDATED_ICON:ClearAllPoints()
+ VCB_BF_CONSOLIDATED_ICON:SetPoint("TOPRIGHT", 0, 0)
+ end
+ VCB_BF_WEAPON_FRAME:SetScale(VCB_SAVE["WP_GENERAL_scale"])
+ else
+ VCB_SAVE["WP_GENERAL_attach"] = true
+ local point, relativeTo, relativePoint, xOfs, yOfs = VCB_BF_WEAPON_FRAME:GetPoint()
+ VCB_WP_POINT = point
+ VCB_WP_POSX = xOfs
+ VCB_WP_POSY = yOfs
+ VCB_BF_WEAPON_FRAME:ClearAllPoints()
+ VCB_BF_WEAPON_FRAME:SetParent(VCB_BF_BUFF_FRAME)
+ VCB_BF_WEAPON_FRAME:SetPoint("TOPRIGHT", VCB_BF_BUFF_FRAME, "TOPRIGHT", 0, 0)
+ if VCB_SAVE["CF_icon_attach"] then
+ VCB_BF_CONSOLIDATED_ICON:ClearAllPoints()
+ VCB_BF_CONSOLIDATED_ICON:SetPoint("TOPRIGHT", -2*(32+VCB_SAVE["BF_GENERAL_padding_h"]), 0)
+ end
+ if (VCB_SAVE["BF_GENERAL_verticalmode"] and (not VCB_SAVE["WP_GENERAL_verticalmode"])) or ((not VCB_SAVE["BF_GENERAL_verticalmode"]) and (VCB_SAVE["WP_GENERAL_verticalmode"])) then
+ VCB_BF_BF_FRAME_VERTICAL_MODE()
+ end
+ VCB_BF_WEAPON_FRAME:SetScale(1)
+ end
+ VCB_BF_WEAPON_BUTTON_OnEvent(false)
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_WP_FRAME_AuraPaddingHSliderChange(obj)
+ VCB_SAVE["WP_GENERAL_padding_h"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_PADDING_H..": "..VCB_SAVE["WP_GENERAL_padding_h"])
+ if (not VCB_SAVE["WP_GENERAL_attach"]) and (not VCB_SAVE["WP_GENERAL_verticalmode"]) then
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):SetPoint("TOPRIGHT", -(32+VCB_SAVE["WP_GENERAL_padding_h"])*i, 0)
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_FontSizeSliderChange(obj)
+ VCB_SAVE["WP_GENERAL_fontsize"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["WP_GENERAL_fontsize"])
+ for i=0,1 do
+ if VCB_SAVE["WP_GENERAL_enableborder"] then
+ if VCB_SAVE["WP_GENERAL_usecfont"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_customfont"], VCB_SAVE["WP_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_font"], VCB_SAVE["WP_GENERAL_fontsize"], "OUTLINE")
+ end
+ else
+ if VCB_SAVE["WP_GENERAL_usecfont"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_customfont"], VCB_SAVE["WP_GENERAL_fontsize"])
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_font"], VCB_SAVE["WP_GENERAL_fontsize"])
+ end
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_BGOpaSliderChange(obj)
+ VCB_SAVE["WP_GENERAL_bgopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["WP_GENERAL_bgopacity"])
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Icon"):SetAlpha(VCB_SAVE["WP_GENERAL_bgopacity"])
+ end
+end
+
+function VCB_BF_WP_FRAME_ScaleSliderChange(obj)
+ VCB_SAVE["WP_GENERAL_scale"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_SCALE..": "..VCB_SAVE["WP_GENERAL_scale"])
+ if (not VCB_SAVE["WP_GENERAL_attach"]) then
+ VCB_BF_WEAPON_FRAME:SetScale(VCB_SAVE["WP_GENERAL_scale"])
+ end
+end
+
+function VCB_BF_WP_FRAME_FontSliderChange(obj)
+ VCB_SAVE["WP_GENERAL_font"] = VCB_FONT_ARRAY[obj:GetValue()]
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT..": "..VCB_SAVE["WP_GENERAL_font"])
+ if (not VCB_SAVE["WP_GENERAL_usecfont"]) then
+ for i=0,1 do
+ if VCB_SAVE["WP_GENERAL_enableborder"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_font"], VCB_SAVE["WP_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_font"], VCB_SAVE["WP_GENERAL_fontsize"])
+ end
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_ENABLE_BORDER()
+ if VCB_SAVE["WP_BORDER_enableborder"] then
+ VCB_SAVE["WP_BORDER_enableborder"] = false
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(nil)
+ end
+ else
+ VCB_SAVE["WP_BORDER_enableborder"] = true
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(nil)
+ if VCB_SAVE["WP_BORDER_usecustomborder"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["WP_BORDER_customborderpath"])
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(VCB_WEAPONBORDER_ARRAY[VCB_SAVE["WP_BORDER_border"]])
+ end
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetVertexColor(VCB_SAVE["WP_BORDER_bordercolor_r"],VCB_SAVE["WP_BORDER_bordercolor_g"],VCB_SAVE["WP_BORDER_bordercolor_b"],VCB_SAVE["WP_BORDER_borderopacity"])
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_USE_CUSTOM_BORDER()
+ if VCB_SAVE["WP_BORDER_usecustomborder"] then
+ VCB_SAVE["WP_BORDER_usecustomborder"] = false
+ if VCB_SAVE["WP_BORDER_enableborder"] then
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(VCB_WEAPONBORDER_ARRAY[VCB_SAVE["WP_BORDER_border"]])
+ end
+ end
+ else
+ VCB_SAVE["WP_BORDER_usecustomborder"] = true
+ if VCB_SAVE["WP_BORDER_enableborder"] then
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["WP_BORDER_customborderpath"])
+ end
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_EDITBOX_BORDER_CHANGE(obj)
+ VCB_SAVE["WP_BORDER_customborderpath"] = obj:GetText()
+ if VCB_SAVE["WP_BORDER_enableborder"] and VCB_SAVE["WP_BORDER_usecustomborder"] then
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(VCB_SAVE["WP_BORDER_customborderpath"])
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_BorderSliderChange(obj)
+ VCB_SAVE["WP_BORDER_border"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BORDER..": "..VCB_SAVE["WP_BORDER_border"])
+ if VCB_SAVE["WP_BORDER_enableborder"] and (not VCB_SAVE["WP_BORDER_usecustomborder"]) then
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(nil)
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetTexture(VCB_WEAPONBORDER_ARRAY[VCB_SAVE["WP_BORDER_border"]])
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_TIMER_ENABLE_BORDER()
+ if VCB_SAVE["WP_TIMER_enableborder"] then
+ VCB_SAVE["WP_TIMER_enableborder"] = false
+ for i=0,1 do
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["WP_TIMER_fontsize"])
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["WP_TIMER_fontsize"])
+ end
+ end
+ else
+ VCB_SAVE["WP_TIMER_enableborder"] = true
+ for i=0,1 do
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["WP_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["WP_TIMER_fontsize"], "OUTLINE")
+ end
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_TIMER_FontSizeSliderChange(obj)
+ VCB_SAVE["WP_TIMER_fontsize"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_SIZE..": "..VCB_SAVE["WP_TIMER_fontsize"])
+ for i=0,1 do
+ if VCB_SAVE["WP_TIMER_enableborder"] then
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["WP_TIMER_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["WP_TIMER_fontsize"], "OUTLINE")
+ end
+ else
+ if VCB_SAVE["Timer_usecfont"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["WP_TIMER_fontsize"])
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["WP_TIMER_fontsize"])
+ end
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_TIMER_FontOpacitySliderChange(obj)
+ VCB_SAVE["WP_TIMER_fontopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["WP_TIMER_fontopacity"])
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetAlpha(VCB_SAVE["WP_TIMER_fontopacity"])
+ end
+end
+
+function VCB_BF_WP_FRAME_CHANGE_PAGE()
+ if VCB_BF_WP_FRAME:IsVisible() then
+ VCB_OPTIONS_HIDE_ALL()
+ VCB_OPTIONS_SHOW("VCB_BF_WP_FRAME2", "Weapon Frame -2-")
+ else
+ VCB_OPTIONS_HIDE_ALL()
+ VCB_OPTIONS_SHOW("VCB_BF_WP_FRAME", "Weapon Frame -1-")
+ end
+end
+
+function VCB_BF_WP_FRAME_BorderOpacitySliderChange(obj)
+ VCB_SAVE["WP_BORDER_borderopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY..": "..VCB_SAVE["WP_BORDER_borderopacity"])
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Border"):SetAlpha(VCB_SAVE["WP_BORDER_borderopacity"])
+ end
+end
+
+function VCB_BF_WP_FRAME_FontOpacitySliderChange(obj)
+ VCB_SAVE["WP_GENERAL_fontopacity"] = string.format("%.1f", obj:GetValue())
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY..": "..VCB_SAVE["WP_GENERAL_fontopacity"])
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetAlpha(VCB_SAVE["WP_GENERAL_fontopacity"])
+ end
+end
+
+function VCB_BF_WP_FRAME_AuraPaddingVSliderChange(obj)
+ VCB_SAVE["WP_GENERAL_padding_v"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_PADDING_V..": "..VCB_SAVE["WP_GENERAL_padding_v"])
+ if VCB_SAVE["WP_GENERAL_verticalmode"] and (not VCB_SAVE["WP_GENERAL_attach"]) then
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):ClearAllPoints()
+ getglobal("VCB_BF_WEAPON_BUTTON"..i):SetPoint("TOPRIGHT", 0, -(44+VCB_SAVE["WP_GENERAL_padding_v"])*i)
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_ENABLE_FONT_BORDER()
+ if VCB_SAVE["WP_GENERAL_enableborder"] then
+ VCB_SAVE["WP_GENERAL_enableborder"] = false
+ for i=0,1 do
+ if VCB_SAVE["WP_GENERAL_usecfont"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_customfont"], VCB_SAVE["WP_GENERAL_fontsize"])
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_font"], VCB_SAVE["WP_GENERAL_fontsize"])
+ end
+ end
+ else
+ VCB_SAVE["WP_GENERAL_enableborder"] = true
+ for i=0,1 do
+ if VCB_SAVE["WP_GENERAL_usecfont"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_customfont"], VCB_SAVE["WP_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_font"], VCB_SAVE["WP_GENERAL_fontsize"], "OUTLINE")
+ end
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_OffsetXSliderChange(obj)
+ VCB_SAVE["WP_GENERAL_offset_x"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_X..": "..VCB_SAVE["WP_GENERAL_offset_x"])
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetPoint("BOTTOMRIGHT", VCB_SAVE["WP_GENERAL_offset_x"], VCB_SAVE["WP_GENERAL_offset_y"])
+ end
+end
+
+function VCB_BF_WP_FRAME_OffsetYSliderChange(obj)
+ VCB_SAVE["WP_GENERAL_offset_y"] = obj:GetValue()
+ getglobal(obj:GetName().."Text"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y..": "..VCB_SAVE["WP_GENERAL_offset_y"])
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetPoint("BOTTOMRIGHT", VCB_SAVE["WP_GENERAL_offset_x"], VCB_SAVE["WP_GENERAL_offset_y"])
+ end
+end
+
+function VCB_BF_WP_FRAME_CHECKBUTTON_CUSTOMFONT_CLICK()
+ if VCB_SAVE["WP_GENERAL_usecfont"] then
+ VCB_SAVE["WP_GENERAL_usecfont"] = false
+ for i=0, 1 do
+ if VCB_SAVE["WP_GENERAL_enableborder"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_font"], VCB_SAVE["WP_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_font"], VCB_SAVE["WP_GENERAL_fontsize"])
+ end
+ end
+ else
+ VCB_SAVE["WP_GENERAL_usecfont"] = true
+ for i=0, 1 do
+ if VCB_SAVE["WP_GENERAL_enableborder"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_customfont"], VCB_SAVE["WP_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_customfont"], VCB_SAVE["WP_GENERAL_fontsize"])
+ end
+ end
+ end
+end
+
+function VCB_BF_WP_FRAME_EDITBOX_CUSTOMFONT_CHANGE(obj)
+ VCB_SAVE["WP_GENERAL_customfont"] = obj:GetText()
+ if VCB_SAVE["WP_GENERAL_usecfont"] then
+ for i=0, 1 do
+ if VCB_SAVE["WP_GENERAL_enableborder"] then
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_customfont"], VCB_SAVE["WP_GENERAL_fontsize"], "OUTLINE")
+ else
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Count"):SetFont(VCB_SAVE["WP_GENERAL_customfont"], VCB_SAVE["WP_GENERAL_fontsize"])
+ end
+ end
+ end
+end
+
+---------------------------------------END WP FRAME-----------------------------------------------------------------------------------------------------------------
+---------------------------------------START MISC FRAME-----------------------------------------------------------------------------------------------------------------
+
+function VCB_BF_MISC_FRAME_DISABLE_CF()
+ if VCB_SAVE["MISC_disable_CF"] then
+ VCB_SAVE["MISC_disable_CF"] = false
+ VCB_BF_CONSOLIDATED_ICON:Show()
+ VCB_BF_CONSOLIDATED_BUFFFRAME:Show()
+ VCB_BF_CONSOLIDATED_BUFFFRAME:Hide()
+ for i=0, 6 do
+ getglobal("VCB_BF_BUFF_BUTTON"..i):SetParent(VCB_BF_CONSOLIDATED_BUFFFRAME)
+ end
+ else
+ VCB_SAVE["MISC_disable_CF"] = true
+ VCB_BF_CONSOLIDATED_ICON:Hide()
+ for i=0, 6 do
+ getglobal("VCB_BF_BUFF_BUTTON"..i):SetParent(VCB_BF_BUFF_FRAME)
+ getglobal("VCB_BF_BUFF_BUTTON"..i):Show()
+ end
+ end
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_MISC_FRAME_ThemeSliderChange(obj)
+ getglobal(obj:GetName().."Text"):SetText(VCB_MISC_FRAME_TEXT_THEME..": "..VCB_THEME_NAME[obj:GetValue()])
+end
+
+function VCB_BF_MISC_FRAME_LOAD()
+ local value = getglobal("VCB_BF_MISC_FRAME_ThemeSlider"):GetValue()
+ for cat, val in pairs(VCB_SAVE) do
+ VCB_SAVE[cat] = VCB_THEME[value][cat]
+ end
+ VCB_INITIALIZE()
+ VCB_BF_RepositioningAndResizing()
+ VCB_PAGEINIT("VCB_BF_MISC_FRAME")
+ VCB_SendMessage(VCB_MISC_FRAME_TEXT_THEME..": "..VCB_THEME_NAME[value]..VCB_HAS_BEEN_LOADED)
+end
+
+---------------------------------------END MISC FRAME-----------------------------------------------------------------------------------------------------------------
+---------------------------------------START PROFILE MANAGER FRAME-----------------------------------------------------------------------------------------------------------------
+
+function VCB_BF_PM_FRAME_RIGHT_SCROLLFRAME_Update()
+ local line -- 1 through 5 of our window to scroll
+ local lineplusoffset -- an index into our data calculated from the scroll offset
+ local FRAME = getglobal("VCB_BF_PM_FRAME_RIGHT_SCROLLFRAME")
+ FauxScrollFrame_Update(FRAME,VCB_tablelength(VCB_Profile_Name),10,40)
+ for line=1,10 do
+ lineplusoffset = line + FauxScrollFrame_GetOffset(FRAME)
+ if VCB_Profile_Name[lineplusoffset] ~= nil then
+ getglobal("VCB_PM_ENTRY"..line.."_Text"):SetText(lineplusoffset..". "..VCB_Profile_Name[lineplusoffset])
+ getglobal("VCB_PM_ENTRY"..line).name = VCB_Profile_Name[lineplusoffset]
+ getglobal("VCB_PM_ENTRY"..line):Show()
+ else
+ getglobal("VCB_PM_ENTRY"..line):Hide()
+ end
+ end
+end
+
+function VCB_PM_SCROLLFRAME_ENTRY(button)
+ getglobal("VCB_BF_PM_FRAME_LEFT_SELECTED_INBOX_TEXT"):SetText(button.name)
+end
+
+function VCB_BF_PM_FRAME_SAVE()
+ local name = getglobal("VCB_BF_PM_FRAME_EditBox"):GetText()
+ local temp = {}
+ if (name) then
+ for cat, val in pairs(VCB_SAVE) do
+ temp[cat] = VCB_SAVE[cat]
+ end
+ table.insert(VCB_Profile_Name, name)
+ table.insert(VCB_Profile, temp)
+ getglobal("VCB_BF_PM_FRAME_LEFT_CURRENT_INBOX_TEXT"):SetText(name)
+ VCB_CUR_PROFILE = name
+ VCB_SendMessage(VCB_TEXT_PROFILE..name..VCB_HAS_BEEN_SAVED)
+ end
+ VCB_BF_PM_FRAME_RIGHT_SCROLLFRAME_Update()
+end
+
+function VCB_BF_PM_FRAME_LOAD()
+ local name = getglobal("VCB_BF_PM_FRAME_LEFT_SELECTED_INBOX_TEXT"):GetText()
+ if (name) then
+ local key = VCB_Table_GetKeys(VCB_Profile_Name, name)
+ if (key) then
+ for cat, val in pairs(VCB_SAVE) do
+ VCB_SAVE[cat] = VCB_Profile[key][cat]
+ end
+ VCB_INITIALIZE()
+ VCB_BF_RepositioningAndResizing()
+ getglobal("VCB_BF_PM_FRAME_LEFT_CURRENT_INBOX_TEXT"):SetText(name)
+ VCB_CUR_PROFILE = name
+ VCB_SendMessage(VCB_TEXT_PROFILE..name..VCB_HAS_BEEN_LOADED)
+ end
+ end
+end
+
+function VCB_BF_PM_FRAME_DELETE()
+ local name = getglobal("VCB_BF_PM_FRAME_LEFT_SELECTED_INBOX_TEXT"):GetText()
+ if (name) then
+ local key = VCB_Table_GetKeys(VCB_Profile_Name, name)
+ if (key) then
+ table.remove(VCB_Profile_Name, key)
+ table.remove(VCB_Profile, key)
+ VCB_SendMessage(VCB_TEXT_PROFILE..name..VCB_HAS_BEEN_REMOVED)
+ end
+ end
+ VCB_BF_PM_FRAME_RIGHT_SCROLLFRAME_Update()
+end
+
+---------------------------------------END PROFILE MANAGER FRAME-----------------------------------------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/VCB.toc b/VCB.toc
new file mode 100644
index 0000000..d934426
--- /dev/null
+++ b/VCB.toc
@@ -0,0 +1,15 @@
+## Interface: 11200
+## Title: VCB |cFFFF8080-Shino-|r
+## Title-deDE: VCB |cFFFF8080-Shino-|r
+## Title-enGB: VCB |cFFFF8080-Shino-|r
+## Notes: Vanilla Consolidate Buff-Frames (VCB) is a smart system to manage your auras. The AddOn provides a lot functions to customize it to your tastes and adds a lot of helpful functions for a better overview, which is its purpose in the first place anyway.
+## Notes-deDE: Vanilla Consolidate Buff-Frames (VCB) ist ein intelligentes Aura-Verwaltungs-System. Es verfügt über zahlreichen Funktionen, um das Modul nach eigenen Wünschen zu gestalten. Hauptsächlich verbessert es aber die Übersicht, was auch sein Hauptzweck ist.
+## Notes-enGB: Vanilla Consolidate Buff-Frames (VCB) is a smart system to manage your auras. The AddOn provides a lot functions to customize it to your tastes and adds a lot of helpful functions for a better overview, which is its purpose in the first place anyway.
+## Author: Shino - Kronos
+## SavedVariables: VCB_Profile, VCB_Profile_Name
+## SavedVariablesPerCharacter: Consolidated_Buffs, Banned_Buffs, VCB_BF_LOCKED, VCB_SAVE, VCB_CUR_PROFILE, VCB_WP_POSX, VCB_WP_POSY, VCB_WP_POINT, VCB_ICON_POINT, VCB_ICON_POSX, VCB_ICON_POSY, VCB_MM_ICON
+## Version: 4.1
+VCB.lua
+VCB_Buffframe.lua
+VCB.xml
+VCB_Buffframe.xml
diff --git a/VCB.xml b/VCB.xml
new file mode 100644
index 0000000..35005f8
--- /dev/null
+++ b/VCB.xml
@@ -0,0 +1,8017 @@
+
+
+ ---------------------------------LACALIZATION----------------------------------------------------------------
+
+
+
+
+
+ ---------------------------------GENERAL FRAMES----------------------------------------------------------------
+
+
+
+
+ this:SetOwner(WorldFrame, "ANCHOR_NONE")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if (this.aide) then
+ GameTooltip:SetOwner(this, "ANCHOR_RIGHT")
+ GameTooltip:SetText(this.aide, nil, nil, nil, nil, 1)
+ end
+
+
+ GameTooltip:Hide()
+
+
+
+
+ ---------------------------------MINIMAP FRAME----------------------------------------------------------------
+
+
+ ---------------------------------MAIN CONFIG FRAME----------------------------------------------------------------
+
+
+
+
+
+
+
+ -- Border of the main frame
+
+
+
+
+
+
+
+
+
+
+
+
+
+ this:StartMoving()
+
+
+ this:StopMovingOrSizing()
+
+
+ VCB_BF_DummyConfigMode_Enable()
+ PlaySound("igCharacterInfoOpen")
+
+
+ VCB_BF_DummyConfigMode_Disable()
+ PlaySound("igCharacterInfoClose")
+
+
+ VCB_OnEvent(event)
+
+
+ VCB_OnLoad()
+ this:SetClampedToScreen(true)
+ getglobal("VCB_BF_Header"):SetText(VCB_MAIN_NAME.." "..VCB_MAIN_VERSION)
+
+
+ -- Title block
+
+
+
+
+
+
+
+
+
+
+
+ -- Title text
+
+
+
+
+
+
+
+
+
+
+
+ -- Close button
+
+ -- Lock button
+
+ -- Minimap button
+
+ -- dummy button
+
+ -- Menu Head
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal("VCB_BF_MENU_HEAD_TITLE"):SetText(VCB_MENU_HEAD)
+
+
+
+
+ -- Menu Head title
+
+
+
+
+
+
+
+
+
+
+
+ -- Menu body
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Button 1
+
+ -- Button 2
+
+ -- Button 3
+
+ -- Button 4
+
+ -- Button 5
+
+ -- Button 6
+
+ -- Button 7
+
+ -- Button8
+
+ -- Button 9
+
+ -- Button 10
+
+
+
+ -- Title Frame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_TEXT"):SetText(VCB_CONFIG_FRAME_TITLE_ONLOAD)
+
+
+
+ -- Consolidated Frame
+
+
+
+
+
+
+
+
+
+ VCB_BF_CONSOLIDATED_FRAME_RIGHT_SCROLLFRAME_Update()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_INSERT"):SetText(VCB_CB_BB_FRAME_LEFT_INSERT)
+ getglobal(this:GetName().."_DELETE"):SetText(VCB_CB_BB_FRAME_LEFT_DELETE)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Button ADD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Button DELETE
+
+ -- Button Remove all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FauxScrollFrame_OnVerticalScroll(40, VCB_BF_CONSOLIDATED_FRAME_RIGHT_SCROLLFRAME_Update)
+
+
+ VCB_BF_CONSOLIDATED_FRAME_RIGHT_SCROLLFRAME_Update()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Banned Frame
+
+
+
+
+
+
+
+
+
+ VCB_BF_BANNED_FRAME_RIGHT_SCROLLFRAME_Update()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_INSERT"):SetText(VCB_CB_BB_FRAME_LEFT_INSERT)
+ getglobal(this:GetName().."_DELETE"):SetText(VCB_CB_BB_FRAME_LEFT_DELETE)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Button ADD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Button DELETE
+
+ -- Button Remove all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FauxScrollFrame_OnVerticalScroll(40, VCB_BF_BANNED_FRAME_RIGHT_SCROLLFRAME_Update)
+
+
+ VCB_BF_BANNED_FRAME_RIGHT_SCROLLFRAME_Update()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Timer Frame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_FONT1"):SetText(VCB_CAT_GENERAL)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_TIMER_FRAME_SHOW_HOURS_TOOLTIP
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON1Text"):SetText(VCB_TIMER_FRAME_SHOW_HOURS)
+
+
+ VCB_BF_CHECKBUTTON_TIMER_HOURS()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_TIMER_FRAME_SHOW_HOURS_CONVERT_TOOLTIP
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON2Text"):SetText(VCB_TIMER_FRAME_SHOW_HOURS_CONVERT)
+
+
+ VCB_BF_CHECKBUTTON_TIMER_HOURS_CONVERT()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_TIMER_FRAME_SHOW_MINUTES_TOOLTIP
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON3Text"):SetText(VCB_TIMER_FRAME_SHOW_MINUTES)
+
+
+ VCB_BF_CHECKBUTTON_TIMER_MINUTES()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_TIMER_FRAME_SHOW_MINUTES_CONVERT_TOOLTIP
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON4Text"):SetText(VCB_TIMER_FRAME_SHOW_MINUTES_CONVERT)
+
+
+ VCB_BF_CHECKBUTTON_TIMER_MINUTES_CONVERT()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_TIMER_FRAME_SHOW_TENTH_TOOLTIP
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON5Text"):SetText(VCB_TIMER_FRAME_SHOW_TENTH)
+
+
+ VCB_BF_CHECKBUTTON("Timer_tenth")
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_TIMER_FRAME_ROUND_DOWN_TOOLTIP
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON6Text"):SetText(VCB_TIMER_FRAME_ROUND_DOWN)
+
+
+ VCB_BF_CHECKBUTTON_ROUND()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_TIMER_FRAME_ROUND_UP_TOOLTIP
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON7Text"):SetText(VCB_TIMER_FRAME_ROUND_UP)
+
+
+ VCB_BF_CHECKBUTTON_ROUND()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_TIMER_FRAME_FLASH_TOOLTIP
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON8Text"):SetText(VCB_TIMER_FRAME_FLASH)
+
+
+ VCB_BF_CHECKBUTTON("Timer_flash")
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_TIMER_FRAME_COLOR_BELOW_60_TOOLTIP
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON9Text"):SetText(VCB_TIMER_FRAME_COLOR_BELOW_60)
+
+
+ VCB_BF_CHECKBUTTON("Timer_below_60")
+
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_CUSTOMFONT_TOOLTIP
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON_CUSTOMFONTText"):SetText(VCB_COMMON_BUTTON_CUSTOMFONT)
+
+
+ VCB_BF_TIMER_FRAME_CHECKBUTTON_CUSTOMFONT_CLICK()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_TIMER_FRAME_SHOW_DISABLEUNIT_TOOLTIP
+ getglobal("VCB_BF_TIMER_FRAME_CHECKBUTTON_DISABLEText"):SetText(VCB_TIMER_FRAME_SHOW_DISABLEUNIT)
+
+
+ VCB_BF_CHECKBUTTON_TIMER_DISABLEUNIT()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_TOOLTIP
+ this:SetMinMaxValues(1,15)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_TIMER_FRAME_FontSliderText"):SetText(VCB_COMMON_SLIDER_FONT)
+ getglobal("VCB_BF_TIMER_FRAME_FontSliderLow"):SetText("1")
+ getglobal("VCB_BF_TIMER_FRAME_FontSliderHigh"):SetText("15")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_TIMER_FRAME_FontSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_TIMER_FRAME_EDITBOX_CUSTOMFONT_CHANGE(this)
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_COMMON_EDITBOX_CUSTOMFONT_PATH)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = "Move this to change the y offset of the timer"
+ this:SetMinMaxValues(0,50)
+ this:SetValue(0)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_TIMER_FRAME_YOffsetText"):SetText("Y Offset")
+ getglobal("VCB_BF_TIMER_FRAME_YOffsetLow"):SetText("0")
+ getglobal("VCB_BF_TIMER_FRAME_YOffsetHigh"):SetText("50")
+
+
+ if VCB_IS_LOADED then
+ VCB_SAVE["Timer_yoffset"] = tonumber(this:GetValue()) or 0
+ for i=0,VCB_MAXINDEX.buff do
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):ClearAllPoints()
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetPoint("TOPLEFT", getglobal("VCB_BF_BUFF_BUTTON"..i), "BOTTOMLEFT", -2, VCB_SAVE["Timer_yoffset"])
+ getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration"):SetPoint("TOPRIGHT", getglobal("VCB_BF_BUFF_BUTTON"..i), "BOTTOMRIGHT", 2, VCB_SAVE["Timer_yoffset"])
+ end
+ for i=0,15 do
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):ClearAllPoints()
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetPoint("TOPLEFT", getglobal("VCB_BF_DEBUFF_BUTTON"..i), "BOTTOMLEFT", -2, VCB_SAVE["Timer_yoffset"])
+ getglobal("VCB_BF_DEBUFF_BUTTON"..i.."Duration"):SetPoint("TOPRIGHT", getglobal("VCB_BF_DEBUFF_BUTTON"..i), "BOTTOMRIGHT", 2, VCB_SAVE["Timer_yoffset"])
+ end
+ for i=0,1 do
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):ClearAllPoints()
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetPoint("TOPLEFT", getglobal("VCB_BF_WEAPON_BUTTON"..i), "BOTTOMLEFT", -2, VCB_SAVE["Timer_yoffset"])
+ getglobal("VCB_BF_WEAPON_BUTTON"..i.."Duration"):SetPoint("TOPRIGHT", getglobal("VCB_BF_WEAPON_BUTTON"..i), "BOTTOMRIGHT", 2, VCB_SAVE["Timer_yoffset"])
+ end
+ end
+
+
+
+
+
+
+
+ -- CF Frame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_CONSOLIDATED_BUFFFRAME:Show()
+
+
+ VCB_BF_CONSOLIDATED_BUFFFRAME:Hide()
+
+
+ getglobal(this:GetName().."_FONT1"):SetText(VCB_CAT_CONSOLIDATED_ICON)
+ getglobal(this:GetName().."_FONT2"):SetText(VCB_CAT_BUFF_FRAME)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- COLOR PICKER
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_CF_FRAME_POSSIBLE_BUFFS_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON2Text"):SetText(VCB_CF_FRAME_POSSIBLE_BUFFS)
+
+
+ VCB_BF_CF_FRAME_SHOW_POSSIBLE_BUFFS()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_CF_FRAME_SHOW_PB_GRAYED_OUT_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON3Text"):SetText(VCB_CF_FRAME_SHOW_PB_GRAYED_OUT)
+
+
+ VCB_BF_CF_FRAME_SHOW_BUFFS_GRAYED_OUT()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_FONT_BORDER_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON_BORDERText"):SetText(VCB_COMMON_BUTTON_ENABLE_FONT_BORDER)
+
+
+ VCB_BF_CF_FRAME_CHECKBUTTON_BORDER_CLICK()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_CUSTOMFONT_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON_CUSTOMFONTText"):SetText(VCB_COMMON_BUTTON_CUSTOMFONT)
+
+
+ VCB_BF_CF_FRAME_CHECKBUTTON_CUSTOMFONT_CLICK()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_WP_FRAME_ATTACH_TO_BF_FRAME_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON_ATTACHText"):SetText(VCB_WP_FRAME_ATTACH_TO_BF_FRAME)
+
+
+ VCB_BF_CF_FRAME_CHECKBUTTON_ATTACH_CLICK()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_SIZE_TOOLTIP
+ this:SetMinMaxValues(1,24)
+ this:SetValue(12)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME_SizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE)
+ getglobal("VCB_BF_CF_FRAME_SizeSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME_SizeSliderHigh"):SetText("24")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_SizeSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_TOOLTIP
+ this:SetMinMaxValues(1,15)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME_FontSliderText"):SetText(VCB_COMMON_SLIDER_FONT)
+ getglobal("VCB_BF_CF_FRAME_FontSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME_FontSliderHigh"):SetText("15")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_FontSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_CF_FRAME_ICON_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_CF_FRAME_AlphaSliderText"):SetText(VCB_CF_FRAME_ICON_OPACITY)
+ getglobal("VCB_BF_CF_FRAME_AlphaSliderLow"):SetText("0")
+ getglobal("VCB_BF_CF_FRAME_AlphaSliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_AlphaSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_CF_FRAME_FontAlphaSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY)
+ getglobal("VCB_BF_CF_FRAME_FontAlphaSliderLow"):SetText("0")
+ getglobal("VCB_BF_CF_FRAME_FontAlphaSliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_FontAlphaSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_CF_FRAME_ICON_TEXTURE_TOOLTIP
+ this:SetMinMaxValues(1,1)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME_TextureSliderText"):SetText(VCB_CF_FRAME_ICON_TEXTURE)
+ getglobal("VCB_BF_CF_FRAME_TextureSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME_TextureSliderHigh"):SetText("1")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_TextureSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_CF_FRAME_EDITBOX_CUSTOMFONT_CHANGE(this)
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_COMMON_EDITBOX_CUSTOMFONT_PATH)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- COLOR PICKER
+
+ -- COLOR PICKER
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_INVERT_ORDER_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON1Text"):SetText(VCB_COMMON_BUTTON_INVERT_ORDER)
+
+
+ VCB_BF_CF_FRAME_INVERTBUTTON()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_USE_CUSTOM_BORDER_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON4Text"):SetText(VCB_COMMON_BUTTON_USE_CUSTOM_BORDER)
+
+
+ VCB_BF_CF_FRAME_USE_CUSTOM_BORDER()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_USE_CUSTOM_BACKGROUND_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON_CBGText"):SetText(VCB_COMMON_BUTTON_USE_CUSTOM_BACKGROUND)
+
+
+ VCB_BF_CF_FRAME_USE_CUSTOM_BACKGROUND()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_INVERT_ORIENTATION_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME_CHECKBUTTON_IBOText"):SetText(VCB_COMMON_BUTTON_INVERT_ORIENTATION)
+
+
+ VCB_BF_CF_FRAME_INVERT_BUFF_ORIENTATION()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_CF_FRAME_BF_ANCHOR_TOOLTIP
+ this:SetMinMaxValues(1,4)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME_AnchorSliderText"):SetText(VCB_CF_FRAME_BF_ANCHOR)
+ getglobal("VCB_BF_CF_FRAME_AnchorSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME_AnchorSliderHigh"):SetText("4")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_AnchorSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_SCALE_TOOLTIP
+ this:SetMinMaxValues(0.1,3.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_CF_FRAME_ScaleSliderText"):SetText(VCB_COMMON_SLIDER_SCALE)
+ getglobal("VCB_BF_CF_FRAME_ScaleSliderLow"):SetText("0.1")
+ getglobal("VCB_BF_CF_FRAME_ScaleSliderHigh"):SetText("3.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_ScaleSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BUFFS_PER_ROW_TOOLTIP
+ this:SetMinMaxValues(1,10)
+ this:SetValue(5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME_NumPerRowSliderText"):SetText(VCB_COMMON_SLIDER_BUFFS_PER_ROW)
+ getglobal("VCB_BF_CF_FRAME_NumPerRowSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME_NumPerRowSliderHigh"):SetText("10")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_NumPerRowSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_CF_FRAME_BF_BACKGROUND_TOOLTIP
+ this:SetMinMaxValues(1,3)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME_BackdropSliderText"):SetText(VCB_CF_FRAME_BF_BACKGROUND)
+ getglobal("VCB_BF_CF_FRAME_BackdropSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME_BackdropSliderHigh"):SetText("3")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_BackdropSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BACKGROUND_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(0.5)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_CF_FRAME_BGOpaSliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY)
+ getglobal("VCB_BF_CF_FRAME_BGOpaSliderLow"):SetText("0")
+ getglobal("VCB_BF_CF_FRAME_BGOpaSliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_BGOpaSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BORDER_TOOLTIP
+ this:SetMinMaxValues(1,2)
+ this:SetValue(5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME_BFBorderSliderText"):SetText(VCB_COMMON_SLIDER_BORDER)
+ getglobal("VCB_BF_CF_FRAME_BFBorderSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME_BFBorderSliderHigh"):SetText("2")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_BFBorderSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_CF_FRAME_EDITBOX_BORDER_CHANGE(this)
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_COMMON_EDITBOX_CUSTOM_BORDER_PATH)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_CF_FRAME_EDITBOX_BACKGROUND_CHANGE(this)
+
+
+ getglobal(this:GetName().."_Font"):SetText(VCB_CF_FRAME_BF_CUSTOM_BACKGROUND_PATH)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BORDER_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(0.5)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_CF_FRAME_BorderOpaSliderText"):SetText(VCB_COMMON_SLIDER_BORDER_OPACITY)
+ getglobal("VCB_BF_CF_FRAME_BorderOpaSliderLow"):SetText("0")
+ getglobal("VCB_BF_CF_FRAME_BorderOpaSliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_BorderOpaSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+ -- CF Frame 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_CONSOLIDATED_BUFFFRAME:Show()
+
+
+ VCB_BF_CONSOLIDATED_BUFFFRAME:Hide()
+
+
+ getglobal(this:GetName().."_FONT1"):SetText(VCB_CAT_AURA)
+ getglobal(this:GetName().."_FONT2"):SetText(VCB_CAT_AURA_TIMER)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Checkbutton border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_BORDER_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME2_CHECKBUTTON1Text"):SetText(VCB_COMMON_BUTTON_ENABLE_BORDER)
+
+
+ VCB_BF_CF_FRAME2_ENABLEBORDER()
+
+
+
+ -- Checkbutton aura color
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME2_CHECKBUTTON2Text"):SetText(VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR)
+
+
+ VCB_BF_CF_FRAME2_ENABLEBGCOLOR()
+
+
+
+ -- Checkbutton custom border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_USE_CUSTOM_BORDER_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME2_CHECKBUTTON3Text"):SetText(VCB_COMMON_BUTTON_USE_CUSTOM_BORDER)
+
+
+ VCB_BF_CF_FRAME2_USE_CUSTOMBORDER()
+
+
+
+ -- COLOR PICKER
+
+ -- COLOR PICKER
+
+ -- COLOR PICKER font color
+
+ -- Checkbutton enable font border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_FONT_BORDER_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME2_CHECKBUTTON_FBorderText"):SetText(VCB_COMMON_BUTTON_ENABLE_FONT_BORDER)
+
+
+ VCB_BF_CF_FRAME2_G_ENABLE_BORDER()
+
+
+
+ -- Aura padding H Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_PADDING_H_TOOLTIP
+ this:SetMinMaxValues(1,10)
+ this:SetValue(2)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME2_AuraPaddingHSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_H)
+ getglobal("VCB_BF_CF_FRAME2_AuraPaddingHSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME2_AuraPaddingHSliderHigh"):SetText("10")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME2_AuraPaddingHSliderChange(this)
+ end
+
+
+
+ -- Aura padding Y Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_PADDING_V_TOOLTIP
+ this:SetMinMaxValues(1,10)
+ this:SetValue(2)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME2_AuraPaddingVSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_V)
+ getglobal("VCB_BF_CF_FRAME2_AuraPaddingVSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME2_AuraPaddingVSliderHigh"):SetText("10")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME2_AuraPaddingVSliderChange(this)
+ end
+
+
+
+ -- Aura font size Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_SIZE_TOOLTIP
+ this:SetMinMaxValues(1,24)
+ this:SetValue(13)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME2_GFontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE)
+ getglobal("VCB_BF_CF_FRAME2_GFontSizeSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME2_GFontSizeSliderHigh"):SetText("24")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME2_GFontSizeSliderChange(this)
+ end
+
+
+
+ -- Aura offset X Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OFFSET_X_TOOLTIP
+ this:SetMinMaxValues(-28,28)
+ this:SetValue(5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME2_GFontOffsetXSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_X)
+ getglobal("VCB_BF_CF_FRAME2_GFontOffsetXSliderLow"):SetText("-28")
+ getglobal("VCB_BF_CF_FRAME2_GFontOffsetXSliderHigh"):SetText("28")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME2_GFontOffsetXSliderChange(this)
+ end
+
+
+
+ -- Aura offset Y Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OFFSET_Y_TOOLTIP
+ this:SetMinMaxValues(-28,28)
+ this:SetValue(5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME2_GFontOffsetYSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y)
+ getglobal("VCB_BF_CF_FRAME2_GFontOffsetYSliderLow"):SetText("-28")
+ getglobal("VCB_BF_CF_FRAME2_GFontOffsetYSliderHigh"):SetText("28")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME2_GFontOffsetYSliderChange(this)
+ end
+
+
+
+ -- Aura Border Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BORDER_TOOLTIP
+ this:SetMinMaxValues(1,1)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME2_AuraBorderSliderText"):SetText(VCB_COMMON_SLIDER_BORDER)
+ getglobal("VCB_BF_CF_FRAME2_AuraBorderSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME2_AuraBorderSliderHigh"):SetText("1")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_AuraBorderSliderChange(this)
+ end
+
+
+
+ -- Edit Box
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_CF_FRAME2_EDITBOX_BORDER_CHANGE(this)
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_COMMON_EDITBOX_CUSTOM_BORDER_PATH)
+
+
+
+ -- Aura Font Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_TOOLTIP
+ this:SetMinMaxValues(1,15)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME2_GFontSliderText"):SetText(VCB_COMMON_SLIDER_FONT)
+ getglobal("VCB_BF_CF_FRAME2_GFontSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME2_GFontSliderHigh"):SetText("15")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME2_GFontSliderChange(this)
+ end
+
+
+
+ -- Aura Font opacity Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_CF_FRAME2_GFontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY)
+ getglobal("VCB_BF_CF_FRAME2_GFontOpacitySliderLow"):SetText("0")
+ getglobal("VCB_BF_CF_FRAME2_GFontOpacitySliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME2_GFontOpacitySliderChange(this)
+ end
+
+
+
+ -- Aura BG opacity Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BACKGROUND_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_CF_FRAME2_GBGOpacitySliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY)
+ getglobal("VCB_BF_CF_FRAME2_GBGOpacitySliderLow"):SetText("0")
+ getglobal("VCB_BF_CF_FRAME2_GBGOpacitySliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME2_GBGOpacitySliderChange(this)
+ end
+
+
+
+ -- Checkbutton Custom font
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_CUSTOMFONT_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME2_CHECKBUTTON_CUSTOMFONTText"):SetText(VCB_COMMON_BUTTON_CUSTOMFONT)
+
+
+ VCB_BF_CF_FRAME2_CHECKBUTTON_CUSTOMFONT_CLICK()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_CF_FRAME2_EDITBOX_CUSTOMFONT_CHANGE(this)
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_COMMON_EDITBOX_CUSTOMFONT_PATH)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Checkbutton border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_FONT_BORDER_TOOLTIP
+ getglobal("VCB_BF_CF_FRAME2_CHECKBUTTON4Text"):SetText(VCB_COMMON_BUTTON_ENABLE_FONT_BORDER)
+
+
+ VCB_BF_CF_FRAME2_TIMER_ENABLEBORDER()
+
+
+
+ -- COLOR PICKER
+
+ -- Aura Timer Font size Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_SIZE_TOOLTIP
+ this:SetMinMaxValues(1,24)
+ this:SetValue(10)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_CF_FRAME2_AuraTimerFontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE)
+ getglobal("VCB_BF_CF_FRAME2_AuraTimerFontSizeSliderLow"):SetText("1")
+ getglobal("VCB_BF_CF_FRAME2_AuraTimerFontSizeSliderHigh"):SetText("24")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_AuraTimerFontSizeSliderChange(this)
+ end
+
+
+
+ -- Aura Timer opacity Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_CF_FRAME2_AuraTimerOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY)
+ getglobal("VCB_BF_CF_FRAME2_AuraTimerOpacitySliderLow"):SetText("0")
+ getglobal("VCB_BF_CF_FRAME2_AuraTimerOpacitySliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_CF_FRAME_AuraTimerOpacitySliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+ -- BF Frame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_FONT1"):SetText(VCB_CAT_GENERAL)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Checkbutton vertical mode
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_VERTICAL_MODE_TOOLTIP
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON1Text"):SetText(VCB_COMMON_BUTTON_VERTICAL_MODE)
+
+
+ VCB_BF_BF_FRAME_VERTICAL_MODE()
+
+
+
+ -- Checkbutton bg color
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR_TOOLTIP
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON2Text"):SetText(VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR)
+
+
+ VCB_BF_BF_FRAME_ENABLE_BGCOLOR()
+
+
+
+ -- Checkbutton invert buff order
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_INVERT_ORDER_TOOLTIP
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON3Text"):SetText(VCB_COMMON_BUTTON_INVERT_ORDER)
+
+
+ VCB_BF_BF_FRAME_INVERTBUFFMODE()
+
+
+
+ -- COLOR PICKER font color
+
+ -- Checkbutton enable font border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_FONT_BORDER_TOOLTIP
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON_FBorderText"):SetText(VCB_COMMON_BUTTON_ENABLE_FONT_BORDER)
+
+
+ VCB_BF_BF_FRAME_G_ENABLE_BORDER()
+
+
+
+ -- Checkbutton invert aura orientation
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_INVERT_ORIENTATION_TOOLTIP
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON_IBOText"):SetText(VCB_COMMON_BUTTON_INVERT_ORIENTATION)
+
+
+ VCB_BF_BF_FRAME_INVERT_AURA_ORIENTATION()
+
+
+
+ -- Checkbutton Custom font
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_CUSTOMFONT_TOOLTIP
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON_CUSTOMFONTText"):SetText(VCB_COMMON_BUTTON_CUSTOMFONT)
+
+
+ VCB_BF_BF_FRAME_CHECKBUTTON_CUSTOMFONT_CLICK()
+
+
+
+ -- COLOR PICKER
+
+ -- Aura Buffs per row Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BUFFS_PER_ROW_TOOLTIP
+ this:SetMinMaxValues(5,32)
+ this:SetValue(16)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_BF_FRAME_NumPerRowSliderText"):SetText(VCB_COMMON_SLIDER_BUFFS_PER_ROW)
+ getglobal("VCB_BF_BF_FRAME_NumPerRowSliderLow"):SetText("5")
+ getglobal("VCB_BF_BF_FRAME_NumPerRowSliderHigh"):SetText("32")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_NumPerRowSlider_CHANGE(this)
+ end
+
+
+
+ -- Aura padding Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_PADDING_H_TOOLTIP
+ this:SetMinMaxValues(1,10)
+ this:SetValue(5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_BF_FRAME_AuraPaddingHSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_H)
+ getglobal("VCB_BF_BF_FRAME_AuraPaddingHSliderLow"):SetText("1")
+ getglobal("VCB_BF_BF_FRAME_AuraPaddingHSliderHigh"):SetText("10")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_AuraPaddingHChange(this)
+ end
+
+
+
+ -- Aura padding Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_PADDING_V_TOOLTIP
+ this:SetMinMaxValues(1,10)
+ this:SetValue(5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_BF_FRAME_AuraPaddingVSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_V)
+ getglobal("VCB_BF_BF_FRAME_AuraPaddingVSliderLow"):SetText("1")
+ getglobal("VCB_BF_BF_FRAME_AuraPaddingVSliderHigh"):SetText("10")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_AuraPaddingVChange(this)
+ end
+
+
+
+ -- Aura font size Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_SIZE_TOOLTIP
+ this:SetMinMaxValues(1,24)
+ this:SetValue(13)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_BF_FRAME_GFontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE)
+ getglobal("VCB_BF_BF_FRAME_GFontSizeSliderLow"):SetText("1")
+ getglobal("VCB_BF_BF_FRAME_GFontSizeSliderHigh"):SetText("24")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_GFontSizeSliderChange(this)
+ end
+
+
+
+ -- Aura offset X Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OFFSET_X_TOOLTIP
+ this:SetMinMaxValues(-28,28)
+ this:SetValue(5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_BF_FRAME_GFontOffsetXSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_X)
+ getglobal("VCB_BF_BF_FRAME_GFontOffsetXSliderLow"):SetText("-28")
+ getglobal("VCB_BF_BF_FRAME_GFontOffsetXSliderHigh"):SetText("28")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_GFontOffsetXSliderChange(this)
+ end
+
+
+
+ -- Aura BGOpa Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BACKGROUND_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_BF_FRAME_BGOpaSliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY)
+ getglobal("VCB_BF_BF_FRAME_BGOpaSliderLow"):SetText("0")
+ getglobal("VCB_BF_BF_FRAME_BGOpaSliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_BGOpaSliderChange(this)
+ end
+
+
+
+ -- Aura Scale Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_SCALE_TOOLTIP
+ this:SetMinMaxValues(0.5,3.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_BF_FRAME_ScaleSliderText"):SetText(VCB_COMMON_SLIDER_SCALE)
+ getglobal("VCB_BF_BF_FRAME_ScaleSliderLow"):SetText("0.5")
+ getglobal("VCB_BF_BF_FRAME_ScaleSliderHigh"):SetText("3.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_ScaleSliderChange(this)
+ end
+
+
+
+ -- Aura Font Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_TOOLTIP
+ this:SetMinMaxValues(1,15)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_BF_FRAME_GFontSliderText"):SetText(VCB_COMMON_SLIDER_FONT)
+ getglobal("VCB_BF_BF_FRAME_GFontSliderLow"):SetText("1")
+ getglobal("VCB_BF_BF_FRAME_GFontSliderHigh"):SetText("15")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_GFontSliderChange(this)
+ end
+
+
+
+ -- Aura Font opacity Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_BF_FRAME_GFontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY)
+ getglobal("VCB_BF_BF_FRAME_GFontOpacitySliderLow"):SetText("0")
+ getglobal("VCB_BF_BF_FRAME_GFontOpacitySliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_GFontOpacitySliderChange(this)
+ end
+
+
+
+ -- Aura offset Y Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OFFSET_Y_TOOLTIP
+ this:SetMinMaxValues(-28,28)
+ this:SetValue(5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_BF_FRAME_GFontOffsetYSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y)
+ getglobal("VCB_BF_BF_FRAME_GFontOffsetYSliderLow"):SetText("-28")
+ getglobal("VCB_BF_BF_FRAME_GFontOffsetYSliderHigh"):SetText("28")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_GFontOffsetYSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_BF_FRAME_EDITBOX_CUSTOMFONT_CHANGE(this)
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_COMMON_EDITBOX_CUSTOMFONT_PATH)
+
+
+
+
+
+
+
+
+
+
+ -- BF Frame 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."Font1"):SetText(VCB_CAT_BORDER)
+ getglobal(this:GetName().."Font2"):SetText(VCB_CAT_AURA_TIMER)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Checkbutton enable border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_BORDER_TOOLTIP
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON5Text"):SetText(VCB_COMMON_BUTTON_ENABLE_BORDER)
+
+
+ VCB_BF_BF_FRAME_ENABLE_BORDER()
+
+
+
+ -- Checkbutton use custom border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_USE_CUSTOM_BORDER_TOOLTIP
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON6Text"):SetText(VCB_COMMON_BUTTON_USE_CUSTOM_BORDER)
+
+
+ VCB_BF_BF_FRAME_USE_CUSTOM_BORDER()
+
+
+
+ -- COLOR PICKER
+
+ -- Edit Box
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_BF_FRAME_EDITBOX_BORDERCHANGE(this)
+
+
+ getglobal(this:GetName().."_Font"):SetText(VCB_COMMON_EDITBOX_CUSTOM_BORDER_PATH)
+
+
+
+ -- Aura Border opacity Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BORDER_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_BF_FRAME_BorderOpacitySliderText"):SetText(VCB_COMMON_SLIDER_BORDER_OPACITY)
+ getglobal("VCB_BF_BF_FRAME_BorderOpacitySliderLow"):SetText("0")
+ getglobal("VCB_BF_BF_FRAME_BorderOpacitySliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_BorderOpacityChange(this)
+ end
+
+
+
+ -- Aura Border Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BORDER_TOOLTIP
+ this:SetMinMaxValues(1,1)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_BF_FRAME_BorderSliderText"):SetText(VCB_COMMON_SLIDER_BORDER)
+ getglobal("VCB_BF_BF_FRAME_BorderSliderLow"):SetText("1")
+ getglobal("VCB_BF_BF_FRAME_BorderSliderHigh"):SetText("1")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_BorderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Checkbutton border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_FONT_BORDER_TOOLTIP
+ getglobal("VCB_BF_BF_FRAME_CHECKBUTTON4Text"):SetText(VCB_COMMON_BUTTON_ENABLE_FONT_BORDER)
+
+
+ VCB_BF_BF_FRAME_TIMER_ENABLE_BORDER()
+
+
+
+ -- COLOR PICKER
+
+ -- Aura Font Size Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_SIZE_TOOLTIP
+ this:SetMinMaxValues(1,24)
+ this:SetValue(10)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_BF_FRAME_FontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE)
+ getglobal("VCB_BF_BF_FRAME_FontSizeSliderLow"):SetText("1")
+ getglobal("VCB_BF_BF_FRAME_FontSizeSliderHigh"):SetText("24")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_FontSizeChange(this)
+ end
+
+
+
+ -- Aura Font opacity Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_BF_FRAME_FontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY)
+ getglobal("VCB_BF_BF_FRAME_FontOpacitySliderLow"):SetText("0")
+ getglobal("VCB_BF_BF_FRAME_FontOpacitySliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_BF_FRAME_FontOpacityChange(this)
+ end
+
+
+
+
+
+
+
+
+
+ -- DBF Frame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_CAT_GENERAL)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Checkbutton vertical mode
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_VERTICAL_MODE_TOOLTIP
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON1Text"):SetText(VCB_COMMON_BUTTON_VERTICAL_MODE)
+
+
+ VCB_BF_DBF_FRAME_VERTICAL_MODE()
+
+
+
+ -- Checkbutton bg color
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR_TOOLTIP
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON2Text"):SetText(VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR)
+
+
+ VCB_BF_DBF_FRAME_ENABLE_BGCOLOR()
+
+
+
+ -- Checkbutton invert buff order
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_INVERT_ORDER_TOOLTIP
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON3Text"):SetText(VCB_COMMON_BUTTON_INVERT_ORDER)
+
+
+ VCB_BF_DBF_FRAME_INVERTBUFFORDER()
+
+
+
+ -- COLOR PICKER font color
+
+ -- Checkbutton enable font border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_FONT_BORDER_TOOLTIP
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON_FBorderText"):SetText(VCB_COMMON_BUTTON_ENABLE_FONT_BORDER)
+
+
+ VCB_BF_DBF_FRAME_G_ENABLE_BORDER()
+
+
+
+ -- Checkbutton invert aura orientation
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_INVERT_ORIENTATION_TOOLTIP
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON_IBOText"):SetText(VCB_COMMON_BUTTON_INVERT_ORIENTATION)
+
+
+ VCB_BF_DBF_FRAME_INVERT_AURA_ORIENTATION()
+
+
+
+ -- COLOR PICKER
+
+ -- Aura Buffs per row Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BUFFS_PER_ROW_TOOLTIP
+ this:SetMinMaxValues(5,16)
+ this:SetValue(16)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_DBF_FRAME_NumPerRowSliderText"):SetText(VCB_COMMON_SLIDER_BUFFS_PER_ROW)
+ getglobal("VCB_BF_DBF_FRAME_NumPerRowSliderLow"):SetText("5")
+ getglobal("VCB_BF_DBF_FRAME_NumPerRowSliderHigh"):SetText("16")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_NumPerRowSliderChange(this)
+ end
+
+
+
+ -- Aura padding h Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_PADDING_H_TOOLTIP
+ this:SetMinMaxValues(1,10)
+ this:SetValue(2)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_DBF_FRAME_AuraPaddingHSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_H)
+ getglobal("VCB_BF_DBF_FRAME_AuraPaddingHSliderLow"):SetText("1")
+ getglobal("VCB_BF_DBF_FRAME_AuraPaddingHSliderHigh"):SetText("10")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_AuraPaddingHSliderChange(this)
+ end
+
+
+
+ -- Aura padding v Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_PADDING_V_TOOLTIP
+ this:SetMinMaxValues(1,10)
+ this:SetValue(2)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_DBF_FRAME_AuraPaddingVSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_V)
+ getglobal("VCB_BF_DBF_FRAME_AuraPaddingVSliderLow"):SetText("1")
+ getglobal("VCB_BF_DBF_FRAME_AuraPaddingVSliderHigh"):SetText("10")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_AuraPaddingVSliderChange(this)
+ end
+
+
+
+ -- Aura font size Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_SIZE_TOOLTIP
+ this:SetMinMaxValues(1,24)
+ this:SetValue(13)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_DBF_FRAME_GFontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE)
+ getglobal("VCB_BF_DBF_FRAME_GFontSizeSliderLow"):SetText("1")
+ getglobal("VCB_BF_DBF_FRAME_GFontSizeSliderHigh"):SetText("24")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_GFontSizeSliderChange(this)
+ end
+
+
+
+ -- Aura offset X Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OFFSET_Y_TOOLTIP
+ this:SetMinMaxValues(-28,28)
+ this:SetValue(5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_DBF_FRAME_GFontOffsetXSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y)
+ getglobal("VCB_BF_DBF_FRAME_GFontOffsetXSliderLow"):SetText("-28")
+ getglobal("VCB_BF_DBF_FRAME_GFontOffsetXSliderHigh"):SetText("28")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_GFontOffsetXSliderChange(this)
+ end
+
+
+
+ -- Aura BGOpa Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BACKGROUND_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_DBF_FRAME_BGOpaSliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY)
+ getglobal("VCB_BF_DBF_FRAME_BGOpaSliderLow"):SetText("0")
+ getglobal("VCB_BF_DBF_FRAME_BGOpaSliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_BGOpaSliderChange(this)
+ end
+
+
+
+ -- Aura Scale Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_SCALE_TOOLTIP
+ this:SetMinMaxValues(0.5,2.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_DBF_FRAME_ScaleSliderText"):SetText(VCB_COMMON_SLIDER_SCALE)
+ getglobal("VCB_BF_DBF_FRAME_ScaleSliderLow"):SetText("0.5")
+ getglobal("VCB_BF_DBF_FRAME_ScaleSliderHigh"):SetText("2.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_ScaleSliderChange(this)
+ end
+
+
+
+ -- Aura font Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_TOOLTIP
+ this:SetMinMaxValues(1,15)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_DBF_FRAME_GFontSliderText"):SetText(VCB_COMMON_SLIDER_FONT)
+ getglobal("VCB_BF_DBF_FRAME_GFontSliderLow"):SetText("1")
+ getglobal("VCB_BF_DBF_FRAME_GFontSliderHigh"):SetText("15")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_GFontSliderChange(this)
+ end
+
+
+
+ -- Aura font opacity Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_DBF_FRAME_GFontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY)
+ getglobal("VCB_BF_DBF_FRAME_GFontOpacitySliderLow"):SetText("0")
+ getglobal("VCB_BF_DBF_FRAME_GFontOpacitySliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_GFontOpacitySliderChange(this)
+ end
+
+
+
+ -- Aura offset Y Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OFFSET_Y_TOOLTIP
+ this:SetMinMaxValues(-28,28)
+ this:SetValue(5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_DBF_FRAME_GFontOffsetYSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y)
+ getglobal("VCB_BF_DBF_FRAME_GFontOffsetYSliderLow"):SetText("-28")
+ getglobal("VCB_BF_DBF_FRAME_GFontOffsetYSliderHigh"):SetText("28")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_GFontOffsetYSliderChange(this)
+ end
+
+
+
+ -- Checkbutton Custom font
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_CUSTOMFONT_TOOLTIP
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON_CUSTOMFONTText"):SetText(VCB_COMMON_BUTTON_CUSTOMFONT)
+
+
+ VCB_BF_DBF_FRAME_CHECKBUTTON_CUSTOMFONT_CLICK()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_DBF_FRAME_EDITBOX_CUSTOMFONT_CHANGE(this)
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_COMMON_EDITBOX_CUSTOMFONT_PATH)
+
+
+
+
+
+
+
+
+
+
+ -- DBF Frame 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."Font1"):SetText(VCB_CAT_BORDER)
+ getglobal(this:GetName().."Font2"):SetText(VCB_CAT_AURA_TIMER)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Checkbutton enable border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_BORDER_TOOLTIP
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON5Text"):SetText(VCB_COMMON_BUTTON_ENABLE_BORDER)
+
+
+ VCB_BF_DBF_FRAME_ENABLE_BORDER()
+
+
+
+ -- Checkbutton custom border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_USE_CUSTOM_BORDER_TOOLTIP
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON6Text"):SetText(VCB_COMMON_BUTTON_USE_CUSTOM_BORDER)
+
+
+ VCB_BF_DBF_FRAME_USE_CUSTOM_BORDER()
+
+
+
+ -- Edit Box
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_DBF_FRAME_EDITBOX_BORDER_CHANGE(this)
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_COMMON_EDITBOX_CUSTOM_BORDER_PATH)
+
+
+
+ -- Aura Border Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BORDER_TOOLTIP
+ this:SetMinMaxValues(1,1)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_DBF_FRAME_BorderSliderText"):SetText(VCB_COMMON_SLIDER_BORDER)
+ getglobal("VCB_BF_DBF_FRAME_BorderSliderLow"):SetText("1")
+ getglobal("VCB_BF_DBF_FRAME_BorderSliderHigh"):SetText("1")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_BorderSliderChange(this)
+ end
+
+
+
+ -- Aura Border opacity Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BORDER_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_DBF_FRAME_BorderOpacitySliderText"):SetText(VCB_COMMON_SLIDER_BORDER_OPACITY)
+ getglobal("VCB_BF_DBF_FRAME_BorderOpacitySliderLow"):SetText("0")
+ getglobal("VCB_BF_DBF_FRAME_BorderOpacitySliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_BorderOpacitySliderChange(this)
+ end
+
+
+
+ -- COLOR PICKER NONE
+
+ -- COLOR PICKER POISON
+
+ -- COLOR PICKER MAGIC
+
+ -- COLOR PICKER CURSE
+
+ -- COLOR PICKER DISEASE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Checkbutton border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_FONT_BORDER_TOOLTIP
+ getglobal("VCB_BF_DBF_FRAME_CHECKBUTTON4Text"):SetText(VCB_COMMON_BUTTON_ENABLE_FONT_BORDER)
+
+
+ VCB_BF_DBF_FRAME_ENABLE_FONTBORDER()
+
+
+
+ -- COLOR PICKER
+
+ -- Aura Font Size Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_SIZE_TOOLTIP
+ this:SetMinMaxValues(1,24)
+ this:SetValue(10)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_DBF_FRAME_FontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE)
+ getglobal("VCB_BF_DBF_FRAME_FontSizeSliderLow"):SetText("1")
+ getglobal("VCB_BF_DBF_FRAME_FontSizeSliderHigh"):SetText("24")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_FontSizeSliderChange(this)
+ end
+
+
+
+ -- Aura Font Opacity Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_DBF_FRAME_FontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY)
+ getglobal("VCB_BF_DBF_FRAME_FontOpacitySliderLow"):SetText("0")
+ getglobal("VCB_BF_DBF_FRAME_FontOpacitySliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_DBF_FRAME_FontOpacitySliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+ -- Weapon Frame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_CAT_GENERAL)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Checkbutton vertical mode
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_VERTICAL_MODE_TOOLTIP
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON1Text"):SetText(VCB_COMMON_BUTTON_VERTICAL_MODE)
+
+
+ VCB_BF_WP_FRAME_VERTICAL_MODE()
+
+
+
+ -- Checkbutton bg color
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR_TOOLTIP
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON2Text"):SetText(VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR)
+
+
+ VCB_BF_WP_FRAME_ENABLEBGCOLOR()
+
+
+
+ -- Checkbutton attach to buff frame
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_WP_FRAME_ATTACH_TO_BF_FRAME_TOOLTIP
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON7Text"):SetText(VCB_WP_FRAME_ATTACH_TO_BF_FRAME)
+
+
+ VCB_BF_WP_FRAME_ATTACH()
+
+
+
+ -- COLOR PICKER
+
+ -- COLOR PICKER
+
+ -- Checkbutton enable font border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_FONT_BORDER_TOOLTIP
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON8Text"):SetText(VCB_COMMON_BUTTON_ENABLE_FONT_BORDER)
+
+
+ VCB_BF_WP_FRAME_ENABLE_FONT_BORDER()
+
+
+
+ -- Aura padding Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_PADDING_H_TOOLTIP
+ this:SetMinMaxValues(1,10)
+ this:SetValue(5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_WP_FRAME_AuraPaddingHSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_H)
+ getglobal("VCB_BF_WP_FRAME_AuraPaddingHSliderLow"):SetText("1")
+ getglobal("VCB_BF_WP_FRAME_AuraPaddingHSliderHigh"):SetText("10")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_AuraPaddingHSliderChange(this)
+ end
+
+
+
+ -- Aura padding V Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_PADDING_H_TOOLTIP
+ this:SetMinMaxValues(1,10)
+ this:SetValue(5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_WP_FRAME_AuraPaddingVSliderText"):SetText(VCB_COMMON_SLIDER_PADDING_H)
+ getglobal("VCB_BF_WP_FRAME_AuraPaddingVSliderLow"):SetText("1")
+ getglobal("VCB_BF_WP_FRAME_AuraPaddingVSliderHigh"):SetText("10")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_AuraPaddingVSliderChange(this)
+ end
+
+
+
+ -- Aura Fontsize Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_SIZE_TOOLTIP
+ this:SetMinMaxValues(1,24)
+ this:SetValue(10)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_WP_FRAME_FontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE)
+ getglobal("VCB_BF_WP_FRAME_FontSizeSliderLow"):SetText("1")
+ getglobal("VCB_BF_WP_FRAME_FontSizeSliderHigh"):SetText("24")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_FontSizeSliderChange(this)
+ end
+
+
+
+ -- Aura Offset X Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OFFSET_X_TOOLTIP
+ this:SetMinMaxValues(-28,28)
+ this:SetValue(-5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_WP_FRAME_OffsetXSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_X)
+ getglobal("VCB_BF_WP_FRAME_OffsetXSliderLow"):SetText("-28")
+ getglobal("VCB_BF_WP_FRAME_OffsetXSliderHigh"):SetText("28")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_OffsetXSliderChange(this)
+ end
+
+
+
+ -- Aura Offset Y Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OFFSET_Y_TOOLTIP
+ this:SetMinMaxValues(-28,28)
+ this:SetValue(-5)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_WP_FRAME_OffsetYSliderText"):SetText(VCB_COMMON_SLIDER_FONT_OFFSET_Y)
+ getglobal("VCB_BF_WP_FRAME_OffsetYSliderLow"):SetText("-28")
+ getglobal("VCB_BF_WP_FRAME_OffsetYSliderHigh"):SetText("28")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_OffsetYSliderChange(this)
+ end
+
+
+
+ -- Aura BGOpa Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BACKGROUND_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_WP_FRAME_BGOpaSliderText"):SetText(VCB_COMMON_SLIDER_BACKGROUND_OPACITY)
+ getglobal("VCB_BF_WP_FRAME_BGOpaSliderLow"):SetText("0")
+ getglobal("VCB_BF_WP_FRAME_BGOpaSliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_BGOpaSliderChange(this)
+ end
+
+
+
+ -- Aura Scale Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_SCALE_TOOLTIP
+ this:SetMinMaxValues(0.5,2.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_WP_FRAME_ScaleSliderText"):SetText(VCB_COMMON_SLIDER_SCALE)
+ getglobal("VCB_BF_WP_FRAME_ScaleSliderLow"):SetText("0.5")
+ getglobal("VCB_BF_WP_FRAME_ScaleSliderHigh"):SetText("2.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_ScaleSliderChange(this)
+ end
+
+
+
+ -- Aura Font Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_TOOLTIP
+ this:SetMinMaxValues(1,15)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_WP_FRAME_FontSliderText"):SetText(VCB_COMMON_SLIDER_FONT)
+ getglobal("VCB_BF_WP_FRAME_FontSliderLow"):SetText("1")
+ getglobal("VCB_BF_WP_FRAME_FontSliderHigh"):SetText("15")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_FontSliderChange(this)
+ end
+
+
+
+ -- Aura Font opacity Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_WP_FRAME_FontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY)
+ getglobal("VCB_BF_WP_FRAME_FontOpacitySliderLow"):SetText("0")
+ getglobal("VCB_BF_WP_FRAME_FontOpacitySliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_FontOpacitySliderChange(this)
+ end
+
+
+
+ -- Checkbutton Custom font
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_CUSTOMFONT_TOOLTIP
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON_CUSTOMFONTText"):SetText(VCB_COMMON_BUTTON_CUSTOMFONT)
+
+
+ VCB_BF_WP_FRAME_CHECKBUTTON_CUSTOMFONT_CLICK()
+
+
+
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_INVERT_ORDER_TOOLTIP
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON_INVERTORDERText"):SetText(VCB_COMMON_BUTTON_INVERT_ORDER)
+
+
+ VCB_SAVE["WP_GENERAL_invert"] = not VCB_SAVE["WP_GENERAL_invert"]
+ VCB_BF_WEAPON_BUTTON_OnEvent(false)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_WP_FRAME_EDITBOX_CUSTOMFONT_CHANGE(this)
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_COMMON_EDITBOX_CUSTOMFONT_PATH)
+
+
+
+
+
+
+
+
+
+
+ -- Weapon Frame 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."Font1"):SetText(VCB_CAT_BORDER)
+ getglobal(this:GetName().."Font2"):SetText(VCB_CAT_AURA_TIMER)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Checkbutton enable border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_BORDER_TOOLTIP
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON5Text"):SetText(VCB_COMMON_BUTTON_ENABLE_BORDER)
+
+
+ VCB_BF_WP_FRAME_ENABLE_BORDER()
+
+
+
+ -- Checkbutton use custom border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_USE_CUSTOM_BORDER_TOOLTIP
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON6Text"):SetText(VCB_COMMON_BUTTON_USE_CUSTOM_BORDER)
+
+
+ VCB_BF_WP_FRAME_USE_CUSTOM_BORDER()
+
+
+
+ -- COLOR PICKER
+
+ -- Edit Box
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_WP_FRAME_EDITBOX_BORDER_CHANGE(this)
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_COMMON_EDITBOX_CUSTOM_BORDER_PATH)
+
+
+
+ -- Aura Border Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BORDER_TOOLTIP
+ this:SetMinMaxValues(1,1)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_WP_FRAME_BorderSliderText"):SetText(VCB_COMMON_SLIDER_BORDER)
+ getglobal("VCB_BF_WP_FRAME_BorderSliderLow"):SetText("1")
+ getglobal("VCB_BF_WP_FRAME_BorderSliderHigh"):SetText("1")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_BorderSliderChange(this)
+ end
+
+
+
+ -- Aura Border opacity Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_BORDER_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_WP_FRAME_BorderOpacitySliderText"):SetText(VCB_COMMON_SLIDER_BORDER_OPACITY)
+ getglobal("VCB_BF_WP_FRAME_BorderOpacitySliderLow"):SetText("0")
+ getglobal("VCB_BF_WP_FRAME_BorderOpacitySliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_BorderOpacitySliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- Checkbutton border
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_COMMON_BUTTON_ENABLE_FONT_BORDER_TOOLTIP
+ getglobal("VCB_BF_WP_FRAME_CHECKBUTTON4Text"):SetText(VCB_COMMON_BUTTON_ENABLE_FONT_BORDER)
+
+
+ VCB_BF_WP_FRAME_TIMER_ENABLE_BORDER()
+
+
+
+ -- COLOR PICKER
+
+ -- Aura Font size Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_SIZE_TOOLTIP
+ this:SetMinMaxValues(1,24)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_WP_FRAME_TIMER_FontSizeSliderText"):SetText(VCB_COMMON_SLIDER_FONT_SIZE)
+ getglobal("VCB_BF_WP_FRAME_TIMER_FontSizeSliderLow"):SetText("1")
+ getglobal("VCB_BF_WP_FRAME_TIMER_FontSizeSliderHigh"):SetText("24")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_TIMER_FontSizeSliderChange(this)
+ end
+
+
+
+ -- Aura Font opacity Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_COMMON_SLIDER_FONT_OPACITY_TOOLTIP
+ this:SetMinMaxValues(0,1.0)
+ this:SetValue(1.0)
+ this:SetValueStep(0.1)
+ getglobal("VCB_BF_WP_FRAME_TIMER_FontOpacitySliderText"):SetText(VCB_COMMON_SLIDER_FONT_OPACITY)
+ getglobal("VCB_BF_WP_FRAME_TIMER_FontOpacitySliderLow"):SetText("0")
+ getglobal("VCB_BF_WP_FRAME_TIMER_FontOpacitySliderHigh"):SetText("1.0")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_WP_FRAME_TIMER_FontOpacitySliderChange(this)
+ end
+
+
+
+
+
+
+
+
+
+ -- PM Frame
+
+
+
+
+
+
+
+
+
+ VCB_BF_PM_FRAME_RIGHT_SCROLLFRAME_Update()
+ getglobal("VCB_BF_PM_FRAME_LEFT_CURRENT_INBOX_TEXT"):SetText("Unknown")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_INSERT"):SetText(VCB_PM_FRAME_LEFT_INSERT_TEXT)
+ getglobal(this:GetName().."_SELECT"):SetText(VCB_PM_FRAME_LEFT_SELECT_TEXT)
+ getglobal(this:GetName().."_CURRENT"):SetText(VCB_PM_FRAME_LEFT_CURRENT_TEXT)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FauxScrollFrame_OnVerticalScroll(40, VCB_BF_PM_FRAME_RIGHT_SCROLLFRAME_Update)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -- MISC Frame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_CAT_GENERAL)
+
+
+
+ -- Checkbutton Disable Consolidate Mechanic
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_MISC_FRAME_TEXT_DISABLE_CF_TOOLTIP
+ getglobal("VCB_BF_MISC_FRAME_CHECKBUTTON1Text"):SetText(VCB_MISC_FRAME_TEXT_DISABLE_CF)
+
+
+ VCB_BF_MISC_FRAME_DISABLE_CF()
+
+
+
+ -- Checkbutton Disable Banning Mechanic
+
+
+
+
+
+
+
+
+
+ this.tooltipText = VCB_MISC_FRAME_TEXT_DISABLE_BB_TOOLTIP
+ getglobal("VCB_BF_MISC_FRAME_CHECKBUTTON2Text"):SetText("Disable banning mechanic")
+
+
+ VCB_BF_CHECKBUTTON("MISC_disable_BB")
+
+
+
+ -- Aura Theme Slider
+
+
+
+
+
+
+
+
+
+ this.aide = VCB_MISC_FRAME_TEXT_THEME_TOOLTIP
+ this:SetMinMaxValues(1,1)
+ this:SetValue(1)
+ this:SetValueStep(1)
+ getglobal("VCB_BF_MISC_FRAME_ThemeSliderText"):SetText(VCB_MISC_FRAME_TEXT_THEME)
+ getglobal("VCB_BF_MISC_FRAME_ThemeSliderLow"):SetText("1")
+ getglobal("VCB_BF_MISC_FRAME_ThemeSliderHigh"):SetText("1")
+
+
+ if VCB_IS_LOADED then
+ VCB_BF_MISC_FRAME_ThemeSliderChange(this)
+ end
+
+
+
+
+
+
+
+
+ -- About Frame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_CAT_ABOUT_1)
+ getglobal(this:GetName().."_FONT2"):SetText(VCB_ABOUT_TEXT_1)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_CAT_ABOUT_2)
+ getglobal(this:GetName().."_FONT2"):SetText(VCB_ABOUT_TEXT_2)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_CAT_ABOUT_3)
+ getglobal(this:GetName().."_FONT2"):SetText(VCB_ABOUT_TEXT_3)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getglobal(this:GetName().."_FONT"):SetText(VCB_CAT_ABOUT_4)
+ getglobal(this:GetName().."_FONT2"):SetText(VCB_ABOUT_TEXT_4)
+ getglobal(this:GetName().."_FONT3"):SetText(VCB_ABOUT_TEXT_5)
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VCB_Buffframe.lua b/VCB_Buffframe.lua
new file mode 100644
index 0000000..c64a401
--- /dev/null
+++ b/VCB_Buffframe.lua
@@ -0,0 +1,1304 @@
+--Global Variables
+VCB_BUTTONNAME = {buff="VCB_BF_BUFF_BUTTON", debuff="VCB_BF_DEBUFF_BUTTON", weapon = "VCB_BF_WEAPON_BUTTON"}
+VCB_MININDEX = {buff=0, debuff=0, weapon=0}
+-- The client aura array holds 32 buffs (0-31) and 16 debuffs (0-15)
+VCB_MAXINDEX = {buff=31, debuff=15, weapon=1}
+
+-- Local Variables
+local BUTTON_TEMPLATE_NAME = {buff="VCB_BF_BUFF_BUTTON", debuff="VCB_BF_DEBUFF_BUTTON", weapon = "VCB_BF_WEAPON_BUTTON"}
+local FRAME_NAME = {buff="VCB_BF_BUFF_FRAME", debuff="VCB_BF_DEBUFF_FRAME", weapon = "VCB_BF_WEAPON_FRAME"}
+local TEMPENCHANTGHOSTTEXT = {"MH", "OH"}
+local BUFF, DEBUFF, WEAPON = "buff", "debuff", "weapon" --cats
+local GHOST_COLOR = { buff = {r=0.2, g=0.8, b=0.2},
+ debuff= {r=0.8, g=0.2, b=0.2},
+ weapon= {r=0.2, g=0.2, b=0.8},
+ warning={r=1.0, g=0.2, b=0.2},
+ alpha=0.8}
+local BUFF_FILTER={buff="HELPFUL", debuff="HARMFUL"}
+local UPDATETIME = 0.2
+local VCB_BuffFrameUpdateTime = 0
+local VCB_BuffFrameFlashState = 0
+local VCB_BuffFrameFlashTime = 0
+local VCB_BUFF_ALPHA_VALUE = 1
+local updater = false
+
+local timeSinceWeaponUpdate = 0
+local timeSinceBuffUpdate = 0
+local grayedIcons = false
+local classicon = {}
+classicon = {
+ [1] = "Interface\\ICONS\\Spell_Nature_Regeneration.tga",
+ [2] = "Interface\\ICONS\\Ability_TrueShot.tga",
+ [3] = "Interface\\ICONS\\Spell_Magic_GreaterBlessingofKings.tga",
+ [4] = "Interface\\ICONS\\Spell_Holy_GreaterBlessingofKings.tga",
+ [5] = "Interface\\ICONS\\Spell_Holy_GreaterBlessingofWisdom.tga",
+ [6] = "Interface\\ICONS\\Spell_Holy_GreaterBlessingofLight.tga",
+ [7] = "Interface\\ICONS\\Spell_Holy_GreaterBlessingofSalvation.tga",
+ [8] = "Interface\\ICONS\\Spell_Holy_ArcaneIntellect.tga",
+ [9] = "Interface\\ICONS\\Spell_Holy_PrayerOfFortitude.tga",
+ [10] = "Interface\\ICONS\\Spell_Holy_PrayerofSpirit.tga",
+ [11] = "Interface\\ICONS\\Spell_Holy_PrayerofShadowProtection.tga",
+}
+
+-- Optional client-mod support (all optional, plain 1.12 API is the fallback)
+-- SuperWoW: GetPlayerBuffID(buffIndex) -> spellId, SpellInfo(spellId) -> name
+-- ClassicAPI: GetSpellInfo(spellId) -> name
+-- Resolving the aura name from its spell id avoids a hidden-tooltip scan for
+-- every aura button on every PLAYER_AURAS_CHANGED.
+local function VCB_SpellNameFromID(id)
+ if (not id) or id == 0 then return nil end
+ if id < 0 then id = id + 65536 end -- older SuperWoW builds returned negative ids
+ if SpellInfo then
+ local name = SpellInfo(id)
+ if name and name ~= "" then return name end
+ end
+ if GetSpellInfo then
+ local ok, name = pcall(GetSpellInfo, id)
+ if ok and type(name) == "string" and name ~= "" then return name end
+ end
+ return nil
+end
+
+function VCB_BF_GetPlayerBuffName(buffIndex)
+ if (not buffIndex) or buffIndex < 0 then return nil end
+ if GetPlayerBuffID then
+ local name = VCB_SpellNameFromID(GetPlayerBuffID(buffIndex))
+ if name then return name end
+ end
+ VCB_Tooltip:SetOwner(WorldFrame, "ANCHOR_NONE")
+ VCB_Tooltip:ClearLines()
+ VCB_Tooltip:SetPlayerBuff(buffIndex)
+ local name = VCB_TooltipTextLeft1:GetText()
+ VCB_Tooltip:Hide()
+ return name
+end
+
+-- Case-insensitive plain substring match (aura names can contain pattern characters)
+local function VCB_ListMatches(list, name)
+ if (not list) or (not name) then return false end
+ local lname = strlower(name)
+ for e = 1, VCB_tablelength(list) do
+ if not list[e] then break end
+ if strfind(strlower(list[e]), lname, 1, true) then
+ return true
+ end
+ end
+ return false
+end
+
+-- Layout is recomputed once per frame after all aura buttons have been
+-- updated, instead of from inside one specific button's event handler
+-- (event dispatch order between buttons is not guaranteed, and buttons
+-- above the old trigger slot were laid out with stale data).
+local VCB_LayoutPending, VCB_DebuffLayoutPending = false, false
+local VCB_LayoutFrame = CreateFrame("Frame")
+VCB_LayoutFrame:Hide()
+VCB_LayoutFrame:SetScript("OnUpdate", function()
+ this:Hide()
+ if not VCB_IS_LOADED then return end
+ if VCB_LayoutPending then
+ VCB_LayoutPending = false
+ VCB_BF_RepositioningAndResizing()
+ end
+ if VCB_DebuffLayoutPending then
+ VCB_DebuffLayoutPending = false
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ VCB_BF_RepositionDebuffs()
+ end
+ end
+end)
+
+function VCB_BF_OnLoad()
+ if (not VCB_BF_BUFF_BUTTON0) then
+ VCB_BF_DisableBlizzardBuffs()
+ VCB_BF_CreateBuffButtons()
+ end
+end
+
+function VCB_BF_ButtonIterator(cat, n)
+ local buttonName, ghostButtonLabel
+ if(not n) then
+ n=VCB_MININDEX[cat]
+ buttonName=VCB_BUTTONNAME[cat].."0"
+ elseif(VCB_MININDEX[cat]<=n and n= 0 and button.cat ~= "weapon" then
+ name = VCB_BF_GetPlayerBuffName(buffIndex)
+ end
+
+ if button.cat == "buff" then button:SetParent(VCB_BF_BUFF_FRAME) end
+ if name and Consolidated_Buffs ~= nil and button:GetParent() ~= VCB_BF_DEBUFF_FRAME and (not VCB_SAVE["MISC_disable_CF"]) then
+ if VCB_ListMatches(Consolidated_Buffs, name) then
+ button:SetParent(VCB_BF_CONSOLIDATED_BUFFFRAME)
+ end
+ end
+
+ -- Banned Buffs implementation
+ if name and Banned_Buffs ~= nil and (not VCB_SAVE["MISC_disable_BB"]) then
+ if VCB_ListMatches(Banned_Buffs, name) then
+ CancelPlayerBuff(button.buffIndex)
+ VCB_SendMessage(name..VCB_HAS_BEEN_CANCELLED)
+ end
+ end
+
+ if ( buffIndex < 0 and VCB_BF_LOCKED ) then
+ if updater and updater==button:GetName() then
+ updater = false
+ end
+ button:Hide();
+ buffDuration:Hide();
+ else
+ button:SetAlpha(1.0);
+ button:Show();
+ if (timeLeft > 0) then -- SHOW_BUFF_DURATIONS ??
+ buffDuration:Show();
+ else
+ buffDuration:Hide();
+ end
+ end
+
+ local icon = getglobal(button:GetName().."Icon");
+ icon:SetTexture(GetPlayerBuffTexture(buffIndex));
+
+ -- Set color of debuff border based on dispel class.
+ local color;
+ -- Only debuff buttons are colored by dispel type (buff buttons used to read
+ -- the dispel type of the debuff that shared their slot number)
+ local debuffType = nil
+ if button.cat == "debuff" and buffIndex >= 0 then
+ debuffType = GetPlayerBuffDispelType(buffIndex)
+ -- unknown dispel types fall back to the "none" color
+ if debuffType and VCB_SAVE["DBF_BORDER_"..strlower(debuffType).."color_r"] == nil then
+ debuffType = nil
+ end
+ end
+ local debuffSlot = getglobal(button:GetName().."Border");
+ if ( debuffType ) then
+ color = {r=VCB_SAVE["DBF_BORDER_"..strlower(debuffType).."color_r"],g=VCB_SAVE["DBF_BORDER_"..strlower(debuffType).."color_g"],b=VCB_SAVE["DBF_BORDER_"..strlower(debuffType).."color_b"],a=1}
+ elseif(buffIndex >= 0) then
+ color = {r=VCB_SAVE["DBF_BORDER_nonecolor_r"],g=VCB_SAVE["DBF_BORDER_nonecolor_g"],b=VCB_SAVE["DBF_BORDER_nonecolor_b"],a=VCB_SAVE["DBF_BORDER_borderopacity"]}
+ if VCB_IS_LOADED and button.cat == "buff" then
+ if VCB_SAVE["CF_AURA_enableborder"] and button:GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ color = {r=VCB_SAVE["CF_AURA_bordercolor_r"], g=VCB_SAVE["CF_AURA_bordercolor_g"], b=VCB_SAVE["CF_AURA_bordercolor_b"], a=VCB_SAVE["CF_AURA_borderopacity"]}
+ elseif VCB_SAVE["BF_BORDER_enableborder"] and button:GetParent() == VCB_BF_BUFF_FRAME then
+ color = {r=VCB_SAVE["BF_BORDER_bordercolor_r"], g=VCB_SAVE["BF_BORDER_bordercolor_g"], b=VCB_SAVE["BF_BORDER_bordercolor_b"], a=VCB_SAVE["BF_BORDER_borderopacity"]}
+ end
+ end
+ else
+ color = {r=0, g=0, b=0, a=0}
+ end
+ if ( debuffSlot ) then
+ debuffSlot:SetVertexColor(color.r, color.g, color.b, color.a);
+ end
+
+ -- Set the number of applications of an aura if its a debuff
+ local buffCount = getglobal(button:GetName().."Count");
+ local count = GetPlayerBuffApplications(buffIndex);
+ if ( count > 1 ) then
+ buffCount:SetText(count);
+ buffCount:Show();
+ else
+ buffCount:Hide();
+ end
+
+ -- Defer layout until every button has processed this aura change
+ if button.cat == "buff" then
+ VCB_LayoutPending = true
+ VCB_LayoutFrame:Show()
+ elseif button.cat == "debuff" then
+ VCB_DebuffLayoutPending = true
+ VCB_LayoutFrame:Show()
+ end
+ end
+end
+
+function VCB_BF_RepositioningAndResizing()
+ local a = 1
+ local b = 1
+ for i=0, VCB_MAXINDEX.buff do
+ local button = getglobal("VCB_BF_BUFF_BUTTON"..i)
+ -- TWOW Fix: Check if button exists before accessing it
+ if not button then
+ break
+ end
+ local parent = button:GetParent()
+ local buttonDuration = getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration")
+ local buttonBorder = getglobal("VCB_BF_BUFF_BUTTON"..i.."Border")
+ local buttonIcon = getglobal("VCB_BF_BUFF_BUTTON"..i.."Icon")
+ local buttonCount = getglobal("VCB_BF_BUFF_BUTTON"..i.."Count")
+ local timeLeft = GetPlayerBuffTimeLeft(button.buffIndex or 1);
+
+ if VCB_SAVE["BF_GENERAL_invert"] then
+ local j = VCB_MAXINDEX.buff-i
+ button = getglobal("VCB_BF_BUFF_BUTTON"..j)
+ -- TWOW Fix: Check if button exists after general invert
+ if not button then
+ break
+ end
+ parent = button:GetParent()
+ buttonDuration = getglobal("VCB_BF_BUFF_BUTTON"..j.."Duration")
+ buttonBorder = getglobal("VCB_BF_BUFF_BUTTON"..j.."Border")
+ buttonIcon = getglobal("VCB_BF_BUFF_BUTTON"..j.."Icon")
+ buttonCount = getglobal("VCB_BF_BUFF_BUTTON"..j.."Count")
+ end
+
+ local CF = 0
+ if VCB_SAVE["MISC_disable_CF"] then
+ button:SetParent(VCB_BF_BUFF_FRAME)
+ CF = 1
+ end
+
+ if (not button.buffIndex) then break end -- for /reload function
+
+ if parent == VCB_BF_BUFF_FRAME and (button.buffIndex >= 0 or VCB_BF_DUMMY_MODE or (not VCB_BF_LOCKED)) then
+ button:ClearAllPoints()
+
+ buttonDuration:ClearAllPoints()
+ buttonDuration:SetPoint("TOPLEFT", button, "BOTTOMLEFT", -20, VCB_SAVE["Timer_yoffset"])
+ buttonDuration:SetPoint("TOPRIGHT", button, "BOTTOMRIGHT", 20, VCB_SAVE["Timer_yoffset"])
+
+ local u = 0
+ local o = 0
+ if VCB_SAVE["WP_GENERAL_attach"] then
+ if VCB_BF_DUMMY_MODE then
+ u = 2
+ if (not VCB_SAVE["CF_icon_attach"]) then u = u - 1 end
+ else
+ local hasMainHandEnchant, mainHandExpiration, mainHandCharges, hasOffHandEnchant, offHandExpiration, offHandCharges = GetWeaponEnchantInfo()
+ if hasMainHandEnchant then u = u + 1 end
+ if hasOffHandEnchant then u = u + 1 end
+ if (not VCB_SAVE["CF_icon_attach"]) then u = u - 1 end
+ end
+ if VCB_SAVE["CF_icon_attach"] then
+ VCB_BF_CONSOLIDATED_ICON:ClearAllPoints()
+ end
+ if a <= (VCB_SAVE["BF_GENERAL_numperrow"]-(3-CF)) then
+ o = u
+ end
+ end
+ if VCB_SAVE["BF_GENERAL_verticalmode"] then
+ if VCB_SAVE["BF_GENERAL_invertorientation"] then
+ if VCB_SAVE["CF_icon_attach"] then
+ VCB_BF_CONSOLIDATED_ICON:ClearAllPoints()
+ VCB_BF_CONSOLIDATED_ICON:SetPoint("TOPLEFT", VCB_BF_BUFF_FRAME, "BOTTOMLEFT", 0, -(44+VCB_SAVE["BF_GENERAL_padding_v"])*(u-1)) -- WHY -1 ?!
+ end
+ button:SetPoint("TOPLEFT", VCB_BF_BUFF_FRAME, "BOTTOMLEFT", (36+VCB_SAVE["BF_GENERAL_padding_h"])*floor((a+u-o)/(VCB_SAVE["BF_GENERAL_numperrow"])),-(44+VCB_SAVE["BF_GENERAL_padding_v"])*(a+u) + floor((a+u)/(VCB_SAVE["BF_GENERAL_numperrow"]))*(VCB_SAVE["BF_GENERAL_numperrow"])*(44+VCB_SAVE["BF_GENERAL_padding_v"]) + 50)
+ else
+ if VCB_SAVE["CF_icon_attach"] then
+ VCB_BF_CONSOLIDATED_ICON:ClearAllPoints()
+ VCB_BF_CONSOLIDATED_ICON:SetPoint("TOPRIGHT", VCB_BF_BUFF_FRAME, "BOTTOMRIGHT", 0, -(44+VCB_SAVE["BF_GENERAL_padding_v"])*(u-1))
+ end
+ button:SetPoint("TOPRIGHT", VCB_BF_BUFF_FRAME, "BOTTOMRIGHT", -(36+VCB_SAVE["BF_GENERAL_padding_h"])*floor((a+u-o)/(VCB_SAVE["BF_GENERAL_numperrow"])),-(44+VCB_SAVE["BF_GENERAL_padding_v"])*(a+u) + floor((a+u)/(VCB_SAVE["BF_GENERAL_numperrow"]))*(VCB_SAVE["BF_GENERAL_numperrow"])*(44+VCB_SAVE["BF_GENERAL_padding_v"]) + 50)
+ end
+ else
+ if VCB_SAVE["BF_GENERAL_invertorientation"] then
+ if VCB_SAVE["CF_icon_attach"] then
+ VCB_BF_CONSOLIDATED_ICON:ClearAllPoints()
+ VCB_BF_CONSOLIDATED_ICON:SetPoint("TOPLEFT", (32+VCB_SAVE["BF_GENERAL_padding_h"])*u, 0)
+ end
+ button:SetPoint("TOPLEFT", VCB_BF_BUFF_FRAME, "TOPLEFT", (32+VCB_SAVE["BF_GENERAL_padding_h"])*(a+u) - floor((a+u-CF)/(VCB_SAVE["BF_GENERAL_numperrow"]))*(VCB_SAVE["BF_GENERAL_numperrow"])*(32+VCB_SAVE["BF_GENERAL_padding_h"]) - (32+VCB_SAVE["BF_GENERAL_padding_h"])*CF,-(44+VCB_SAVE["BF_GENERAL_padding_v"])*floor((a+u-o-CF)/(VCB_SAVE["BF_GENERAL_numperrow"]-o)))
+ else
+ if VCB_SAVE["CF_icon_attach"] then
+ VCB_BF_CONSOLIDATED_ICON:ClearAllPoints()
+ VCB_BF_CONSOLIDATED_ICON:SetPoint("TOPRIGHT", -(32+VCB_SAVE["BF_GENERAL_padding_h"])*u, 0)
+ end
+ button:SetPoint("TOPRIGHT", VCB_BF_BUFF_FRAME, "TOPRIGHT", -(32+VCB_SAVE["BF_GENERAL_padding_h"])*(a+u) + floor((a+u-CF)/(VCB_SAVE["BF_GENERAL_numperrow"]))*(VCB_SAVE["BF_GENERAL_numperrow"])*(32+VCB_SAVE["BF_GENERAL_padding_h"]) + (32+VCB_SAVE["BF_GENERAL_padding_h"])*CF,-(44+VCB_SAVE["BF_GENERAL_padding_v"])*floor((a+u-o-CF)/(VCB_SAVE["BF_GENERAL_numperrow"]-o)))
+ end
+ end
+ if VCB_SAVE["Timer_usecfont"] then
+ if VCB_SAVE["BF_TIMER_border"] then
+ buttonDuration:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["BF_TIMER_fontsize"], "OUTLINE")
+ else
+ buttonDuration:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["BF_TIMER_fontsize"])
+ end
+
+ else
+ if VCB_SAVE["BF_TIMER_border"] then
+ buttonDuration:SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["BF_TIMER_fontsize"], "OUTLINE")
+ else
+ buttonDuration:SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["BF_TIMER_fontsize"])
+ end
+ end
+ if VCB_SAVE["Timer_below_60"] and timeLeft < 60 then
+ buttonDuration:SetTextColor(VCB_SAVE["Timer_below_60_color_r"],VCB_SAVE["Timer_below_60_color_g"],VCB_SAVE["Timer_below_60_color_b"],VCB_SAVE["BF_TIMER_fontopacity"])
+ else
+ buttonDuration:SetTextColor(VCB_SAVE["BF_TIMER_fontcolor_r"],VCB_SAVE["BF_TIMER_fontcolor_g"],VCB_SAVE["BF_TIMER_fontcolor_b"],VCB_SAVE["BF_TIMER_fontopacity"])
+ end
+ if VCB_SAVE["BF_GENERAL_enablebgcolor"] then
+ buttonIcon:SetVertexColor(VCB_SAVE["BF_GENERAL_bgcolor_r"],VCB_SAVE["BF_GENERAL_bgcolor_g"],VCB_SAVE["BF_GENERAL_bgcolor_b"],VCB_SAVE["BF_GENERAL_bgopacity"])
+ else
+ buttonIcon:SetVertexColor(1,1,1,VCB_SAVE["BF_GENERAL_bgopacity"])
+ end
+ if VCB_SAVE["BF_BORDER_enableborder"] then
+ buttonBorder:SetTexture(nil)
+ if VCB_SAVE["BF_BORDER_usecustomborder"] then
+ buttonBorder:SetTexture(VCB_SAVE["BF_BORDER_customborderpath"])
+ else
+ buttonBorder:SetTexture(VCB_AURABORDER_ARRAY[VCB_SAVE["BF_BORDER_border"]])
+ end
+ buttonBorder:SetVertexColor(VCB_SAVE["BF_BORDER_bordercolor_r"],VCB_SAVE["BF_BORDER_bordercolor_g"],VCB_SAVE["BF_BORDER_bordercolor_b"],VCB_SAVE["BF_BORDER_borderopacity"])
+ else
+ buttonBorder:SetTexture(nil)
+ end
+ if VCB_SAVE["BF_GENERAL_usecfont"] then
+ if VCB_SAVE["BF_GENERAL_enableborder"] then
+ buttonCount:SetFont(VCB_SAVE["BF_GENERAL_customfont"], VCB_SAVE["BF_GENERAL_fontsize"], "OUTLINE")
+ else
+ buttonCount:SetFont(VCB_SAVE["BF_GENERAL_customfont"], VCB_SAVE["BF_GENERAL_fontsize"])
+ end
+ else
+ if VCB_SAVE["BF_GENERAL_enableborder"] then
+ buttonCount:SetFont(VCB_SAVE["BF_GENERAL_font"], VCB_SAVE["BF_GENERAL_fontsize"], "OUTLINE")
+ else
+ buttonCount:SetFont(VCB_SAVE["BF_GENERAL_font"], VCB_SAVE["BF_GENERAL_fontsize"])
+ end
+ end
+ buttonCount:SetVertexColor(VCB_SAVE["BF_GENERAL_fontcolor_r"],VCB_SAVE["BF_GENERAL_fontcolor_g"],VCB_SAVE["BF_GENERAL_fontcolor_b"],VCB_SAVE["BF_GENERAL_fontopacity"])
+ buttonCount:ClearAllPoints()
+ buttonCount:SetPoint("BOTTOMRIGHT", VCB_SAVE["BF_GENERAL_fontoffset_x"], VCB_SAVE["BF_GENERAL_fontoffset_y"])
+ a = a + 1
+ end
+
+ if VCB_SAVE["CF_BF_invert"] then
+ local j = VCB_MAXINDEX.buff-i
+ button = getglobal("VCB_BF_BUFF_BUTTON"..j)
+ -- TWOW Fix: Check if button exists after invert
+ if not button then
+ break
+ end
+ parent = button:GetParent()
+ buttonDuration = getglobal("VCB_BF_BUFF_BUTTON"..j.."Duration")
+ buttonBorder = getglobal("VCB_BF_BUFF_BUTTON"..j.."Border")
+ buttonIcon = getglobal("VCB_BF_BUFF_BUTTON"..j.."Icon")
+ buttonCount = getglobal("VCB_BF_BUFF_BUTTON"..j.."Count")
+ else
+ button = getglobal("VCB_BF_BUFF_BUTTON"..i)
+ -- TWOW Fix: Check if button exists
+ if not button then
+ break
+ end
+ parent = button:GetParent()
+ buttonDuration = getglobal("VCB_BF_BUFF_BUTTON"..i.."Duration")
+ buttonBorder = getglobal("VCB_BF_BUFF_BUTTON"..i.."Border")
+ buttonIcon = getglobal("VCB_BF_BUFF_BUTTON"..i.."Icon")
+ buttonCount = getglobal("VCB_BF_BUFF_BUTTON"..i.."Count")
+ end
+
+ CF = 0
+ if VCB_SAVE["MISC_disable_CF"] then
+ button:SetParent(VCB_BF_BUFF_FRAME)
+ CF = 1
+ end
+ if parent == VCB_BF_CONSOLIDATED_BUFFFRAME and (button.buffIndex >= 0 or VCB_BF_DUMMY_MODE or (not VCB_BF_LOCKED)) then
+ button:ClearAllPoints()
+ if VCB_SAVE["CF_BF_invertorientation"] then
+ button:SetPoint("TOPLEFT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPLEFT", ((32+VCB_SAVE["CF_AURA_padding_h"])*b)-(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) - (ceil(b/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(b/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ else
+ button:SetPoint("TOPRIGHT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPRIGHT", (-(32+VCB_SAVE["CF_AURA_padding_h"])*b)+(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) + (ceil(b/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(b/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ end
+ if VCB_SAVE["CF_TIMER_border"] then
+ buttonDuration:SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["CF_TIMER_fontsize"], "OUTLINE")
+ else
+ buttonDuration:SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["CF_TIMER_fontsize"])
+ end
+ if VCB_SAVE["CF_AURA_enableborder"] then
+ if VCB_SAVE["CF_AURA_customborder"] then
+ buttonBorder:SetTexture(VCB_SAVE["CF_AURA_customborderpath"])
+ else
+ buttonBorder:SetTexture(VCB_AURABORDER_ARRAY[VCB_SAVE["CF_AURA_border"]])
+ end
+ else
+ buttonBorder:SetTexture(nil)
+ end
+ buttonBorder:SetVertexColor(VCB_SAVE["CF_AURA_bordercolor_r"],VCB_SAVE["CF_AURA_bordercolor_g"],VCB_SAVE["CF_AURA_bordercolor_b"],VCB_SAVE["CF_AURA_borderopacity"])
+ if VCB_SAVE["CF_AURA_enablebgcolor"] then
+ buttonIcon:SetVertexColor(VCB_SAVE["CF_AURA_bgcolor_r"],VCB_SAVE["CF_AURA_bgcolor_g"],VCB_SAVE["CF_AURA_bgcolor_b"],VCB_SAVE["CF_AURA_bgopacity"])
+ else
+ buttonIcon:SetVertexColor(1,1,1,VCB_SAVE["CF_AURA_bgopacity"])
+ end
+ if VCB_SAVE["Timer_usecfont"] then
+ if VCB_SAVE["CF_TIMER_border"] then
+ buttonDuration:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["CF_BF_scale"]*VCB_SAVE["CF_TIMER_fontsize"], "OUTLINE")
+ else
+ buttonDuration:SetFont(VCB_SAVE["Timer_customfont"], VCB_SAVE["CF_BF_scale"]*VCB_SAVE["CF_TIMER_fontsize"])
+ end
+ else
+ if VCB_SAVE["CF_TIMER_border"] then
+ buttonDuration:SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["CF_BF_scale"]*VCB_SAVE["CF_TIMER_fontsize"], "OUTLINE")
+ else
+ buttonDuration:SetFont(VCB_SAVE["Timer_font"], VCB_SAVE["CF_BF_scale"]*VCB_SAVE["CF_TIMER_fontsize"])
+ end
+ end
+ if VCB_SAVE["Timer_below_60"] and timeLeft < 60 then
+ buttonDuration:SetTextColor(VCB_SAVE["Timer_below_60_color_r"],VCB_SAVE["Timer_below_60_color_g"],VCB_SAVE["Timer_below_60_color_b"],VCB_SAVE["CF_TIMER_fontopacity"])
+ else
+ buttonDuration:SetTextColor(VCB_SAVE["CF_TIMER_fontcolor_r"],VCB_SAVE["CF_TIMER_fontcolor_g"],VCB_SAVE["CF_TIMER_fontcolor_b"],VCB_SAVE["CF_TIMER_fontopacity"])
+ end
+ if VCB_SAVE["CF_AURA_usecfont"] then
+ if VCB_SAVE["CF_AURA_enablefontborder"] then
+ buttonCount:SetFont(VCB_SAVE["CF_AURA_customfont"], VCB_SAVE["CF_AURA_fontsize"], "OUTLINE")
+ else
+ buttonCount:SetFont(VCB_SAVE["CF_AURA_customfont"], VCB_SAVE["CF_AURA_fontsize"])
+ end
+ else
+ if VCB_SAVE["CF_AURA_enablefontborder"] then
+ buttonCount:SetFont(VCB_SAVE["CF_AURA_font"], VCB_SAVE["CF_AURA_fontsize"], "OUTLINE")
+ else
+ buttonCount:SetFont(VCB_SAVE["CF_AURA_font"], VCB_SAVE["CF_AURA_fontsize"])
+ end
+ end
+ buttonCount:SetVertexColor(VCB_SAVE["CF_AURA_fontcolor_r"],VCB_SAVE["CF_AURA_fontcolor_g"],VCB_SAVE["CF_AURA_fontcolor_b"],VCB_SAVE["CF_AURA_fontopacity"])
+ buttonCount:ClearAllPoints()
+ buttonCount:SetPoint("BOTTOMRIGHT", VCB_SAVE["CF_AURA_fontoffset_x"], VCB_SAVE["CF_AURA_fontoffset_y"])
+ b = b + 1
+ end
+ end
+ if VCB_SAVE["CF_icon_showpbgrayedout"] or VCB_SAVE["CF_icon_possiblebuffs"] then
+ VCB_BF_ADD_GRAYEDOUTICONS(b)
+ else
+ if grayedIcons then
+ for i=0,10 do
+ getglobal("GrayedIcon"..i):Hide()
+ end
+ end
+ getglobal("VCB_BF_CONSOLIDATED_ICONCount"):SetText(b-1)
+ VCB_BF_ResizeConsolidatedFrame(b-1)
+ end
+end
+
+function VCB_BF_ADD_GRAYEDOUTICONS(x)
+ if (not grayedIcons) then
+ for i=0,10 do
+ local GIcon = CreateFrame("Button", "GrayedIcon"..i, VCB_BF_CONSOLIDATED_BUFFFRAME, nil) -- Need to create xml template
+ GIcon:SetWidth(32)
+ GIcon:SetHeight(32)
+
+ local t = GIcon:CreateTexture(nil,"BACKGROUND")
+ t:SetTexture(classicon[i+1])
+ t:SetAllPoints(GIcon)
+ t:SetVertexColor(0.3,0.3,0.3,1)
+ GIcon.texture = t
+
+ GIcon:SetScript("OnEnter", function() VCB_BF_CONSOLIDATED_BUFFFRAME:Show() end)
+ GIcon:SetScript("OnLeave", function() VCB_BF_CONSOLIDATED_BUFFFRAME:Hide() end)
+ GIcon:Hide()
+ end
+ grayedIcons = true
+ else
+ for i=0,10 do
+ getglobal("GrayedIcon"..i):Hide()
+ end
+ end
+
+ local buffs = {}
+ local tchildren = { VCB_BF_CONSOLIDATED_BUFFFRAME:GetChildren() }
+ local children = {}
+ local numPaladins = 0
+ local classes = {}
+ local b = x
+ local gd = 0
+
+ -- Filter out grayed out icons
+ for _,child in ipairs(tchildren) do
+ if child.buffIndex and child:GetName() and (not strfind(child:GetName(), "GrayedIcon", 1, true)) then
+ table.insert(children, child)
+ end
+ end
+
+ -- Fill buffs array (buffIndex is already a GetPlayerBuff index)
+ for _,child in pairs(children) do
+ local name = VCB_BF_GetPlayerBuffName(child.buffIndex)
+ if (name) then
+ table.insert(buffs, strlower(name))
+ end
+ end
+
+ -- Get number of Paladins and different classes of the group / raid
+ if UnitInRaid("player") then
+ for i=1, 40 do
+ local _, englishClass = UnitClass("raid"..i);
+ if (not englishClass) then break end
+ if (not VCB_Contains(classes, englishClass)) then
+ table.insert(classes, englishClass)
+ end
+ if englishClass == "PALADIN" then numPaladins = numPaladins + 1 end
+ end
+ else
+ for i=1, GetNumPartyMembers() do
+ if GetPartyMember(i) then
+ local _, englishClass = UnitClass("party"..i);
+ if (not VCB_Contains(classes, englishClass)) then
+ table.insert(classes, englishClass)
+ end
+ if englishClass == "PALADIN" then numPaladins = numPaladins + 1 end
+ end
+ end
+ end
+
+ -- Add grayed out icons
+ -- Druid
+ if (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_1)) and (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_2)) and VCB_Contains(classes, "DRUID") and (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_2) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_1)) then
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ GrayedIcon0:SetPoint("TOPRIGHT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPRIGHT", (-(32+VCB_SAVE["CF_AURA_padding_h"])*x)+(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) + (ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ GrayedIcon0:Show()
+ end
+ x = x + 1
+ else
+ GrayedIcon0:Hide()
+ end
+ -- Hunter
+ if (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_3)) and VCB_Contains(classes, "HUNTER") and (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_3)) then
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ GrayedIcon1:SetPoint("TOPRIGHT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPRIGHT", (-(32+VCB_SAVE["CF_AURA_padding_h"])*x)+(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) + (ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ GrayedIcon1:Show()
+ end
+ x = x + 1
+ else
+ GrayedIcon1:Hide()
+ end
+ -- Paladin
+ if (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_4)) and (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_5)) and VCB_Contains(classes, "PALADIN") and (numPaladins > VCB_BF_getNumPaladinBuffs(buffs, VCB_ABILITY_LOWER_SCRIPT_5)) and (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_4) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_5)) then
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ GrayedIcon2:SetPoint("TOPRIGHT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPRIGHT", (-(32+VCB_SAVE["CF_AURA_padding_h"])*x)+(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) + (ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ GrayedIcon2:Show()
+ end
+ x = x + 1
+ else
+ GrayedIcon2:Hide()
+ end
+ if (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_6)) and (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_7)) and VCB_Contains(classes, "PALADIN") and (numPaladins > VCB_BF_getNumPaladinBuffs(buffs, VCB_ABILITY_LOWER_SCRIPT_7)) and (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_6) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_7)) then
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ GrayedIcon3:SetPoint("TOPRIGHT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPRIGHT", (-(32+VCB_SAVE["CF_AURA_padding_h"])*x)+(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) + (ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ GrayedIcon3:Show()
+ end
+ x = x + 1
+ else
+ GrayedIcon3:Hide()
+ end
+ if (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_8)) and (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_9)) and VCB_Contains(classes, "PALADIN") and (numPaladins > VCB_BF_getNumPaladinBuffs(buffs, VCB_ABILITY_LOWER_SCRIPT_9)) and (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_8) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_9)) then
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ GrayedIcon4:SetPoint("TOPRIGHT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPRIGHT", (-(32+VCB_SAVE["CF_AURA_padding_h"])*x)+(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) + (ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ GrayedIcon4:Show()
+ end
+ x = x + 1
+ else
+ GrayedIcon4:Hide()
+ end
+ if (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_10)) and (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_11)) and VCB_Contains(classes, "PALADIN") and (numPaladins > VCB_BF_getNumPaladinBuffs(buffs, VCB_ABILITY_LOWER_SCRIPT_11)) and (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_10) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_11)) then
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ GrayedIcon5:SetPoint("TOPRIGHT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPRIGHT", (-(32+VCB_SAVE["CF_AURA_padding_h"])*x)+(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) + (ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ GrayedIcon5:Show()
+ end
+ x = x + 1
+ else
+ GrayedIcon5:Hide()
+ end
+ if (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_12)) and (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_13)) and VCB_Contains(classes, "PALADIN") and (numPaladins > VCB_BF_getNumPaladinBuffs(buffs, VCB_ABILITY_LOWER_SCRIPT_13)) and (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_12) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_13)) then
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ GrayedIcon6:SetPoint("TOPRIGHT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPRIGHT", (-(32+VCB_SAVE["CF_AURA_padding_h"])*x)+(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) + (ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ GrayedIcon6:Show()
+ end
+ x = x + 1
+ else
+ GrayedIcon6:Hide()
+ end
+ -- Mage
+ if (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_14)) and (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_15)) and VCB_Contains(classes, "MAGE") and (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_14) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_15)) then
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ GrayedIcon7:SetPoint("TOPRIGHT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPRIGHT", (-(32+VCB_SAVE["CF_AURA_padding_h"])*x)+(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) + (ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ GrayedIcon7:Show()
+ end
+ x = x + 1
+ else
+ GrayedIcon7:Hide()
+ end
+ -- Priest
+ if (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_16)) and (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_17)) and VCB_Contains(classes, "PRIEST") and (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_17) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_16)) then
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ GrayedIcon8:SetPoint("TOPRIGHT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPRIGHT", (-(32+VCB_SAVE["CF_AURA_padding_h"])*x)+(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) + (ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ GrayedIcon8:Show()
+ end
+ x = x + 1
+ else
+ GrayedIcon8:Hide()
+ end
+ if (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_18)) and (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_19)) and VCB_Contains(classes, "PRIEST") and (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_19) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_18)) then
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ GrayedIcon9:SetPoint("TOPRIGHT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPRIGHT", (-(32+VCB_SAVE["CF_AURA_padding_h"])*x)+(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) + (ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ GrayedIcon9:Show()
+ end
+ x = x + 1
+ else
+ GrayedIcon9:Hide()
+ end
+ if (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_20)) and (not VCB_Contains(buffs, VCB_ABILITY_LOWER_SCRIPT_21)) and VCB_Contains(classes, "PRIEST") and (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_21) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_20)) then
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ GrayedIcon10:SetPoint("TOPRIGHT", VCB_BF_CONSOLIDATED_BUFFFRAME, "TOPRIGHT", (-(32+VCB_SAVE["CF_AURA_padding_h"])*x)+(24-0.5*VCB_SAVE["CF_AURA_padding_h"]) + (ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)*VCB_SAVE["CF_BF_numperrow"]*(32+VCB_SAVE["CF_AURA_padding_h"]),-(44+VCB_SAVE["CF_AURA_padding_v"])*(ceil(x/VCB_SAVE["CF_BF_numperrow"]) - 1)-(6+VCB_SAVE["CF_AURA_padding_v"]))
+ GrayedIcon10:Show()
+ end
+ x = x + 1
+ else
+ GrayedIcon10:Hide()
+ end
+
+ if VCB_SAVE["CF_icon_possiblebuffs"] then
+ gd = x - b
+ local cPB = VCB_BF_GetNumPBuffsInCF()
+ if cPB > numPaladins then gd = gd - (cPB - numPaladins) end
+ local result = (gd+b-1)
+ if result < (b-1) then result = (b-1) end
+
+ getglobal("VCB_BF_CONSOLIDATED_ICONCount"):SetText((b-1).."/"..result)
+ else
+ getglobal("VCB_BF_CONSOLIDATED_ICONCount"):SetText((b-1))
+ end
+ if VCB_SAVE["CF_icon_showpbgrayedout"] then
+ VCB_BF_ResizeConsolidatedFrame(x-1)
+ else
+ VCB_BF_ResizeConsolidatedFrame(b-1)
+ end
+end
+
+function VCB_BF_getNumPaladinBuffs(buffs, ext)
+ local paladinBuffs = {}
+ local count = 0
+ paladinBuffs = {
+ [1] = VCB_ABILITY_LOWER_SCRIPT_5,
+ [2] = VCB_ABILITY_LOWER_SCRIPT_7,
+ [3] = VCB_ABILITY_LOWER_SCRIPT_9,
+ [4] = VCB_ABILITY_LOWER_SCRIPT_11,
+ [5] = VCB_ABILITY_LOWER_SCRIPT_13,
+ [6] = VCB_ABILITY_LOWER_SCRIPT_4,
+ [7] = VCB_ABILITY_LOWER_SCRIPT_6,
+ [8] = VCB_ABILITY_LOWER_SCRIPT_8,
+ [9] = VCB_ABILITY_LOWER_SCRIPT_10,
+ [10] = VCB_ABILITY_LOWER_SCRIPT_12,
+ }
+ for i=1,10 do
+ if VCB_Contains(buffs, paladinBuffs[i]) and (not strfind(paladinBuffs[i], ext)) then
+ count = count + 1
+ end
+ end
+ return count
+end
+
+function VCB_BF_GetNumPBuffsInCF()
+ local count = 0
+
+ if (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_4) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_5)) then count = count + 1 end
+ if (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_6) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_7)) then count = count + 1 end
+ if (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_8) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_9)) then count = count + 1 end
+ if (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_10) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_11)) then count = count + 1 end
+ if (VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_12) or VCB_Contains(Consolidated_Buffs, VCB_ABILITY_LOWER_SCRIPT_13)) then count = count + 1 end
+
+ return count
+end
+
+function VCB_BF_RepositionDebuffs()
+ local a = 0
+ for i=0,15 do
+ local j = 15-i
+ local button = getglobal("VCB_BF_DEBUFF_BUTTON"..j)
+ -- TWOW Fix: Check if button exists before accessing
+ if button and button.buffIndex >= 0 then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(a/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*a + floor(a/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*a + floor(a/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(a/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ a = a + 1
+ end
+ end
+end
+
+function VCB_BF_ResizeConsolidatedFrame(i)
+ local p = i
+ if p >= VCB_SAVE["CF_BF_numperrow"] then p = VCB_SAVE["CF_BF_numperrow"] end
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetWidth(16+2*VCB_SAVE["CF_AURA_padding_h"]+(p*(32+VCB_SAVE["CF_AURA_padding_h"])))
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetHeight(10+2*VCB_SAVE["CF_AURA_padding_v"]+(ceil(i/VCB_SAVE["CF_BF_numperrow"])*(44+VCB_SAVE["CF_AURA_padding_v"])))
+
+ if i == 0 then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetWidth(0)
+ VCB_BF_CONSOLIDATED_BUFFFRAME:SetHeight(0)
+ VCB_BF_CONSOLIDATED_BUFFFRAME:Hide()
+ end
+end
+
+function VCB_BF_BUFF_BUTTON_OnUpdate(elapsed, button)
+ local buffIndex, timeLeft, buttonid;
+ buffIndex = button.buffIndex;
+ timeLeft = GetPlayerBuffTimeLeft(buffIndex);
+ buttonid = button:GetName()
+ if VCB_SAVE["Timer_flash"] then -- Implements Blizzlike flashing
+ if not updater or updater==buttonid then
+ updater = buttonid;
+ if ( VCB_BuffFrameUpdateTime > 0 ) then
+ VCB_BuffFrameUpdateTime = VCB_BuffFrameUpdateTime - elapsed;
+ else
+ VCB_BuffFrameUpdateTime = VCB_BuffFrameUpdateTime + TOOLTIP_UPDATE_TIME;
+ end
+
+ VCB_BuffFrameFlashTime = VCB_BuffFrameFlashTime - 0.85*elapsed;
+ if ( VCB_BuffFrameFlashTime < 0 ) then
+ local overtime = -VCB_BuffFrameFlashTime;
+ if ( VCB_BuffFrameFlashState == 0 ) then
+ VCB_BuffFrameFlashState = 1;
+ VCB_BuffFrameFlashTime = BUFF_FLASH_TIME_ON;
+ else
+ VCB_BuffFrameFlashState = 0;
+ VCB_BuffFrameFlashTime = BUFF_FLASH_TIME_OFF;
+ end
+ if ( overtime < VCB_BuffFrameFlashTime ) then
+ VCB_BuffFrameFlashTime = VCB_BuffFrameFlashTime - overtime;
+ end
+ end
+ if ( VCB_BuffFrameFlashState == 1 ) then
+ VCB_BUFF_ALPHA_VALUE = (BUFF_FLASH_TIME_ON - VCB_BuffFrameFlashTime) / BUFF_FLASH_TIME_ON;
+ else
+ VCB_BUFF_ALPHA_VALUE = VCB_BuffFrameFlashTime / BUFF_FLASH_TIME_ON;
+ end
+ VCB_BUFF_ALPHA_VALUE = (VCB_BUFF_ALPHA_VALUE * (1 - BUFF_MIN_ALPHA)) + BUFF_MIN_ALPHA;
+ end
+ if timeLeft < 30 and timeLeft ~= 0 then
+ button:SetAlpha(VCB_BUFF_ALPHA_VALUE);
+ else
+ button:SetAlpha(VCB_BF_GETBUTTONALPHA(button))
+ end
+ else
+ button:SetAlpha(VCB_BF_GETBUTTONALPHA(button))
+ end
+
+ button.timeSinceLastUpdate = button.timeSinceLastUpdate + elapsed
+ if(button.timeSinceLastUpdate > UPDATETIME) then
+ -- reset first so the early returns below keep the 0.2s throttle
+ button.timeSinceLastUpdate = 0
+ local buffDuration = getglobal(button:GetName().."Duration");
+ if ( button.untilCancelled == 1 and (not VCB_BF_DUMMY_MODE)) then
+ buffDuration:Hide();
+ return;
+ end
+
+ -- Update duration
+ if (timeLeft>0 or VCB_BF_DUMMY_MODE) then
+ if VCB_BF_DUMMY_MODE then
+ timeLeft = random(1,150)+(random(1,99)/100)
+ end
+ if VCB_SAVE["Timer_below_60"] and timeLeft < 60 then
+ if button.cat == "buff" then
+ buffDuration:SetTextColor(VCB_SAVE["Timer_below_60_color_r"],VCB_SAVE["Timer_below_60_color_g"],VCB_SAVE["Timer_below_60_color_b"],VCB_SAVE["BF_TIMER_fontopacity"])
+ elseif button.cat == "debuff" then
+ buffDuration:SetTextColor(VCB_SAVE["Timer_below_60_color_r"],VCB_SAVE["Timer_below_60_color_g"],VCB_SAVE["Timer_below_60_color_b"],VCB_SAVE["DBF_TIMER_fontopacity"])
+ end
+ else
+ if button.cat == "buff" then
+ buffDuration:SetTextColor(VCB_SAVE["BF_TIMER_fontcolor_r"],VCB_SAVE["BF_TIMER_fontcolor_g"],VCB_SAVE["BF_TIMER_fontcolor_b"],VCB_SAVE["BF_TIMER_fontopacity"])
+ elseif button.cat == "debuff" then
+ buffDuration:SetTextColor(VCB_SAVE["DBF_TIMER_fontcolor_r"],VCB_SAVE["DBF_TIMER_fontcolor_g"],VCB_SAVE["DBF_TIMER_fontcolor_b"],VCB_SAVE["DBF_TIMER_fontopacity"])
+ end
+ end
+ buffDuration:SetText(VCB_BF_GetDuration(timeLeft))
+ buffDuration:Show()
+ else
+ buffDuration:Hide()
+ end
+ -- keep the visible tooltip's countdown fresh while hovering
+ if ( GameTooltip:IsOwned(button) and buffIndex and buffIndex >= 0 ) then
+ GameTooltip:SetPlayerBuff(buffIndex);
+ end
+ end
+end
+
+function VCB_BF_GETBUTTONALPHA(button)
+ local a = 1
+ if button.cat == "debuff" then
+ a = VCB_SAVE["DBF_GENERAL_bgopacity"]
+ elseif button.cat == "buff" then
+ if button:GetParent() == VCB_BF_BUFF_FRAME then
+ a = VCB_SAVE["BF_GENERAL_bgopacity"]
+ else
+ a = VCB_SAVE["CF_AURA_bgopacity"]
+ end
+ end
+ return a
+end
+
+function VCB_BF_BUFF_BUTTON_OnClick(button)
+ if button.cat == "buff" then
+ CancelPlayerBuff(button.buffIndex)
+ end
+end
+
+function VCB_BF_WEAPON_BUTTON_OnEvent(bool)
+ local hasMainHandEnchant, mainHandExpiration, mainHandCharges, hasOffHandEnchant, offHandExpiration, offHandCharges = GetWeaponEnchantInfo();
+ local u = 0
+ if hasMainHandEnchant then u = u + 1 end
+ if hasOffHandEnchant then u = u + 1 end
+ if (not VCB_SAVE["CF_icon_attach"]) then u = u - 1 end
+ if VCB_SAVE["WP_GENERAL_attach"] then
+ VCB_BF_CONSOLIDATED_ICON:ClearAllPoints()
+ if VCB_SAVE["BF_GENERAL_verticalmode"] then
+ if VCB_SAVE["BF_GENERAL_invertorientation"] then
+ VCB_BF_CONSOLIDATED_ICON:SetPoint("TOPLEFT", VCB_BF_BUFF_FRAME, "BOTTOMLEFT", 0, -(44+VCB_SAVE["BF_GENERAL_padding_v"])*(u-1)) -- WHY?!
+ else
+ VCB_BF_CONSOLIDATED_ICON:SetPoint("TOPRIGHT", VCB_BF_BUFF_FRAME, "BOTTOMRIGHT", 0, -(44+VCB_SAVE["BF_GENERAL_padding_v"])*(u-1))
+ end
+ else
+ if VCB_SAVE["BF_GENERAL_invertorientation"] then
+ VCB_BF_CONSOLIDATED_ICON:SetPoint("TOPLEFT", (32+VCB_SAVE["BF_GENERAL_padding_h"])*u, 0)
+ else
+ VCB_BF_CONSOLIDATED_ICON:SetPoint("TOPRIGHT", -(32+VCB_SAVE["BF_GENERAL_padding_h"])*u, 0)
+ end
+ end
+ end
+
+ if (not hasMainHandEnchant) and hasOffHandEnchant then -- Performance (?)
+ VCB_BF_WEAPON_BUTTON0:ClearAllPoints()
+ VCB_BF_WEAPON_BUTTON1:ClearAllPoints()
+ if VCB_SAVE["WP_GENERAL_attach"] then
+ if VCB_SAVE["BF_GENERAL_invertorientation"] then
+ if VCB_SAVE["BF_GENERAL_verticalmode"] then
+ VCB_BF_WEAPON_BUTTON0:SetPoint("TOPLEFT", VCB_BF_WEAPON_FRAME, "TOPLEFT", 0, -(44+VCB_SAVE["BF_GENERAL_padding_v"]))
+ VCB_BF_WEAPON_BUTTON1:SetPoint("TOPLEFT", VCB_BF_WEAPON_FRAME, "TOPLEFT", 0, 0)
+ else
+ VCB_BF_WEAPON_BUTTON0:SetPoint("TOPLEFT", VCB_BF_WEAPON_FRAME, "TOPLEFT",(32+VCB_SAVE["BF_GENERAL_padding_h"]), 0)
+ VCB_BF_WEAPON_BUTTON1:SetPoint("TOPLEFT", VCB_BF_WEAPON_FRAME, "TOPLEFT", 0, 0)
+ end
+ else
+ if VCB_SAVE["BF_GENERAL_verticalmode"] then
+ VCB_BF_WEAPON_BUTTON0:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", 0, -(44+VCB_SAVE["BF_GENERAL_padding_v"]))
+ VCB_BF_WEAPON_BUTTON1:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", 0, 0)
+ else
+ VCB_BF_WEAPON_BUTTON0:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT",-(32+VCB_SAVE["BF_GENERAL_padding_h"]), 0)
+ VCB_BF_WEAPON_BUTTON1:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", 0, 0)
+ end
+ end
+ else
+ if VCB_SAVE["WP_GENERAL_invert"] then
+ VCB_BF_WEAPON_BUTTON1:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT",-(32+VCB_SAVE["WP_GENERAL_padding_h"]), 0)
+ VCB_BF_WEAPON_BUTTON0:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", 0, 0)
+ else
+ VCB_BF_WEAPON_BUTTON0:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT",-(32+VCB_SAVE["WP_GENERAL_padding_h"]), 0)
+ VCB_BF_WEAPON_BUTTON1:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", 0, 0)
+ end
+ end
+ else
+ VCB_BF_WEAPON_BUTTON0:ClearAllPoints()
+ VCB_BF_WEAPON_BUTTON1:ClearAllPoints()
+ if VCB_SAVE["WP_GENERAL_attach"] then
+ if VCB_SAVE["BF_GENERAL_invertorientation"] then
+ if VCB_SAVE["BF_GENERAL_verticalmode"] then
+ VCB_BF_WEAPON_BUTTON1:SetPoint("TOPLEFT", VCB_BF_WEAPON_FRAME, "TOPLEFT", 0, -(44+VCB_SAVE["BF_GENERAL_padding_v"]))
+ VCB_BF_WEAPON_BUTTON0:SetPoint("TOPLEFT", VCB_BF_WEAPON_FRAME, "TOPLEFT", 0, 0)
+ else
+ VCB_BF_WEAPON_BUTTON1:SetPoint("TOPLEFT", VCB_BF_WEAPON_FRAME, "TOPLEFT",(32+VCB_SAVE["BF_GENERAL_padding_h"]), 0)
+ VCB_BF_WEAPON_BUTTON0:SetPoint("TOPLEFT", VCB_BF_WEAPON_FRAME, "TOPLEFT", 0, 0)
+ end
+ else
+ if VCB_SAVE["BF_GENERAL_verticalmode"] then
+ VCB_BF_WEAPON_BUTTON1:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", 0, -(44+VCB_SAVE["BF_GENERAL_padding_v"]))
+ VCB_BF_WEAPON_BUTTON0:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", 0, 0)
+ else
+ VCB_BF_WEAPON_BUTTON1:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT",-(32+VCB_SAVE["BF_GENERAL_padding_h"]), 0)
+ VCB_BF_WEAPON_BUTTON0:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", 0, 0)
+ end
+ end
+ else
+ if VCB_SAVE["WP_GENERAL_invert"] then
+ VCB_BF_WEAPON_BUTTON0:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", -(32+VCB_SAVE["WP_GENERAL_padding_h"]), 0)
+ VCB_BF_WEAPON_BUTTON1:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", 0, 0)
+ else
+ VCB_BF_WEAPON_BUTTON1:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", -(32+VCB_SAVE["WP_GENERAL_padding_h"]), 0)
+ VCB_BF_WEAPON_BUTTON0:SetPoint("TOPRIGHT", VCB_BF_WEAPON_FRAME, "TOPRIGHT", 0, 0)
+ end
+ end
+ end
+ if VCB_SAVE["WP_GENERAL_attach"] and (bool) then
+ VCB_BF_RepositioningAndResizing()
+ end
+ VCB_BF_WEAPON_BUTTON_OnUpdate(2.0)
+end
+
+function VCB_BF_WEAPON_BUTTON_OnUpdate(elapsed)
+ timeSinceWeaponUpdate = timeSinceWeaponUpdate + elapsed
+ if(timeSinceWeaponUpdate > UPDATETIME) then
+ local hasMainHandEnchant, mainHandExpiration, mainHandCharges, hasOffHandEnchant, offHandExpiration, offHandCharges = GetWeaponEnchantInfo();
+ if(hasMainHandEnchant or VCB_BF_DUMMY_MODE) then
+ local textureName = GetInventoryItemTexture("player", 16)
+ if (VCB_BF_DUMMY_MODE == false) then
+ VCB_BF_WEAPON_BUTTON0Icon:SetTexture(textureName)
+ VCB_BF_WEAPON_BUTTON0Duration:SetText(VCB_BF_GetDuration(mainHandExpiration/1000))
+ else
+ VCB_BF_WEAPON_BUTTON0Duration:SetText(VCB_BF_GetDuration(random(1,150)+(random(1,99)/100)))
+ mainHandCharges = 100
+ end
+ VCB_BF_WEAPON_BUTTON0Border:SetVertexColor(VCB_SAVE["WP_BORDER_bordercolor_r"],VCB_SAVE["WP_BORDER_bordercolor_g"],VCB_SAVE["WP_BORDER_bordercolor_b"],VCB_SAVE["WP_BORDER_borderopacity"])
+ VCB_BF_WEAPON_BUTTON0Duration:Show()
+ if(mainHandCharges > 0) then
+ VCB_BF_WEAPON_BUTTON0Count:SetText(mainHandCharges)
+ VCB_BF_WEAPON_BUTTON0Count:Show()
+ else
+ VCB_BF_WEAPON_BUTTON0Count:Hide()
+ end
+ VCB_BF_WEAPON_BUTTON0:SetID(16)
+ VCB_BF_WEAPON_BUTTON0:Show()
+ elseif (VCB_BF_LOCKED) then
+ if (VCB_BF_DUMMY_MODE == false) then
+ VCB_BF_WEAPON_BUTTON0:Hide()
+ end
+ else
+ VCB_BF_WEAPON_BUTTON0Icon:SetTexture(nil)
+ end
+
+ if(hasOffHandEnchant or VCB_BF_DUMMY_MODE) then
+ local textureName = GetInventoryItemTexture("player", 17)
+ if (VCB_BF_DUMMY_MODE == false) then
+ VCB_BF_WEAPON_BUTTON1Icon:SetTexture(textureName)
+ VCB_BF_WEAPON_BUTTON1Duration:SetText(VCB_BF_GetDuration(offHandExpiration/1000))
+ else
+ VCB_BF_WEAPON_BUTTON1Duration:SetText(VCB_BF_GetDuration(random(1,15)+(random(1,99)/100)))
+ offHandCharges = 100
+ end
+ VCB_BF_WEAPON_BUTTON1Border:SetVertexColor(VCB_SAVE["WP_BORDER_bordercolor_r"],VCB_SAVE["WP_BORDER_bordercolor_g"],VCB_SAVE["WP_BORDER_bordercolor_b"],VCB_SAVE["WP_BORDER_borderopacity"])
+ VCB_BF_WEAPON_BUTTON1Duration:Show()
+ if(offHandCharges > 0) then
+ VCB_BF_WEAPON_BUTTON1Count:SetText(offHandCharges)
+ VCB_BF_WEAPON_BUTTON1Count:Show()
+ else
+ VCB_BF_WEAPON_BUTTON1Count:Hide()
+ end
+ VCB_BF_WEAPON_BUTTON1:SetID(17)
+ VCB_BF_WEAPON_BUTTON1:Show()
+ elseif(VCB_BF_LOCKED) then
+ if (VCB_BF_DUMMY_MODE == false) then
+ VCB_BF_WEAPON_BUTTON1:Hide()
+ end
+ else
+ VCB_BF_WEAPON_BUTTON1Icon:SetTexture(nil)
+ end
+
+ timeSinceWeaponUpdate = 0
+ end
+end
+
+-- Timer text formatter.
+-- Same options as before; the h:m, m:s and h:m:s combinations used to produce
+-- wrong or negative numbers (e.g. "1:1800:0 h") and the tenths were unformatted.
+function VCB_BF_GetDuration(timeLeft)
+ if not VCB_IS_LOADED then return nil end
+ local t = timeLeft or 0
+ if t < 0 then t = 0 end
+ local sS, sM, sH = " s", " m", " h"
+ if VCB_SAVE["Timer_disableUnit"] then sS, sM, sH = "", "", "" end
+ local R = floor
+ if VCB_SAVE["Timer_round"] then R = ceil end
+ local fmt = string.format
+
+ if VCB_SAVE["Timer_minutes"] and t > 60 then
+ if VCB_SAVE["Timer_hours"] and t > 3600 then
+ if VCB_SAVE["Timer_hours_convert"] then
+ if VCB_SAVE["Timer_minutes_convert"] then
+ local total = R(t) -- h:mm:ss
+ return fmt("%d:%02d:%02d", floor(total/3600), floor(mod(total, 3600)/60), mod(total, 60))..sH
+ else
+ local mins = R(t/60) -- h:mm
+ return fmt("%d:%02d", floor(mins/60), mod(mins, 60))..sH
+ end
+ else
+ return R(t/3600)..sH
+ end
+ else
+ if VCB_SAVE["Timer_minutes_convert"] then
+ local total = R(t)
+ if VCB_SAVE["Timer_hours_convert"] then
+ return fmt("0:%02d:%02d", floor(total/60), mod(total, 60))..sH
+ else
+ return fmt("%d:%02d", floor(total/60), mod(total, 60))..sM
+ end
+ else
+ if VCB_SAVE["Timer_hours_convert"] then
+ return fmt("0:%02d", R(t/60))..sH
+ else
+ return R(t/60)..sM
+ end
+ end
+ end
+ else
+ local secs, hund = R(t), 0
+ if VCB_SAVE["Timer_tenth"] then
+ secs = floor(t)
+ hund = floor((t - secs)*100 + 0.0001) -- epsilon for float error
+ if hund > 99 then hund = 99 end
+ end
+ if VCB_SAVE["Timer_minutes_convert"] then
+ if VCB_SAVE["Timer_tenth"] then
+ return fmt("0:%02d:%02d", secs, hund)..sM
+ else
+ return fmt("0:%02d", secs)..sM
+ end
+ else
+ if VCB_SAVE["Timer_tenth"] then
+ return fmt("%d:%02d", secs, hund)..sS
+ else
+ return secs..sS
+ end
+ end
+ end
+end
+
+function VCB_BF_ToggleLock()
+ if (not VCB_BF_LOCKED) then
+ VCB_BF_LOCKED = true
+ VCB_BF_Lock(true)
+ VCB_SendMessage(VCB_LOCKED_FRAMES)
+ VCB_SAVEFRAMEPOS()
+ else
+ VCB_SAVEFRAMEPOS()
+ VCB_BF_LOCKED = false
+ VCB_BF_Lock(false)
+ VCB_SendMessage(VCB_UNLOCKED_FRAMES)
+ end
+end
+
+function VCB_BF_Lock(lock)
+ for cat, templateName in pairs(VCB_BUTTONNAME) do
+ for i=VCB_MININDEX[cat], VCB_MAXINDEX[cat] do
+ -- TWOW Fix: Added nil checks to prevent crashes when accessing frames
+ local button = getglobal(templateName..i)
+ local ghostLabel = getglobal(templateName..i.."_Ghost_Label")
+ local ghostTexture = getglobal(templateName..i.."_Ghost_Texture")
+
+ if button and ghostLabel and ghostTexture then
+ if (lock) then
+ ghostLabel:Hide()
+ ghostTexture:Hide()
+ else
+ button:Show()
+ ghostLabel:Show()
+ ghostTexture:Show()
+ end
+ end
+ end
+ end
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_DummyConfigMode_Enable()
+ VCB_BF_DUMMY_MODE = true
+ for cat, templateName in pairs(VCB_BUTTONNAME) do
+ for i=VCB_MININDEX[cat], VCB_MAXINDEX[cat] do
+ local button = getglobal(templateName..i)
+ -- TWOW Fix: Skip if button doesn't exist
+ if not button then
+ break
+ end
+ local icon = getglobal(templateName..i.."Icon")
+ local buffDuration = getglobal(templateName..i.."Duration")
+ local border = getglobal(templateName..i.."Border")
+ local count = getglobal(templateName..i.."Count")
+ icon:SetTexture("Interface\\AddOns\\VCB\\images\\dummy.tga")
+ if i < 7 and cat == "buff" and (not VCB_SAVE["MISC_disable_CF"]) then
+ button:SetParent(VCB_BF_CONSOLIDATED_BUFFFRAME)
+ end
+ if cat == "buff" then
+ if button:GetParent() == VCB_BF_CONSOLIDATED_BUFFFRAME then
+ border:SetVertexColor(VCB_SAVE["CF_AURA_bordercolor_r"],VCB_SAVE["CF_AURA_bordercolor_g"],VCB_SAVE["CF_AURA_bordercolor_b"],VCB_SAVE["CF_AURA_borderopacity"])
+ elseif button:GetParent() == VCB_BF_BUFF_FRAME then
+ border:SetVertexColor(VCB_SAVE["BF_BORDER_bordercolor_r"],VCB_SAVE["BF_BORDER_bordercolor_g"],VCB_SAVE["BF_BORDER_bordercolor_b"],VCB_SAVE["BF_BORDER_borderopacity"])
+ end
+ elseif cat == "debuff" and VCB_SAVE["DBF_BORDER_enableborder"] then
+ if VCB_SAVE["DBF_GENERAL_invert"] then
+ local j = 15-i
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):ClearAllPoints()
+ if VCB_SAVE["DBF_GENERAL_invertorientation"] then
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", (32+VCB_SAVE["DBF_GENERAL_padding_h"])*i - floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ else
+ if VCB_SAVE["DBF_GENERAL_verticalmode"] then
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(44+VCB_SAVE["DBF_GENERAL_padding_v"]))
+ else
+ getglobal("VCB_BF_DEBUFF_BUTTON"..j):SetPoint("TOPRIGHT", -(32+VCB_SAVE["DBF_GENERAL_padding_h"])*i + floor(i/VCB_SAVE["DBF_GENERAL_numperrow"])*VCB_SAVE["DBF_GENERAL_numperrow"]*(32+VCB_SAVE["DBF_GENERAL_padding_h"]), -(44+VCB_SAVE["DBF_GENERAL_padding_v"])*floor(i/VCB_SAVE["DBF_GENERAL_numperrow"]))
+ end
+ end
+ end
+ if i < 3 then
+ border:SetVertexColor(VCB_SAVE["DBF_BORDER_nonecolor_r"],VCB_SAVE["DBF_BORDER_nonecolor_g"],VCB_SAVE["DBF_BORDER_nonecolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ elseif i >= 3 and i < 6 then
+ border:SetVertexColor(VCB_SAVE["DBF_BORDER_poisoncolor_r"],VCB_SAVE["DBF_BORDER_poisoncolor_g"],VCB_SAVE["DBF_BORDER_poisoncolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ elseif i >= 6 and i < 9 then
+ border:SetVertexColor(VCB_SAVE["DBF_BORDER_magiccolor_r"],VCB_SAVE["DBF_BORDER_magiccolor_g"],VCB_SAVE["DBF_BORDER_magiccolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ elseif i >= 9 and i < 12 then
+ border:SetVertexColor(VCB_SAVE["DBF_BORDER_cursecolor_r"],VCB_SAVE["DBF_BORDER_cursecolor_g"],VCB_SAVE["DBF_BORDER_cursecolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ else
+ border:SetVertexColor(VCB_SAVE["DBF_BORDER_diseasecolor_r"],VCB_SAVE["DBF_BORDER_diseasecolor_g"],VCB_SAVE["DBF_BORDER_diseasecolor_b"],VCB_SAVE["DBF_BORDER_borderopacity"])
+ end
+ end
+ count:SetText(5)
+ count:Show()
+ button:Show()
+ end
+ end
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_DummyConfigMode_Disable()
+ VCB_BF_DUMMY_MODE = false
+ for cat, templateName in pairs(VCB_BUTTONNAME) do
+ for i=VCB_MININDEX[cat], VCB_MAXINDEX[cat] do
+ local button = getglobal(templateName..i)
+ -- TWOW Fix: Check if button exists before updating
+ if button then
+ VCB_BF_BUFF_BUTTON_Update(button)
+ end
+ end
+ end
+ VCB_BF_WEAPON_BUTTON_OnEvent(false)
+ VCB_BF_RepositioningAndResizing()
+end
+
+function VCB_BF_updateBuffs()
+ for i=0,VCB_MAXINDEX.buff do
+ local button = getglobal("VCB_BF_BUFF_BUTTON"..i)
+ -- TWOW Fix: Check if button exists before updating
+ if button then
+ VCB_BF_BUFF_BUTTON_Update(button)
+ end
+ end
+end
+
+function VCB_BF_ConsolidatedAdd(name)
+ if not VCB_Contains(Consolidated_Buffs, name) then
+ table.insert(Consolidated_Buffs, name)
+ VCB_SendMessage(name..VCB_HAS_BEEN_ADDED)
+ else
+ VCB_SendMessage(name..VCB_IS_ALREADY_IN_LIST)
+ end
+ VCB_BF_updateBuffs()
+end
+
+function VCB_BF_ConsolidatedRemove(name)
+ if VCB_Contains(Consolidated_Buffs, name) then
+ table.remove(Consolidated_Buffs, VCB_Table_GetKeys(Consolidated_Buffs, name))
+ VCB_SendMessage(name..VCB_HAS_BEEN_REMOVED)
+ else
+ VCB_SendMessage(name..VCB_IS_NOT_IN_LIST)
+ end
+ VCB_BF_updateBuffs()
+end
+
+function VCB_BF_RemoveAllFromConsolidate()
+ Consolidated_Buffs = {}
+ VCB_SendMessage(VCB_CB_LIST_EMPTIED)
+ VCB_BF_updateBuffs()
+end
+
+function VCB_BF_AddToBanned(name)
+ if not VCB_Contains(Banned_Buffs, name) then
+ table.insert(Banned_Buffs, name)
+ VCB_SendMessage(name..VCB_HAS_BEEN_ADDED)
+ else
+ VCB_SendMessage(name..VCB_IS_ALREADY_IN_LIST)
+ end
+ VCB_BF_updateBuffs()
+end
+
+function VCB_BF_RemoveFromBanned(name)
+ if VCB_Contains(Banned_Buffs, name) then
+ table.remove(Banned_Buffs, VCB_Table_GetKeys(Banned_Buffs, name))
+ VCB_SendMessage(name..VCB_HAS_BEEN_REMOVED)
+ else
+ VCB_SendMessage(name..VCB_IS_NOT_IN_LIST)
+ end
+end
+
+function VCB_BF_RemoveAllFromBanned()
+ Banned_Buffs = {}
+ VCB_SendMessage(VCB_BB_LIST_EMPTIED)
+end
\ No newline at end of file
diff --git a/VCB_Buffframe.xml b/VCB_Buffframe.xml
new file mode 100644
index 0000000..af22e7b
--- /dev/null
+++ b/VCB_Buffframe.xml
@@ -0,0 +1,416 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ this:SetClampedToScreen(true)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ this:SetClampedToScreen(true)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ this:SetClampedToScreen(true)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_CONSOLIDATED_ICONIcon:SetTexture(nil)
+ VCB_BF_CONSOLIDATED_ICONIcon:SetTexture("Interface\\AddOns\\VCB\\images\\"..VCB_SAVE["CF_icon_texture"].."_hover.tga")
+ if (not VCB_BF_CF_FRAME:IsVisible()) and (not VCB_BF_CF_FRAME2:IsVisible()) and (VCB_BF_LOCKED) then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:Show()
+ end
+
+
+ VCB_BF_CONSOLIDATED_ICONIcon:SetTexture(nil)
+ VCB_BF_CONSOLIDATED_ICONIcon:SetTexture("Interface\\AddOns\\VCB\\images\\"..VCB_SAVE["CF_icon_texture"]..".tga")
+ if (not VCB_BF_CF_FRAME:IsVisible()) and (not VCB_BF_CF_FRAME2:IsVisible()) then
+ VCB_BF_CONSOLIDATED_BUFFFRAME:Hide()
+ end
+
+
+ if (not VCB_BF_LOCKED) and VCB_IS_LOADED then
+ if (not VCB_SAVE["CF_icon_attach"]) then
+ this:StartMoving()
+ else
+ VCB_BF_BUFF_FRAME:StartMoving()
+ end
+ end
+
+
+ if (not VCB_BF_LOCKED) and VCB_IS_LOADED then
+ if (not VCB_SAVE["CF_icon_attach"]) then
+ this:StopMovingOrSizing()
+ else
+ VCB_BF_BUFF_FRAME:StopMovingOrSizing()
+ end
+ end
+
+
+ this:SetClampedToScreen(true)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if (not VCB_BF_CF_FRAME:IsVisible()) and (not VCB_BF_CF_FRAME2:IsVisible()) and (VCB_BF_LOCKED) then
+ this:Show()
+ end
+
+
+ if (not VCB_BF_CF_FRAME:IsVisible()) and (not VCB_BF_CF_FRAME2:IsVisible()) then
+ this:Hide()
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCB_BF_OnLoad()
+
+
+
+
\ No newline at end of file
diff --git a/images/dummy.tga b/images/dummy.tga
new file mode 100644
index 0000000..0ef924a
Binary files /dev/null and b/images/dummy.tga differ
diff --git a/images/icon.tga b/images/icon.tga
new file mode 100644
index 0000000..787a34c
Binary files /dev/null and b/images/icon.tga differ
diff --git a/images/icon_hover.tga b/images/icon_hover.tga
new file mode 100644
index 0000000..861b593
Binary files /dev/null and b/images/icon_hover.tga differ
diff --git a/localization/deDE.lua b/localization/deDE.lua
new file mode 100644
index 0000000..ada4c18
--- /dev/null
+++ b/localization/deDE.lua
@@ -0,0 +1,227 @@
+if (GetLocale() == "deDE") then
+ VCB_MAIN_NAME = "Vanilla Consolidate Buff-Frames"
+ VCB_MAIN_VERSION = "v4.1"
+ VCB_MINIMAP_TOOLTIP_NAME = "Vanilla Consolidate Buff-Frames"
+ VCB_MINIMAP_TOOLTIP_LEFTCLICK = "Linksklick: Zeige/ Verstecke das Menü"
+ VCB_MINIMAP_TOOLTIP_RIGHTCLICK = "Rechtsklick: (Un)/fixiere die Fenster"
+ VCB_MINIMAP_TOOLTIP_DRAG = "Ziehen: Bewege den MiniMap Button"
+ VCB_TOP_BUTTON_CLOSE = "Schließe das Menü"
+ VCB_TOP_BUTTON_LOCK = "(un)/fixiere die Fenster"
+ VCB_TOP_BUTTON_MINIMAP = "Zeige/ Verstecke den MiniMap Button"
+ VCB_TOP_BUTTON_DUMMY = "Zeige/ Verstecke die Dummy Buttons"
+ VCB_MENU_HEAD = "MENÜ"
+ VCB_MENU_BUTTON1_LINK = "Konsolidierte Buffs"
+ VCB_MENU_BUTTON1_NAME = "Konsolidierte Buffs"
+ VCB_MENU_BUTTON2_LINK = "Verbannte Buffs"
+ VCB_MENU_BUTTON2_NAME = "Verbannte Buffs"
+ VCB_MENU_BUTTON3_LINK = "Timer"
+ VCB_MENU_BUTTON3_NAME = "Timer"
+ VCB_MENU_BUTTON4_LINK = "Konsolidierte Optionsmenü -1-"
+ VCB_MENU_BUTTON4_LINK2 = "Konsolidierte Optionsmenü -2-"
+ VCB_MENU_BUTTON4_NAME = "Konsolidierte Optionsmenü"
+ VCB_MENU_BUTTON5_LINK = "Buff-Fenster -1-"
+ VCB_MENU_BUTTON5_LINK2 = "Buff-Fenster -2-"
+ VCB_MENU_BUTTON5_NAME = "Buff-Fenster"
+ VCB_MENU_BUTTON6_LINK = "Debuff-Fenster -1-"
+ VCB_MENU_BUTTON6_LINK2 = "Debuff-Fenster -2-"
+ VCB_MENU_BUTTON6_NAME = "Debuff-Fenster"
+ VCB_MENU_BUTTON7_LINK = "Waffenfenster -1-"
+ VCB_MENU_BUTTON7_NAME = "Waffenfenster"
+ VCB_MENU_BUTTON8_LINK = "Profilmanager"
+ VCB_MENU_BUTTON8_NAME = "Profilmanager"
+ VCB_MENU_BUTTON9_LINK = "Sonstiges"
+ VCB_MENU_BUTTON9_NAME = "Sonstiges"
+ VCB_MENU_BUTTON10_LINK = "über VCB"
+ VCB_MENU_BUTTON10_NAME = "über VCB"
+ VCB_CONFIG_FRAME_TITLE_ONLOAD = "Konsolidierte Buffs"
+ VCB_CB_BB_FRAME_LEFT_INSERT = "Füge einen Buffnamen ein:"
+ VCB_CB_BB_FRAME_LEFT_DELETE = "Ausgewählte Aura:"
+ VCB_CB_BB_FRAME_LEFT_ADD = "Hinzufügen"
+ VCB_CB_BB_FRAME_LEFT_DELETE_BUTTON = "Löschen"
+ VCB_CB_BB_FRAME_LEFT_RA = "Alles löschen"
+ VCB_TIMER_FRAME_SHOW_HOURS = "Zeige Stunden"
+ VCB_TIMER_FRAME_SHOW_HOURS_TOOLTIP = "Kreuze das an, um die angezeigte Zeit in Stunden umzuwandeln, wenn mehr als 3600 Sekunden verbleiben."
+ VCB_TIMER_FRAME_SHOW_HOURS_CONVERT = "Zeige Stunden und Minuten (h:m)"
+ VCB_TIMER_FRAME_SHOW_HOURS_CONVERT_TOOLTIP = "Kreuze das an, um Stunden und Minuten zu zeigen. Zum Beispiel: 1:34h."
+ VCB_TIMER_FRAME_SHOW_MINUTES = "Zeige Minuten"
+ VCB_TIMER_FRAME_SHOW_MINUTES_TOOLTIP = "Kreuze das an, um die angezeigte Zeit in Minuten umzuwandeln, wenn mehr als 60 Sekunden verbleiben."
+ VCB_TIMER_FRAME_SHOW_MINUTES_CONVERT = "Zeige Minuten und Sekunden (m:s)"
+ VCB_TIMER_FRAME_SHOW_MINUTES_CONVERT_TOOLTIP = "Kreuze das an, um Minuten und Sekunden zu zeigen. Zun Beispiel: 10:34m."
+ VCB_TIMER_FRAME_SHOW_TENTH = "Zeige Zehntel in den letzten 60 Sekunden"
+ VCB_TIMER_FRAME_SHOW_TENTH_TOOLTIP = "Kreuze das an, um Zehntel zu zeigen. Zum Beispiel: 10:44s."
+ VCB_TIMER_FRAME_ROUND_DOWN = "Abrunden"
+ VCB_TIMER_FRAME_ROUND_DOWN_TOOLTIP = "Kreuze das an, um die verbleibende Zeit abzurunden. Zum Beispiel: 70 Sekunden -> 1 Minute."
+ VCB_TIMER_FRAME_ROUND_UP = "Aufrunden"
+ VCB_TIMER_FRAME_ROUND_UP_TOOLTIP = "Kreuze das an, um die verbleibende Zeit aufzurunden. Zum Beispiel: 70 Sekunden -> 2 Minuten."
+ VCB_TIMER_FRAME_FLASH = "Aktiviere Blink-Animation"
+ VCB_TIMER_FRAME_FLASH_TOOLTIP = "Kreuze das an, um die Blink-Animation zu aktivieren, wenn weniger als 30 Sekunden verbleiben."
+ VCB_TIMER_FRAME_COLOR_BELOW_60 = "Farbe unter 60s"
+ VCB_TIMER_FRAME_COLOR_BELOW_60_TOOLTIP = "Kreuze das an, um die Farbe zu ändern, wenn weniger als 60s verbleiben."
+ VCB_CF_FRAME_POSSIBLE_BUFFS = "Zeige die Anzahl an möglichen Buffs"
+ VCB_CF_FRAME_POSSIBLE_BUFFS_TOOLTIP = "Kreuze das an, um die Anzahl an möglichen Buffs anzeigen zu lassen, die theoretisch konsolidiert sein könnten."
+ VCB_CF_FRAME_SHOW_PB_GRAYED_OUT = "Zeige fehlende Buffs (ausgegraut)"
+ VCB_CF_FRAME_SHOW_PB_GRAYED_OUT_TOOLTIP = "Kreuze das an, um mögliche konsolidierte Buffs anzeigen zu lassen"
+ VCB_CF_FRAME_ICON_OPACITY = "Symbol-Transparenz"
+ VCB_CF_FRAME_ICON_OPACITY_TOOLTIP = "Bewege das, um die Transparenz des Symboles zu änderen."
+ VCB_CF_FRAME_ICON_TEXTURE = "Textur"
+ VCB_CF_FRAME_ICON_TEXTURE_TOOLTIP = "Bewege das, um die Texture des Symboles zu ändern."
+ VCB_CF_FRAME_BF_ANCHOR = "Angelpunkt"
+ VCB_CF_FRAME_BF_ANCHOR_TOOLTIP = "Bewege das, um den Angelpunkt des Buff-Fensters zum Symbol zu ändern."
+ VCB_CF_FRAME_BF_BACKGROUND = "Hintergrund"
+ VCB_CF_FRAME_BF_BACKGROUND_TOOLTIP = "Bewege das, um die Hintergrundtexture zu ändern."
+ VCB_CF_FRAME_BF_CUSTOM_BACKGROUND_PATH = "Eigener Hintergrundpfad:"
+ VCB_DBF_FRAME_COLOR_NONE = "Nichts"
+ VCB_DBF_FRAME_COLOR_NONE_TOOLTIP = "Klicke hier, um die Farbe der Umrandung zu ändern, wenn du einen unspezifizierten Debuff hast."
+ VCB_DBF_FRAME_COLOR_POISON = "Gift"
+ VCB_DBF_FRAME_COLOR_POISON_TOOLTIP = "Klicke hier, um die Farbe der Umrandung zu ändern, wenn du einen als Gift spezifizierten Debuff hast."
+ VCB_DBF_FRAME_COLOR_MAGIC = "Magie"
+ VCB_DBF_FRAME_COLOR_MAGIC_TOOLTIP = "Klicke hier, um die Farbe der Umrandung zu ändern, wenn du einen als Magie spezifizierten Debuff hast."
+ VCB_DBF_FRAME_COLOR_CURSE = "Fluch"
+ VCB_DBF_FRAME_COLOR_CURSE_TOOLTIP = "Klicke hier, um die Farbe der Umrandung zu ändern, wenn du einen als Fluch spezifizierten Debuff hast."
+ VCB_DBF_FRAME_COLOR_DISEASE = "Krankheit"
+ VCB_DBF_FRAME_COLOR_DISEASE_TOOLTIP = "Klicke hier, um die Farbe der Umrandung zu ändern, wenn du einen als Krankheit spezifizierten Debuff hast."
+ VCB_WP_FRAME_ATTACH_TO_BF_FRAME = "An das Buff-Fenster anheften"
+ VCB_WP_FRAME_ATTACH_TO_BF_FRAME_TOOLTIP = "Kreuze das an, um das Waffenfenster an das Buff-Fenster anzuheften. Das Waffenfenster wird dann als Buff-Fenster behandelt."
+ VCB_PM_FRAME_LEFT_INSERT_TEXT = "Füge einen namen ein:"
+ VCB_PM_FRAME_LEFT_SELECT_TEXT = "Ausgewähltes Profil:"
+ VCB_PM_FRAME_LEFT_CURRENT_TEXT = "Momentanes Profil:"
+ VCB_PM_FRAME_LEFT_SAVE_TEXT = "Speichern"
+ VCB_PM_FRAME_LEFT_DELETE_TEXT = "Löschen"
+ VCB_MISC_FRAME_TEXT_DISABLE_CF = "Deaktiviere die konsolidierende Mechanik"
+ VCB_MISC_FRAME_TEXT_DISABLE_CF_TOOLTIP = "Kreue das an, um die konsolidierende Mechanik zu deaktivieren. Das AddOn wird dann als erweitertes normales Buff-Modul fungieren."
+ VCB_MISC_FRAME_TEXT_DISABLE_BB = "Deaktiviere die Verbannungs-Mechanik"
+ VCB_MISC_FRAME_TEXT_DISABLE_BB_TOOLTIP = "Kreuze das an, um die Verbannungs-Mechanik zu deaktivieren."
+ VCB_MISC_FRAME_TEXT_THEME = "Thema"
+ VCB_MISC_FRAME_TEXT_THEME_TOOLTIP = "Bewege das, um das Theme auszuwählen. Klicke anschließend auf Load, um das Thema zu laden."
+
+ VCB_COMMON_COLOR_FONTCOLOR = "Wähle eine Schriftfarbe aus"
+ VCB_COMMON_COLOR_FONTCOLOR_TOOLTIP = "Klicke hier, um die Schriftfarbe zu ändern."
+ VCB_COMMON_COLOR_BORDERCOLOR = "Wähle eine Umrandungsfarbe aus"
+ VCB_COMMON_COLOR_BORDERCOLOR_TOOLTIP = "Klicke hier, um die Umrandungsfarbe zu ändern."
+ VCB_COMMON_COLOR_BACKGROUNDCOLOR = "Wähle eine Hintergrundfarbe aus"
+ VCB_COMMON_COLOR_BACKGROUNDCOLOR_TOOLTIP = "Klicke hier, um die Hintergrundfarbe zu ändern."
+
+ VCB_COMMON_BUTTON_ENABLE_FONT_BORDER = "Schriftumrandung"
+ VCB_COMMON_BUTTON_ENABLE_FONT_BORDER_TOOLTIP = "Kreuze das an, um die Schrift zu umranden."
+ VCB_COMMON_BUTTON_INVERT_ORDER = "Invertiere Reihenfolge"
+ VCB_COMMON_BUTTON_INVERT_ORDER_TOOLTIP = "Kreuze das an, um die Reihenfolge der Auren zu invertieren."
+ VCB_COMMON_BUTTON_USE_CUSTOM_BORDER = "Benutze eigene Umrandung"
+ VCB_COMMON_BUTTON_USE_CUSTOM_BORDER_TOOLTIP = "Kreuze das an, um eine eigene Umrandung zu nutzen."
+ VCB_COMMON_BUTTON_USE_CUSTOM_BACKGROUND = "Benutze eigenen Hintergrund"
+ VCB_COMMON_BUTTON_USE_CUSTOM_BACKGROUND_TOOLTIP = "Kreuze das an, um einen eigen Hintergrund zu nutzen."
+ VCB_COMMON_BUTTON_ENABLE_BORDER = "Umrandung aktivieren"
+ VCB_COMMON_BUTTON_ENABLE_BORDER_TOOLTIP = "Kreuze das an, um eine Umrandung hinzuzufügen"
+ VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR = "Aktiviere Hintergrundfarbe"
+ VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR_TOOLTIP = "Kreuze das an, um die Hintergrundfarbe zu aktivieren."
+ VCB_COMMON_BUTTON_VERTICAL_MODE = "Vertikaler Modus"
+ VCB_COMMON_BUTTON_VERTICAL_MODE_TOOLTIP = "Kreuze das an, um das Modul zu drehen, sodass man es vertikal nutzen kann."
+ VCB_COMMON_BUTTON_INVERT_ORIENTATION = "Invertiere Auraorientierung"
+ VCB_COMMON_BUTTON_INVERT_ORIENTATION_TOOLTIP = "Kreuze das an, um die Orientierung der Auren zu ändern. Damit ist gemeint, dass das Modul gespiegelt wird nach rechts."
+
+ VCB_COMMON_BUTTON_LOAD_TEXT = "Laden"
+
+ VCB_COMMON_SLIDER_FONT_SIZE = "Schriftgröße"
+ VCB_COMMON_SLIDER_FONT_SIZE_TOOLTIP = "Bewege das, um die Schriftgröße zu ändern."
+ VCB_COMMON_SLIDER_FONT = "Schriftart"
+ VCB_COMMON_SLIDER_FONT_TOOLTIP = "Bewege das, um die Schriftart zu ändern."
+ VCB_COMMON_SLIDER_FONT_OPACITY = "Schrift-Transparenz"
+ VCB_COMMON_SLIDER_FONT_OPACITY_TOOLTIP = "Bewege das, um die Transparenz der Schrift zu ändern."
+ VCB_COMMON_SLIDER_SCALE = "Skalar"
+ VCB_COMMON_SLIDER_SCALE_TOOLTIP = "Bewege das, um das Modul zu skaliern."
+ VCB_COMMON_SLIDER_BUFFS_PER_ROW = "Buffs pro Reihe"
+ VCB_COMMON_SLIDER_BUFFS_PER_ROW_TOOLTIP = "Bewege das, um die Anzahl der Auren pro Reihe zu ändern."
+ VCB_COMMON_SLIDER_BACKGROUND_OPACITY = "Hintergrund-Deckkraft"
+ VCB_COMMON_SLIDER_BACKGROUND_OPACITY_TOOLTIP = "Bewege das, um die Deckkraft des Hintergrundes zu ändern."
+ VCB_COMMON_SLIDER_BORDER = "Umrandung"
+ VCB_COMMON_SLIDER_BORDER_TOOLTIP = "Bewege das, um die Texture der Umrandung zu ändern."
+ VCB_COMMON_SLIDER_BORDER_OPACITY = "Umrandungstransparenz"
+ VCB_COMMON_SLIDER_BORDER_OPACITY_TOOLTIP = "Bewege das, um die Deckkraft der Umrandung zu ändern."
+ VCB_COMMON_SLIDER_PADDING_H = "Abstand H"
+ VCB_COMMON_SLIDER_PADDING_H_TOOLTIP = "Bewege das, um den horizontalen Abstand zueinander zu ändern."
+ VCB_COMMON_SLIDER_PADDING_V = "Abstand V"
+ VCB_COMMON_SLIDER_PADDING_V_TOOLTIP = "Bewege das, um den vertikalen Abstand zueinander zu ändern."
+ VCB_COMMON_SLIDER_FONT_OFFSET_X = "Schriftabstand X"
+ VCB_COMMON_SLIDER_FONT_OFFSET_X_TOOLTIP = "Bewege das, um den Schriftabstand in horizontaler Ebene anzupassen."
+ VCB_COMMON_SLIDER_FONT_OFFSET_Y = "Schriftabstand Y"
+ VCB_COMMON_SLIDER_FONT_OFFSET_Y_TOOLTIP = "Bewege das, um den Schriftabstand in vertikaler Ebene anzupassen."
+
+ VCB_COMMON_EDITBOX_CUSTOM_BORDER_PATH = "Eigener Umrandungspfad:"
+
+ VCB_COMMON_PAGE_1 = "Seite 1 von 2"
+ VCB_COMMON_PAGE_2 = "Seite 2 von 2"
+
+ VCB_CAT_GENERAL = "Generell"
+ VCB_CAT_CONSOLIDATED_ICON = "Konsolidiertes Symbol"
+ VCB_CAT_BUFF_FRAME = "Buff Fenster"
+ VCB_CAT_AURA = "Aura"
+ VCB_CAT_AURA_TIMER = "Aura Timer"
+ VCB_CAT_BORDER = "Umrandung"
+ VCB_CAT_ABOUT_1 = "Was ist VCB?"
+ VCB_CAT_ABOUT_2 = "Wer programmierte VCB?"
+ VCB_CAT_ABOUT_3 = "Besonderen Dank an:"
+ VCB_CAT_ABOUT_4 = "Danke für das Unterstützen!"
+
+ VCB_ABOUT_TEXT_1 = "Vanilla Consolidate Buff-Frames (VCB) ist ein intelligentes Aura-Verwaltungs-System. Es verfügt über zahlreichen Funktionen, um das Modul nach eigenen Wünschen zu gestalten. Hauptsächlich verbessert es aber die übersicht, was auch sein Hauptzweck ist."
+ VCB_ABOUT_TEXT_2 = "VCB wurde von Shino (Albea) entwickelt, der auf Kronos (Twinstar.cz) gearbeitet hat. In der Twinstar-Community ist er als Geigerkind bekannt."
+ VCB_ABOUT_TEXT_3 = "Flynn (Twinstar AddOn Master) - Danke für das Helfen am Anfang! Schaka (Author of Questie) - Danke für das Helfen am Anfang! Sinsthar (Author of PowerAuras) - Du hast mich inspiriert ein Interface zu bauen."
+ VCB_ABOUT_TEXT_4 = "Moosic - Testet das AddOn Fender - Frühes Feedback Areina - Half formulieren^^"
+ VCB_ABOUT_TEXT_5 = "Dopefish - Frühes Feedback Helvete - Frühes Feedback Ayz - Feedback early on"
+
+ VCB_CUR_PROFILE_TEXT = "Unbekannt"
+ VCB_CONSOLIDATED_BUFFS_TEXT_1 = "Mal der Wildnis"
+ VCB_CONSOLIDATED_BUFFS_TEXT_2 = "Gabe der Wildnis"
+ VCB_CONSOLIDATED_BUFFS_TEXT_3 = "Machtwort: Seelenstärke"
+ VCB_CONSOLIDATED_BUFFS_TEXT_4 = "Gebet der Seelenstärke"
+ VCB_CONSOLIDATED_BUFFS_TEXT_5 = "Göttlicher Willen"
+ VCB_CONSOLIDATED_BUFFS_TEXT_6 = "Gebet der Willenskraft"
+ VCB_CONSOLIDATED_BUFFS_TEXT_7 = "Schattenschutz"
+ VCB_CONSOLIDATED_BUFFS_TEXT_8 = "Gebet des Schattenschutzes"
+ VCB_CONSOLIDATED_BUFFS_TEXT_9 = "Arkane Intelligenz"
+ VCB_CONSOLIDATED_BUFFS_TEXT_10 = "Arkane Brillanz"
+ VCB_CONSOLIDATED_BUFFS_TEXT_11 = "Großer Segen des Refugiums"
+ VCB_CONSOLIDATED_BUFFS_TEXT_12 = "Großer Segen der Könige"
+ VCB_CONSOLIDATED_BUFFS_TEXT_13 = "Großer Segen der Macht"
+ VCB_CONSOLIDATED_BUFFS_TEXT_14 = "Großer Segen der Rettung"
+ VCB_CONSOLIDATED_BUFFS_TEXT_15 = "Großer Segen der Weisheit"
+ VCB_CONSOLIDATED_BUFFS_TEXT_16 = "Großer Segen des Lichts"
+ VCB_CONSOLIDATED_BUFFS_TEXT_17 = "Aura des Volltreffers"
+
+ VCB_WELCOME_TEXT = " ist nun geladen! Benutze den Befehl /VCB, um es zu konfigurieren!"
+ VCB_HAS_BEEN_LOADED = " wurde geladen!"
+ VCB_HAS_BEEN_SAVED = " wurde gespeichert!"
+ VCB_HAS_BEEN_REMOVED = " wurde gelöscht!"
+ VCB_TEXT_PROFILE = "Profil: "
+ VCB_HAS_BEEN_CANCELLED = " wurde abgebrochen!"
+ VCB_HAS_BEEN_ADDED = " wurde hinzugefügt!"
+ VCB_IS_ALREADY_IN_LIST = " ist bereits in der Liste!"
+ VCB_IS_NOT_IN_LIST = " ist nicht in der Liste!"
+ VCB_CB_LIST_EMPTIED = "Die Konsolidierte-Buff-Liste wurde geleert!"
+ VCB_BB_LIST_EMPTIED = "Die Verbannten-Buffs-Liste wurde geleert!"
+
+ VCB_ABILITY_LOWER_SCRIPT_1 = "Mal der Wildnis"
+ VCB_ABILITY_LOWER_SCRIPT_2 = "Gabe der Wildnis"
+ VCB_ABILITY_LOWER_SCRIPT_3 = "Aura des Volltreffers"
+ VCB_ABILITY_LOWER_SCRIPT_4 = "Großer Segen der Könige"
+ VCB_ABILITY_LOWER_SCRIPT_5 = "Segen der Könige"
+ VCB_ABILITY_LOWER_SCRIPT_6 = "Großer Segen der Macht"
+ VCB_ABILITY_LOWER_SCRIPT_7 = "Segen der Macht"
+ VCB_ABILITY_LOWER_SCRIPT_8 = "Großer Segen der Weißheit"
+ VCB_ABILITY_LOWER_SCRIPT_9 = "Segen der Weißheit"
+ VCB_ABILITY_LOWER_SCRIPT_10 = "Großer Segen des Lichts"
+ VCB_ABILITY_LOWER_SCRIPT_11 = "Segen des Lichts"
+ VCB_ABILITY_LOWER_SCRIPT_12 = "Großer Segen der Rettung"
+ VCB_ABILITY_LOWER_SCRIPT_13 = "Segen der Rettung"
+ VCB_ABILITY_LOWER_SCRIPT_14 = "Arkane Intelligenz"
+ VCB_ABILITY_LOWER_SCRIPT_15 = "Arkane Brillianz"
+ VCB_ABILITY_LOWER_SCRIPT_16 = "Machtwort: Seelenstärke"
+ VCB_ABILITY_LOWER_SCRIPT_17 = "Gebet der Seelenstärke"
+ VCB_ABILITY_LOWER_SCRIPT_18 = "Göttlicher Willen"
+ VCB_ABILITY_LOWER_SCRIPT_19 = "Gebet der Willenskraft"
+ VCB_ABILITY_LOWER_SCRIPT_20 = "Schattenschutz"
+ VCB_ABILITY_LOWER_SCRIPT_21 = "Gebet des Schattenschutzes"
+ VCB_TIMER_FRAME_SHOW_DISABLEUNIT_TOOLTIP = "Kreuze das an, um die Einheit zu deaktivieren. (z.B. m/s/h)."
+ VCB_TIMER_FRAME_SHOW_DISABLEUNIT = "Einheit entfernen"
+
+ VCB_LOCKED_FRAMES = "Die Fenster wurden fixiert!"
+ VCB_UNLOCKED_FRAMES = "Die Fenster sind nun bewegbar!"
+end
diff --git a/localization/enUS.lua b/localization/enUS.lua
new file mode 100644
index 0000000..dddeb73
--- /dev/null
+++ b/localization/enUS.lua
@@ -0,0 +1,228 @@
+ VCB_MAIN_NAME = "Vanilla Consolidate Buff-Frames"
+ VCB_MAIN_VERSION = "v4.1"
+ VCB_MINIMAP_TOOLTIP_NAME = "Vanilla Consolidate Buff-Frames"
+ VCB_MINIMAP_TOOLTIP_LEFTCLICK = "LeftClick: Toggle option menu"
+ VCB_MINIMAP_TOOLTIP_RIGHTCLICK = "RightClick: Toggle frame lock"
+ VCB_MINIMAP_TOOLTIP_DRAG = "Drag: Move MiniMap icon"
+ VCB_TOP_BUTTON_CLOSE = "Close configuration frame"
+ VCB_TOP_BUTTON_LOCK = "Lock VCB"
+ VCB_TOP_BUTTON_MINIMAP = "Toggle MiniMap button"
+ VCB_TOP_BUTTON_DUMMY = "Toggle Dummy Mode"
+ VCB_MENU_HEAD = "MENU"
+ VCB_MENU_BUTTON1_LINK = "Consolidated Buffs"
+ VCB_MENU_BUTTON1_NAME = "Consolidated Buffs"
+ VCB_MENU_BUTTON2_LINK = "Banned Buffs"
+ VCB_MENU_BUTTON2_NAME = "Banned Buffs"
+ VCB_MENU_BUTTON3_LINK = "Timer"
+ VCB_MENU_BUTTON3_NAME = "Timer"
+ VCB_MENU_BUTTON4_LINK = "Consolidated Frame -1-"
+ VCB_MENU_BUTTON4_LINK2 = "Consolidated Frame -2-"
+ VCB_MENU_BUTTON4_NAME = "Consolidated Frame"
+ VCB_MENU_BUTTON5_LINK = "Buff Frame -1-"
+ VCB_MENU_BUTTON5_LINK2 = "Buff Frame -2-"
+ VCB_MENU_BUTTON5_NAME = "Buff Frame"
+ VCB_MENU_BUTTON6_LINK = "Debuff Frame -1-"
+ VCB_MENU_BUTTON6_LINK2 = "Debuff Frame -2-"
+ VCB_MENU_BUTTON6_NAME = "Debuff Frame"
+ VCB_MENU_BUTTON7_LINK = "Weapon Frame -1-"
+ VCB_MENU_BUTTON7_NAME = "Weapon Frame"
+ VCB_MENU_BUTTON8_LINK = "Profile Manager"
+ VCB_MENU_BUTTON8_NAME = "Profile Manager"
+ VCB_MENU_BUTTON9_LINK = "Miscellaneous"
+ VCB_MENU_BUTTON9_NAME = "Miscellaneous"
+ VCB_MENU_BUTTON10_LINK = "About VCB"
+ VCB_MENU_BUTTON10_NAME = "About VCB"
+ VCB_CONFIG_FRAME_TITLE_ONLOAD = "Consolidated Buffs"
+ VCB_CB_BB_FRAME_LEFT_INSERT = "Insert a buff name:"
+ VCB_CB_BB_FRAME_LEFT_DELETE = "Selected aura:"
+ VCB_CB_BB_FRAME_LEFT_ADD = "Add"
+ VCB_CB_BB_FRAME_LEFT_DELETE_BUTTON = "Delete"
+ VCB_CB_BB_FRAME_LEFT_RA = "Remove all"
+ VCB_TIMER_FRAME_SHOW_HOURS = "Show hours"
+ VCB_TIMER_FRAME_SHOW_HOURS_TOOLTIP = "Check this to format the timer to hours if more than 3600s are left."
+ VCB_TIMER_FRAME_SHOW_HOURS_CONVERT = "Show hours and minutes (h:m)"
+ VCB_TIMER_FRAME_SHOW_HOURS_CONVERT_TOOLTIP = "Check this to show both hours and minutes. For example: 1:34h."
+ VCB_TIMER_FRAME_SHOW_MINUTES = "Show minutes"
+ VCB_TIMER_FRAME_SHOW_MINUTES_TOOLTIP = "Check this to format the timer to minutes if more than 60s are left."
+ VCB_TIMER_FRAME_SHOW_MINUTES_CONVERT = "Show minutes and seconds (m:s)"
+ VCB_TIMER_FRAME_SHOW_MINUTES_CONVERT_TOOLTIP = "Check this to show both minutes and seconds. For example: 10:24m."
+ VCB_TIMER_FRAME_SHOW_TENTH = "Show tenth the last 60 seconds"
+ VCB_TIMER_FRAME_SHOW_TENTH_TOOLTIP = "Check this to show tenths. For example: 10:44s."
+ VCB_TIMER_FRAME_ROUND_DOWN = "Round down"
+ VCB_TIMER_FRAME_ROUND_DOWN_TOOLTIP = "Check this to round down the timer. For example: 70s -> 1m."
+ VCB_TIMER_FRAME_ROUND_UP = "Round up"
+ VCB_TIMER_FRAME_ROUND_UP_TOOLTIP = "Check this to round up the timer. For example: 70s -> 2m."
+ VCB_TIMER_FRAME_FLASH = "Enable flash animation"
+ VCB_TIMER_FRAME_FLASH_TOOLTIP = "Check this to enable the flash animation if the aura is close to expire (30s)"
+ VCB_TIMER_FRAME_COLOR_BELOW_60 = "Change color below 60s"
+ VCB_TIMER_FRAME_COLOR_BELOW_60_TOOLTIP = "Check this to change the color if the aura remains less than 60s."
+ VCB_CF_FRAME_POSSIBLE_BUFFS = "Show amount out of possible buffs"
+ VCB_CF_FRAME_POSSIBLE_BUFFS_TOOLTIP = "Check this to show the amount of buffs, out of the buffs that you have, on the consolidate icon that could be consolidated if you had them."
+ VCB_CF_FRAME_SHOW_PB_GRAYED_OUT = "Show missing buffs (grayed out)"
+ VCB_CF_FRAME_SHOW_PB_GRAYED_OUT_TOOLTIP = "Check this to show possible missing buffs that could have been consolidated."
+ VCB_CF_FRAME_ICON_OPACITY = "Icon opacity"
+ VCB_CF_FRAME_ICON_OPACITY_TOOLTIP = "Move this to change the opacity of the icon."
+ VCB_CF_FRAME_ICON_TEXTURE = "Texture"
+ VCB_CF_FRAME_ICON_TEXTURE_TOOLTIP = "Move this to change the icon texture."
+ VCB_CF_FRAME_BF_ANCHOR = "Anchor"
+ VCB_CF_FRAME_BF_ANCHOR_TOOLTIP = "Move this to change the anchor of the buff frame."
+ VCB_CF_FRAME_BF_BACKGROUND = "Background"
+ VCB_CF_FRAME_BF_BACKGROUND_TOOLTIP = "Move this to change the background texture of the buff frame."
+ VCB_CF_FRAME_BF_CUSTOM_BACKGROUND_PATH = "Custom background path:"
+ VCB_DBF_FRAME_COLOR_NONE = "None"
+ VCB_DBF_FRAME_COLOR_NONE_TOOLTIP = "Click here to change the color of the border if you have an unspecified debuff."
+ VCB_DBF_FRAME_COLOR_POISON = "Poison"
+ VCB_DBF_FRAME_COLOR_POISON_TOOLTIP = "Click here to change the color of the border if you have an as poison specified debuff."
+ VCB_DBF_FRAME_COLOR_MAGIC = "Magic"
+ VCB_DBF_FRAME_COLOR_MAGIC_TOOLTIP = "Click here to change the color of the border if you have an as magic specified debuff."
+ VCB_DBF_FRAME_COLOR_CURSE = "Curse"
+ VCB_DBF_FRAME_COLOR_CURSE_TOOLTIP = "Click here to change the color of the border if you have an as curse specified debuff."
+ VCB_DBF_FRAME_COLOR_DISEASE = "Disease"
+ VCB_DBF_FRAME_COLOR_DISEASE_TOOLTIP = "Click here to change the color of the border if you have an as disease specified debuff."
+ VCB_WP_FRAME_ATTACH_TO_BF_FRAME = "Attach to Buff-Frame"
+ VCB_WP_FRAME_ATTACH_TO_BF_FRAME_TOOLTIP = "Check this to attach the weapon frame to the buff frame. The weapon frame will be handled as buff frame aura then."
+ VCB_PM_FRAME_LEFT_INSERT_TEXT = "Insert name:"
+ VCB_PM_FRAME_LEFT_SELECT_TEXT = "Selected profile:"
+ VCB_PM_FRAME_LEFT_CURRENT_TEXT = "Current Profile:"
+ VCB_PM_FRAME_LEFT_SAVE_TEXT = "Save"
+ VCB_PM_FRAME_LEFT_DELETE_TEXT = "Delete"
+ VCB_MISC_FRAME_TEXT_DISABLE_CF = "Disable consolidate mechanic"
+ VCB_MISC_FRAME_TEXT_DISABLE_CF_TOOLTIP = "Check this to disable the consolidate mechanic. The frame will work as normal buff frame with advanced options then."
+ VCB_MISC_FRAME_TEXT_DISABLE_BB = "Disable banning mechanic"
+ VCB_MISC_FRAME_TEXT_DISABLE_BB_TOOLTIP = "Check this to disable the banning mechanic."
+ VCB_MISC_FRAME_TEXT_THEME = "Theme"
+ VCB_MISC_FRAME_TEXT_THEME_TOOLTIP = "Move this to change the Theme. Click the button next to it to load the theme then."
+
+ VCB_COMMON_COLOR_FONTCOLOR = "Select font color"
+ VCB_COMMON_COLOR_FONTCOLOR_TOOLTIP = "Click here to change the color of the font."
+ VCB_COMMON_COLOR_BORDERCOLOR = "Select border color"
+ VCB_COMMON_COLOR_BORDERCOLOR_TOOLTIP = "Click here to change the color of the border."
+ VCB_COMMON_COLOR_BACKGROUNDCOLOR = "Select background color"
+ VCB_COMMON_COLOR_BACKGROUNDCOLOR_TOOLTIP = "Click here to change the color of the background."
+
+ VCB_COMMON_BUTTON_ENABLE_FONT_BORDER = "Font Border"
+ VCB_COMMON_BUTTON_ENABLE_FONT_BORDER_TOOLTIP = "Check this to outline the font."
+ VCB_COMMON_BUTTON_INVERT_ORDER = "Invert order"
+ VCB_COMMON_BUTTON_INVERT_ORDER_TOOLTIP = "Check this to invert the buff order."
+ VCB_COMMON_BUTTON_USE_CUSTOM_BORDER = "Use custom border"
+ VCB_COMMON_BUTTON_USE_CUSTOM_BORDER_TOOLTIP = "Check this to use your custom border."
+ VCB_COMMON_BUTTON_USE_CUSTOM_BACKGROUND = "Use custom background"
+ VCB_COMMON_BUTTON_USE_CUSTOM_BACKGROUND_TOOLTIP = "Check this to use your custom background."
+ VCB_COMMON_BUTTON_ENABLE_BORDER = "Enable border"
+ VCB_COMMON_BUTTON_ENABLE_BORDER_TOOLTIP = "Check this to add a border."
+ VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR = "Enable background color"
+ VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR_TOOLTIP = "Check this to add a background color to the icon."
+ VCB_COMMON_BUTTON_VERTICAL_MODE = "Vertical mode"
+ VCB_COMMON_BUTTON_VERTICAL_MODE_TOOLTIP = "Check this to turn the frames and switch into vertical mode."
+ VCB_COMMON_BUTTON_INVERT_ORIENTATION = "Invert aura orientation"
+ VCB_COMMON_BUTTON_INVERT_ORIENTATION_TOOLTIP = "Check this to invert the aura orientation. Meaning that the buffs are oriented on the left side instead of the right etc."
+ VCB_COMMON_BUTTON_CUSTOMFONT = "Custom Font"
+ VCB_COMMON_BUTTON_CUSTOMFONT_TOOLTIP = "Use the a custom font instead of the provided ones."
+
+ VCB_COMMON_BUTTON_LOAD_TEXT = "Load"
+
+ VCB_COMMON_SLIDER_FONT_SIZE = "Font size"
+ VCB_COMMON_SLIDER_FONT_SIZE_TOOLTIP = "Move this to change the font size."
+ VCB_COMMON_SLIDER_FONT = "Font"
+ VCB_COMMON_SLIDER_FONT_TOOLTIP = "Move this to change the font."
+ VCB_COMMON_SLIDER_FONT_OPACITY = "Font opacity"
+ VCB_COMMON_SLIDER_FONT_OPACITY_TOOLTIP = "Move this to change the opacity."
+ VCB_COMMON_SLIDER_SCALE = "Scale"
+ VCB_COMMON_SLIDER_SCALE_TOOLTIP = "Move this to change the scale of the module."
+ VCB_COMMON_SLIDER_BUFFS_PER_ROW = "Buffs per row"
+ VCB_COMMON_SLIDER_BUFFS_PER_ROW_TOOLTIP = "Move this to change the amount of auras per row."
+ VCB_COMMON_SLIDER_BACKGROUND_OPACITY = "Background opacity"
+ VCB_COMMON_SLIDER_BACKGROUND_OPACITY_TOOLTIP = "Move this to change the background opacity."
+ VCB_COMMON_SLIDER_BORDER = "Border"
+ VCB_COMMON_SLIDER_BORDER_TOOLTIP = "Move this to change the border texture."
+ VCB_COMMON_SLIDER_BORDER_OPACITY = "Border opacity"
+ VCB_COMMON_SLIDER_BORDER_OPACITY_TOOLTIP = "Move this to change the border opacity."
+ VCB_COMMON_SLIDER_PADDING_H = "Padding H"
+ VCB_COMMON_SLIDER_PADDING_H_TOOLTIP = "Move this to change the horizontal padding of each aura."
+ VCB_COMMON_SLIDER_PADDING_V = "Padding V"
+ VCB_COMMON_SLIDER_PADDING_V_TOOLTIP = "Move this to change the vertical padding of each aura."
+ VCB_COMMON_SLIDER_FONT_OFFSET_X = "Font offset X"
+ VCB_COMMON_SLIDER_FONT_OFFSET_X_TOOLTIP = "Move this to change the horizontal offset of the font."
+ VCB_COMMON_SLIDER_FONT_OFFSET_Y = "Font offset Y"
+ VCB_COMMON_SLIDER_FONT_OFFSET_Y_TOOLTIP = "Move this to change the vertical offset of the font."
+
+ VCB_COMMON_EDITBOX_CUSTOM_BORDER_PATH = "Custom border path:"
+ VCB_COMMON_EDITBOX_CUSTOMFONT_PATH = "Custom Font path:"
+
+ VCB_COMMON_PAGE_1 = "Page 1 of 2"
+ VCB_COMMON_PAGE_2 = "Page 2 of 2"
+
+ VCB_CAT_GENERAL = "General"
+ VCB_CAT_CONSOLIDATED_ICON = "Consolidate Icon"
+ VCB_CAT_BUFF_FRAME = "Buff Frame"
+ VCB_CAT_AURA = "Aura"
+ VCB_CAT_AURA_TIMER = "Aura Timer"
+ VCB_CAT_BORDER = "Border"
+ VCB_CAT_ABOUT_1 = "What is VCB?"
+ VCB_CAT_ABOUT_2 = "Who created VCB?"
+ VCB_CAT_ABOUT_3 = "Special thanks to:"
+ VCB_CAT_ABOUT_4 = "Thanks for supporting!"
+
+ VCB_ABOUT_TEXT_1 = "Vanilla Consolidate Buff-Frames (VCB) is a smart system to manage your auras. The AddOn provides a lot functions to customize it to your tastes and adds a lot of helpful functions for a better overview, which is its purpose in the first place anyway."
+ VCB_ABOUT_TEXT_2 = "VCB was created by Shino (Albea) who developed the AddOn on Kronos (Twinstar.cz). He is formally known as Geigerkind in the Twinstar community."
+ VCB_ABOUT_TEXT_3 = "Flynn (Twinstar AddOn Master) - Thanks for helping me in the beginning. Schaka (Author of Questie) - Thanks for helping me in the beginning. Sinsthar (Author of PowerAuras) - You kinda inspired me to create an interface."
+ VCB_ABOUT_TEXT_4 = "Moosic - Tested the AddOn Fender - Feedback early on Areina - Helped phrasing this^^"
+ VCB_ABOUT_TEXT_5 = "Dopefish - Feedback early on Helvete - Feedback early on Ayz - Feedback early on"
+
+ VCB_CUR_PROFILE_TEXT = "Unknown"
+ VCB_CONSOLIDATED_BUFFS_TEXT_1 = "Mark of the Wild"
+ VCB_CONSOLIDATED_BUFFS_TEXT_2 = "Gift of the Wild"
+ VCB_CONSOLIDATED_BUFFS_TEXT_3 = "Power Word: Fortitude"
+ VCB_CONSOLIDATED_BUFFS_TEXT_4 = "Prayer of Fortitude"
+ VCB_CONSOLIDATED_BUFFS_TEXT_5 = "Divine Spirit"
+ VCB_CONSOLIDATED_BUFFS_TEXT_6 = "Prayer of Spirit"
+ VCB_CONSOLIDATED_BUFFS_TEXT_7 = "Shadow Protection"
+ VCB_CONSOLIDATED_BUFFS_TEXT_8 = "Prayer of Shadow Protection"
+ VCB_CONSOLIDATED_BUFFS_TEXT_9 = "Arcane Intellect"
+ VCB_CONSOLIDATED_BUFFS_TEXT_10 = "Arcane Brilliance"
+ VCB_CONSOLIDATED_BUFFS_TEXT_11 = "Greater Blessing of Sanctuary"
+ VCB_CONSOLIDATED_BUFFS_TEXT_12 = "Greater Blessing of Kings"
+ VCB_CONSOLIDATED_BUFFS_TEXT_13 = "Greater Blessing of Might"
+ VCB_CONSOLIDATED_BUFFS_TEXT_14 = "Greater Blessing of Salvation"
+ VCB_CONSOLIDATED_BUFFS_TEXT_15 = "Greater Blessing of Wisdom"
+ VCB_CONSOLIDATED_BUFFS_TEXT_16 = "Greater Blessing of Light"
+ VCB_CONSOLIDATED_BUFFS_TEXT_17 = "Trueshot Aura"
+
+ VCB_WELCOME_TEXT = " is now loaded! Use the command /vcb to configure VCB!"
+ VCB_HAS_BEEN_LOADED = " has been loaded!"
+ VCB_HAS_BEEN_SAVED = " has been saved!"
+ VCB_HAS_BEEN_REMOVED = " has been removed!"
+ VCB_TEXT_PROFILE = "Profile: "
+ VCB_HAS_BEEN_CANCELLED = " has been cancelled!"
+ VCB_HAS_BEEN_ADDED = " has been added!"
+ VCB_IS_ALREADY_IN_LIST = " is already in the list!"
+ VCB_IS_NOT_IN_LIST = " is not in the list!"
+ VCB_CB_LIST_EMPTIED = "The Consolidated Buffs list was emptied!"
+ VCB_BB_LIST_EMPTIED = "The Banned Buffs list was emptied!"
+
+ VCB_ABILITY_LOWER_SCRIPT_1 = "mark of the wild"
+ VCB_ABILITY_LOWER_SCRIPT_2 = "gift of the wild"
+ VCB_ABILITY_LOWER_SCRIPT_3 = "trueshot aura"
+ VCB_ABILITY_LOWER_SCRIPT_4 = "greater blessing of kings"
+ VCB_ABILITY_LOWER_SCRIPT_5 = "blessing of kings"
+ VCB_ABILITY_LOWER_SCRIPT_6 = "greater blessing of might"
+ VCB_ABILITY_LOWER_SCRIPT_7 = "blessing of might"
+ VCB_ABILITY_LOWER_SCRIPT_8 = "greater blessing of wisdom"
+ VCB_ABILITY_LOWER_SCRIPT_9 = "blessing of wisdom"
+ VCB_ABILITY_LOWER_SCRIPT_10 = "greater blessing of light"
+ VCB_ABILITY_LOWER_SCRIPT_11 = "blessing of light"
+ VCB_ABILITY_LOWER_SCRIPT_12 = "greater blessing of salvation"
+ VCB_ABILITY_LOWER_SCRIPT_13 = "blessing of salvation"
+ VCB_ABILITY_LOWER_SCRIPT_14 = "arcane intellect"
+ VCB_ABILITY_LOWER_SCRIPT_15 = "arcane brilliance"
+ VCB_ABILITY_LOWER_SCRIPT_16 = "power word: fortitude"
+ VCB_ABILITY_LOWER_SCRIPT_17 = "prayer of fortitude"
+ VCB_ABILITY_LOWER_SCRIPT_18 = "divine spirit"
+ VCB_ABILITY_LOWER_SCRIPT_19 = "prayer of spirit"
+ VCB_ABILITY_LOWER_SCRIPT_20 = "shadow protection"
+ VCB_ABILITY_LOWER_SCRIPT_21 = "prayer of shadow protection"
+ VCB_TIMER_FRAME_SHOW_DISABLEUNIT_TOOLTIP = "Check this to remove the unit of the timer. (i.e. m/s/h)."
+ VCB_TIMER_FRAME_SHOW_DISABLEUNIT = "Remove unit"
+
+ VCB_LOCKED_FRAMES = "Locked the frames!"
+ VCB_UNLOCKED_FRAMES = "Unlocked the frames!"
diff --git a/localization/koKR.lua b/localization/koKR.lua
new file mode 100644
index 0000000..843d9ef
--- /dev/null
+++ b/localization/koKR.lua
@@ -0,0 +1,230 @@
+if (GetLocale() == "koKR") then
+ VCB_MAIN_NAME = "VCB 버프/디버프 확장프레임"
+ VCB_MAIN_VERSION = "v4.1"
+ VCB_MINIMAP_TOOLTIP_NAME = "VCB 버프/디버프 확장프레임"
+ VCB_MINIMAP_TOOLTIP_LEFTCLICK = "좌클릭: 토글옵션메뉴"
+ VCB_MINIMAP_TOOLTIP_RIGHTCLICK = "우클릭 : 버프프레임 잠금 토글모드"
+ VCB_MINIMAP_TOOLTIP_DRAG = "드레그 : 미니맵아이콘 이동"
+ VCB_TOP_BUTTON_CLOSE = "구성 프레임 닫기"
+ VCB_TOP_BUTTON_LOCK = "VCB 잠그기"
+ VCB_TOP_BUTTON_MINIMAP = "미니맵 버튼 보기/가리기"
+ VCB_TOP_BUTTON_DUMMY = "버프프레임 보기/가리기"
+ VCB_MENU_HEAD = "메뉴"
+ VCB_MENU_BUTTON1_LINK = "통합 버프"
+ VCB_MENU_BUTTON1_NAME = "통합 버프"
+ VCB_MENU_BUTTON2_LINK = "차단된 버프"
+ VCB_MENU_BUTTON2_NAME = "차단된 버프"
+ VCB_MENU_BUTTON3_LINK = "시간표시"
+ VCB_MENU_BUTTON3_NAME = "시간표시"
+ VCB_MENU_BUTTON4_LINK = "통합 프레임 -1-"
+ VCB_MENU_BUTTON4_LINK2 = "통합 프레임 -2-"
+ VCB_MENU_BUTTON4_NAME = "통합 프레임"
+ VCB_MENU_BUTTON5_LINK = "버프 프레임 -1-"
+ VCB_MENU_BUTTON5_LINK2 = "버프 프레임 -2-"
+ VCB_MENU_BUTTON5_NAME = "버프 프레임"
+ VCB_MENU_BUTTON6_LINK = "디버프 프레임 -1-"
+ VCB_MENU_BUTTON6_LINK2 = "디버프 프레임 -2-"
+ VCB_MENU_BUTTON6_NAME = "디버프 프레임"
+ VCB_MENU_BUTTON7_LINK = "무기버프 프레임 -1-"
+ VCB_MENU_BUTTON7_NAME = "무기버프 프레임"
+ VCB_MENU_BUTTON8_LINK = "프로파일 매니져"
+ VCB_MENU_BUTTON8_NAME = "프로파일 매니져"
+ VCB_MENU_BUTTON9_LINK = "기타 사항"
+ VCB_MENU_BUTTON9_NAME = "기타 사항"
+ VCB_MENU_BUTTON10_LINK = "VCB에 대해"
+ VCB_MENU_BUTTON10_NAME = "VCB에 대해"
+ VCB_CONFIG_FRAME_TITLE_ONLOAD = "통합 버프"
+ VCB_CB_BB_FRAME_LEFT_INSERT = "버프 이름 입력:"
+ VCB_CB_BB_FRAME_LEFT_DELETE = "선택된 버프:"
+ VCB_CB_BB_FRAME_LEFT_ADD = "우측 버프슬롯에 추가"
+ VCB_CB_BB_FRAME_LEFT_DELETE_BUTTON = "선택된 버프 지우기"
+ VCB_CB_BB_FRAME_LEFT_RA = "모두 제거"
+ VCB_TIMER_FRAME_SHOW_HOURS = "시간 표시"
+ VCB_TIMER_FRAME_SHOW_HOURS_TOOLTIP = "3600초 이상 남아 있는 경우 타이머를 시간 형식으로 지정하려면이 옵션을 선택하십시오."
+ VCB_TIMER_FRAME_SHOW_HOURS_CONVERT = "시간과 분 표시(h:m)"
+ VCB_TIMER_FRAME_SHOW_HOURS_CONVERT_TOOLTIP = "시간과 분을 모두 표시하려면이 옵션을 선택하십시오. 예 : 1:34h."
+ VCB_TIMER_FRAME_SHOW_MINUTES = "분 표시"
+ VCB_TIMER_FRAME_SHOW_MINUTES_TOOLTIP = "60초가 넘는 경우 타이머를 분 단위로 포맷하려면 이 옵션을 선택하십시오."
+ VCB_TIMER_FRAME_SHOW_MINUTES_CONVERT = "분과 초 표시(m:s)"
+ VCB_TIMER_FRAME_SHOW_MINUTES_CONVERT_TOOLTIP = "분과 초를 모두 표시하려면 이 옵션을 선택하십시오. 예 : 10:24m."
+ VCB_TIMER_FRAME_SHOW_TENTH = "마지막 60초를 소수점 두자리까지 표시." --Show tenth the last 60 seconds
+ VCB_TIMER_FRAME_SHOW_TENTH_TOOLTIP = "초단위 소수점 두자리 까지 표시하려면이 항목을 선택하십시오. 예 : 10:44s."
+ VCB_TIMER_FRAME_ROUND_DOWN = "반 내림" --Round down
+ VCB_TIMER_FRAME_ROUND_DOWN_TOOLTIP = "타이머를 반 내림하려면 이 항목을 선택하십시오. 예 : 70s->1m."
+ VCB_TIMER_FRAME_ROUND_UP = "반 올림"
+ VCB_TIMER_FRAME_ROUND_UP_TOOLTIP = "타이머를 반 올림하려면 이 옵션을 선택하십시오. 예 : 70s->2m."
+ VCB_TIMER_FRAME_FLASH = "버프 만료시 깐박임 사용"
+ VCB_TIMER_FRAME_FLASH_TOOLTIP = "버프가 만료 될 때 깐박임을 사용하려면 이 옵션을 선택하십시오(30초)."
+ VCB_TIMER_FRAME_COLOR_BELOW_60 = "60초 미만 색상 변경"
+ VCB_TIMER_FRAME_COLOR_BELOW_60_TOOLTIP = "버프가 60초 미만일때 색을 변경하려면 이 옵션을 선택하십시오."
+ VCB_CF_FRAME_POSSIBLE_BUFFS = "통합버프아이콘의 많은 양의 버프를 보여 줌."
+ VCB_CF_FRAME_POSSIBLE_BUFFS_TOOLTIP = "이 옵션을 선택하면 통합 할 수있는 통합버프아이콘에 보유하고있는 버프를 표시합니다."
+ VCB_CF_FRAME_SHOW_PB_GRAYED_OUT = "누락 된 버프 표시 (회색으로 표시됨)"
+ VCB_CF_FRAME_SHOW_PB_GRAYED_OUT_TOOLTIP = "통합되었을 수있는 누락 된 버프를 표시하려면이 항목을 선택하십시오."
+ VCB_CF_FRAME_ICON_OPACITY = "통합버프아이콘 불투명도"
+ VCB_CF_FRAME_ICON_OPACITY_TOOLTIP = "이 커서를 움직여 통합버프 아이콘의 불투명도를 변경합니다."
+ VCB_CF_FRAME_ICON_TEXTURE = "텍스쳐"
+ VCB_CF_FRAME_ICON_TEXTURE_TOOLTIP = "이 커서를 이동하여 아이콘 텍스처를 변경하십시오."
+ VCB_CF_FRAME_BF_ANCHOR = "축" --Anchor
+ VCB_CF_FRAME_BF_ANCHOR_TOOLTIP = "이 커서를 움직여 통합버프창의 축을 변경하십시오."
+ VCB_CF_FRAME_BF_BACKGROUND = "백그라운드"
+ VCB_CF_FRAME_BF_BACKGROUND_TOOLTIP = "이 커서를 움직여 버프의 배경 텍스처를 변경하십시오."
+ VCB_CF_FRAME_BF_CUSTOM_BACKGROUND_PATH = "사용자 정의 배경 경로:"
+ VCB_DBF_FRAME_COLOR_NONE = "없음"
+ VCB_DBF_FRAME_COLOR_NONE_TOOLTIP = "불특정 디버프가 있는 경우 여기를 클릭하여 테두리 색상을 변경하십시오."
+ VCB_DBF_FRAME_COLOR_POISON = "독"
+ VCB_DBF_FRAME_COLOR_POISON_TOOLTIP = "독이 지정된 디버프가 있는 경우 디버프의 테두리의 색깔을 바꾸려면 여기를 클릭하십시오."
+ VCB_DBF_FRAME_COLOR_MAGIC = "마법"
+ VCB_DBF_FRAME_COLOR_MAGIC_TOOLTIP = "마법으로 지정된 디버프가 있는 경우 여기를 클릭하여 테두리 색상을 변경하십시오."
+ VCB_DBF_FRAME_COLOR_CURSE = "저주"
+ VCB_DBF_FRAME_COLOR_CURSE_TOOLTIP = "저주가 지정된 디버프가 있는 경우 테두리색상을 변경하려면 여기를 클릭하십시오."
+ VCB_DBF_FRAME_COLOR_DISEASE = "질병"
+ VCB_DBF_FRAME_COLOR_DISEASE_TOOLTIP = "질병이 지정된 디버프가 있는 경우 테두리색상을 변경하려면 여기를 클릭하십시오."
+ VCB_WP_FRAME_ATTACH_TO_BF_FRAME = "무기버프를 버프 프레임에 부착"
+ VCB_WP_FRAME_ATTACH_TO_BF_FRAME_TOOLTIP = "무기 프레임을 버프 프레임에 부착하려면 이 옵션을 선택하십시오. 무기 프레임은 버프 프레임 오라로서 취급됩니다."
+ VCB_PM_FRAME_LEFT_INSERT_TEXT = "이름 입력:"
+ VCB_PM_FRAME_LEFT_SELECT_TEXT = "선택한 프로필:"
+ VCB_PM_FRAME_LEFT_CURRENT_TEXT = "현재 프로필:"
+ VCB_PM_FRAME_LEFT_SAVE_TEXT = "저장"
+ VCB_PM_FRAME_LEFT_DELETE_TEXT = "삭제"
+ VCB_MISC_FRAME_TEXT_DISABLE_CF = "통합버프 아이콘 가리기"
+ VCB_MISC_FRAME_TEXT_DISABLE_CF_TOOLTIP = "통합버프 아이콘을 사용하지 않으려면 이 옵션을 선택하십시오. 프레임은 고급 옵션이있는 일반 버프 프레임처럼 작동합니다."
+ VCB_MISC_FRAME_TEXT_DISABLE_BB = "메카닉 금지 사용 안 함" --Disable banning mechanic
+ VCB_MISC_FRAME_TEXT_DISABLE_BB_TOOLTIP = "매카닉 금지를 사용하지 않으려면 이 옵션을 선택하십시오." --Check this to disable the banning mechanic.
+ VCB_MISC_FRAME_TEXT_THEME = "테마"
+ VCB_MISC_FRAME_TEXT_THEME_TOOLTIP = "테마를 변경하려면 이 단추를 움직입니다. 테마를 로드하려면 옆에있는 버튼을 클릭하십시오."
+
+ VCB_COMMON_COLOR_FONTCOLOR = "글꼴 색상 선택"
+ VCB_COMMON_COLOR_FONTCOLOR_TOOLTIP = "글꼴의 색상을 변경하려면 여기를 클릭하십시오."
+ VCB_COMMON_COLOR_BORDERCOLOR = "테두리 색 선택을 클릭하십시오."
+ VCB_COMMON_COLOR_BORDERCOLOR_TOOLTIP = "테두리 색상을 변경하려면 여기를 클릭하십시오."
+ VCB_COMMON_COLOR_BACKGROUNDCOLOR = "배경색 선택"
+ VCB_COMMON_COLOR_BACKGROUNDCOLOR_TOOLTIP = "배경색상을 변경하려면 여기를 클릭하십시오."
+
+ VCB_COMMON_BUTTON_ENABLE_FONT_BORDER = "글꼴 테두리"
+ VCB_COMMON_BUTTON_ENABLE_FONT_BORDER_TOOLTIP = "글꼴 아웃라인을 확인하십시오."
+ VCB_COMMON_BUTTON_INVERT_ORDER = "순서 반전"
+ VCB_COMMON_BUTTON_INVERT_ORDER_TOOLTIP = "버프 주문을 반전하려면이 옵션을 선택하십시오."
+ VCB_COMMON_BUTTON_USE_CUSTOM_BORDER = "사용자 정의 테두리 사용"
+ VCB_COMMON_BUTTON_USE_CUSTOM_BORDER_TOOLTIP = "사용자정의 테두리를 사용하려면 이 옵션을 선택하십시오."
+ VCB_COMMON_BUTTON_USE_CUSTOM_BACKGROUND = "사용자정의 배경 사용"
+ VCB_COMMON_BUTTON_USE_CUSTOM_BACKGROUND_TOOLTIP = "사용자정의 배경을 사용하려면 이 옵션을 선택하십시오."
+ VCB_COMMON_BUTTON_ENABLE_BORDER = "테두리 사용"
+ VCB_COMMON_BUTTON_ENABLE_BORDER_TOOLTIP = "테두리를 추가하려면 이 옵션을 선택하십시오."
+ VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR = "배경색 사용"
+ VCB_COMMON_BUTTON_ENABLE_BACKGROUND_COLOR_TOOLTIP = "아이콘에 배경색을 추가하려면 이 옵션을 선택하십시오."
+ VCB_COMMON_BUTTON_VERTICAL_MODE = "수직 모드"
+ VCB_COMMON_BUTTON_VERTICAL_MODE_TOOLTIP = "이것을 확인하여 프레임을 수직 모드로 전환하십시오."
+ VCB_COMMON_BUTTON_INVERT_ORIENTATION = "오라 방향을 반대로" --Invert aura orientation
+ VCB_COMMON_BUTTON_INVERT_ORIENTATION_TOOLTIP = "오라 방향을 반대로하려면이 옵션을 선택하십시오. 버프가 오른쪽 대신에 왼쪽에 놓여 있다는 것을 의미합니다."
+ VCB_COMMON_BUTTON_CUSTOMFONT = "사용자정의 글꼴"
+ VCB_COMMON_BUTTON_CUSTOMFONT_TOOLTIP = "기본설정된 글꼴 대신 사용자정의 글꼴을 사용하십시오."
+
+ VCB_COMMON_BUTTON_LOAD_TEXT = "불러오기"
+
+ VCB_COMMON_SLIDER_FONT_SIZE = "폰트 사이즈"
+ VCB_COMMON_SLIDER_FONT_SIZE_TOOLTIP = "글꼴 크기를 변경하려면이 커서를 좌우로 움직이세요."
+ VCB_COMMON_SLIDER_FONT = "폰트"
+ VCB_COMMON_SLIDER_FONT_TOOLTIP = "이 글꼴을 변경하려면 커서를 이동하십시오."
+ VCB_COMMON_SLIDER_FONT_OPACITY = "폰트 불투명도"
+ VCB_COMMON_SLIDER_FONT_OPACITY_TOOLTIP = "불투명도를 변경하려면이 값을 움직입니다."
+ VCB_COMMON_SLIDER_SCALE = "크기"
+ VCB_COMMON_SLIDER_SCALE_TOOLTIP = "이 커서를 좌우로 움직여 통합버프아이콘창의 폰트크기를 변경 하십시오."
+ VCB_COMMON_SLIDER_BUFFS_PER_ROW = "행당(세로) 버프 수" --Buffs per row
+ VCB_COMMON_SLIDER_BUFFS_PER_ROW_TOOLTIP = "통합버프아이콘창의 행당(세로)버프수를 변경하십시오."
+ VCB_COMMON_SLIDER_BACKGROUND_OPACITY = "배경 불투명도"
+ VCB_COMMON_SLIDER_BACKGROUND_OPACITY_TOOLTIP = "커서를 움직여 배경의 불투명도를 변경하십시오."
+ VCB_COMMON_SLIDER_BORDER = "테두리"
+ VCB_COMMON_SLIDER_BORDER_TOOLTIP = "테두리 텍스처를 변경하려면 이 커서를 움직입니다."
+ VCB_COMMON_SLIDER_BORDER_OPACITY = "테두리 불투명도"
+ VCB_COMMON_SLIDER_BORDER_OPACITY_TOOLTIP = "테두리 불투명도를 변경하려면 이 커서를 움직입니다."
+ VCB_COMMON_SLIDER_PADDING_H = "페딩 H"
+ VCB_COMMON_SLIDER_PADDING_H_TOOLTIP = "이 커서를 움직여 버프의 수평 간격을 변경하십시오."
+ VCB_COMMON_SLIDER_PADDING_V = "페딩 V"
+ VCB_COMMON_SLIDER_PADDING_V_TOOLTIP = "이 커서를 움직여 버프의 수직 간격을 변경하십시오."
+ VCB_COMMON_SLIDER_FONT_OFFSET_X = "폰트 옵셋 X"
+ VCB_COMMON_SLIDER_FONT_OFFSET_X_TOOLTIP = "폰트의 수평 옵셋을 변경하려면 이 값을 이동하십시오."
+ VCB_COMMON_SLIDER_FONT_OFFSET_Y = "폰트 옵셋 Y"
+ VCB_COMMON_SLIDER_FONT_OFFSET_Y_TOOLTIP = "폰트의 세로 옵셋을 변경하려면 이 값을 이동하십시오."
+
+ VCB_COMMON_EDITBOX_CUSTOM_BORDER_PATH = "사용자정의 테두리 경로:"
+ VCB_COMMON_EDITBOX_CUSTOMFONT_PATH = "사용자정의 글꼴 경로:"
+
+ VCB_COMMON_PAGE_1 = "페이지 2에 1"
+ VCB_COMMON_PAGE_2 = "페이지 2에 2"
+
+ VCB_CAT_GENERAL = "일반"
+ VCB_CAT_CONSOLIDATED_ICON = "통합버프 아이콘"
+ VCB_CAT_BUFF_FRAME = "버프 프레임"
+ VCB_CAT_AURA = "아우라(버프)"
+ VCB_CAT_AURA_TIMER = "아우라 타이머"
+ VCB_CAT_BORDER = "테두리"
+ VCB_CAT_ABOUT_1 = "VCB 란 무엇입니까?"
+ VCB_CAT_ABOUT_2 = "누가 VCB를 만들었습니까?"
+ VCB_CAT_ABOUT_3 = "특별 감사 :"
+ VCB_CAT_ABOUT_4 = "한글 애드온 다운로드"
+
+ VCB_ABOUT_TEXT_1 = "Vanilla Consolidate Buff-Frames (VCB)는 오라를 관리하는 스마트 시스템입니다. AddOn은 취향에 맞게 사용자 정의 할 수있는 많은 기능을 제공하며 더 낳은 개요를 위해 많은 유용한 기능을 추가합니다. 이는 처음부터 그 목적입니다."
+ VCB_ABOUT_TEXT_2 = "VCB는 Kronos (Twinstar.cz)에서 AddOn을 개발 한 Shino (Albea) 가 제작했습니다. 그는 공식적으로 Twinstar 커뮤니티에서 Geigerkind로 알려져 있습니다."
+ VCB_ABOUT_TEXT_3 = "Flynn (Twinstar AddOn Master) - 처음부터 도와 줘서 고마워. Schaka (Questie의 저자) - 처음부터 나를 도와 주셔서 감사합니다. Sinsthar (PowerAuras의 저자) - 당신은 나에게 인터페이스를 만드는 영감을주었습니다."
+ VCB_ABOUT_TEXT_4 = "Moosic - AddOn Fender 테스트 - Areina의 초기 피드백 -이 말을 도와주었습니다 ^^"
+ VCB_ABOUT_TEXT_5 = "http://cafe.naver.com/vanillawow - again 길드"
+
+ VCB_CUR_PROFILE_TEXT = "알수 없음"
+ VCB_CONSOLIDATED_BUFFS_TEXT_1 = "야생의 징표"
+ VCB_CONSOLIDATED_BUFFS_TEXT_2 = "야생의 선물"
+ VCB_CONSOLIDATED_BUFFS_TEXT_3 = "신의 권능: 인내"
+ VCB_CONSOLIDATED_BUFFS_TEXT_4 = "인내의 기원"
+ VCB_CONSOLIDATED_BUFFS_TEXT_5 = "Divine Spirit"
+ VCB_CONSOLIDATED_BUFFS_TEXT_6 = "Prayer of Spirit"
+ VCB_CONSOLIDATED_BUFFS_TEXT_7 = "Shadow Protection"
+ VCB_CONSOLIDATED_BUFFS_TEXT_8 = "Prayer of Shadow Protection"
+ VCB_CONSOLIDATED_BUFFS_TEXT_9 = "Arcane Intellect"
+ VCB_CONSOLIDATED_BUFFS_TEXT_10 = "Arcane Brilliance"
+ VCB_CONSOLIDATED_BUFFS_TEXT_11 = "Greater Blessing of Sanctuary"
+ VCB_CONSOLIDATED_BUFFS_TEXT_12 = "Greater Blessing of Kings"
+ VCB_CONSOLIDATED_BUFFS_TEXT_13 = "Greater Blessing of Might"
+ VCB_CONSOLIDATED_BUFFS_TEXT_14 = "Greater Blessing of Salvation"
+ VCB_CONSOLIDATED_BUFFS_TEXT_15 = "Greater Blessing of Wisdom"
+ VCB_CONSOLIDATED_BUFFS_TEXT_16 = "Greater Blessing of Light"
+ VCB_CONSOLIDATED_BUFFS_TEXT_17 = "Trueshot Aura"
+
+ VCB_WELCOME_TEXT = " 이제 로드되었습니다.! VCB를 구성하려면 /vcb 또는 /버프확장 명령을 사용하십시오!"
+ VCB_HAS_BEEN_LOADED = " 로드되었습니다.!"
+ VCB_HAS_BEEN_SAVED = " 저장 되었습니다.!"
+ VCB_HAS_BEEN_REMOVED = " 제거 되었습니다.!"
+ VCB_TEXT_PROFILE = "프로파일: "
+ VCB_HAS_BEEN_CANCELLED = " 취소 되었습니다.!"
+ VCB_HAS_BEEN_ADDED = " 추가 되었습니다.!"
+ VCB_IS_ALREADY_IN_LIST = " 이미 목록에 있습니다.!"
+ VCB_IS_NOT_IN_LIST = " 목록에 없습니다.!"
+ VCB_CB_LIST_EMPTIED = "통합버프아이콘창의 목록이 비워졌습니다.!"
+ VCB_BB_LIST_EMPTIED = "금지 된 버프 목록이 비워졌습니다.!"
+
+ VCB_ABILITY_LOWER_SCRIPT_1 = "야생의 징표"
+ VCB_ABILITY_LOWER_SCRIPT_2 = "야생의 선물"
+ VCB_ABILITY_LOWER_SCRIPT_3 = "정조준 오라"
+ VCB_ABILITY_LOWER_SCRIPT_4 = "상급 왕의 축복"
+ VCB_ABILITY_LOWER_SCRIPT_5 = "왕의 축복"
+ VCB_ABILITY_LOWER_SCRIPT_6 = "상급 힘의 축복"
+ VCB_ABILITY_LOWER_SCRIPT_7 = "힘의 축복"
+ VCB_ABILITY_LOWER_SCRIPT_8 = "상급 지혜의 축복"
+ VCB_ABILITY_LOWER_SCRIPT_9 = "지혜의 축복"
+ VCB_ABILITY_LOWER_SCRIPT_10 = "greater blessing of light"
+ VCB_ABILITY_LOWER_SCRIPT_11 = "빛의 축복"
+ VCB_ABILITY_LOWER_SCRIPT_12 = "greater blessing of salvation"
+ VCB_ABILITY_LOWER_SCRIPT_13 = "blessing of salvation"
+ VCB_ABILITY_LOWER_SCRIPT_14 = "신비한 지능"
+ VCB_ABILITY_LOWER_SCRIPT_15 = "신비한 총명함"
+ VCB_ABILITY_LOWER_SCRIPT_16 = "신의 권능: 인내"
+ VCB_ABILITY_LOWER_SCRIPT_17 = "인내의 기원"
+ VCB_ABILITY_LOWER_SCRIPT_18 = "divine spirit"
+ VCB_ABILITY_LOWER_SCRIPT_19 = "prayer of spirit"
+ VCB_ABILITY_LOWER_SCRIPT_20 = "암흑 보호"
+ VCB_ABILITY_LOWER_SCRIPT_21 = "암흑 보호의 기원"
+ VCB_TIMER_FRAME_SHOW_DISABLEUNIT_TOOLTIP = "타이머의 유닛을 제거하려면 이 옵션을 선택하십시오.(즉, m/s/h)"
+ VCB_TIMER_FRAME_SHOW_DISABLEUNIT = "단위 제거" --Remove unit
+
+ VCB_LOCKED_FRAMES = "프레임 잠금!"
+ VCB_UNLOCKED_FRAMES = "프레임 잠금 해제!"
+end