• World of Warcraft Addons
  • World of Warcraft
  • Average Rating:

  • Your Rating

  • Share
  • Report Abuse

Chaos Frame Modifier

 
Project Updated:
Files Updated: Tue, Aug 11 2009
Supports Game Version: 3.1.0
Category: Miscellaneous
Tags:

[Edit Tags]

Project Manager: ChaosInc
Additional Authors: No additional authors
Current Version: r23
License: All Rights Reserved
Development Site: CurseForge
Avg Daily DL (last 30 days): 2
Downloads Total: 820
Favorites: 4
Comments: 12
  • Contests
  • About Chaos Frame Modifier
  •  

Chaos Frame Modifier

Bugs Reports/Suggestions
Bugs/Suggestions should be posted here or via the ticket system.

Author's Note
"Extreme" UI modders may remember the old Discord series of mods written by Lozareth. A few years ago he decided to cease development on this series. A few devoted individuals have kept the mods active at underworldexodus.com. Unfortunately, Discord Frame Modifier never truly has been kept "up to date" with the rest. The entire collection has been kept alive through what I like to call "bandaid" fixes, in which code was changed enough to keep the mods functional but are still full of errors. Unless these errors caused a cease in functionality, there were simply ignored. I finally got tired of said errors and started this project up. So enough babble, let's get on to what this thing can do!

Slash Command
/cfm - brings up config
/cfm import - bring up import frame
/cfm load <Realm> <Name> - swap to another toon's settings (remember to capitalize your realm and name)
ESC - closes config

CFM vs. DFM
No Outside Libs: DFM originally required Discord Library as a dependency. The library had so many calls that it would drastically impact performance when working with the config frame. CFM has everything built into it with no dependencies.
No Default List: This is intentional and will NOT be changed. One of my biggest pet peeves about using DFM was that it had a HUGE default list and that 98% of it was never used. The database will only contain what YOU want it to.
No required UI Reloads: When a frame was removed from the database in DFM it would require a UI reload in order to reset that frame back to it's original settings. With CFM, this is no longer the case. When a frame is added, it automatically creates a restore point for that frame's data AT THAT POINT. When a frame is removed, it resets the frame to these settings automatically. The only time when a user is prompted to reload is after swapping profiles as some frames that don't have settings will not be moved.

The Config Panel
Frame List (top-left)
This lists your frames currently in your database.
Left Click: Selects the frame and fills in it's info in all other frames (except "Add Frame").
Right Click: Prompts removal of the frame from the database.

Add Frame (bottom-left)
This is where you can add frames to your database.
Name: The custom name for your frame to show in the list (half-works, see "Known Bugs")
Frame: The actual name of the frame.
Parent: You can reassign the parent frame when adding. Leaving it blank will default it to it's current parent.
Tab: Move to next edit box.

Properties Frame (upper-right)
This displays and controls all the selected frame's properties.
Force Hide: Checking this will always hide the frame.
Width = Height: Also known as "Constrain Porportions". With this checked, if the width/height is changed, it automatically sets the other as the same value.
Width: Current width of the frame.
Height: Current height of the frame.
Scale: Current scale of the frame. (+/- adjust scale by .1)
Level: Current level of the frame. This controls where this frame's position is on the same strata (see below) as other frames. Think of it like a line of plates. You have 3 plates stacked; plate 1 overlaps plates 2 and 3. If you change plate 3 to the top of the stack (change it's level higher than plate 1), plate 3 now overlaps plates 1 and 2.
From: The selected frames anchor point. This is the point that will attach to the parent frame set in "To" (seebelow).
To: The parent's point where you want the your selected frame to attach to.
Strata: Similar to level, but more extreme. There are 5 choices and the list goes from lowest to highest (top to bottom).

Position Frame (lower-right)
This controls the frames position in relation to the parent. Both values can be increased/decreased with their corresponding "+"/"-" buttons.
X: The selected frame's horizontal position.
Y: The selected frame's vertical position.
0,0: Resets the selected frame's position to X:0,Y:0.

Mouseover Frame (bottom)
This will tell you the name of the frame your mouse is currently over.

Import Frame (/cfm import)
This allows users to import their settings from DFM. 2 things to note:
1) No restore point will be generated during an import.
2) Because of the way DFM's saved vars are laid out, there is no way to "mass import" all frames at this time. Sorry. :(

ALL SETTING (except in Add Frame and Import Frame) ARE APPLIED WITH YOU PRESS "ENTER"

Known Bugs
Frame name displays in list instead of the name I set!: I'm aware of this and for the time being that's the way it is. When I realized my error on this, I was too far into the project to create a fix as it'll require a consider amount of recoding to fix. I actually wanna play for a bit now, dammit! =p
Frame X doesn't keep it's settings!: Some frames are "Load on Demand", meaning they don't exist yet when CFM tries to apply changes to it. This especially applies to several default Blizz frames (like AchievementFrame). If you come across something like this, please submit a ticket and I'll add support for it.

Soon-to-be FAQs (things I've asked myself along the way)
How long did it really take to write this?
Almost 4 months. I have a full time job, a woman and 2 kids. Doesn't leave much time for continuous coding without getting yelled at. ;)

Why didn't you keep the "Discord" name?
This was completely written from the ground up. Not to discredit the original, but this was my hard work and felt it deserved to be titled with such in mind.

Why not just fix DFM?
DFM is way too bulky and, well, out of date. With the changes to the API over the last several patches a lot of the existing code is now redundant or just plain broken. I'd also have to rewrite portions of the Discord Library to compensate for fixes and would just be bigger headache than this has been so far.

Will you consider making this "Ace"'d?
Will you consider holding a shotgun to your head and pull the trigger? If there's one tradition for the Discord mods I've always agreed with is that it'll never use Ace libs (or any other for that matter). I hate trying to work off other people's libs because if something changes that breaks the lib then I have to sit and wait for a fix before I can fix my own project.

LDB/Titan/Fubar support?
Why? Too lazy to type /cfm?

Can the colors be changed?
Eventually. Maybe. I like em. I didn't like Discord's color scheme, but I dealt with it just fine. You can too.

Will you allow WoWMatrix to distribute this?
They can go die in a bus fire.

Things To Do
1) Figure out why the strata box keeps saying "Center". (DONE!) 2) Fix so name shows in list instead of the frame.
3) Get my Argent Tournament mount. (most likely to happen first) (DONE!) 4) Compatibility with other mod's saved vars. Currently, there are a few mods that will reset frame positions when their options are opened (XPerl, Lunarsphere, etc.) Goal is that when CFM saves a frame's position, it'll also automatically save them to the parent mod's saved vars as well, preventing the "auto shift back" when these mods are opened after CFM is closed. (likely to happen second) (PARTLY DONE!) 5) Go get a soda (DONE!)

Credits
ME!: I wrote it.
Moongaze: LOTS of help along the way, including a lot of performance suggestions.
Discord Community: For keeping Discord going as long as it has been. Notable people being Shiny, ThaDruid, Kayda. No credit goes to Lappen, however, as he's just a whiny bastard who hasn't done anything useful. Ever.
WoWInterface Community: Including Seerah, Akryn, and kraftman for helping me with my noobish questions on the forums when I'd get stuck.

  • Downloads (7)
  •  
File Name Release Type Game Version Downloads Date
Addon Curse.com Beta 2.3.3 0 9/29/2008
  File Name Release Type Game Version Downloads Date  
  Chaos Frame Modifier r18 Release 3.1.0 32 7/1/2009
  Chaos Frame Modifier r17 Release 3.1.0 44 6/30/2009
  • Screenshots (2)
  •  
  • Comments

Add Comment  

Add

You need to login or register to post.

Benefits of Registration

  • Interact with hundreds of thousands of other gamers on an open social network.
  • Post your stories, news, images, videos, and other content to share.
  • Create a network with your fellow gamers or join an existing one.
  • Gain reputation for everything you do.
  • Robadon666 said

    seems not work on 3.2

    Reply Report Permalink
  • ChaosInc said

    Can you be a bit more elaborate? As in, "not at all", "isn't applying setting", "isn't saving correctly", etc.? Simply "it doesn't work!" isn't very helpful, especially when it's working fine on my end.

    Reply Report Permalink
  • ChaosInc said

    r23 - all fixed now :)

    Reply Report Permalink
  • ChaosInc said

    @Scorpia

    It's not unusual. Well it is, but it isn't as I've traced the behaviour. For whatever reason after you adjust a Blizz frame you have to /reload the UI or it'll keep resetting to it's default position. I'm not sure why and I'm going to see if I can get some more info on what I can do to try and avoid the reload.

    Worst case scenario, I'll have to add a reload prompt after adding a Blizz frame (specifically stating that it's only needed for Blizz alterations).

    Reply Report Permalink
  • ChaosInc said

    @Scorpia

    Ok, wierd stuff during testing. Try this and tell me if it works (skip steps you have done):

    1) Open your mail frame
    2) Add it to CFM
    3) Alter and move to wherever
    4) Close everything
    5) Reopen mail frame
    6) If back in the original spot again, change something to move the frame again, then change back
    7) close everything
    8) open mail last time, should be where you want it

    Did this to me, want to see if it replicates for you.

    Reply Report Permalink
  • Scorpia said

    Ok. I'm stumped now.
    Logged into my AH character (a character that I had attempted previously to modify the MailFrame position), and the MailFrame was in the proper position when I opened the mailbox.

    So I went to a vendor (MerchantFrame). Set the settings, closed everything, reopened, back in original position.
    Reset the settings by changing something, then changing it back.
    Closed everything, reopened. Still back in original position.

    Exited game, reentered game, reopened vendor window.

    Window is now in the position I set it at.

    It would appear that the MailFrame and the MerchantFrame (at a minimum) currently requires a relog to save the positions.

    Reply Report Permalink
  • Scorpia said

    CharacterFrame - Same behavior.

    Reply Report Permalink
  • Scorpia said

    MerchantFrame is doing the same thing.

    Figures the only two windows I bother trying to set positions on don't work.

    Am I doing it right?

    1. Type /cfm to open the window
    2. Open the frame I wanna move, make note of the Frame name and parent while mouse is over the title of the frame
    3. Type in Frame name (capitalized like it is supposed to be)
    4. Type in normal name (for MerchantFrame, I used "Vendor")
    5. Type in Parent Frame (capitalized like it's supposed to be)
    move my frame using the x/y settings, pressing enter when i have it the way i want to be.
    6. Close frame
    7. Close cfm (ESC)

    At that point, I reopen the frame and it's back to original position.

    At least move anything worked. lol.

    Reply Report Permalink
  • ChaosInc said

    Everything you're doing is correct. I'm not sure what's going on, as I stated below. I've provided several "backups" to ensure that frames will change.

    1) All frames have their "OnShow" scripts hooked to ensure that frames not visible at login/reload apply their settings when they are eventually shown (vehicle bar, for example)
    2) All frames are registered with WoW as "UserPlaced", which stores all the frame's anchors/positions in layout-local.lua WoW reads this file first before any mods touch them.
    3) Frames are readjusted every login/reload, as well as OnShow. In a nutshell, at some point in the frame's existance the settings should be applied.
    4) All saved vars (CFM's and layout-local) are being saved correctly, as I stated below, so it's not a problem with info not being stored properly.
    5) All other non-Blizz frames apply all attributes correctly (tested with several), so it's not that CFM is reading the saved info incorrectly.

    I'm banging my head on this, trust me. If you adjust any other attributes of the Blizz frame (strata, scale, etc) the settings are applied when the frame shows up (tested and proven), but for some reason it's just the x/y position that seems to be getting ignored.

    If I can't find out why this is happening, I'll simply add a delay to the "OnShow" script and that should solve this issue. I'll also take a gander at MA! and see if that had to create a workaround.

    Sorry for this, I should've tested it on Blizz frames to make sure there weren't going to be any issues. :(

    Reply Report Permalink
  • ChaosInc said

    Checked stuff on the mail frame after attempting to alter it. As mentioned before, the x/y position doesn't seem to be affecting it when it loads up, but other props still do (like scale).

    1) The MailFrame is not LoD, so it's not the same as previous issues with the achievement frame
    2) The saved vars are storing the changes correctly
    3) UserPlaced data is also storing values correctly

    At this time, I haven't the foggiest on why it snaps back to it's original position when every possible settings says not to, both with CFM and the client itself. Gonna post a ticket to a GM to see if I can get some clarification as it may simply be a bug.

    Reply Report Permalink
  • Scorpia said

    ok, I set the position of the mail frame, then closed the mail frame and pressed escape on cfm.

    Reopened mailbox and it opens in default position. :(

    I have to be doing something wrong.

    Reply Report Permalink
  • ChaosInc said

    I'll take a look at it, but it probably won't be until later tonight as I'll be working all day. Probably need to make a workaround like I did with the achievement frame.

    Reply Report Permalink
  • ChaosInc said

    Had a few extra before work, confirmed that the mail frame retains all other aspects except position. As I said, I'll take a look at the mail frame and see if I can create a workaround.

    Reply Report Permalink
  • Scorpia said

    Thanks. Sorry, I just assumed that the mailbox would be a no-brainer. :)

    Reply Report Permalink
  • Scorpia said

    Holy ****. I remember discord frames. When he left, I moved to MoveAnything. Dumping it for this. Are you going to TOC update this for 3.2?

    Reply Report Permalink
  • ChaosInc said

    Wasn't really planning on it as I don't really see the point. Functionality hasn't changed and checking "load out of date addons" is simple enough.

    Reply Report Permalink
  • ChaosInc said

    Sorry to anyone who has tried this with widescreen. My noobness didn't look too closely at fontstring anchors/positioning and didn't realize it worked differently than frames. The config frame should align correctly for EVERYONE as of r21.

    Reply Report Permalink
  • ChaosInc said

    Update: I do plan to fix the bug when you exit a vehicle, unfortunately my comp's vid card died so I don't have access to my files atm. Soon as I my machine working I'll make the fix.

    Reply Report Permalink
  • ChaosInc said

    r15
    Profile swapping added. Temporarily as slash commands, I'll build the GUI for it later.

    Reply Report Permalink
  • Highend said

    Could this addon hide the tooltip from recount that appears when you hover over an entry in it's list? If yes, can you help to identify the necessary parameters for CFM to do this?

    Thanks a lot for bringing us one of the best discord mods back :)

    Regards,
    Highend

    Reply Report Permalink
  • Similar Addons
  •  

Average downloads per day

  1. 1,461 Skinner Miscellaneous
  2. 870 Examiner Miscellaneous
  3. 586 FuBar 3.6 Miscellaneous
  4. 319 FuBar_MoneyFu Miscellaneous
  5. 258 Talented Miscellaneous