Go to Page... |
Thread Tools | Display Modes |
02/07/15, 06:51 AM | #41 | ||
I got some feedback from Seerah and also the OK to change the license in order to put LibAddonMenu on github.
Style templates are probably something nobody would use anyways. Might be easier and more useful to just add a settings panel where you can set line width, choose between a few different backgrounds and that's it. The second level of customizations is probably also a bit over the top. Might be enough to let addon devs choose the column width of the panel, so they can adjust the layout for different languages. The categories are something we can do without save vars in the base version and once a user installs the proposed addon, it will save the state. Some possible names for the new addon that come to mind are "AddonMenuEnhanced", "EnhancedLibAddonMenu", "LibAddonMenuPlus", but I am open for suggestions I'll set the github projects up later today or tomorrow. |
|||
02/07/15, 07:44 AM | #42 |
|
Yesterday I mocked up some automatic grouping by the first letter, displayed it using ZO_Tree... and it looked and felt awful. So I scratched that.
In the process I really struggled with the main controls' construction and what the word "panel" means in different contexts, so I started reorganizing that a bit, properly parenting controls where they belong, and also pondering moving some definitions to XML. When I'm done with that I'll try adding a search filter, that seems like a lighter and easier-done-right alternative to categories. |
02/07/15, 09:16 AM | #43 | |
|
||
02/07/15, 01:51 PM | #44 |
@Seerah/sirinsidiator:
Hopefully, we didn't misunderstood each other. I like the idea of allowing to register custom controls. What I meant is: If you want to update the core controls, e.g. to use a master-width, you have to update 13 versions (core + 12 controls). I have forgotten to update 2 extra versions already. And this could happen to others, too. I meant: core controls should come from the core file been used. If it is consens to copy 13 files over and over again, I accept it. I just wanted to talk about that. If I understood you right: - We keep the embedded style => stateless => no saved variables => no settings => no visual preferences - embedded style => no xml We updating the UI a little bit, adding the fixes from Garkin and Merlight and that's it, right? Edit 1: And may find a solution for a large addon list. Last edited by votan : 02/07/15 at 02:02 PM. |
|
02/07/15, 05:05 PM | #45 |
|
Note that Wykkyd initially listed his framework as a require but since moved to embedded because it was unworkable. If Minion pulled dependencies automatically (already stated as a long-term goal)
As far as if it's still a library: that can be a bit loose with GUI and themes. See GTK+ for example. Currently a separate addon could overwrite controls but not the settings menu. LAM could be refactored a bit to put the overall panel as a 'control' (in effect) to make it easily replaceable. That would allow external themes an entry to change the look of the overall menu. As far as themes go, the easy way to switch between would be to only enable the addon for the theme wanted. Only one theme could be activated at a time, though. A theme manager could be implemented (again as a separate addon) and themes would register there instead of overriding LAM directly. I think this would be a bit overengineered, but it is an option. Summary: default UI changes, add fixes, perhaps refactor the settings menu to be managed similarly to controls. Leave all theming as separate addons and no SavedVars from LAM itself. |
02/08/15, 07:09 AM | #46 |
@votan: If it is true that you have to change every single file for something like the column width, it might really require some change in structure. But you also have to ask yourself how often a change like this really happens.
I will look into this once I had time to read the code of LibAddonMenu. I only saw bits and pieces until now so I can't really comment on it yet. And yes. We let the library be a library and if we really want extra themes and saved vars and stuff, we put that into a separate addon which will augment the library. What I actually wanted to say is, I just created the project on github: https://github.com/sirinsidiator/ESO-LibAddonMenu Don't mind the eclipse project files and build directory. If you are interested in how to use them, I can write about it in a separate thread. |
|
02/08/15, 08:16 AM | #47 |
|
|
02/09/15, 08:47 AM | #48 |
If you're talking about modifying the children of a template then you'll have to set override="true" on them to have the XML attributes apply to the existing child (created by the inherited template) instead of trying to make a new one. This is new for 1.6.
|
|
02/16/15, 08:21 AM | #49 |
|
I've been playing with the settings window for quite some time, today I finally cleaned the code a bit, you can check it out here: https://github.com/merlight/ESO-LibAddonMenu/tree/edge (be warned though that I'm a rebase addict, so anything you commit on top of that might later go through painful merge conflicts)
First I have an important compatibility question In LAM r16- addon panels are top-level windows with their own background. That means they could be displayed directly with SetHidden(false). Are there any addons exploiting that? Because if the answer is yes and their motives are legitimate, I'm kinda screwed - I was pretty deep into the whole revamp when I realized this, I already had addon panels in a container and had just hopped onto OpenToPanel to make it work with everything else I changed. Now the less important stuff... I separated the LAM window from ZO_OptionsWindow completely, it now shows in LAM's own fragment. That's done by "inlining" the previously used function ZO_OptionsWindow_AddUserPanel and providing custom callbacks. I renamed CreateAddonSettingsPanel to CreateAddonSettingsMenuEntry (because that's what the function does), and only call it when the fragment is requested for the first time. I copied RightPanelBackground and enlarged the window & option area accordingly, but didn't change any option control dimensions yet, so it looks awkwardly empty. Accidentally, I discovered votan's new style branch a few minutes ago, somehow I always forget to git fetch --all. I'll check that out later. (Actually I already have a few questions regarding votan's fork, but they're not LAM-specific so I'll create another topic for them later ) Addon list is now ZO_ScrollList, and there's a search filter box below it. Thanks to ApplyTemplateToControl (i.e. only on PTS) the box displays a hint when the box is empty, although I'm not sure whether it has suitable translations (SI_ITEM_FILTER_BY_TEXT is used in inventory item filter). Edit: oh and panelData for RegisterOptionsPanel may contain additional .keywords for search, currently the filter searches addon .name + .author + .version. For example SousChef could set .keywords = "crafting provisioning", that way whenever I search for "craft" I get all addons with "craft(ing)" among their keywords, not only in their name. I should document that in source Last edited by merlight : 02/16/15 at 08:26 AM. |
02/16/15, 10:07 AM | #50 | |
- All "half width" widgets in LAM have height set to 55 units. If you want to make custom widgets with different height, widgets will be incorectly anchored. See LAM comments where is possible fix. - comboboxCounter in dropdown widget should be panel specific, otherwise you can get an UI error because of duplicate names when creating widget controls manually. Again, better explanation is in my LAM comment. - I don't like colorized addon names in the list. Any chance of using panelData.name instead of panelData.displayName or at least stripping color codes?
Warning: Spoiler
panelData.displayName: panelData.name: - panel.container should be probably anchored to panel.info (if exists), rather then to panel.label. Code:
panel.lua: - 107: container:SetAnchor(TOPLEFT, label, BOTTOMLEFT, 0, 20+13) + 107: container:SetAnchor(TOPLEFT, control.info or label, BOTTOMLEFT, 0, 20) A few changes are included in this version of Azurah. Azurah uses coustom made settings and even custom made widget, so it could be good compatibility test. |
||
02/16/15, 11:01 AM | #51 | |
I think, we answer is "Basically, they could, but nobody does it (anymore)." This version is also very nice. With better highlighting. @Merlight: Can you test "SkyShards" with german displayname? Although the list is 10units wider than mine, there are ellipsis?!? 290 units would be good. |
||
02/16/15, 11:09 AM | #52 | |
|
||
02/16/15, 11:40 AM | #53 | |
|
||
02/16/15, 12:40 PM | #54 |
One thing to point out, that I don't think anyone ever took advantage of... The widgets/controls in LAM did not need to be used with the regular addon settings panels. You could use them as templates for any sort of display you wanted.
At least, this was the intention when I redesigned LAM for 2.0. Not 100% sure if any changes with the core made that moot... http://www.esoui.com/portal.php?&id=5&pageid=10 See: LAM2 for the Experienced Author and Exposed Methods on LAM2 |
|
02/16/15, 01:04 PM | #55 |
@Garkin
Your half width height fix is already on its way in as well as some others mentioned in this thread. Once votan changed the thing I mentioned in my last comment on github I will merge his pull request and use it as base for further changes. @merlight Could you please keep the style changes and the search box for the addon list separated and also coordinate with votan in this ticket regarding the style changes. I will only be able to use one version in the end. I would generally prefer if you could make tickets or use the few that I created for discussing the different changes and features that we are going to add instead of spreading everything into this thread, the comment section and pms |
|
02/16/15, 01:16 PM | #56 | |||||
|
Ok I will install Skyshards, Azurah, any other notable addons that put stress on the menu? Regarding CreateOptionsControls: I need to ask a few off-topic questions first. ... and while looking for a commit I saw earlier, another question @votan: Do you use some automatic commit message "gluer"? I find the list of affected filenames in messages pretty inconvenient (moreso when it's at the beginning, pushing the interesting part to ...), also sometimes there's just the filename and the actual message follows on the next line, which requires a click to unfold on github. Locally I use tig, it lists affected filenames itself along with how many lines have changed, and also shows only the first line in overview. So commits that don't say what they are on the first line are a mystery at first. |
|||||
02/16/15, 01:31 PM | #57 | |
XML Code:
Of course, you can create combobox without template, but it will be much more complicated. |
||
02/16/15, 01:38 PM | #58 | |
You can see a little bit how it works on screenshots in spoiler in my previous post - there is active panel "Attributes" and pressing another button will show different panel with different set of controls. There is also visible custom widget "fontblock" which is pretty handy for font settings. Last edited by Garkin : 02/16/15 at 01:49 PM. |
||
02/17/15, 02:54 AM | #59 | |
|
||
02/17/15, 04:42 AM | #60 | ||
|
|
||
ESOUI » Developer Discussions » General Authoring Discussion » New UI for LibAddonMenu r17 (update 1.6)? |
«
Previous Thread
|
Next Thread
»
|
Display Modes |
Linear Mode |
Switch to Hybrid Mode |
Switch to Threaded Mode |
|
|