Thread Tools Display Modes
04/21/14, 08:44 AM   #1
LilBudyWizer
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 32
[outdated] Expanding Standard Dialogs

We need a set of libraries for modifying the standard interface. Examples would be adding sections to tooltips and columns to the inventory list. It would be nice if Zenimax did it as part of the stand API, but I wouldn't count on that happening anytime soon. A base would be 12 libraries, one for each of the tabs across the top. General functions would be adding rows and columns. A general rule would be nothing goes in or overtop of a standard element. The library would be the only thing adding to existing elements and that's just one entry for it.

An example is the inventory panel. You have filter tabs across the top so the library adds an additional tab for custom filters. Selecting that inserts a row of tabs below the main tabs. Those tabs are per addon. It can scroll left and right like the item selection in crafting so you can lots of different custom filters. A custom filter can pop up an additional panel to give sub options for that custom filter. The addon also allows adding right click menus to the standard tabs or custom subtabs. There's a submenu for each addon attached to that specific tab.

An alternative to an addon popping a subpanel when it's tab is selected is a custom inventory list, i.e. gridview, treeview or whatever the addon developer dreams up. One tab is the library itself. There's where you set options for the library. With the tab added to the standard tab right clicking lets you enable/disable specific inventory addons. Not the actual addon, just all modification of the inventory. Like you might disable sous-chef when not relevant to what you're doing to cut down on clutter, but turn it on when doing something relevant. When enabled, perhaps, the right click menu for materials has a submenu for sous-chef letting you select the level of cooking material or on consumables the level/quality of the recipe.

Each of the stand libraries should add icons to the bars for config options for itself. That dialog supports up and down navigation. What I mean by that is level. Down is config options for individual addons using that library. Up is the library this library is a component of. Presumably these 12, eventually, would be collected into a single library. These aren't all, so there's a higher level library that picks up others. Libraries might be forked. There might be a tooltip library that handles all tooltips and inventory handles inventory specific tooltips. If you want to hook all tooltips to display the time or something you use the tooltip library, if you just want to hook tooltips for inventory items you use the inventory library.

Obviously those 12 aren't all. Tooltips would be an additional. Crafting, looting, stores, ect would be potential others. The system menu which is sort of covered by the addon menu library though, really, that's a sub-library. An example of an addition for the setting menu is a custom graphics setting dialog. The ability to load and save graphics configurations and collect statistics by saved configuration. So a start would be figure out the structure. Like there's GuiRoot there should be a LibRoot.

GuiRoot has a lot attached to it. The server is down, but when it comes up I'll try looking around and seeing what's the base windows. Obviously there's unit frames, the retile, compass, casting bar, etc. Certainly one general function would be attaching to the bottom of standard frames. An example being attaching achievement tracker to the bottom of the quest tracker. Particularly with these libraries since they, presumably, will change the size of many standard dialogs. So an overarching library is handling configuration of your user interface.

So that's the general idea. Yes, it's ambitious, but it's early in the game. Already though we're getting conflicts between addons. People are having to code to specifically check for specific addons. Certainly there's an appeal to locking people into addons with only these work with that, but that's quickly going to become a nightmare as you start coding checks to play nicely with a dozen other addons. So we need a better solution than doing that. Programmer automate thyself. A good start is just those currently doing that moving it out to a common library.
 
04/21/14, 09:15 AM   #2
Seerah
Fishing Trainer
 
Seerah's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Feb 2014
Posts: 648
Just a note here... Libraries should be specific, not monstrous. An addon shouldn't use a library that has 100 functions if it's just going to use 1 or 2 of them. A 5kb addon shouldn't use a library that is 5MB

Also a library's purpose is best served when it is code that may be shared across multiple addons a user may have installed. If something is specialized so that only one addon of that type will ever be installed at any one time, turning that code into a library only adds overhead.

Now... I'm not discrediting your entire idea here, merely pointing these out.
 
04/21/14, 09:58 AM   #3
Joviex
 
Joviex's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 42
I advocate modularity, for sure.

I am confused on the 12 libraries you speak about.


I recently started making a support lib for all things utility, like a CHAIN function, a safepairs function, etc...


I also made another lib for UI supports, such as libaddonmenu but for main Window controls.


To me there are maybe one or two others before you start getting to the point of too many libraries versus an actual job for an addon.


like your attachment example, that sounds like an addon, not something that should be in a module. perhaps if the attachment function isa little complex, a generic way to attach controls, but that already exists with setanchor, so why redo the work?


an example of something I would put intoa library is a recursive version of getnamedchild or getchildren.
 
04/21/14, 01:20 PM   #4
LilBudyWizer
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 32
Well, set anchor isn't going to set it to the bottom of the list of addons already anchored to the bottom of the quest window. Several addons anchoring to the bottom of the quest window is going to cause a bit of a problem. The 12 would be the 12 across the top: Inventory, Character, Skills, Journal, Map, Group, Contacts, Guilds, Alliance War, Mail, Notifications and Help. All standard windows. All potentially modified by addons and not necessarily in compatible ways. This one stuck a text edit box in the title bar, that one stuck and icon in the same spot.

It isn't appropriate as addon because it doesn't actually do anything on it's own other than, perhaps, put hooks for it's own configuration. It coordinates other addons using something other than it's own windows to display data or accept input.
 

ESOUI » Developer Discussions » Wish List » [outdated] Expanding Standard Dialogs


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