Poster: Iriel at 12/28/2005 9:09:56 AM PST Subject: Upcoming 1.10 Changes - Concise List |
|
This is a consolidated list of the announced (and sometimes observed) changes in the User Interface API's and functionality for the 1.10 change. Please note that this thread is to discuss the upcoming changes and any clarifications or features that are a direct result of those changes, or things which we've been asked to remind slouken of. It is NOT an appropriate place for general feature requests, they should have their own threads (or be in the suggestions forum).
Significant Change Summary
* New Font objects for on-the-fly font configuration.
* Can create new UI Frames, Textures, and FontStrings at runtime.
Widget API Functions
* NEW: texture = Frame:CreateTexture(["name"] [,"layer"]); -- Create a new Texture object as a child of a frame.
* NEW: fontstring = Frame:CreateFontString(["name"] [,"layer"]); -- Create a new FontString object as a child of a frame.
* NEW: parent = Texture:GetParent()
* NEW: Texture:SetParent(parent or "parent")
* NEW: layer = Texture:GetDrawLayer()
* NEW: Texture:SetDrawLayer("layer")
* NEW: parent = FontString:GetParent()
* NEW: FontString:SetParent(parent or "parent")
* NEW: layer = FontString:GetDrawLayer()
* NEW: FontString:SetDrawLayer("layer")
* NEW: a = FontString:GetAlpha()
* NEW: font = FontString:GetFontObject()
* NEW: FontString:SetFontObject(font or nil)
* NEW: r,g,b,a = FontString:GetShadowColor()
* NEW: FontString:SetShadowColor(r, g, b [, a])
* NEW: x,y = FontString:GetShadowOffset()
* NEW: FontString:SetShadowOffset(x, y)
* NEW: spacing = FontString:GetSpacing()
* NEW: FontString:SetSpacing(spacing)
* NEW: justifyh = FontString:GetJustifyH()
* NEW: justfiyv = FontString:GetJustifyV()
* NEW: name = Font:GetName()
* NEW: a = Font:GetAlpha()
* NEW: Font:SetAlpha(a)
* NEW: font = Font:GetFontObject() -- Get the 'parent' of the Font.
* NEW: Font:SetFontObject(font or nil) -- Set the 'parent' of the Font.
* NEW: Font:CopyFontObject(font) -- Set this Font's attributes to be the same as those of font.
* NEW: fontFile, fontHeight, flags = Font:GetFont()
* NEW: Font:SetFont("fontFile", fontHeight [, flags])
* NEW: r,g,b,a = Font:GetTextColor()
* NEW: Font:SetTextColor(r, g, b [, a])
* NEW: r,g,b,a = Font:GetShadowColor()
* NEW: Font:SetShadowColor(r, g, b [, a])
* NEW: x,y = Font:GetShadowOffset()
* NEW: Font:SetShadowOffset(x, y)
* NEW: Font:SetSpacing(spacing)
* NEW: spacing = Font:GetSpacing()
* NEW: Font:SetJustifyH("LEFT" or "CENTER" or "RIGHT")
* NEW: justifyh - Font:GetJustifyH()
* NEW: Font:SetJustifyV("TOP" or "MIDDLE" or "BOTTOM")
* NEW: justifyv = Font:GetJustifyV()
* NEW: font = Button:GetTextFontObject()
* NEW: Button:SetTextFontObject(font or nil)
* NEW: font = Button:GetDisabledFontObject()
* NEW: Button:SetDisabledFontObject(font or nil)
* NEW: font = Button:GetHighlightFontObject()
* NEW: Button:SetHighlightFontObject(font or nil)
* NEW: font = EditBox:GetFontObject()
* NEW: EditBox:SetFontObject(font or nil)
* NEW: font = MessageFrame:GetFontObject()
* NEW: MessageFrame:SetFontObject(font or nil)
* NEW: fontFile, fontHeight, flags = MessageFrame:GetFont()
* NEW: MessageFrame:SetFont("fontFile", fontHeight [, flags])
* NEW: font = ScrollingMessageFrame:GetFontObject()
* NEW: ScrollingMessageFrame:SetFontObject(font or nil)
Frame API Functions
* NEW: frame = CreateFrame("frameType" [,"name"] [, parent]); -- Create a new frame of the specified type ("Button", "Slider", etc).
* NEW: font = CreateFont("name") - Dynamically create a font object
FrameXML Interface Code
* NUM_CONTAINER_FRAMES increased to match actual max number of open containers (11, rather than 9)
* In FrameXML\Fonts.xml, the system FontStrings become Font objects.
<Addon Authors: Dont use RegisterForSave()!>
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post286547 |
|
Poster: slouken at 12/28/2005 2:27:47 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Actually, this set of functions:
SetFontObject()
GetFontObject()
SetFont()
GetFont()
SetTextColor()
GetTextColor()
SetShadowColor()
GetShadowColor()
SetShadowOffset()
GetShadowOffset()
SetSpacing()
GetSpacing()
SetJustifyH()
GetJustifyH()
will be available on all of the following frame types:
EditBox, MessageFrame, ScrollingMessageFrame, SimpleHTML
The SimpleHTML case is a little different, because by default the Set/Get calls affect the normal text, but you can add as the first parameter "H1", "H2", or "H3", to specify the fonts used for the specified headers. e.g. SimpleHTML:SetTextColor("H3", 0.5, 0.5, 0.5) will set the H3 text to 50% gr[ea]y.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post286751 |
Poster: slouken at 12/28/2005 3:18:04 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
The following frames also support the font="name" attribute:
EditBox, MessageFrame, ScrollingMessageFrame, SimpleHTML
The name referenced in this font attribute is a previously defined Font object, not a font file.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post286769 |
Poster: slouken at 12/28/2005 6:16:42 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
In 1.10, you won't be able to modify the Blizzard interface files. Now is a good time to request any UI features you might need to extend or override the default UI.
Before you make any requests, go ahead and scan the first post to see what's coming down the pipe for 1.10.
Note: Not all requests will be implemented, due to time and/or design constraints.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post286821 |
Poster: slouken at 12/28/2005 6:16:42 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List *edited post* |
|
In 1.10, you won't be able to modify the Blizzard interface XML and Lua files. Now is a good time to request any UI features you might need to extend or override the default UI.
Before you make any requests, go ahead and scan the first post to see what's coming down the pipe for 1.10.
Note: Not all requests will be implemented, due to time and/or design constraints.[ post edited by slouken ]
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post286821 |
Poster: slouken at 12/28/2005 9:48:04 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e:
Won't kill me to lose the ability to change them but just something else to throw out if we'll lose the ability to change default textures.
As far as I know, this won't affect the ability to change the interface art, just the code.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post286928 |
Poster: slouken at 12/30/2005 10:48:11 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: You could write some code to scan all global symbols for Font objects, check if the current font is Friz Quadrata, and if it is, change it to something else.
That wouldn't be too tricky, and would run extremely quickly.
Iriel, care to elaborate on that? It sounds like the original author may not be aware of the 1.10 font objects, and it might be useful for people to see how to do that. :)
BTW, the font objects return "Font" from Font:GetType(), and Font:IsA("Font") returns true as well.
Edit: Scratch that last bit... I'll have to look up the actual functions. It might actually be GetFrameType() and IsFrameType(), which doesn't make much sense for fonts, but might be how it works at the moment.[ post edited by slouken ]
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post287748 |
Poster: slouken at 1/1/2006 3:59:03 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Yep, it's on my list of things to follow up on. The person who plans to work on it has been working on some great OpenGL improvements for the Mac client.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post288744 |
Poster: slouken at 1/6/2006 10:20:48 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Currently, if a player with no macros uses the CreateMacro command and then opens the MacroFrame, it gives a lua error stating that selectedMacro is nil and cannot be compared with a number. For some reason it seems that the MacroUI frame isn't properly setting the selectedMacro when it's initialized. I got around this issue by calling the MacroFrame_LoadUI() function and setting MacroFrame.selectedMacro myself, but I would prefer not to load the MacroFrame into memory every time my mod loads. Can you fix this?
This is actually already fixed for 1.9.1, thanks to Iriel. :)[ post edited by slouken ]
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post294535 |
Poster: slouken at 1/17/2006 12:56:53 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: It's ChatFrame1 you should call it with, though it does appear that in 1.9 at least, SetFadeDuration is broken. Hopefully slouken spots these posts and can look into it.
It's not broken, it just only affects new lines in 1.9. Are you thinking of SetTimeVisible()? :)
For 1.10, ScrollingMessageFrame:EnableFading() will be renamed ScrollingMessageFrame:SetFading(), and these functions will be added:
ScrollingMessageFrame:GetFading()
ScrollingMessageFrame:GetFadeDuration()
ScrollingMessageFrame:GetTimeVisible()
I'm also changing it so SetTimeVisible() and SetFadeDuration() affect visible lines immediately.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post303567 |
Poster: slouken at 1/17/2006 3:47:45 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: At the moment there doesn't appear to be a way to get or set the "alphaMode" of a texture from lua. It would be nice to have methods for this epsecially with the new dynamic frames. This could be an issue for dynamicly created buttons particularly.
In 1.10, the following functions will take an actual texture object, in addition to a filename:
Button:SetNormalTexture()
Button:SetPushedTexture()
Button:SetDisabledTexture()
Button:SetHighlightTexture()
I also added:
Texture:SetBlendMode("mode")
mode = Texture:GetBlendMode()
r, g, b, a = Texture:GetVertexColor()
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post303689 |
Poster: slouken at 1/17/2006 3:51:42 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: By "in addition to" do you mean it's either-or as in:
Button:SetNormalTexture("Interface\\....");
or
Button:SetNormalTexture(MyNormalTexture);
?
Yes.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post303697 |
Poster: slouken at 1/17/2006 6:36:42 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: I know this gets requested alot, but it'd save a lot of fussing around in macros and the same question every few days, can we get an OnSelf flag added to CastSpellByName, like the one for UseAction?
i.e.
CastSpellByName("spell name"); -- Normal
CastSpellByName("spell name", 1); -- On self
Sure.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post303835 |
Poster: slouken at 1/18/2006 9:40:22 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e:
Will this also affect Data/FrameXML, and the Blizzard_* addons?
Yes, it affects all of the .toc, .xml, and .lua files included in the game.
Q u o t e:
And what would happen if someone tries to package a custom Fonts.xml into the MPQ?
It would explode spectacularly. :)
Q u o t e:
And any chance of a
## SavedVariablesPerRealm:
which saves to WTF/Account/<account>/<realm>/SavedVariables?
Can you provide specific examples of how this would be useful?
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post304188 |
Poster: slouken at 1/18/2006 11:20:06 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: With the addition of Texture and FontString Set and GetParent methods, does this mean that Frame:GetChildren() will now include them in the table it returns?
No, it will only include frames.
Q u o t e: If not, would it be possible to have some other way to determine what frame a texture or fontstring is related to?
texture/fontstring:GetParent()? :)
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post304256 |
Poster: slouken at 1/18/2006 12:48:02 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: This may be far too abstract a question to be useful, but is there a lua-side repository of all of the lua-ized frame objects, I'd imagine there has to be something along those lines since GetParent knows where to find the appropriate parent object. If such a beast exists, theoretically some kind of GetNextFrame(prevFrame) method could allow for the kind of analysis that Tem's proposing (input of nil means return first frame, returns nil if input was the last frame, just like the table next method).
Sure, though that wouldn't address Tem's question, since he wanted textures and fontstrings, not frames. :)
As of 1.7, I believe, all frames are in the lua space, simply so GetParent() and GetChildren() will always work. Doing the same for all textures and fontstrings would bloat the scripting memory quite a bit, for dubious benefit.[ post edited by slouken ]
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post304316 |
Poster: slouken at 1/19/2006 11:51:38 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Maybe a brief explanation of what I'm trying to accomplish will clear this up. I'm trying to present a list of frames similar to Firefox's DOM Inspector.
Too cool to resist. :)
Added:
GetNumFrames()
nextFrame = EnumerateFrames(currentFrame)
numRegions = Frame:GetNumRegions()
a, b, c, ... = Frame:GetRegions()
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post305061 |
Poster: slouken at 1/19/2006 11:53:21 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: One thing I would very much like is a GetAnchorPoint() function to find out where a frame is currently anchored (BOTTOMLEFT, TOP, etc.)
It's on my list to add a string representation of all of a frame's anchors that can be queried and set. Dunno if it'll make it for 1.10 yet though.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post305065 |
Poster: slouken at 1/19/2006 11:55:21 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Is it the same setting as controlled by alphaMode attribute of the texture element in XML?
Yes.
Q u o t e:
Could someone list the acceptable values for "mode", and what they do? The only value for alphaMode in Blizzard files seems to be "ADD"
"DISABLE" - opaque texture
"BLEND" - normal blending
"ALPHAKEY" - 1-bit alpha
"ADD" - additive blend
"MOD" - modulating blend
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post305070 |
Poster: slouken at 1/19/2006 11:53:21 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List *edited post* |
|
Q u o t e: One thing I would very much like is a GetAnchorPoint() function to find out where a frame is currently anchored (BOTTOMLEFT, TOP, etc.)
It's on my list to add a string representation of all of a frame's anchors that can be queried and set. Dunno if it'll make it for 1.10 yet though.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post305065 |
Poster: slouken at 1/19/2006 11:55:21 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List *edited post* |
|
Q u o t e: Is it the same setting as controlled by alphaMode attribute of the texture element in XML?
Yes.
Q u o t e:
Could someone list the acceptable values for "mode", and what they do? The only value for alphaMode in Blizzard files seems to be "ADD"
"DISABLE" - opaque texture
"BLEND" - normal blending
"ALPHAKEY" - 1-bit alpha
"ADD" - additive blend
"MOD" - modulating blend
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post305070 |
Poster: slouken at 1/19/2006 5:20:51 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
In 1.10, I'm adding the following functions:
type = Frame:GetObjectType()
Frame:IsObjectType("type")
"Texture" = Texture:GetObjectType()
Texture:IsObjectType("type")
"FontString" = FontString:GetObjectType()
FontString:IsObjectType("type")
Frame:GetFrameType() and Frame:IsFrameType() are aliases for the new functions, and work exactly the same as they do in 1.9.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post305421 |
Poster: slouken at 1/21/2006 5:20:42 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: I have to ask, are you sitting at your desk just thinking of ways to make my task easier? It sure seems that way :)
*grin* I work too. :)
Q u o t e:
Another Question: If I did Button:GetRegions() and called GetObjectType on all the texture elements it returned, would I be able to tell which was the NormalTexture, HighlightTexture, ect... ? Similarly, how do the NormalText, HighlightText, ect... objects work? Are they all the same object or are they very similar to the texture elements?
No, you wouldn't have any way of knowing which was which, other than comparing them against the values returned from GetNormalTexture() or whatever it's called...
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post306496 |
Poster: slouken at 1/21/2006 5:22:09 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Should I document the old functions as deprecated in favor of the new ones?
No, they're sticking around, they're just not what you want to call when you're not sure what kind of object you're dealing with.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post306497 |
Poster: slouken at 1/23/2006 11:42:33 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e:
Anyway, i'm content with what we have so far, which is that:
1) You should use the 'Object' versions if you want something that works with all widget types (Frames, or Regions)
2) For Frames the two versions are functionally identical.
Yep, so am I. :)
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post307561 |
Poster: slouken at 1/23/2006 11:45:20 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Does GetNormalTexture return an actual texture object or does it have the same returns as Texture:GetTexture? (There doesn't seem to be any reference to such a method even existing... Maybe you made it and didn't tell us about it?)
Whoops, there isn't actually GetNormalTexture() and friends, but it seems like there should be... Since a texture object would almost never actually be available, such a thing would probably return the file used... would that be useful at all?
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post307567 |
Poster: slouken at 1/23/2006 12:51:01 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Would there also be methods to query stuff like the blend mode? I could see that being useful for implementing object-copy style templating in lua.
No, too much work. I'd better not add it. :)
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post307641 |
Poster: slouken at 1/23/2006 2:10:59 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: I would find it more useful for it to return the Texture object. Once I had the texture object I could then call all the nice Texture methods you have for us to find out anything I need to know.
Yeah, unfortunately the buttons won't have texture objects for those textures. I'll think about it. It's possible to create them on the fly, but you'd bloat your memory usage if you tried to do something silly like enumerate all of the textures on all of the buttons. ;-)
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post307724 |
Poster: slouken at 1/23/2006 4:17:50 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Is that only applicable for named textures?
Yep
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post307822 |
Poster: slouken at 1/27/2006 3:34:52 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
All Frames, Textures, and FontStrings will have the following methods:
x, y = Object:GetCenter()
x = Object:GetLeft()
x = Object:GetRight()
y = Object:GetTop()
y = Object:GetBottom()
width = Object:GetWidth()
Object:SetWidth(width)
height = Object:GetHeight()
Object:SetHeight(height)
numPoints = Object:GetNumPoints()
"point", relativeObject, "relativePoint", xOffset, yOffset = Object:GetPoint(index)
Object:SetPoint("point", relativeObject, "relativePoint", xOffset, yOffset) (other argument variants are still valid)
Object:SetAllPoints()
Object:ClearAllPoints()
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post310023 |
Poster: slouken at 1/27/2006 5:17:01 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e:
Is this actually SetAllPoints("frame") like the method on exist frames, or is this a new version (and is frame optional, defaulting to parent?)
Oops, missed a parameter, yes, it's SetAllPoints("object") or SetAllPoints(object)
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post310057 |
Poster: slouken at 2/1/2006 3:02:25 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e:
Not that I really have a problem in using any of the work-arounds, it still puzzles me, why this function is "static referenced".
It's an optimization. That function is pushed onto the Lua stack before each dispatch into Lua code.
For 1.10, I added:
seterrorhandler(errfunc)
errfunc = geterrorhandler()
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post312754 |
Poster: slouken at 2/2/2006 10:43:14 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Since 'all the cool kids are doing it' by replacing files, can we get
Minimap:SetAlphaTexture(path)
To set the texture from which the minimap's alpha is obtained?
Sure, I'm adding:
Minimap:SetMaskTexture("file")
Minimap:SetIconTexture("file")
Minimap:SetBlipTexture("file")
which default to:
Textures\MinimapMask
Interface\Minimap\POIIcons
Interface\Minimap\ObjectIcons
respectively.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post313169 |
Poster: slouken at 2/6/2006 9:29:22 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: While we're getting dynamically-created frames can we also get a way to create additional keybindings without having to edit Bindings.xml?
No, the key binding system won't be dynamic.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post315158 |
Poster: slouken at 2/6/2006 9:31:16 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Slouken - how much work would it to be to make it so that the event / other dispatchers pass parameters when calling the handler scripts, so that we'd get:
OnEvent(this, event, arg1, arg2, ...)
OnLoad(this)
OnShow(this)
OnHide(this)
OnUpdate(this, elapsed)
etc. ?
That would let those of us who write very OO code make those handlers actual methods, without having to do things like
<OnLoad>this:OnLoad()</OnLoad>
without sacrificing backward compatibility with the current globals-based approach?
I've actually thought about this quite a bit, and I'm not sure how you'd reference the parameters from an inline block of code.
e.g.
<OnLoad>message(firstparam)</OnLoad>
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post315159 |
Poster: slouken at 2/6/2006 9:55:10 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: I'm not sure if that's doable either, but if the globals were still set the way they are now, code written in On* blocks could stay as it is today, and code that wishes to take advantage of parameters in the XML could call this:SetScript in the OnLoad block.
That means that every dispatch of a handler would have to both set global variables and put them on the stack. It seems like a lot of work for a minority case.
I'll point out that you could easily have this in your own code by creating an event dispatch wrapper that does this.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post315174 |
Poster: slouken at 2/6/2006 2:46:18 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
New!
version, buildnum, builddate = GetBuildInfo()
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post315397 |
Poster: slouken at 2/6/2006 6:20:28 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
LaunchURL() will no longer be available.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post315521 |
Poster: slouken at 2/9/2006 10:09:34 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Small bug: Turning on the self-cast toggle in the UseAction function causes a UI error, "Your main hand is empty", when you try to cast a weapon enchant. Windfury is action ID 27 for me and I tested it with some macros:
/script UseAction(27); -- works
/script UseAction(27, 1); -- works
/script UseAction(27, nil, 1); -- says my main hand's empty
/script UseAction(27, 1, 1); -- says my main hand's empty
Fixed for 1.10, thanks.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post317125 |
Poster: slouken at 2/9/2006 10:44:54 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
In 1.10 Texture:SetTexture(), FontString:SetFont(), and Button:SetFont() will all return 1 if they were able to set the texture/font successfully and nil if they were unable to load the appropriate file.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post317155 |
Poster: slouken at 2/9/2006 1:31:30 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Does the texture still change to the jolly green square if the file wasn't found?
No, if it fails to load the file, it won't change the existing texture. Also, if the font fails to load, it won't change the existing font.
Q u o t e:
EDIT: Also, does Font:SetFont() do the check as well?
No, the Font object doesn't actually load the font file, it's only loaded when its properties are applied to a FontString, at the moment.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post317321 |
Poster: slouken at 2/9/2006 1:44:36 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Does that mean all of the SetFontObject calls have this return as well?
No, they don't. If you set a valid font object, then the attributes of that font object will always be used.
Q u o t e:
What happens with a font object if the file is bad? Do NONE of the properties stick? Or does everything BUT the font path stick?
The font file/size/flags do not stick, but everything else does.
Q u o t e:
With a FontString, if I specify file, size, and flags, and the file is bad, is it all or nothing? or do size and flags always stick?
It's all or nothing.
Edit: BTW, the reason why the font object doesn't validate the font file is because each font+font-size*fontstring-scale+flags combination generates a new instance of that font (along with associated textures and vertex data).
Edit2: I suppose it's reasonable to always create the font at 1.0 scale. I'll do that and the FontObject:SetFont() call will return the same as the FontString version.[ post edited by slouken ]
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post317338 |
Poster: slouken at 2/10/2006 11:38:24 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Added for 1.10:
orientation = Slider:GetOrientation()
Slider:SetOrientation("orientation")
orientation = StatusBar:GetOrientation()
StatusBar:SetOrientation("orientation")
filename = StatusBar:GetStatusBarTexture()
r, g, b, a = StatusBar:GetStatusBarColor()
orientation is now a valid attribute for the StatusBar frame type, and defaults to horizontal.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post317963 |
Poster: slouken at 2/10/2006 11:46:57 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: I don't meant to nitpick here, but it's a matter of some consequence. It's a conflict with the macro id number not the name. So, naming all your macros uniquely is *not* a workaround. Your per-character macros can still be deleted.
I believe either using global macros only or using per-character macros only is a safe workaround. It would be best to back up your macros anyway, in case I'm wrong.
I didn't notice that entry. What actually happened is that account-wide macros and per-character macros now use distinct ID spaces, and per-character macros get mapped into the correct space on load, if they're in the old format.
So... basically you won't lose per-character macros anymore.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post317982 |
Poster: slouken at 2/10/2006 11:48:16 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: I think you and Slouken are referring to different issues. He fixed the issue where if you have a macro named "Maul" on your actionbar, and you learn a new rank of Maul, then macro on the button is replaced with the new version of Maul.. removing the macro entirely from the buton.
Oh right, that's another fix, and it wasn't replacing by name, but by spell ID. If the macro "referred" to the old spell (e.g. /cast, etc.) then it would be replaced entirely on the actionbar with the new spell.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post317983 |
Poster: slouken at 2/10/2006 12:17:35 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Cool. ^_^
From 1.9 patch notes:
Sorry to post on this again, but I'd rather be on the safe side. =] Assuming these are the correct id spaces, account-wide macros may need to be remapped as well. Some of my existing account-wide macros have IDs as large as 33.
The macro ID's used by the UI and those used by the macros are different. Don't worry, everything will work. :)
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post318002 |
Poster: slouken at 3/4/2006 10:44:51 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Two things I don't think I saw in the patch notes, but I believe are in 1.10 test are:
* Added support for widescreen video resolutions
* Added support for G15 keyboard (health/mana bar and battleground queue notification)
Can anyone confirm these?
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post330690 |
Poster: slouken at 3/6/2006 9:47:18 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Seeing how FramXML will no longer be overwriteable... can we please Please PLEASE have an option to enable doskey style settings on the chat frame? i.e. left and right arrow keys move the cursor (without holding alt) and forward/back show previous lines? That would be amazing...
I'm adding the following editbox functions:
EditBox:SetAltArrowKeyMode(enabled)
enabled = EditBox:GetAltArrowKeyMode()
You'll be able to do this to get what you want:
editbox:SetAltArrowKeyMode(false)
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post331803 |
Poster: slouken at 3/6/2006 10:06:03 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Totally not a big deal but thought I'd pass along in case it merits a fix: On 1.10 PTR, it appears that the minimap mask texture is applied after PLAYER_ENTERING_WORLD.
Fixed for 1.10 release.
Q u o t e:
The minimap methods are awesome. Thanks for adding those!
You're welcome! :)
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post331814 |
Poster: slouken at 3/6/2006 10:07:47 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Because of the removal of hooking into movement functions, could we at least get a couple of functions to let us know if the player is moving or swimming?
I'm pretty sure that falls under the category of information the UI isn't supposed to know about. Therefore I'll only add those functions if requested by a designer.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post331815 |
Poster: slouken at 3/6/2006 10:17:27 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: Another Dynamic Frame related request:
Can we get a CreateScrollFrame and a SetScrollChild/GetScrollChild so we can create dynamic scrolling frames?
Sure, I'm adding:
ScrollFrame:SetScrollChild(frame or "framename")
frame = ScrollFrame:GetScrollChild()
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post331825 |
Poster: slouken at 3/7/2006 5:36:55 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: So I ask that you give us the last piece to the puzzle here. Honestly I don't see what harm can come of giving us these two bits of information. If you've got a concern by all means tell us, but in the end we're already 2/3 of the way there.
The designers want smart players, not smart buttons. Given that, I'm not going to add any features to the API to allow smarter buttons unless asked to by the designers. Now they are certainly open to adding features that make the game more fun, but this is not the place to make those sorts of suggestions.
The fact that you can infer motion by tracking map position changes doesn't mean you've been given an authorized way to detect movement, BTW. :)
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post332526 |
Poster: slouken at 3/8/2006 3:41:34 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: In case you didn't catch this thread, Slouken: http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=332783
On test, RunBinding on movement bindings is possible from macros, ie /script RunBinding("JUMP")
Yeah, this is fixed internally, thanks.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post333143 |
Poster: slouken at 3/9/2006 3:08:25 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Q u o t e: On 1.10 it appears the wraparound bug in multiline edit boxes is back. Quick test: log in and go to macro edit window and type:
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwetc
into the macro window. It ends in ... and lines after don't display.
(btw the dynamic frames are awesome)
This has to do with the editbox inheriting the properties of the font object. The fix is sufficiently complex that I'm putting it in 1.11 so I don't accidentally break anything else at this point. :)
Thanks!
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post333751 |
Poster: slouken at 3/9/2006 10:11:16 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Yes, the editbox now has a font object, and it can only inherit from a font object.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post333973 |
Poster: slouken at 3/15/2006 4:15:26 PM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
BTW, the reason there's no delete operation for frames is because there's no way other than garbage collection to guarantee that the scripting system no longer has a reference to the frame. We avoid garbage collection as much as possible. If you create a bunch of new frames, and then free them, and then create a bunch of new frames, etc., you're really contributing to the memory churn, and forcing a garbage collection pass sooner, and increasing the performance problems on memory bound systems.
A much better solution is to maintain a pool of frames. It's possible to architect a shared pool system that could be used by many different addons, but there simply wasn't time for it in 1.10. It's also something that could be done efficiently in script.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post337028 |
Poster: slouken at 3/28/2006 11:12:29 AM PST Subject: Re: Upcoming 1.10 Changes - Concise List |
|
Iriel, can you update the title of the thread, when you get a chance?
Thanks!
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post343785 |
Poster: slouken at 4/3/2006 3:45:34 PM PDT Subject: Re: 1.10 UI Changes - Concise List |
|
FYI, these have been added for 1.10.1:
* Update CheckBox:SetCheckedTexture to accept a texture object like the other texture functions.
* Slider:SetThumbTexture(Texture or "texturePath")
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post353040 |
Poster: slouken at 4/3/2006 5:19:03 PM PDT Subject: Re: 1.10 UI Changes - Concise List |
|
Some more 1.10.1 changes:
* Fixed overall script memory usage increase in 1.10.
* Skip UTF-8 byte-order marker at the start of .toc files.
* Added Lua collectgarbage() function.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post353123 |
Poster: slouken at 4/3/2006 9:26:15 PM PDT Subject: Re: 1.10 UI Changes - Concise List |
|
Yes, it's already skipped.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post353299 |
Poster: slouken at 4/6/2006 2:34:29 PM PDT Subject: Re: 1.10 UI Changes - Concise List |
|
More 1.10.1 changes:
Added:
Frame:SetToplevel(toplevel)
toplevel = Frame:IsToplevel()
Changed:
Setting the font or normal/disabled/highlight font objects on dynamically created buttons will create the fontstrings necessary to display text.[ post edited by slouken ]
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post355555 |
Poster: slouken at 4/7/2006 9:42:08 AM PDT Subject: Re: 1.10 UI Changes - Concise List |
|
This is already fixed with 1.10.1.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post356078 |
Poster: slouken at 4/7/2006 9:46:45 AM PDT Subject: Re: 1.10 UI Changes - Concise List |
|
Not a bug, you need to specify the frame you're setting all your points to. I agree though, a default of the parent makes sense here.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post356085 |
Poster: slouken at 4/11/2006 9:02:48 PM PDT Subject: Re: 1.10 UI Changes - Concise List |
|
Yes, the buttons and sliders own their texture objects. Font objects are designed to be shared, and don't work that way.
|
| http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=286547&p=#post358538 |