Let me start by saying I am not a programmer. I know very little about it at all. The closest I even come to it is through using visual basic in microsoft word for macros while doing medical transcription for 15 years. I recently had to quit work because of medical reasons. I have waaaay too much time on my hands and got into mods for WoW. Now my whole UI except for buffs is anything but generic. I use other's add-ons that I like a lot but wish they were different in some ways to suit my preferences so I decided to see how hard it was to learn this business of coding. I can't do school, i fail at school due to a learning deficiency due to Klinefelter's syndrome. But I do have the capacity to learn hands-on, allbeit slow with some things but nevertheless I would like to learn. Maul of Trinitybars2 told me about Textpad. I've been looking at LUA files for about a month and trying to understand it. I find myself exiting WoW to read oodles of code that I have no idea the meaning but it keeps drawing me back in. I've learned a little here and there about this foreign computer language. That's my brief history. In short I'm a complete and utter noob and hope that you will be patient with me.
My dilemma is I'm tired of the (4) fonts that all the mods offer and was wondering if SharedMediaLib would allow me extra fonts, textures for backgrounds, etc for tweaking my UI. My questions is with the newest changes in the WoW API and all I need to know what I need and what is involved. Is SharedMediaLib a standalone. Can I stick that badboy just in my addons folder and whatever addons use that kind of library will detect it or does it need to go in other folders of existing addons? And if so, there would be comments and strings and such I would need to add in various files. I don't want to screw it all up, you see. I don't want to be the problem. I'd rather be a solution or a guinea pig or something. Anyway, is the above mentioned possible and what version of the libs do I need? For backgrounds I use skinner, frames AG, was using xperl but got tired of not being able to tweak more. When I started using mods it was just CTRA for raiding which has progressed into a crap load of mods which have created a symphony that dances in my mind and is always changing. It's addictive, I can't go for 1 day without tweaking some change in it. I'm constantly moving shit around but it makes me happy. I have 7 70's as of yesterday my druid just hit 70 and have a different set up for each.
Anyway, I tend to get gabby since there is no one to talk to but my boyfriend and he's at work most of the time. I'm hoping to keep learning form you all. Hope I haven't made a nuisance of myself already.
LibSharedMedia-3.0 and SharedMedia + SharedMediaAdditionalFonts
This will make it available to mods, now wether a given mod has support for libraries is a different story altogther. some mods support using those libraries to get additional fonts some dont.
You could also try ClearFont2 or replace the standard wow fonts with a font of your own, by place the new font in Interface\\Fonts .. and naming it correctly (sorry I dont have the font names handy, you can grab the interface toolkit from blizard and look at the FrameXML folder to see the font names and where it uses those fonts.)
I'm using this site to teach me about this stuff and I'm going to be asking some questions, probably a lot of them. All I can hope for is that people will be kind enough to answer them.
I have a new question. I've been opening every mod I download and looking at it's folders and various files. I noticed that all the Ace mods i've downloaded all have libraries and i guess that's to run them. The mod has to have a reference point. My question is...Do Ace mods use other Ace mods' libraries? Sort of like some microsoft programs use other program's files. If the answer is no, has anyone ever thought of just making one big library or a set of libraries that every mod user would have to download and then all the mods would work off the same libraries? Or is that just not possible since the mods themselves couldn't run without WoW.
Libraries are supposed to provide common functionality in a reusable way. Typically referencing a library lets you use some functionality that's already been written and tested before, this means you don't have to reinvent the wheel and write essentially duplicate code inside your mod. For example instead of have 10 different addons all do their own complicated combat log parsing pre 2.4 most mods just used ParserLib. That may not be a great example because in 2.4 it's probably better to write your own combat log handling but you get the point. Ace2 libaries are typically used to simplify event registration, creating timed calls, saving profile based settings, creating menus/config ui's etc etc.
Frameworks like Ace1, Ace2, Ace3, Rock, Dongle are a collection of specific mods/libraries typically they focus on module registration, profile saving, addon comms etc.
Ace1 was generally a reaction to the horrible coding practices of many early mods in wow (*cough* ctmod et el). Ace1 used to be a single mod/folder with every library in a seperate subfolder underneath it. Problems occured when you had say 10 mods using Ace1 libraries. Someone comes along updates one of the Ace1 libraries, they also update 1 of the 10 mods you have using Ace1. The other mods haven't updated for the change in the library yet. When a regular user updates 9 mods break.
After that people came up with an embedded library system for Ace2, where the mod includes all the libraries it uses (specifically the version is was coded against) inside subfolders in the addon. So theoretically this solves the Ace1 problem but created problems of it's own with slow loading times, increased diskspace usage of your addons folder because the libraries are duplicated under each addon and so on. Blizzard's system for making addons load on demand requires the mod be in the root level under the addon folder meaning all these subfolder libraries can't be LoD.
People start adding LoD.bat files to mods like bigwigs un-embed the libraires, in order to have them be LoD.
WowAceUpdater comes out and lets people update their addons and make all the libraries standalone (un-embedded).
Ace3, Rock, Dongle, LibStub Era:
Without getting political some addon authors decide they have different philosophies and they split up...
Unhappy with how bloated Ace2 is becoming some authors split off and make Dongle it's used for popular addons like PerfectRaid and Clique.
Sometime later Joker pops up on the svn (later renamed Rock) it's a rewrite of Ace2 by ckknight for use in his hugely popular addons (Pitbull, FuBar, CowTip), the focus is on getting something out quickly to replace Ace2 generally quick fixes and optimization for Ace2 problems that can't be fixed without breaking changes.
An "Ace3 team" forms (it involves some of the Dongle authors apparently) is more of a planned approach to providing the core functionality Ace2 had but fixing the bugs and hacks in Ace2 while stripping out the cruft, optimizing, fixing. Naturally Ace3 has a fairly long alpha and beta period. Even now Ace3 version of many mods are in the branches in the svn but not "released" yet.
Sometime during all that there's a movement back towards useful libraries being "framework" independant, ie: a library should be able to be used by any framework or any mod. LibStub is created and used as an independent way to find and load libraries a mod needs.
This is now, there is a strong movement back towards "less is more" people are creating smaller, lightweight addons that don't use any frameworks or libraries and just do one thing well by maniplating the Blizzard UI that is already there rather than recreating it.
I don't guarantee any of this is 100% accurate by it should it's just a general history from my PoV as a regular addon user and tweaker.
To answer your original question, "SharedMedia" is pretty much and independent addon now meaning if a mod wants to use SharedMedia fonts it needs to use LibStub to get a reference to it and so on.
However you can just add fonts to the games font folder and call them directly in your mods code if you like.