WoW BlueTracker Home | RSS | News | Contact
Recent | Search | Archive | CS Posts
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

View all recent official Blue Posts

WoW Blue Tracker: Archiving World of Warcraft Blue Posts
since March 2005
Home | RSS | News | Contact
Recent | Search | Archive | CS Posts
 

Why Ads?