Reply
Thread Tools Display Modes
Unread 11-24-13, 10:19 AM   #1
Malsomnus
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Apr 2013
Posts: 166
Are there any shortcuts for developing GUI?

Well, the thread name says it all. Building the GUI is by far the most time-consuming part of any add-on development, and in some cases definitely the least fun. So are there any shortcuts for it? Any graphic editors or really useful libraries?
__________________
SanityCheck - Never again find yourself tanking Garrosh Hellscream in a wedding dress and a fishing rod!

Remember, every time you post a comment on an add-on, a kitten gets its wings!
Malsomnus is offline   Reply With Quote
Unread 11-24-13, 10:29 AM   #2
Dridzt
A Pyroguard Emberseer
 
Dridzt's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2005
Posts: 1,191
There are a bunch of libraries (AceGUI-3.0 and friends) as well as other libraries to support Frame related tasks, like LibWindow-1.1, LibMovable-1.0 etc, but I'm not yet decided whether they save you time or add time in the long run

AceGUI-3.0 has a bunch of nice widgets but the design intent is mostly to support configuration options so while you can use it to build standalone UIs, you'll come across many quirks that have to do with that first fact.

If you subtract the time needed to familiarize yourself with their API I guess they will save you time for project #2, #3 etc down the road.

There is no current visual designer (as in IDE) for WoW, there were some previously but they never took off or reached a mature status and are currently abandonware.
Dridzt is offline   Reply With Quote
Unread 11-24-13, 10:48 AM   #3
Malsomnus
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Apr 2013
Posts: 166
What do you mean by "the design intent is mostly to support configuration options"?
Which reminds me, how on earth do I make my add-on appear in the game's interface options? If that's in any way simpler than building my own frames, I can think of several add-ons that could totally do with that sort of thing.
__________________
SanityCheck - Never again find yourself tanking Garrosh Hellscream in a wedding dress and a fishing rod!

Remember, every time you post a comment on an add-on, a kitten gets its wings!
Malsomnus is offline   Reply With Quote
Unread 11-24-13, 12:11 PM   #4
Dridzt
A Pyroguard Emberseer
 
Dridzt's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2005
Posts: 1,191
This is a good resource for all things Ace3
http://www.wowace.com/addons/ace3/pages/

AceConfigDialog-3.0 is the library for adding options to blizzard's interface panel.
Dridzt is offline   Reply With Quote
Unread 11-25-13, 03:27 AM   #5
Phanx
A Pyroguard Emberseer
 
Phanx's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2006
Posts: 4,221
Originally Posted by Malsomnus View Post
Which reminds me, how on earth do I make my add-on appear in the game's interface options? If that's in any way simpler than building my own frames, I can think of several add-ons that could totally do with that sort of thing.
Yes, using the Interface Options window is easier than building your own config frame. It also provides a more convenient and consistent experience for users.

For simple examples that only use the game's native APIs and templates (no libraries or custom templates) check out my addons BetterBattlePetTooltip and PetBattleAutoForfeit. Both create a simple panel in the Interface Options window with a few controls; BBPT only uses checkboxes, and PBAF has a checkbox and sliders.

Personally I would never use AceGUI directly, as everything I've read and heard about it makes it out to be a nightmare to work with.

I do use AceConfig -- which takes an AceConfig options table, and automatically generates a GUI using AceGUI -- for a couple addons with complex, dynamic options tables (eg. Grid, where you need to dynamically add sections for each status) but for addons with a fixed set of options I prefer to roll my own. It takes about the same amount of code in your addon to write your own checkbox (see BBPT) vs. define a checkbox in an AceConfig table, and writing your own spares you from having to load AceConfig+AceGUI (~250KB). My general view on libraries is that if the library code is significantly larger than the addon code itself, and I can implement the functionality myself in significantly less code without a lot of effort, I should not use the library. This rules out me ever using libraries like AceEvent or AceLocale, but also means I will use LibPetJournal (which nearly doubles the size of my addon) since I'd need approximately the same amount of code to duplicate its functionality myself.

Most of my other addons are basically using only native APIs, but I've written my own custom templates instead of using the default ones (eg. sliders with mouse-wheel support, or scrolling dropdown menus) and there are several other addon authors who've done the same (eg. Tekkub's addons use his custom tekKonfig widgets).
__________________
Author/maintainer of Grid, PhanxChat, ShieldsUp, and many more.
Troubleshoot an addonTurn any code into an addonMore addon resources
Need help with your code? Post all of your actual code! Attach or paste your files.
Please don’t PM me about addon bugs or code questions. Post a comment or forum thread instead!
Phanx is offline   Reply With Quote
Unread 11-25-13, 09:47 AM   #6
Malsomnus
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Apr 2013
Posts: 166
The interface options thing worked like a charm, thanks
__________________
SanityCheck - Never again find yourself tanking Garrosh Hellscream in a wedding dress and a fishing rod!

Remember, every time you post a comment on an add-on, a kitten gets its wings!
Malsomnus is offline   Reply With Quote
Reply

Go BackWoWInterface » Developer Discussions » General Authoring Discussion » Are there any shortcuts for developing GUI?

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off