WoWInterface SVN MapNotesFansUpdate

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /trunk
    from Rev 1 to Rev 2
    Reverse comparison

Rev 1 → Rev 2

MapNotesIconLib_Numbers/MapNotesIconLib_Numbers.toc New file
0,0 → 1,5
## Interface: 30000
## Title: MapNotesIconLib_Numbers
## Notes: A Variety of Numbered Icons for MapNotesIconLib
## Dependencies: MapNotesIconLib
MapNotesIconLib_Numbers.lua
MapNotesIconLib_Numbers/Icons/Numbers/Marbleb00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marbleb01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marbleb02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/SpotGroup1t.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marbleb03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marbleb04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marbleb05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marbleb06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/SpotGroup5t.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marbleb07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marbleb08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marbleb09.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/SpotGroup9t.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaceb00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaceb01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaceb02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaced00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaceb03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaced01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaceb04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaced02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacef00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaceb05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaced03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacef01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaceb06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaced04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacef02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaceb07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaced05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacef03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaceb08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaced06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacef04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaceb09.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaced07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacef05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaced08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacef06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peaced09.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacef07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacef08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacef09.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/SpotGroup2t.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/SpotGroup6t.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblea00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblea01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblec00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblea02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblec01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblea03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblea04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblec02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Blank0.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblea05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblec03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Blank1.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblea06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblec04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/SpotGroup3t.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Blank2.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblea07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblec05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Blank3.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblea08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblec06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Blank4.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblea09.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblec07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Blank5.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblec08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/SpotGroup7t.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Blank6.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Marblec09.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacea00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Blank7.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacea01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Blank8.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacea02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacec00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Blank9.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacec01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacea03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacec02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacea04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacee00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacec03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacea05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacee01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacea06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacec04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacee02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacea07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacec05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacee03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacea08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacec06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacee04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacee05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacec07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacea09.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacee06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacec08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacee07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacec09.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacee08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/Peacee09.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/SpotGroup0t.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/SpotGroup4t.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/Icons/Numbers/SpotGroup8t.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Numbers/MapNotesIconLib_Numbers.lua New file
0,0 → 1,136
 
-- Data that we need to register with MapNotesIconLib
local MapNotesIconLib_Numbers_Icons = {
[1] = {
["title"] = "Numbered Icons",
["author"] = "Telic",
["date"] = "20071227",
["info"] = {
["enGB"] = "A Variety of Numbered Icons for MapNotes\n (Some Icons courtesy of\n http://www.freebuttons.com)",
},
["icons"] = {
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\SpotGroup0t", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\SpotGroup1t", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\SpotGroup2t", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\SpotGroup3t", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\SpotGroup4t", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\SpotGroup5t", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\SpotGroup6t", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\SpotGroup7t", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\SpotGroup8t", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\SpotGroup9t", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Blank0", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Blank1", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Blank2", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Blank3", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Blank4", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Blank5", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Blank6", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Blank7", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Blank8", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Blank9", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacea00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacea01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacea02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacea03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacea04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacea05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacea06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacea07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacea08", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacea09", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaceb00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaceb01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaceb02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaceb03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaceb04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaceb05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaceb06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaceb07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaceb08", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaceb09", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacec00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacec01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacec02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacec03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacec04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacec05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacec06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacec07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacec08", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacec09", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaced00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaced01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaced02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaced03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaced04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaced05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaced06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaced07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaced08", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peaced09", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacee00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacee01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacee02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacee03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacee04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacee05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacee06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacee07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacee08", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacee09", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacef00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacef01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacef02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacef03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacef04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacef05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacef06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacef07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacef08", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Peacef09", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblea00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblea01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblea02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblea03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblea04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblea05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblea06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblea07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblea08", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblea09", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marbleb00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marbleb01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marbleb02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marbleb03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marbleb04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marbleb05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marbleb06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marbleb07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marbleb08", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marbleb09", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblec00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblec01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblec02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblec03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblec04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblec05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblec06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblec07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblec08", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Numbers\\Icons\\Numbers\\Marblec09", },
},
},
};
 
 
 
local MNIL_Numbers_Frame = CreateFrame("Frame");
 
local function MNIL_Numbers_OnEvent()
MNIL_RegisterLibrary(MapNotesIconLib_Numbers_Icons); -- The function needed to register the above data with MapNotesIconLib
end
 
MNIL_Numbers_Frame:RegisterEvent("VARIABLES_LOADED");
MNIL_Numbers_Frame:SetScript("OnEvent", MNIL_Numbers_OnEvent);
 
MapNotesForAtlas/MapNotesForAtlas.lua New file
0,0 → 1,58
 
-------------------------------------------------
-- Code to Register Atlas as a MapNotes Plugin --
-------------------------------------------------
 
local MapNotesForAtlas_Frame = CreateFrame("Frame");
MapNotesForAtlas_Frame:RegisterEvent("VARIABLES_LOADED");
 
local function MapNotesForAtlas_OnEvent()
MAPNOTES_PLUGINS_LIST.Atlas = { name = "Atlas",
frame = "AtlasFrame",
keyVal = "Atlas_MN_Query",
lclFnc = "Atlas_MN_Localiser",
};
MapNotes_RegisterPlugin(MAPNOTES_PLUGINS_LIST.Atlas);
end
 
MapNotesForAtlas_Frame:SetScript("OnEvent", MapNotesForAtlas_OnEvent);
 
 
 
 
----------------------------------------------------------------------------------------------------
-- Plugin Functions that must be provided for MapNotes to generate note keys, and localised names --
----------------------------------------------------------------------------------------------------
 
function Atlas_MN_Query()
local key = nil;
local mapRaw = AtlasMap:GetTexture();
 
if ( mapRaw ) then
local i, l = 0; -- note that 'l' is deliberately left 'nil' by this assignment
while ( true ) do
i = string.find(mapRaw, "\\", i+2);
if ( i ) then
l = i+1;
else
break;
end
end
if ( l ) then
key = string.sub(mapRaw, l);
end
end
 
return key;
end
 
function Atlas_MN_Localiser(key)
for j, value in ipairs(AtlasMaps) do
if (value[key]) then
return value[key].ZoneName;
end
end
 
return;
end
 
MapNotesForAtlas/MapNotesForAtlas.toc New file
0,0 → 1,13
## Interface: 30000
## Title: MapNotesForAtlas
## Author: Telic
## eMail: telic@hotmail.co.uk
## Version: 1.00.30000
## Notes: Allows MapNotes functionality & notes on Atlas Maps
## RequiredDeps: MapNotes, Atlas
## OptionalDeps:
## DefaultState: enabled
## SavedVariables:
 
MapNotesForAtlas.lua
 
MapNotesForAtlas/Readme.txt New file
0,0 → 1,12
 
This AddOn makes the functionality of MapNotes (Fan's Update) available within Atlas.
 
i.e. you can now <Control>-Click on Atlas maps to make your own notes, in just the same way that you use MapNotes to make notes on the Blizzard WorldMap
 
This AddOn simply uses the Plugin interface provided by MapNotes that allows notes to be created on any other WoW frames.
 
The code in this AddOn used to be included within the MapNotes AddOn. Why have I separated this code in to its own AddOn folder ?
Firstly, this is probably the way that this functionality should always have been implemented for the sake of clarity.
I'm also aware that a new version of Atlas will be released, and that this Plugin may not work with the new Atlas.
However, I am confident that MapNotes and Atlas can still be compatible with some small modifications to the Atlas-specific "Plugin" functions. Putting this plugin code in its own AddOn means that it can be updated and upgraded separately to the MapNotes AddOn itself, and even allows the Atlas author to provide their own Plugin code if they so wish.
 
MapNotes/localization.cn.lua New file
0,0 → 1,174
-- Version : Chinese (by onlyfly)
-- Update : 2007/12/25
--[[
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
]]
 
-- English is the default localization for MapNotes
if GetLocale() == "zhCN" then
 
-- General
MAPNOTES_NAME = "MapNotes";
MAPNOTES_ADDON_DESCRIPTION = "在世界地图上增加标记功能.";
MAPNOTES_DOWNLOAD_SITES = "查看README文件了解下载网站信息.";
 
-- Interface Configuration
MAPNOTES_WORLDMAP_HELP_1 = "地图上右键单击缩小地图";
MAPNOTES_WORLDMAP_HELP_2 = "地图上左键单击放大地图";
MAPNOTES_WORLDMAP_HELP_3 = "在地图上使用「Control +右键」以开启 "..MAPNOTES_NAME.." 菜单";
MAPNOTES_CLICK_ON_SECOND_NOTE = "|cFFFF0000"..MAPNOTES_NAME..":|r 选择第二个标记以创建/清除一条线";
 
MAPNOTES_NEW_MENU = MAPNOTES_NAME;
MAPNOTES_NEW_NOTE = "创建标记";
MAPNOTES_MININOTE_OFF = "关闭小地图标记";
MAPNOTES_OPTIONS = "选项";
MAPNOTES_CANCEL = "取消";
 
MAPNOTES_POI_MENU = MAPNOTES_NAME;
MAPNOTES_EDIT_NOTE = "编辑标记";
MAPNOTES_MININOTE_ON = "设置为小地图标记";
MAPNOTES_SPECIAL_ACTIONS = "特殊操作";
MAPNOTES_SEND_NOTE = "发送标记";
 
MAPNOTES_SPECIALACTION_MENU = "特殊操作";
MAPNOTES_TOGGLELINE = "创建/清除线条";
MAPNOTES_DELETE_NOTE = "删除标记";
 
MAPNOTES_EDIT_MENU = "编辑标记";
MAPNOTES_SAVE_NOTE = "保存";
MAPNOTES_EDIT_TITLE = "标题(必填):";
MAPNOTES_EDIT_INFO1 = "注释1 (可选):";
MAPNOTES_EDIT_INFO2 = "注释2 (可选):";
MAPNOTES_EDIT_CREATOR = "创建者 (可选):";
 
MAPNOTES_SEND_MENU = "发送标记";
MAPNOTES_SLASHCOMMAND = "改变模式";
MAPNOTES_SEND_TITLE = "发送标记:";
MAPNOTES_SEND_TIP = "这些标记可以被其他地图标记使用者接收\n('发送给队友'功能必须配合MapNotes(Fan's Update)才可使用)";
MAPNOTES_SEND_PLAYER = "输入玩家名:";
MAPNOTES_SENDTOPLAYER = "发送给玩家";
MAPNOTES_SENDTOPARTY = "发送给队友";
MAPNOTES_SENDTOPARTY_TIP = "左键单击 - 小队\n右键单击 - 团队";
MAPNOTES_SHOWSEND = "改变模式";
MAPNOTES_SEND_SLASHTITLE = "得到斜线命令:";
MAPNOTES_SEND_SLASHTIP = "选中这些并使用CTRL+C 复制到剪切板\n(之后可以将它进行上传论坛等处理)";
MAPNOTES_SEND_SLASHCOMMAND = "/Command:";
 
MAPNOTES_OPTIONS_MENU = "选项";
MAPNOTES_SAVE_OPTIONS = "保存";
MAPNOTES_OWNNOTES = "显示自己创建的标记";
MAPNOTES_OTHERNOTES = "显示收到的标记";
MAPNOTES_HIGHLIGHT_LASTCREATED = "高亮提示最后创建的标记为|cFFFF0000红色|r";
MAPNOTES_HIGHLIGHT_MININOTE = "高亮提示最后选择为小地图标记的标记为|cFF6666FF蓝色|r";
MAPNOTES_ACCEPTINCOMING = "接受其他玩家传入的标记";
MAPNOTES_INCOMING_CAP = "如果可接收标记少于5个则拒收标记";
MAPNOTES_AUTOPARTYASMININOTE = "自动将团队标记设为小地图标记.";
 
MAPNOTES_CREATEDBY = "创建人:";
MAPNOTES_CHAT_COMMAND_ENABLE_INFO = "这个命令允许你插入从其他地方得到的标记(如网页).";
MAPNOTES_CHAT_COMMAND_ONENOTE_INFO = "忽略选项设置,使你可以接收下一个传入的标记.";
MAPNOTES_CHAT_COMMAND_MININOTE_INFO = "将下一个传入的标记直接设置为小地图标记(同时在地图上插入标记):";
MAPNOTES_CHAT_COMMAND_MININOTEONLY_INFO = "将下一个传入的标记仅设置为小地图标记(不在地图上插入标记).";
MAPNOTES_CHAT_COMMAND_MININOTEOFF_INFO = "关闭小地图标记.";
MAPNOTES_CHAT_COMMAND_MNTLOC_INFO = "在地图上创建tloc标记.";
MAPNOTES_CHAT_COMMAND_QUICKNOTE = "在地图上创建当前位置的标记.";
MAPNOTES_CHAT_COMMAND_QUICKTLOC = "在当前区域地图上创建一个tloc制定位置的标记.";
 
MAPNOTES_CHAT_COMMAND_SEARCH = "查找包含 [文字] 的标记";
MAPNOTES_CHAT_COMMAND_HIGHLIGHT = "高亮显示具有 [标题] 的标记";
 
MAPNOTES_CHAT_COMMAND_IMPORT_METAMAP = "导入 MetaMap 的标记。这个功能可以使你转移到 MapNotes。\nMetaMap 必须安装并启用才可使用该命令。 然后就可以移除 MetaMap 了.\n警告 : 这个功能仅为MapNotes新用户设计。否则可能覆盖你原有的标记."; --Telic_4
MAPNOTES_CHAT_COMMAND_IMPORT_ALPHAMAP = "导入 AlphaMap 的副本标记 : 需要 AlphaMap 已安装并启用."; --Telic_4
 
MAPNOTES_CHAT_COMMAND_SCALE = "改变窗口大小";
MAPNOTES_CHAT_COMMAND_ISCALE = "改变标记图标大小";
MAPNOTES_CHAT_COMMAND_ASCALE = "改变标记图标透明度";
 
MAPNOTES_CHAT_COMMAND_UNDELETE = "还原最后删除的标记";
 
MAPNOTES_MAPNOTEHELP = "这个命令只能用来创建标记";
MAPNOTES_ONENOTE_OFF = "允许一个标记传入: 关";
MAPNOTES_ONENOTE_ON = "允许一个标记传入: 开";
MAPNOTES_MININOTE_SHOW_0 = "下一个传入标记做为小地图标记: 关";
MAPNOTES_MININOTE_SHOW_1 = "下一个传入标记做为小地图标记: 开";
MAPNOTES_MININOTE_SHOW_2 = "下一个传入标记做为小地图标记: 仅小地图标记";
MAPNOTES_DECLINE_SLASH = "无法增加,太多标记在|cFFFFD100%s|r.";
MAPNOTES_DECLINE_SLASH_NEAR = "无法增加,这个标记太接近|cFFFFD100%q|r在|cFFFFD100%s|r.";
MAPNOTES_DECLINE_GET = "无法接收|cFFFFD100%s|r传入的标记:太多标记在|cFFFFD100%s|r,或设置中禁止接收该标记.";
MAPNOTES_ACCEPT_SLASH = "标记增加到了|cFFFFD100%s|r的地图上.";
MAPNOTES_ACCEPT_GET = "你接收到一个从|cFFFFD100%s|r发来的标记在|cFFFFD100%s|r.";
MAPNOTES_PARTY_GET = "|cFFFFD100%s|r在|cFFFFD100%s|r设置了一个新的团队标记.";
MAPNOTES_DECLINE_NOTETONEAR = "|cFFFFD100%s|r试图给你发送一个在|cFFFFD100%s|r的标记,但是它太接近|cFFFFD100%q|r了.";
MAPNOTES_QUICKNOTE_NOTETONEAR = "无法创建标记.你太接近|cFFFFD100%s|r了.";
MAPNOTES_QUICKNOTE_NOPOSITION = "无法创建标记:无法得到当前位置.";
MAPNOTES_QUICKNOTE_DEFAULTNAME = "快速标记";
MAPNOTES_QUICKNOTE_OK = "在地图|cFFFFD100%s|r上创建标记.";
MAPNOTES_QUICKNOTE_TOOMANY = "已经有太多标记在|cFFFFD100%s|r的地图上了.";
MAPNOTES_DELETED_BY_NAME = "已删除所有由%s以及%s所创建的地图标记.";
MAPNOTES_DELETED_BY_CREATOR = "已删除所有由%s所建立的地图标记.";
MAPNOTES_QUICKTLOC_NOTETONEAR = "无法创建标记.位置太接近标记|cFFFFD100%s|r了.";
MAPNOTES_QUICKTLOC_NOZONE = "无法创建标记:无法得到当前区域.";
MAPNOTES_QUICKTLOC_NOARGUMENT = "用法: '/quicktloc xx,yy [icon] [title]'.";
MAPNOTES_SETMININOTE = "将标记设置为新的小地图标记";
MAPNOTES_THOTTBOTLOC = "Thottbot坐标";
MAPNOTES_PARTYNOTE = "团队标记";
MAPNOTES_WFC_WARN = "使用 |c0000FF00'/mn -tloc xx,yy'|r 或 |c0000FF00'/mntloc xx,yy'|r 来 显示地图上的位置.";
 
MAPNOTES_CONVERSION_COMPLETE = MAPNOTES_VERSION.." - 转换完毕,请勿重复执行这个指令."; -- ??
 
MAPNOTES_TRUNCATION_WARNING = "The Note Text being Sent had to be truncated"; -- ??
 
MAPNOTES_IMPORT_REPORT = " 标记已导入"; -- ??
MAPNOTES_NOTESFOUND = " 找到标记"; -- ??
 
-- Drop Down Menu
MAPNOTES_SHOWNOTES = "显示标记";
MAPNOTES_DROPDOWNTITLE = MAPNOTES_NAME;
MAPNOTES_DROPDOWNMENUTEXT = "快捷选项";
 
MAPNOTES_WARSONGGULCH = "战歌峡谷";
MAPNOTES_ALTERACVALLEY = "奥特兰克山谷";
MAPNOTES_ARATHIBASIN = "阿拉希盆地";
MAPNOTES_NETHERSTORM = "风暴之眼";
 
MAPNOTES_COSMIC = "Cosmic";
 
 
-- Coordinates
MAPNOTES_MAP_COORDS = "地图坐标";
MAPNOTES_MINIMAP_COORDS = "小地图坐标";
MAPNOTES_COORDINATE_FORMATTING_ERROR1 = "MapNotes 无法处理传入的坐标";
MAPNOTES_COORDINATE_FORMATTING_ERROR2 = "最简单的格式 : x,y 例如 55,9";
MAPNOTES_COORDINATE_FORMATTING_ERROR3 = "查看 Readme.txt 了解其他格式选项";
 
-- MapNotes Target & Merging
MAPNOTES_MERGED = "MapNote 合并为 : ";
MAPNOTES_MERGE_DUP = "MapNote 已存在 : ";
MAPNOTES_MERGE_WARNING = "你必须有目标才能合并标记.";
 
BINDING_HEADER_MAPNOTES = "地图标记";
BINDING_NAME_MN_TARGET_NEW = "快速标记/目标标记";
BINDING_NAME_MN_TARGET_MERGE = "合并目标标记";
BINDING_NAME_MN_TOGGLE_MINIS = "全部小地图标记切换";
 
MN_LEVEL = "Level";
 
-- Magellan Style LandMarks
MAPNOTES_LANDMARKS = "地标"; -- Landmarks, as in POI, or Magellan
MAPNOTES_LANDMARKS_CHECK = "自动标记地图 "..MAPNOTES_LANDMARKS;
MAPNOTES_DELETELANDMARKS = "删除 "..MAPNOTES_LANDMARKS;
MAPNOTES_MAGELLAN = "(~Magellan)";
MAPNOTES_LM_CREATED = " 地图标记创建于 ";
MAPNOTES_LM_MERGED = " 地图标记合并于 ";
MAPNOTES_LM_SKIPPED = " 地图标记未做标记于 ";
MAPNOTES_LANDMARKS_NOTIFY = MAPNOTES_LANDMARKS.." 标记于 ";
 
MN_STARTED_IMPORTING = "开始导入";
MN_INVALID_KEY = "无效的地图键 : ";
MN_FINISHED_IMPORTING = "完成导入";
MN_AREANOTES = "%d 标记于 %d 地区";
MN_DUPS_IGNORED = "忽视副本";
 
end
MapNotes/localization.en.lua New file
0,0 → 1,211
--[[
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
]]
 
-- English is the default localization for MapNotes
--if GetLocale() == "usEN" then
 
-- General
MAPNOTES_NAME = "MapNotes";
MAPNOTES_ADDON_DESCRIPTION = "Adds a note system to the WorldMap.";
MAPNOTES_DOWNLOAD_SITES = "See README for download sites";
 
-- Interface Configuration
MAPNOTES_WORLDMAP_HELP_1 = "Right-Click On Map To Zoom Out";
MAPNOTES_WORLDMAP_HELP_2 = "Left-Click On Map To Zoom In";
MAPNOTES_WORLDMAP_HELP_3 = "<Control>+Right-Click On Map To Open "..MAPNOTES_NAME.." Menu";
MAPNOTES_CLICK_ON_SECOND_NOTE = "|cFFFF0000"..MAPNOTES_NAME..":|r Choose Second Note To Draw/Clear A Line";
 
MAPNOTES_NEW_MENU = MAPNOTES_NAME;
MAPNOTES_NEW_NOTE = "Create Note";
MAPNOTES_MININOTE_OFF = "Turn MiniNote Off";
MAPNOTES_OPTIONS = "Options";
MAPNOTES_CANCEL = "Cancel";
 
MAPNOTES_POI_MENU = MAPNOTES_NAME;
MAPNOTES_EDIT_NOTE = "Edit Note";
MAPNOTES_MININOTE_ON = "Set As MiniNote";
MAPNOTES_SPECIAL_ACTIONS = "Special Actions";
MAPNOTES_SEND_NOTE = "Send Note";
 
MAPNOTES_SPECIALACTION_MENU = "Special Actions";
MAPNOTES_TOGGLELINE = "Toggle Line";
MAPNOTES_DELETE_NOTE = "Delete Note";
 
MAPNOTES_EDIT_MENU = "Edit Note";
MAPNOTES_SAVE_NOTE = "Save";
MAPNOTES_EDIT_TITLE = "Title (required):";
MAPNOTES_EDIT_INFO1 = "Info Line 1 (optional):";
MAPNOTES_EDIT_INFO2 = "Info Line 2 (optional):";
MAPNOTES_EDIT_CREATOR = "Creator (optional):";
 
MAPNOTES_SEND_MENU = "Send Note";
MAPNOTES_SLASHCOMMAND = "Change Mode";
MAPNOTES_SEND_TITLE = "Send Note:";
MAPNOTES_SEND_TIP = "These notes can be received by all MapNotes(Fan's Update) users.";
MAPNOTES_SEND_PLAYER = "Enter player name:";
MAPNOTES_SENDTOPLAYER = "Send to player";
MAPNOTES_SENDTOPARTY = "Send to Party/Raid";
-- %%% MAPNOTES_SENDTOPARTY_TIP = "Left Click - Party\nRight Click - Raid";
MAPNOTES_SHOWSEND = "Change Mode";
MAPNOTES_SEND_SLASHTITLE = "Get slash Command:";
MAPNOTES_SEND_SLASHTIP = "Highlight this and use CTRL+C to copy to clipboard (then you can post it in a forum for example)";
MAPNOTES_SEND_SLASHCOMMAND = "/Command:";
 
MAPNOTES_OPTIONS_MENU = "Options";
MAPNOTES_SAVE_OPTIONS = "Save";
MAPNOTES_OWNNOTES = "Show notes created by your character";
MAPNOTES_OTHERNOTES = "Show notes received from other characters";
MAPNOTES_HIGHLIGHT_LASTCREATED = "Highlight last created note in |cFFFF0000red|r";
MAPNOTES_HIGHLIGHT_MININOTE = "Highlight note selected for MiniNote in |cFF6666FFblue|r";
MAPNOTES_ACCEPTINCOMING = "Accept incoming notes from other players";
MAPNOTES_INCOMING_CAP = "Decline notes if they would leave less than 5 notes free";
MAPNOTES_AUTOPARTYASMININOTE = "Automatically set party notes as MiniNote.";
 
MAPNOTES_CREATEDBY = "Created by";
MAPNOTES_CHAT_COMMAND_ENABLE_INFO = "This command enables you to instert notes gotten by a webpage for example.";
MAPNOTES_CHAT_COMMAND_ONENOTE_INFO = "Overrides the options setting, so that the next note you receive is accepted.";
MAPNOTES_CHAT_COMMAND_MININOTE_INFO = "Displays the next received note directly as MiniNote (and insterts it into the map):";
MAPNOTES_CHAT_COMMAND_MININOTEONLY_INFO = "Displays the next note received as MiniNote only (not inserted into map).";
MAPNOTES_CHAT_COMMAND_MININOTEOFF_INFO = "Turns the MiniNote off.";
MAPNOTES_CHAT_COMMAND_MNTLOC_INFO = "Sets a Thottbott marker on the map.";
MAPNOTES_CHAT_COMMAND_QUICKNOTE = "Creates a note at the current position on the map.";
MAPNOTES_CHAT_COMMAND_QUICKTLOC = "Creates a note at the given coordinate position on the map in the current zone.";
 
MAPNOTES_CHAT_COMMAND_SEARCH = "Search for notes containing [text]";
MAPNOTES_CHAT_COMMAND_HIGHLIGHT = "Highlight MapNotes with the following [title]";
 
MAPNOTES_CHAT_COMMAND_IMPORT_METAMAP = "Imports MetaMapNotes. Intended for people migrating to MapNotes.\nMetaMap must be Installed and Enabled for the command to work. Then Un-Install MetaMap.\nWARNING : Intended for new users. May over-write existing notes."; --Telic_4
MAPNOTES_CHAT_COMMAND_IMPORT_ALPHAMAP = "Import AlphaMap's Instance Notes : Requires AlphaMap (Fan's Update) to be Installed and Enabled"; --Telic_4
 
MAPNOTES_CHAT_COMMAND_SCALE = "Change Frame Size";
MAPNOTES_CHAT_COMMAND_ISCALE = "Change Icon Size";
MAPNOTES_CHAT_COMMAND_ASCALE = "Change Icon Alpha Level";
 
MAPNOTES_CHAT_COMMAND_UNDELETE = "Undelete last deleted Note";
 
MAPNOTES_MAPNOTEHELP = "This command can only be used to insert a note";
MAPNOTES_ONENOTE_OFF = "Allow one note: OFF";
MAPNOTES_ONENOTE_ON = "Allow one note: ON";
MAPNOTES_MININOTE_SHOW_0 = "Next as MiniNote: OFF";
MAPNOTES_MININOTE_SHOW_1 = "Next as MiniNote: ON";
MAPNOTES_MININOTE_SHOW_2 = "Next as MiniNote: ONLY";
MAPNOTES_DECLINE_SLASH = "Could not add, too many notes in |cFFFFD100%s|r.";
MAPNOTES_DECLINE_SLASH_NEAR = "Could not add, this note is too near to |cFFFFD100%q|r in |cFFFFD100%s|r.";
MAPNOTES_DECLINE_GET = "Could not receive note from |cFFFFD100%s|r: too many notes in |cFFFFD100%s|r, or reception disabled in the options.";
MAPNOTES_ACCEPT_SLASH = "Note added to the map of |cFFFFD100%s|r.";
MAPNOTES_ACCEPT_GET = "You received a note from |cFFFFD100%s|r in |cFFFFD100%s|r.";
MAPNOTES_PARTY_GET = "|cFFFFD100%s|r set a new party note in |cFFFFD100%s|r.";
MAPNOTES_DECLINE_NOTETONEAR = "|cFFFFD100%s|r tried to send you a note in |cFFFFD100%s|r, but it was too near to |cFFFFD100%q|r.";
MAPNOTES_QUICKNOTE_NOTETONEAR = "Can't create note. You are too near to |cFFFFD100%s|r.";
MAPNOTES_QUICKNOTE_NOPOSITION = "Can't create note: could not retrieve current position.";
MAPNOTES_QUICKNOTE_DEFAULTNAME = "Quicknote";
MAPNOTES_QUICKNOTE_OK = "Created note on the map of |cFFFFD100%s|r.";
MAPNOTES_QUICKNOTE_TOOMANY = "There are already too many notes on the map of |cFFFFD100%s|r.";
MAPNOTES_DELETED_BY_NAME = "Deleted all "..MAPNOTES_NAME.." with creator |cFFFFD100%s|r and name |cFFFFD100%s|r.";
MAPNOTES_DELETED_BY_CREATOR = "Deleted all "..MAPNOTES_NAME.." with creator |cFFFFD100%s|r.";
MAPNOTES_QUICKTLOC_NOTETONEAR = "Can't create note. The location is too near to the note |cFFFFD100%s|r.";
MAPNOTES_QUICKTLOC_NOZONE = "Can't create note: could not retrieve current zone.";
MAPNOTES_QUICKTLOC_NOARGUMENT = "Usage: '/quicktloc xx,yy [icon] [title]'.";
MAPNOTES_SETMININOTE = "Set note as new MiniNote";
MAPNOTES_THOTTBOTLOC = "Thottbot Location";
MAPNOTES_PARTYNOTE = "Party Note";
MAPNOTES_WFC_WARN = "Use |c0000FF00'/mn -tloc xx,yy'|r OR |c0000FF00'/mntloc xx,yy'|r to show a location on the map.";
 
MAPNOTES_CONVERSION_COMPLETE = MAPNOTES_VERSION.." - Conversion complete. Please check your notes."; -- ??
 
MAPNOTES_TRUNCATION_WARNING = "The Note Text being Sent had to be truncated"; -- ??
 
MAPNOTES_IMPORT_REPORT = " Notes Imported"; -- ??
MAPNOTES_NOTESFOUND = " Note(s) Found"; -- ??
 
-- Drop Down Menu
MAPNOTES_SHOWNOTES = "Show Notes";
MAPNOTES_DROPDOWNTITLE = MAPNOTES_NAME;
MAPNOTES_DROPDOWNMENUTEXT = "Quick Options";
 
MAPNOTES_WARSONGGULCH = "Warsong Gulch";
MAPNOTES_ALTERACVALLEY = "Alterac Valley";
MAPNOTES_ARATHIBASIN = "Arathi Basin";
MAPNOTES_NETHERSTORM = "Eye of the Storm";
 
MAPNOTES_COSMIC = "Cosmic";
 
 
-- Coordinates
MAPNOTES_MAP_COORDS = "Map Coords";
MAPNOTES_MINIMAP_COORDS = "Minimap Coords";
MAPNOTES_COORDINATE_FORMATTING_ERROR1 = "MapNotes could not interpret the passed coordinates";
MAPNOTES_COORDINATE_FORMATTING_ERROR2 = "Simplest format : x,y e.g. 55,9";
MAPNOTES_COORDINATE_FORMATTING_ERROR3 = "See Readme.txt for further formatting options";
 
-- MapNotes Target & Merging
MAPNOTES_MERGED = "MapNote Merged for : ";
MAPNOTES_MERGE_DUP = "MapNote already exists for : ";
MAPNOTES_MERGE_WARNING = "You must have something targetted to merge notes.";
 
BINDING_HEADER_MAPNOTES = "MapNotes";
BINDING_NAME_MN_TARGET_NEW = "QuickNote/TargetNote";
BINDING_NAME_MN_TARGET_MERGE = "Merge Target Note";
BINDING_NAME_MN_TOGGLE_MINIS = "Global Mininotes Toggle";
BINDING_NAME_MN_MINIMAP_STYLE = "Cycle through Minimap Styles";
 
MN_LEVEL = "Level";
 
MN_AUTO_DESCRIPTIONS = {
["SQUARE"] = "Full Square",
 
["CORNER-TOPRIGHT"] = "Rounded Top Right Corner",
["CORNER-BOTTOMRIGHT"] = "Rounded Bottom Right Corner",
["CORNER-BOTTOMLEFT"] = "Rounded Bottom Left Corner",
["CORNER-TOPLEFT"] = "Rounded Top Left Corner",
 
["SIDE-RIGHT"] = "Rounded Right Side Corners",
["SIDE-BOTTOM"] = "Rounded Bottom Corners",
["SIDE-LEFT"] = "Rounded Left Side Corners",
["SIDE-TOP"] = "Rounded Top Corners",
 
["TRICORNER-TOPRIGHT"] = "Squared Top Right Corner",
["TRICORNER-BOTTOMRIGHT"] = "Squared Bottom Right Corner",
["TRICORNER-BOTTOMLEFT"] = "Squared Bottom Left Corner",
["TRICORNER-TOPLEFT"] = "Squared Top Left Corner",
 
["CIRCULAR"] = "Circular";
};
 
MN_STYLE_AUTOMATIC = "Automatic";
 
-- Magellan Style LandMarks
MAPNOTES_LANDMARKS = "Landmarks"; -- Landmarks, as in POI, or Magellan
MAPNOTES_LANDMARKS_CHECK = "Auto-MapNote "..MAPNOTES_LANDMARKS;
MAPNOTES_DELETELANDMARKS = "Delete "..MAPNOTES_LANDMARKS;
MAPNOTES_MAGELLAN = "(~Magellan)";
MAPNOTES_LM_CREATED = " MapNotes Created in ";
MAPNOTES_LM_MERGED = " MapNotes Merged in ";
MAPNOTES_LM_SKIPPED = " MapNotes not Noted in ";
MAPNOTES_LANDMARKS_NOTIFY = MAPNOTES_LANDMARKS.." Noted in ";
 
MN_STARTED_IMPORTING = "Started Importing";
MN_INVALID_KEY = "Invalid Map Key : ";
MN_FINISHED_IMPORTING = "Finished Importing";
MN_AREANOTES = "%d Notes in %d Areas";
MN_DUPS_IGNORED = "Dupliacates Ignored";
 
 
MN_TT_MINITITLE = "Mininote";
MN_TT_MINITEXT = "Hold down <Ctrl> to set as Mininote";
 
MN_COPY = "Copy";
MN_CUT = "Cut";
MN_PASTE = "Paste";
MN_CONVERT = "Make Permanent";
MN_CODEC_FMT = "Coord Decimal Places : ";
MN_MDELETE = "Mass Delete by : ";
MN_TEXT = "Text";
MN_CREATOR = "Creator";
MN_ALLZONES = "All Maps";
 
MN_DELETED_WITH_TEXT = "Deleted all "..MAPNOTES_NAME.." with text |cFFFFD100%s|r.";
--end
MapNotes/MapNotes.toc New file
0,0 → 1,20
## Interface: 30000
## Title: MapNotes |c0000FF00(5.11.30000)|r
## Author: Telic (originally ciphersimian)
## eMail: telic@hotmail.co.uk
## Version: 5.11.30000
## URL: See README for download sites
## Notes: Adds a note system to the WorldMap - Other AddOns can also now 'Plug In' and allow notes to be made on their frames eg AlphaMap
## Notes-deDE: Ermöglicht es Notizen auf der Karte zu platzieren.
## Notes-enUS: Adds a note system to the Worldmap.
## Notes-frFR: Ajoute la possibilité de créer des annotations sur votre carte du monde.
## Notes-koKR: 세계 지도에 메모 시스템을 추가합니다.
## RequiredDeps:
## OptionalDeps: Thottbot, myAddOns, SilverTrack
## DefaultState: enabled
## SavedVariables: MapNotes_Data_Notes, MapNotes_Data_Lines, MapNotes_Data, MapNotes_Lines, MapNotes_Options, MapNotes_Undelete_Info
MapNotesTemplates.xml
MapNotesEditFrame.xml
MapNotesMiniNoteFrame.xml
MapNotesOptionsFrame.xml
MapNotesSendFrame.xml
MapNotes/MapNotesSendFrame.xml New file
0,0 → 1,152
<!--
MapNotes: Adds a note system to the WorldMap
 
See the README file for more information.
-->
 
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/FrameXML/UI.xsd">
 
<Frame name="MapNotesSendFrame" inherits="MapNotes_FrameTemplate">
<Size>
<AbsDimension x="450" y="180"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString inherits="GameFontGreenLarge" text="MAPNOTES_SEND_MENU">
<Anchors>
<Anchor point="TOP" relativeTo="MapNotesSendFrame">
<Offset><AbsDimension x="0" y="-8"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
<Layer level="OVERLAY">
<FontString name="MapNotes_SendFrame_Title" inherits="GameFontNormal" text="MAPNOTES_SEND_TITLE" justifyH="LEFT">
<Size>
<AbsDimension x="222" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="22" y="-22"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MapNotes_SendFrame_Tip" inherits="GameFontNormalSmall" text="MAPNOTES_SEND_TIP" justifyH="LEFT">
<Size>
<AbsDimension x="400" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="22" y="-36"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MapNotes_SendFrame_Player" inherits="GameFontNormalSmall" text="MAPNOTES_SEND_PLAYER" justifyH="LEFT">
<Size>
<AbsDimension x="222" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="22" y="-65"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Frames>
<Button name="MapNotesChangeSendFrame" inherits="MapNotes_ButtonTemplate" text="MAPNOTES_SLASHCOMMAND">
<Anchors>
<Anchor point="CENTER" relativePoint="Bottom">
<Offset><AbsDimension x="-102.5" y="30"/></Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
PlaySound("igMainMenuOption");
MapNotes_ShowSendFrame(MapNotes_ToggleSendValue);
</OnClick>
</Scripts>
</Button>
 
<Button name="$parentCancel" inherits="MapNotes_CancelButtonTemplate">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MapNotesChangeSendFrame">
<Offset><AbsDimension x="20" y="0"/></Offset>
</Anchor>
</Anchors>
</Button>
 
<Button name="MapNotesSendPlayer" inherits="MapNotes_ButtonTemplate" text="MAPNOTES_SENDTOPLAYER">
<Anchors>
<Anchor point="CENTER" relativePoint="BOTTOM" relativeTo="MapNotesChangeSendFrame">
<Offset><AbsDimension x="0" y="37"/></Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
if ( MapNotes_SendWideEditBox:GetText() ~= "" ) then
PlaySound("igMainMenuOption");
MapNotes_SendNote(1);
end
</OnClick>
</Scripts>
</Button>
<EditBox name="MapNotes_SendWideEditBox" historyLines="0" letters="255">
<Size>
<AbsDimension x="400" y="64"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="24" y="-63"/></Offset>
</Anchor>
</Anchors>
<HitRectInsets>
<AbsInset left="0" right="0" top="-22" bottom="22"/>
</HitRectInsets>
<Scripts>
<OnLoad>
MapNotes_SendWideEditBox:SetText("");
</OnLoad>
<OnEscapePressed>
MapNotesSendFrame:Hide();
</OnEscapePressed>
<OnShow>
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<FontString inherits="ChatFontNormal"/>
</EditBox>
<Frame>
<Size>
<AbsDimension x="420" y="30"/>
</Size>
<Anchors>
<Anchor point="CENTER" relativePoint="CENTER" relativeTo="MapNotes_SendWideEditBox"/>
</Anchors>
<Backdrop bgFile="" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="0" right="0" top="0" bottom="0"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="16"/>
</TileSize>
<EdgeSize>
<AbsValue val="16"/>
</EdgeSize>
</Backdrop>
</Frame>
</Frames>
<Scripts>
<OnShow>
MapNotes_NormaliseScale(this);
</OnShow>
<OnLoad>
MapNotes_OnLoad();
this:SetBackdropColor(0,0,0,1);
</OnLoad>
</Scripts>
</Frame>
</Ui>
MapNotes/Readme.txt New file
0,0 → 1,1348
******************************************
MapNotes (Fan's Update) README v5.11.30000
******************************************
 
Maintainer: Telic <telic@hotmail.co.uk>
Original code: Sir.Bender <Meog on WoW Forums>
Contributors:
ciphersimian
... and MANY others whose names didn't appear in the code anywhere
 
 
***********
Description
***********
 
Adds a note system to the WorldMap helping you keep track of interesting locations.
MapNotes(Fan's Update) also provides a Plugin interface for other AddOns to take advantage of the note making ability. AlphaMap(Fans Update) uses this interface to allow Note creation on AlphaMap Maps of Instances, BattleGrounds, and World Boss Maps. This version of MapNotes comes with in-built support for creation of notes on Atlas maps, also using this Plugin interface.
For these purpose MapNotes offers the following main functions:
1. Marking notes on the WorldMap
2. Showing one of these notes on the MiniMap (see MiniNote)
3. Allows any other AddOn to use MapNotes note creation ability to mark notes on frames within their own AddOn :
- Marking notes on AlphaMap (Fan's Update) Instance maps
- Marking notes on Atlas maps
 
"/tloc" can be used to toggle this AddOns minimap coordinates instead of Thottbott's minimap coordinates.
NOTE : PLEASE still use "/mn -tloc xx,yy" to place a Thottbott marker on the map. "/tloc" ONLY toggles Minimap Coordinates.
 
Should be compatible with Cartographer, although you may no longer be able to create notes on the map with the in-built functionality provided by that AddOn - only with the functionality provided by MapNotes (Fan's Update).
 
********
Features
********
 
[Slash Commands] - NOTE : See separate file "LegacySlashCommands.txt" for old style commands
================
 
/mapnote OR /mapnotes OR /mn
Use without any other parameters to see which version of MapNotes is installed, and access the list of available Slash Commands.
 
Otherwise can be used to insert a Map Note by a slash command (which you can create in the Send Menu), for example, to put a note at the Entrance of Stormwind City on the map Elwynn Forest:
 
"/mapnote k<WM Elwynn> x<0.320701> y<0.491480> t<Stormwind> i1<Entrance> i2<> cr<ciphersimian> i<0> tf<0> i1f<0> i2f<0>"
 
NOTE: The above would all be on one line Description of the identifiers:
 
k<#> - Key based on the map name from GetMapInfo() prefixed by "WM " (English name on all clients - never localised) Varies for other AddOns using the Plugin functionality
x<#> - X coordinate, based on the GetPlayerMapPosition() function
y<#> - Y coordinate, based on the GetPlayerMapPosition() function
t<text> - Title for the MapNote
i1<text> - first line of text displayed under the Title in the MapNote (Info 1)
i2<text> - second line of text displayed under the Title in the MapNote (Info 2)
cr<text> - Creator of the MapNote
i<#> - icon to use for the MapNote, AddOns/MapNotes/POIIcons/Icon#.tga
tf<#> - color of the Title, AddOns/MapNotes/POIIcons/Color#.tga
i1f<#> - color of the Info 1 line (colors as above)
i1f<#> - color of the Info 2 line (colors as above)
mn<1> - (optional) If included, then a value of 1 will set the note as a mininote also. Any other value and the note will NOT be set as a mininote.
 
 
 
/mn -allow OR /mn -a
Allows you to receive the next note, even if you have disabled receiving in the options. If invoked with no parameters, it will toggle the current state.
 
 
/mn -automini
Shows the next note created (using any method) as a MiniNote and also puts it on the WorldMap. If invoked with no parameters, it will toggle the current state.
 
 
/mn -allmini
Toggle all MapNotes off/on as Mininotes
(Keybinding also available)
 
 
/mn -nextmini
Shows the next note created (using any method) as a MiniNote and also puts it on the WorldMap. If invoked with no parameters, it will toggle the current state.
 
 
/mn -minionly
Like the previous command, but doesn't put the note on the WorldMap.
 
 
/mn -minioff
Turns the MiniNote off.
 
 
/mn -tloc tbX,tbY
Sets a "Thottbot location" on the map. Use it with no arguments to toggle it off.
See the Section on Formatting of X,Y Coordinates
 
 
/mn -q [icon] [name]
Adds a note at your current location, icon and name are optional (icon any number from 0 to 9, AddOns/MapNotes/POIIcons/Icon#.tga)
If no [name] is passed, then the Note will be named based on the MiniMap Text, and the second/third lines will be populated with more zone information and/or the default QuickNote text.
 
 
/mn -qtloc xx,yy [icon] [name]
See the Section on Formatting of X,Y Coordinates
Adds a note on the map you are currently on at the given thottbot location, icon and name are optional (icon any number from 0 to 9, AddOns/MapNotes/POIIcons/Icon#.tga)
 
 
NEW SLASH COMMANDS IN MapNotes(Fan's Update)
 
/mn -s [search text]
If you want to search for a note, to see if one exists, or where it is, then you can use this command, and MapNotes will print out a report in the chat window, displaying the names of all maps which have a note containing that text
 
 
/mn -hl [note name]
If you have lots of notes and want to clearly identify a single one on a map, or if you want a certain note to remain highlighted, then use this command and they will be displayed with a green circle around them.
If there are several notes with that name or containing that text, then they will ALL be highlighted.
The note name does not have to be case sensitive, and doesn't have to be an exact match - all notes containing the [note name] text will be highlighted.
If the EXACT NAME is specified (not case-sensitive), the note will also be marked as a MiniNote on the Minimap
 
 
/mn -mapc
Toggle the display of Player and Cursor Coordinates on the World Map
Control-Left-Click and drag the coordinates to move them to a different position on the World Map if you are not happy with the default.
 
 
/mn -minic
Toggle the display of Player coordinates below the Minimap.
 
 
/mn -t [icon] [name]
Creates a quicknote at the Player's current location if the Player has no target.
If the Player does have a target, then it will create a note for that target at the Player's current location, icon and name are optional (icon any number from 0 to 9, AddOns/MapNotes/POIIcons/Icon#.tga)
 
 
/mn -m
Creates a note for the Player's target at the Player's current location.
OR Merges the details for the Player's current target in to a Map Note that has already been created at the Player's current location.
MUST have targetted a Player/NPC/Mob for this to work.
 
 
/mn -scale [0.5 - 1.5]
The size of MapNotes Menus and Frames are now fixed no matter what the scale of the World Map or other AddOn Map being used.
This command can be used to change the default size of MapNotes Menus and Frames if the user finds it too small or large.
The default value is 0.7
Therefore "/mn -scale 1.0" will make the Menus and Frames appear larger than they do by default.
 
 
/mn -undelete
Will undelete the last deleted MapNote.
 
 
 
IMPORTANT NOTE ON THE IMPORT FUNCTIONS BELOW
All of the functions below are mainly designed for people who have just installed MapNotes (Fan's Update). If you have been using this version of MapNotes for some time already, and have your own notes, then these functions may overwrite your existing notes. YOU HAVE BEEN WARNED.
 
 
/MapNotes_Import_MetaMap
If you want to move from MetaMapNotes to MapNotes, then log in to the game with both AddOns enabled, use the above command, after which you will receive notification in the chat window on how many notes have been imported; Then log out, and disable MetaMap. Don't try to use MapNotes at the same time as MetaMap for any other purposes, as the results may be unpredictable
 
 
/MapNotes_Import_AlphaMap
If you have AlphaMap installed, and want to convert the in-built Instance and World Boss notes in to MapNotes notes, then use the above command, and you will see a message in the chat window informing you of how many notes have been imported in to MapNotes.
This does NOT import Battleground notes by default, as AlphaMap's in built Battleground functionality works best without MapNotes overlaying the BG Objectives.
NOTE: You don't have to import notes from AlphaMap, to make MapNotes on AlphaMap Instance/Battleground/WorldBoss maps. You can create any notes you like manually.
 
 
/MapNotes_Import_AlphaMapBG
As mentioned above, the basic "/MapNotes_Import_AlphaMap" command does not import Battleground notes by default. If you do want to import AlphaMap Battlegournd map notes, then use this command to do so.
 
 
/MapNotes_Import_CTMapMod
If you want to move from using CTMapMod to MapNotes (Fan's Update), then log in to the game with both AddOns enabled, use the above command, after which you will receive notification in the chat window on how many notes have been imported; Then log out, and disable CTMapMod.
 
 
 
 
[Key Bindings]
==============
 
QuickNote/TargetNote
--------------------
Creates a quicknote at the Player's current location if the Player has no target.
If the Player does have a target, then it will create a note for that target at the Player's current location.
-OR CLICK MINIMAP COORDINATES-
If you are NOT targetting anything, then ALT-Left-Click on the Minimap Coordinates to create a QuickNote.
If you are targetting something, then ALT-Left-Click to create a Target note with details about the current target at the PLAYER'S current location - you will be warned if you are too near to an existing note to create a new note.
(Slash Command "/mn -t" also available)
 
TargetNote/MergeNote
--------------------
Creates a note for the Player's target at the Player's current location.
OR Merges the details for the Player's current target in to a Map Note that has already been created at the Player's current location.
MUST have targetted a Player/NPC/Mob for this to work.
-OR CLICK MINIMAP COORDINATES-
If you are targetting something, then you may also ALT-Right-Click on the Minimap Coordinates if you wish to create a note for your Target at the PLAYER'S current location. However, if a MapNote already exists at Player's location, then the details will be merged with the existing note.
(Slash Command "/mn -m" also available)
 
 
 
 
[Fast Note Creation/Editing/Deleting]
=====================================
 
- <Control>+<Alt>+Right-click on a MAP/FRAME to create a Quicknote at that point
 
- <Control>+<Alt>+Right-click on a NOTE to quickly go to the note Editing Frame
 
- <Control>+<Alt>+Left-clicking to drag NOTES to new positions
 
- <Alt>+Right-click on a NOTE to toggle it as a Minimap note
 
- <Alt>+<Shift>+DOUBLE Right-click on a note to quickly delete it.
 
- <Control>+<Shift>+Right-click will create a temporary blue Group note on a map
If created on a World map, then it will also be displayed in the Minimap for you to track
If in a Raid group, then the note will be shared with other Raid members who have MapNotes installed
Otherwise, if in a Party, then the note will be shared with the Party members who have MapNotes installed
Otherwise, its just your own quick temporary marker ;)
 
 
 
 
Differently Shaped Minimaps
===========================
 
As it works with SimpleMinimap automatically, and wouldn't change much in other circumstances, there is no GUI control of this option. However, it is possible to manually specify the Minimap style you want via the provided key binding to specify the style you want.
OR via the following slash command :
 
/mn -mstyle [#]
 
Where # is a number specifying the style of map you want to force MapNotes to use.
Use the keybinding to cycle through the available styles to choose from, or just use "/mn -mstyle" on its own.
 
0 "Automatic" -- adjusts its shape automatically based on SimpleMinimap skins
 
1 "Full Square",
 
2 "Rounded Top Right Corner",
3 "Rounded Bottom Right Corner",
4 "Rounded Bottom Left Corner",
5 "Rounded Top Left Corner",
 
6 "Rounded Right Side Corners",
7 "Rounded Bottom Corners",
8 "Rounded Left Side Corners",
9 "Rounded Top Corners",
 
10 "Squared Top Right Corner",
11 "Squared Bottom Right Corner",
12 "Squared Bottom Left Corner",
13 "Squared Top Left Corner",
 
14 "Circular";
 
 
 
 
 
 
LIGHTHEADED SUPPORT
===================
 
To create a MapNote from Lightheaded coordinates, must do one of the following :
 
1.) <ALT>-Click on the Lightheaded coordinates to create a temporary Thottbott Map and Mininote as per original functionality
 
2.) <CTRL>-Click on the Lightheaded coordinates to create a permanent MapNote (Also active as Mininote)
 
3.) <CTRL>-<SHIFT>-Click on the Lightheaded coordinates to create a permanent MapNote NOT active as a Mininote
 
 
 
 
 
[Traditional Methods]
=====================
 
(The AlphaMap and Atlas Plugins use the same basic functionality as below)
 
1.)
<Control>+Right-clicking on a MAP/FRAME opens the MapNotes menu.
In this menu you will find different buttons:
Create Note - This will open the Edit Menu and create a note at the position you clicked
Options - This opens the Options Menu (covered in more detail below)
Cancel - Closes the menu
NOTE: A left click on an existing MapNote will also open this menu, but "Create Note" won't be available.
 
 
2.)
Move the mouse over a NOTE to see the tooltip with the information you entered.
 
 
3.)
Right-clicking on a NOTE opens the other MapNotes menu. Here you will find the following buttons:
Edit Note - This button opens the Edit Menu to change the note you clicked on.
Set As MiniNote - Sets the note as the current MiniNote.
Send Note - Opens the Send Menu.
Delete Note - Deletes the note without further questioning.
Cancel - Closes the Menu
 
 
4.)
<Alt>+Left-clicking on two NOTES will draw a line between them
 
 
5.)
<Control>+<Shift>+Right-click will create a temporary blue Group note on a map
If created on a World map, then it will also be displayed in the Minimap for you to track. (No minimap icon will be displayed if created on non-world map such as Atlas or AlphaMap Instance maps)
If in a Raid group, then the note will be shared with other Raid members who have MapNotes installed
Otherwise, if in a Party, then the note will be shared with other Party members who have MapNotes installed
 
NOTE 1 :
<Shift>+Right-clicking on the the World Map frame will share only with your local party, even when in a Raid
(As a result of the way that Plugins work, this functionality is only available on the Blizzard World Map. i.e. Plugins such as AlphaMap require that the <Control> key be pressed in order to carry out MapNotes functionality)
 
NOTE 2 :
Plugins that display World Map notes, such as AlphaMap may FORCE you to use <Control>+<Shift>+Right-click, as the <Control> key must be pressed to create any kind of Plugin note via the mouse.
 
NOTE 3 :
<Shift>+Right-clicking on a tloc note will also remove that note, although tloc notes can still only be created via slash commands
 
 
 
 
[Group Notes]
=============
<Control>+<Shift>+Right-click will create a temporary blue Group note on a map
If created on a World map, then it will also be displayed in the Minimap for you to track
If in a Raid group, then the note will be shared with other Raid members who have MapNotes installed
Otherwise, if in a Party, then the note will be shared with the Party members who have MapNotes installed
 
NOTE 1 :
<Shift>+Right-clicking on the the World Map frame will share only with your local party, even when in a Raid
(As a result of the way that Plugins work, this functionality is only available on the Blizzard World Map. i.e. Plugins such as AlphaMap require that the <Control> key be pressed in order to carry out MapNotes functionality)
 
NOTE 2 :
Plugins that display World Map notes, such as AlphaMap may FORCE you to use <Control>+<Shift>+Right-click, as the <Control> key must be pressed to create any kind of Plugin note via the mouse.
 
NOTE 3 :
<Shift>+Right-clicking on a tloc note will also remove that note, although tloc notes can still only be created via slash commands
 
 
 
 
[Edit Menu]
===========
 
With this menu you can create new notes and edit existing notes.
 
1. Select the icon style you want to use for your note.
 
2. Title: Enter it in the editbox and select a color in which it will be displayed in the tooltip.
NOTE: The title field is mandatory, you cannot create a note without a title - to prevent this the "Save" button is disabled when the title field is empty.
 
3. Infoline 1 and 2: Here you can insert additional information for your note and color it in one of the colors below the editbox.
 
4. Creator: Enter the name of the player or AddOn that created the note
 
 
 
[Formatting of X,Y Coordinates]
===============================
 
The following formatting options apply to the "/mn -tloc xx,yy" and "/mn -qtloc xx,yy" commands.
 
X and Y are in "Thottbot coordinates" which can be represented as follows:
local tbX,tbY = GetPlayerMapPosition()
local tbX = math.floor(x*100)
local tbY = math.floor(y*100)
 
So basic formatting is "x,y"
e.g. "5,90" OR "55,49" OR "75,74"
 
MapNotes (Fan's Update) is quite forgiving about how coordinates are passed however, and you can use a space instead of a comma, or one or more spaces without a comma
e.g. "5, 90" OR "5 , 90" OR "5 ,90"
 
MapNotes (Fan's Update) also allows for x and y coordinates containing decimal points.
e.g. "26.2443, 39.988" OR "26, 39.0" OR "25.0 0.9"
 
Since v3.30.20003, any non-numeric characters can be used as a separator
e.g. "29-50" OR "29x50.5"
 
Can now use the decimal point as a separator between the x and y coordinates
e.g. "5.90"
NOTE: if using the decimal point as a separator between the x and y coordinates, then it is advisable to NOT use x and y coordinates that also contain decimal points - if you must use decimal points in the coordinates AND as a separator, then you should use a decimal point in BOTH the x and y coordinates
For Example :
"/mn -tloc 10.50.90.0" will be correctly located at '10.5, 90.0'
BUT if passed
"/mn -tloc 10.50.90" then there's no way for MapNotes to know if you mean 10.5, 90 or 10, 50.9
 
 
 
 
[MiniNotes]
==============
 
You can display multiple MapNotes on the Minimap as Mininotes allowing you
to Track them.
There are 2 basic types :
1.) Mininotes based on Permanent MapNotes - can have as many as you like
2.) Temporary Mininote based on either the Thottbott marker or the Group Note
- can only have one temporary type Mininote. Either Thott or Groupd Note
 
When you create a Group Note (by Shift-Right Clicking on the World Map to
share a specific Map Location with your Party), OR when you create a Thottbott
Marker on the map (by using the '/mn -tloc xx,yy' or '/mntloc xx,yy' command),
then a special Mininote will be shown - either a blue dot for the Group Note, or
a red dot for the Thottbott Marker. You can only show ONE Party Mininote OR ONE
Thottbott Mininote at any time.
 
However, in MapNotes (Fan's Update), you can now make as many normal MapNotes as
you like display as a Mininotes on the Minimap. So you can now track multiple
MapNotes.
 
Mininotes can be turned on via the Note Right-click menu, or by <Alt>+Right-clicking
on a MapNote to toggle its mininote status
 
Mininotes can be turned off using any of the following methods :
1.) <Control><Alt><Click> on the Mininote on the Minimap to turn it off
2.) <Alt>+Right-clicking on a MapNote to toggle its mininote status
3.) Right Click on the MapNote on the Map, and choose the option to "Turn Mininote Off"
4.) Use the '/mn -minioff' or '/mininoteoff' slash command to remove a Party/Thottbott note
 
MiniNotes are turned off if the underlying MapNote is deleted.
 
If you want a MiniNote without a MapNote use the '/mn -minionly' slash
command before creating the note.
 
If you want new notes to be turned on as Mininotes automatically use "/mn -automini"
 
All MapNotes can be toggled on/off with a key binding or "/mn -allmini" command
 
 
[Send Notes To Other Players]
=============================
 
After clicking "Send Note" in the MapNotes Menu the Send Menu will show up.
 
1. Enter the name of the player you want to send a note to
NOTE: Targeting the player before opening the WorldMap will auto insert the name.
 
2. Send To Player
Choose this option to send the note to the player entered above.
NOTE: These notes can also be received by Carto+ users.
 
3. Send To Party
This will send the note to the entire party. Only Players in your Party that have MapNotes (Fan's Update) installed will receive the note. You will not Spam anybody with strange MapNote coordinates if they do not have this AddOn installed.
 
4. Change Mode
This toggles between Send To Player/Send To Party and Get Slash Command
Get Slash Command - Inserts a slash command in the editbox which can be highlighted and then copied to the clipboard. After this you can post it on a forum or in chat and other MapNotes users can insert this note by copying the slash command to the chatline.
 
 
******************************
MapNotes ZoneShift Conversions
******************************
 
The MapNotes keying system has been completely re-written in this Version, and no longer uses the Continent/Zone combined key.
Instead, it is based on Map data that doesn't change between different language clients.
Hopefully this should future proof your database against any changes to zone lists caused by future WoW patches, or changing clients, or moving your database from one Client version to another. It should also allow two people who are using different Clients on the same Server to send notes to each other, without any client zone-shift, or version zone-shift errors.
If you are upgrading from an older version of MapNotes, to this version, your notes will be updated automatically.
However, if your database already had zone shift errors, then those errors will still exist after upgrading your database to this version.
 
Because of these changes, people upgrading from old versions will lose there old style data and will not be able to revert to their old version unless they have saved a copy of their MapNotes.lua database file.
 
 
*******
Options
*******
 
If the checkbox in front of an icon style is checked the notes with this style will be displayed, otherwise they will be hidden.
 
01.) Show notes created by your character
Enable to show notes with the creator field set to your character name
 
02.) Show notes received from other characters
Enable to show notes with the creator field set to anything other than your character name
 
03.) Highlight last created note in red
 
04.) Highlight note selected for MiniNote in blue
 
05.) Accept incoming notes from other players
Enable to allow other players to send MapNotes to you via whisper, etc.
NOTE: You can override this option for the next note only with the slash command /allowonenote (/aon).
 
06.) Decline notes if they would leave less than 5 notes free
This option is obsolete as there is now effectively no limit to the number of notes
 
07.) Map Coordinates
Enable to display your player AND cursor coordinates on the World Map.
Control-Click on the coordinates to move them to a different position on the World Map Frame, if you are not happy with the default.
 
08.) Minimap Coordinates
Enable to display your player coordinates below the Minimap.
If you are NOT targetting anything, then ALT-Left-Click on these coordinates to create a QuickNote.
If you are targetting something, then ALT-Left-Click to create a Target note with details about the current target at the PLAYER'S current location - you will be warned if you are too near to an existing note to create a new note.
If you are targetting something, then you may also ALT-Right-Click if you wish to create a note for your Target at the PLAYER'S current location. However, if a MapNote already exists at Player's location, then the details will be merged with the existing note.
(Key Bindings have also been created for these two functions)
 
09.) Options now also include the ability to auto-note Blizzard POIs as MapNotes LandMarks.
When the Landmarking Option is turned on, then Guard Directions to NPCs will be stored as MapNotes.
 
10.) It is also now possible to change the scale/alpha of MapNotes.
 
 
 
*******************
Legacy Contributors
*******************
 
Legorol <legorol@cosmosui.org>
Oystein <opium@geheb.com>
StarDust
Vjeux
Jorol
Marsman
Sinaloit
dodgizzla
Foogray
Khisanth
 
 
 
**********
Change Log
**********
 
=======================================
Changes in v5.11.30000 from v5.10.30000
=======================================
 
- introduced a way to import Cartographer notes
Log in with both Cartographer2 & MapNotes;
Execute the following slash command script;
 
/script MapNotes_ImportCarto()
 
NOTE: sorry, but this may only work on an English client
 
 
 
 
 
=======================================
Changes in v5.10.30000 from v5.02.30000
=======================================
 
- added option to the basic menu's Special options to toggle the display of MapNotes notes
IF YOU CAN'T SEE YOUR OLD NOTES DO THE FOLLOWING :
Ctrl-Right click on the World Map
Mouse over the "Special" button
The "Show Notes" option should be checked in order to see notes.
If it isn't then click on it to toggle note display On.
 
 
- now includes a companion "MapNotesBrowser" AddOn
Open up the Note Browser frame by Control-Right-Clicking on a note frame like the World Map.
Then select the new menu item "MapNotes Browser"
 
A scroll list of notes within the current zone sorted alphabetically.
Filter listed notes via the provided text box.
Mouse over notes to highlight them on the map.
Right click to open the standard MapNotes right click menu to edit, delete, track notes via the Minimap.
Left click to bookmark a particular note, highlighting it on the map, and setting it as a Mininote.
 
When you have bookmarked a note, a red arrow in the top left of the frame will appear.
Mouse over the bookmark to see the note tooltip.
Left click the bookmark, and if made on a World Map, then the map will change to show the map with that note.
Right click to clear the bookmark.
 
Also allows you to carry out global searches for notes containing certain text, via the 'All Maps' button.
If you carry out an 'All Maps' global text search, then left clicking on World Map notes in different zones will open up that particular map.
This map changing feature only works with world map type notes, and not for custom-map AddOn notes.
 
(Disable from the AddOn screen before logging in if not required)
 
 
- added note location details to note tooltips
 
- fix to 1916 error when opening note edit frame by Ctrl-Alt-Right clicking
 
- fix to some note creation messages
 
 
 
 
 
=======================================
Changes in v5.02.30000 from v5.01.30000
=======================================
 
- fix to prevent the taint of unit drop down Focus & ClearFocus buttons
 
- fix to make sure new notes are set as Mininotes if holding down the CONTROL key when Creating from right click menu
 
 
- manual fix available for re-positioning of Stormwind City notes
ONLY EXECUTE THE FOLLOWING SLASH COMMAND IF YOU NEED -ALL- OF YOUR STORMWIND CITY NOTES ADJUSTING
Your Stormwind City note positions will be scaled and shifted to account for the new city map
 
/script Stormwindy()
 
You should receive a message in the chat frame informing you of the number of notes that have been adjusted.
This fix will place old notes closer to where they should be on the new map, but I can't guarantee they will be EXACTLY where you want them.
Remember that it is easy to fine tune your MapNotes icon positions via the following MapNotes feature :
Hold down CONTROL & ALT and left-click drag your notes to move them, and leave them exactly where you need them.
 
 
- note icons now displayed in tooltip
(Of some use when mousing over closely packed notes (with different icons))
 
- some code clean up of globals, and consolidation of Tooltip display in to a single function
 
- some compatibility changes for new MapNotes Browser frame companion AddOn
 
 
 
=======================================
Changes in v5.01.30000 from v5.00.30000
=======================================
 
- fix to stop Minimap coordinates reappearing the next time you log in, when disabled
 
- fix to some slash command issues
 
 
 
=======================================
Changes in v5.00.30000 from v4.16.20400
=======================================
 
- updated for WoW v3 and WotLK
 
MAJOR UPDATE - compatible with older versions of MapNotes
 
- updated look and feel with new Menus, Frame styles, and map Icons and note highlighting
(Note : if you wish to revert to the old MapNotes icons,
then please use the included "MapNotesIconsLib" AddOn to change back
to your old, legacy icons.)
 
- Right click menus can be raised by :
a.) CTRL-Right clicking on the World Map, or plugin frames like AlphaMap
b.) Right clicking on the Minimap Coordinates
c.) Right clicking on the MapNotes themselves
d.) CTRL-Right clicking on Minimap notes
 
- new menu options such as Cut, Copy, Paste, Mass Delete
Mass delete by text or Creator across ALL maps by Right clicking on Minimap Coordinates
Mass delete by text or Creator in one specific map by CTRL-Right clicking on the map
 
- support for 0, 1 or 2 decimal point formatting of coordinates controlled via a slider
on the Options frame
 
- MapNotesIconLib now packaged with MapNotes for a greater selection of note icons
(Please see the Readme.txt file in that AddOn's folder for more details)
 
 
 
=======================================
Changes in v4.16.20400 from v4.15.20300
=======================================
 
- support for differently shaped minimaps
Automatically works with SimpleMinimap
 
As it works with SimpleMinimap automatically, and wouldn't change much in other circumstances, there is no GUI control of this option. However, it is possible to manually specify the Minimap style you want via the following methods :
 
1.) use the following slash command to cycle through the available styles
"/mn -mstyle [#]"
Pass an optional number to specify a particular style.
Pass a zero to revert to a circular Minimap style.
See the Readme.txt file for a list of styles.
 
2.) use the provided key-binding to cycle through the available styles
 
 
 
=======================================
Changes in v4.15.20400 from v4.15.20300
=======================================
 
- toc update
 
 
 
=======================================
Changes in v4.15.20300 from v4.14.20200
=======================================
 
- fixed a bug when creating QuickNotes
 
- added some self repair capabilities for databases with errors from previous bugs
 
 
 
=======================================
Changes in v4.14.20300 from v4.12.20200
=======================================
 
- Chinese localisation courtesy of Onlyfly
 
- small change to Thottbott interface for other AddOns to create Notes
i.e. making MapNotes from MobMap icons on AlphaMap
 
1.) <ALT>-Click on the AlphaMap MobMap icon to create a temporary Thottbott Map and Mininote
 
2.) <CTRL>-Click on the AlphaMap MobMap icon to create a permanent MapNote (Also active as Mininote)
 
3.) <CTRL>-<SHIFT>-Click on the AlphaMap MobMap icon to create a permanent MapNote NOT active as a Mininote
 
 
 
=======================================
Changes in v4.12.20300 from v4.11.20200
=======================================
 
- now hides the WorldMap Magnifying glass when selecting MapNotes Quick Options
 
- compatibility changes for new AddOn companion "MapNotesIconLib" to allow a much larger choice of Icons
 
- a couple of small tweaks that people shouldn't even notice ;)
 
 
 
=======================================
Changes in v4.11.20300 from v4.10.20200
=======================================
 
- CHANGE TO LIGHTHEADED SUPPORT
To create a MapNote from Lightheaded coordinates, must now do one of the following :
 
1.) <ALT>-Click on the Lightheaded coordinates to create a temporary Thottbott Map and Mininote as per original functionality
 
2.) <CTRL>-Click on the Lightheaded coordinates to create a permanent MapNote (Also active as Mininote)
 
3.) <CTRL>-<SHIFT>-Click on the Lightheaded coordinates to create a permanent MapNote NOT active as a Mininote
 
 
- Adjusted the position of the WorldMap MapNotes Menu to stop it overlapping with the Blizzard Minimap Options
 
 
 
=======================================
Changes in v4.10.20300 from v4.00.20200
=======================================
 
- NEW FUNCTIONALITY
Can now choose your own Text colours by Right clicking the colour selection squares on the Note Edit Frame
<Alt>-Right click the selection square to reset it to its original value
 
 
- NEW FUNCTIONALITY
Can now Create Notes on the Minimap - <Control><Alt> Right click just like the World Map
Can now Edit Note Details from the Minimap - <Control><Alt> Right click just like clicking on Notes on the World Map
Can now Completely Delete Notes from Minimap - <Alt><Shift> Double Right click just like on the World Map
Turn Off Mininotes by <Alt> Right clicking them ..... just like on the World Map ;)
 
 
- fixed a problem displaying Party notes on Plugins
 
- fixed a small problem when clicking through Mininotes to ping the Minimap
 
- update to Mininote data
 
- made the MapNote highlighting a little more discrete
 
- fixed the option to disable MapNote highlighting which couldn't be turned off before
 
- fixed a future proofing feature of the Undelete command
 
- Creator line in the Tootlip is omitted if not stored
 
 
 
=======================================
Changes in v4.00.20200 from v3.44.20200
=======================================
 
- Rotating Minimap support
 
- Lightheaded Coordinate click support
 
- Changed the highlighting of MapNotes turned on as Mininotes (and the Last Note highlighting)
 
- New slash command "/mn -automini" to toggle new notes on as Mininotes by default
 
- New slash command "/mn -allmini" & key binding to toggle All notes on/off as Mininotes
 
- Various changes including :
Compatibility changes for future Icon Plugins
Compatibility changes and Import function provided for Note database Plugins
Removed unnecessary legacy code & data
 
v4 Credits
__________
Frigidman for Beta Testing
Hristo for Beta Testing
tattooedpierre for testing feedback
Cladhaire for Lightheaded support
 
 
 
========================================
Changes in v3.44.20200 from v3.44.20100
========================================
 
- simply a toc update
 
 
 
========================================
Changes in v3.44.20100 from v3.43.20100
========================================
 
Again, BIG thanks to Morac for testing and indeed fixing some of the issues detailed below :
 
- Raid/Party notes can now be set on Plugin frames/maps e.g. Atlas or AlphaMap Instance maps
<Control>-<Shift>-Right clicking on a Plugin map will set a Group note on that map that will be shared with other group members - obviously they will require both MapNotes and the other AddOn to actually see the note, but it is still safe to set Raid/Party notes when other members do not have the required AddOns.
(i.e. Group notes will be shared with Raid members if you are in a Raid, or Party members if you are in a Party)
NOTE : Group notes made on Instance maps will NOT be set as Mininotes on the Minimap
 
- Fixed a problem with the Localised names of Plugin maps (especially Atlas)
 
- Fixed a problem with note creation messages on Plugin maps
 
- Simply moved the Atlas-specific Plugin code to its own AddOn and folder where it can be maintained separately to MapNotes itself. (Or enabled/disabled separately, and replaced by newer/alternative Plugin code for Atlas)
 
 
 
========================================
Changes in v3.43.20100 from v3.42.20100
========================================
 
- <Alt>-<Shift>-DOUBLE-Right click on a note to quickly delete it. You will receive no confirmation request !
 
- New slash command allows you to UN-Delete the last deleted note :
/mn -undelete
 
- When <Control>-<Alt>-Right clicking on a note to quickly edit it, have now tried to make sure that the notes name is highlighted so that you can quickly overwrite it with a new name, without having to manually delete the existing name
 
- Fixed a small bug that would turn on the last created note as a Mininote, when deleting an existing note being used as a Mininote
 
- Fixed a small bug that "covered" Party/tloc notes, and stopped the <Shift>-Right-click removal of a Party note
 
- Can now <Shift>-Right-click on a tloc note to quickly remove it
 
- Made sure that <Alt>-Right-clicking of Party/tloc notes toggles their Mininote status as per the functionality of normal notes
 
- Trying to toggle Mininote status of Plugin notes will have no affect
(i.e. Should still be able to toggle mininote status of AlphaMap's World Map notes, but not its Instance notes)
 
Again, many thanks to Morac for helping with testing, and discovering small bugs :D
Changes commented with -- 29/07/2007
 
 
 
========================================
Changes in v3.42.20100 from v3.41.20100
========================================
 
- Fixes a couple of bugs in v3.41.20100.
BIG thanks to Morac for their help :D
 
 
 
========================================
Changes in v3.41.20100 from v3.40.20100
========================================
 
- Fixed a bug when trying to access the Special Actions menu for Plugin Party/tloc notes
 
- New features for speeding up Note Creation/Editing :
1.) <Control>+<Alt>+Right-click on a MAP/FRAME to create a Quicknote in that position
2.) <Control>+<Alt>+Right-click on a NOTE to go directly to the note editing frame
3.) <Alt>+Right-click on a NOTE to quickly toggle its MiniNote status for tracking in the MiniMap
NOTE: to move existing notes, only the Left Mouse button can be used.
i.e. <Control>+<Alt>+Left-click on a NOTE to drag it to a new position.
 
 
 
=======================================
Changes in v3.40.20003 from v3.36.20003
=======================================
 
- Enhanced the Plugin functionality to allow other AddOns to create and edit WorldMap notes in their own frames.
e.g. AlphaMap (Fan's Update) v3.90.20003 and later can now make/edit WorldMap notes within AlphaMap without opening the Blizzard map.
Via new Plugin option "wmflag"
Other AddOn frames displaying world map icons will also show Party/tloc notes, and Highlighted notes.
 
- Added Slider controls to the Options Frame to control :
1.) Frame Size
2.) MapNote Icon Size
3.) MapNote Icon Alpha Setting
 
- fix to a couple of non-critical errors reported in FrameXML.log
 
 
 
=======================================
Changes in v3.36.20003 from v3.35.20003
=======================================
 
- fixed a problem with Alt-Clicking on the Minimap Coordinates to create a QuickNote, which sometimes required double clicking
 
- small changes to make it easier for other people to write 'Plugin' style AddOns with their own MapNote Icon and Colour choices
 
- small change for MetaMap compatibility
 
 
 
=======================================
Changes in v3.35.20003 from v3.30.20003
=======================================
 
- QuickNotes will now note your current location as detailed in the Minimap Text, possibly with more general zone location information in the second line of the note, and the default QuickNote text in the second or third lines of the note. I just felt this was more useful, as often when making quicknotes, I just wanted to note my current location's name.
You can still pass [icon] [name] parameters.
 
- Enhanced the Note Highlighting functionality.
If you have lots of notes, it can be quite useful to highlight the one you are looking for rather than inspecting the tooltip for each one in turn. This was the reason for originally introducing the "/mn -hl <Note Name>" command.
When you specify the exact name of a note, then the MapNote will be highlighted with a green circle on the Map, and will be displayed as a MiniNote you can track in the Minimap. MapNotes would highlight ALL notes with that name if more than one exists.
I have made this command more useful by allowing the user to enter part of a Notes name and not making it case sensitive, as often you won't be certain how the full name of the note is spelled, or whether it had capital letters, etc.
So for example if you have lots of notes in Shattrath city, and can't remember which one was the "Spymistress Mehlisah Highcrown", then you can type "/mn -hl spy", and that note will be highlighted on the map. More than one note might be highlighted if more than one note has the text "spy" in it.
You will still need to specify the exactly identical note name to make the highlighted note appear as a MiniNote automatically - although this is no longer case-sensitive either.
To remove Highlighting, just type "/mn -hl".
This functionality will highlight notes in any zone you look at on the Map.
 
- Fixed a problem with Alt-Clicking on the Minimap Coordinates to create Target/Merge Notes, which sometimes required double clicking
 
- Now Hides the World Map area Label information while the <Control> Key is depressed to hide clutter
 
- Now Hides the World Map area Label information when the MapNotes Quick Options Drop Down Menu is open
 
- MapNotes Quick Options Drop Down Menu will now close when the Map closes
 
- Added support that Cartographer users who want to use MapNotes (Fan's Update) requested.
<Control>-Right Click will now show the MapNotes note menu rather than the Cartographer note menu
 
 
 
=======================================
Changes in v3.30.20003 from v3.27.20003
=======================================
 
- improved the MiniMap Tooltip to show all the same information as the WorldMap Tooltip
 
- now while holding down the Control key to create a Note, or the Shift key to create a Party Note on the World Map, the World Map Magnifying button will be hidden allowing notes to be made on that part of the map if needed
 
- Made sure WorldMapToolip will appear above other WorldMap components
 
- can now use x,y coordinate separators other than the commas, and/or spaces
(Its still possible to input bad coordinates, but much harder, and if bad coordinates are passed, the player will receive a warning message in the chat frame, rather than an error message box)
 
- can now use the decimal point as a separator between the x and y coordinates
NOTE: if using the decimal point as a separator between the x and y coordinates, then it is advisable to NOT use x and y coordinates that also contain decimal points - if you must use decimal points in the coordinates AND as a separator, then you should use a decimal point in BOTH the x and y coordinates
For Example :
/mn -tloc 10.50.90.0 will be correctly located at 10.5, 90.0
BUT if passed
/mn -tloc 10.50.90 then there's no way for MapNotes to know if you mean 10.5, 90 or 10, 50.9
I now have a headache, so please leave me alone ;p
 
 
 
=======================================
Changes in v3.27.20003 from v3.26.20003
=======================================
 
- fixed a problem with the "/mn -q [icon] [text]" slash command when passing the optional [icon] and/or [text]
 
 
 
=======================================
Changes in v3.26.20003 from v3.25.20003
=======================================
 
- fixed a bug with Send Note functionality after I suffered a particularly severe brain fart in v3.22.20003
 
 
 
=======================================
Changes in v3.25.20003 from v3.24.20003
=======================================
 
- hopefully fixed problems with the /mn -qtloc xx,yy [icon] [text] slash command when passing extra Icon/Text information
 
- change to make sure that the Map Zone is the current one by default when logging in or using ReloadUI(), or when first showing the Minimap coordinates
 
 
 
=======================================
Changes in v3.24.20003 from v3.23.20003
=======================================
 
- hopefully fixed the Send Note problem introduced in v3.22.20003
 
- fixed a problem sending the "|" character in merged notes
 
 
 
=======================================
Changes in v3.23.20003 from v3.22.20003
=======================================
 
- new Slash Command "/mn -scale [0.5 - 1.5]"
The size of MapNotes Menus and Frames are now fixed no matter what the scale of the World Map or other AddOn Map being used.
This command can be used to change the default size of MapNotes Menus and Frames if the user finds it too small or too large.
The default value is 0.7
Therefore "/mn -scale 1.0" will make the Menus and Frames appear larger than they do by default.
Obviously MapNotes will remember this setting between sessions.
 
 
 
=======================================
Changes in v3.22.20003 from v3.21.20003
=======================================
 
- fixed a problem that made the Send Note buttons difficult to click upon
 
- small changes to the Send Note functionality to ensure a message can be sent more than once to Party/Raid members if necessary
(Blizzard's standard functionality seems to be to suppress consecutive duplicate SendAddonMessages)
 
 
 
=======================================
Changes in v3.21.20003 from v3.20.20003
=======================================
 
- fixed a bug with the Key Bindings for making Target/Merge notes
 
 
 
=======================================
Changes in v3.20.20003 from v3.17.20000
=======================================
 
- toc update
 
- made several enhancements to the MapNotes Target and Merge note functionality :
1.) Now correctly fetches the Profession of friendly NPCs such as Bankers, FlightMasters, etc.
2.) Can now include an optional icon and extra text with both the Target and Merge commands
/mn -t [icon] [text]
/mn -m [icon] [text]
The text is still optional, but if included will appear on the second Info Line of the Map Note.
The icon is also optional, and doesn't have to be included even if text is provided; However, if an icon and text is entered, then there must be a space between the icon and the text. Any provided icon will overide the default/determined icon.
As per other slash commands the icon must be a number between 0-9 representing the list of icons available for selection when you create/filter Map Notes.
 
- the /mn -tloc x,y (and /mntloc x,y) (and /mn -qtloc x,y) commands are now more forgiving and will allow the following coordinate formatting
1.) The coordinates may now include decimal points
2.) The separator between coordinates may now include spaces, or be a simple space instead of a comma
 
- notes can now be sent to the whole Raid as well as the your immediate Party members. On the Send Note frame, a Left Click will still send a note to just your Party; But a Right Click will send the note to everyone in the Raid.
(Other members of your Party/Raid must have MapNotes(Fan's Update) installed to receive the note)
 
- the actual Party Note itself can now also be sent to the all members of the Raid. <Shift><Right-Click> will still just send to your immediate Party members, but <Control><Shift><Right-Click> will set a Party Note for the entire Raid.
(Other members of your Party/Raid must have MapNotes(Fan's Update) installed to receive the note)
 
- changed the Chat Frame hooks to address problems with Pet Bars and handling functions when a Pet is summoned while in combat
 
- the scale of the Menus and frames has been normalised so that no matter what scale the Map frame is, the MapNotes menus and frames will always be constant. i.e. if you have changed the scale of the World Map or are making notes on AlphaMap or Atlas
 
- some small fixes such as making sure the World Map isn't toggled when using the Escape key to close the MapNote editing frame for notes in other AddOns such as AlphaMap or Atlas
 
- extended an original bug avoidance measure to try and avoid any possibility of a recursive stack overflow error
 
 
 
=======================================
Changes in v3.17.20000 from v3.16.20000
=======================================
 
- added a new option to the note creation slash command allowing the created note to be set as a mininote ( mn<boolean> i.e. 0 or 1 )
Please see the Readme.txt file for more details.
 
- fixed a potential MapNotes compatibility issue with Ciphersimian's recent update of WoWKB when deleting notes in multiple zones
 
- fixed an issue that could cause the User Interface to remain hidden if entering combat when the map was open
 
- the options to "Set next note as mininote Also" and "Set next note as mininote Only", will now remain on until toggled off again
("/mn -nextmini" and "/mn -minionly")
 
 
 
=======================================
Changes in v3.16.20000 from v3.15.20000
=======================================
 
- made sure that MapNotes are displayed by default when first installing
 
- fixed the check mark against the Show Notes options so it correctly displays the option status
 
- fixed the Edit Box labels on the Note Edit frame
 
 
 
=======================================
Changes in v3.15.20000 from v3.12.20000
=======================================
 
- un-hooking of unnecessary functions to fix the PetDismiss() Blocked Action problem
(Thanks to Quel for his input in solving this issue)
(Rumour has it that Blizzard will be addressing this issue themselves, as it seems to have affected many AddOns that Hook DropDownMenu functionality in perfectly benign ways)
 
- made sure the Options frame will Show properly
 
- fixed some small issues with the positioning of Menu frames when using MapNotes on AlphaMap/Atlas maps
 
- update to support ciphersimian's recent update of WoWKB v20000 (i.e. NOT MetaMap)
 
- updated the "/MapNotes_Import_MetaMap" command to work with MetaMap v20000-3 and later
NOTE: although this version of MapNotes (Fan's Update) can fix ZoneShift errors caused by the Blizzard Patch 2.01 in older versions of MapNotes when upgrading to this version, it can't fix any ZoneShift errors when importing data from MetaMap, so if a note was in the wrong Zone in MetaMap, then it will still be in the wrong Zone.
 
- variable name clean-up
 
- included a data checking function that may help find notes that appear to be missing due to the Zone Shift errors that the WoW 2.01 patch caused in previous versions of MapNotes. If your notes don't seem to be showing, then backup your \SavedVariables\MapNotes.lua file before using the following Slash Command :
 
/mn -datacheck
 
If that still doesn't help, double check the "ShowNotes" option in the "Quick Options" drop down box on the World Map frame.
 
 
 
=======================================
Changes in v3.12.20000 from v3.11.20000
=======================================
 
- Spanish added to the list of Clients that can be corrected by the datafix introduced in 3.11.20000
See Change Log for v3.11.20000 on how to run the datafix manually if you have already imported Zone Shift errors in to your MapNotes (Fan's Update) database.
 
- people can now upgrade from old versions of MapNotes to MapNotes (Fan's Update), on English, German, French, and SPANISH Clients, even if they have Zone Shift errors created by the WoW 2.01 Patch, and the data will be corrected automatically, and you won't see any Zone Shift errors.
 
- NOTE : I repeat, this datafix should NOT be required by people who had changed to MapNotes (Fan's Update) BEFORE WoW Patch 2.01.
 
- NOTE 2 : After upgrading to MapNotes (Fan's Update), you shouldn't have any further Zone Shift problems in the future.
 
 
 
 
=======================================
Changes in v3.11.20000 from v3.10.20000
=======================================
 
- a datafix will run automatically for people upgrading to MapNotes (Fan's Update) at the same time as upgrading to the WoW 2.01 Patch.
 
- included a manual datafix mainly for Cosmos users who already have Zone Shift errors since the WoW 2.01 Patch
Users who upgraded to MapNotes (Fan's Update) BEFORE the WoW 2.01 Patch should NOT need to run this data fix.
Non-Cosmos users who have upgraded to WoW 2.01 before changing to MapNotes (Fan's Update) may also find this fix useful.
 
NOTE :
Only use this datafix ONCE, and only if your data contained Zone Shift errors, or they occured after the WoW 2.01 Patch.
If you have created notes since the WoW 2.01 Patch, and run this datafix, your new notes will also be moved if they are in zones affected by the problem.
Any MapNotes LandMark notes that have been automatically created since updgrading to MapNotes (Fan's Update) will be deleted.
 
Tested for English Client
Limited testing for French and German Clients - let me know if you still have errors
No datafix data available for other Clients atm.
 
Type the following in to the command line :
 
/script MN_WoW_DFix1(1);
 
You should receive confirmation of the number of Notes and Lines that have been fixed.
 
 
 
 
=======================================
Changes in v3.10.20000 from v3.00.20000
=======================================
 
- Multiple Mininotes - can now display more than one Mininote.
Can still only display one Thottbott Location / PartyNote, but any number of normal MapNotes can now be left displayed as Mininotes.
 
- Easily remove Mininotes by <Control><Alt>-Clicking on the actual Mininote on the Minimap
(This won't delete underlying notes - just stops using them as Mininotes.)
 
- Enhanced the Highlighting function to display highlighted notes as Mininotes that can be tracked in the Minimap.
'/mn -hl <Note Name>' will highlight all notes with that name, on all maps.
'/mn -s <text>' allows you to search for text, and will report to the Chat frame all zones with notes containing the text
 
- Where the user has selected to make the next received/created note as a Mininote Only, then that note will be displayed as a Thottbott style note. Any existing Thottbott Mininote the user may already be displaying will be overidden by the new note.
 
- Legacy Slash Commands still work : But new Slash commands implemented, including a help command.
"/mn -help" or "/mn -h" or "/mn -?"
 
- Fixed a small bug in generating a MapNotes string in the Send Note frame
 
- Fixed a small bug when creating notes via Slash command input
 
- Fixed a BC compatibility problem when clicking on Mininotes
 
- Fixed a BC compatibility issue with drawing lines between notes on Plugin frames/maps, such as AlphaMap or Atlas
 
 
- "/tloc" can now be used to toggle this AddOn's minimap coordinates instead of Thottbott's minimap coordinates.
 
NOTE : PLEASE still use "/mntloc xx,yy" or "/mn -tloc xx,yy" to place a Thottbott marker on the map.
----
("/tloc" only toggles Minimap Coordinates.)
 
 
 
 
 
 
 
 
=======================================
Changes in v3.00.20000 from v2.40.11200
=======================================
 
- Burning Crusade Compatibility
 
- changed the way the options work so that using a Checkbox takes affect immediately and the 'Save' button is no longer required
 
- added new check-box on Options frame to auto-note Landmarks. Based on Magellan functionality.
 
- added new button on Options frame to delete auto-noted Landmarks in the current zone.
 
 
 
=======================================
Changes in v2.40.11200 from v2.30.11200
=======================================
 
- Added 90% Traditional Chinese Localisation
 
- If the Thottbott note is set as a Mininote, then I now make sure the Mininote is removed when the Thottbott note is deleted.
(Thottbott notes are set using the "/mntloc xx,yy" slash command)
 
- Some preliminary coding changes for compatiblity with The Burning Crusade Expansion pack. (Not fully compatible yet)
 
 
 
=======================================
Changes in v2.30.11200 from v2.25.11200
=======================================
 
- Added 90% Korean Localisation (Thanks to Gigabyte)
 
- Fixed a compatibility issue with AddOns that intercept Mouse clicks on the MiniMap (e.g. SilverTrack)
 
- Made sure coordinates are correct for current Zone when the WorldMap / AlphaMap closes
 
- Removed a debug message about MiniNote Map Key that should not have been left in ;p
 
 
 
=======================================
Changes in v2.25.11200 from v2.00.11200
=======================================
 
- NEW option to display Player and Cursor Coordinates on the World Map.
Control-Left-Click and drag the coordinates to move them to a different position on the World Map if you are not happy with the default.
Use the "/mnmapc" slash command to toggle display of World Map coordinates, or the new checkbox on the Options Frame
 
- NEW option to display Player Coordinates below the Minimap.
If you are NOT targetting anything, then ALT-Left-Click on these coordinates to create a QuickNote.
If you are targetting something, then ALT-Left-Click to create a Target Note at the PLAYER'S current location - you will be warned if you are too near to an existing note to create a new note.
If you are targetting something, then you may also ALT-Right-Click if you wish to create a note for your Target at the PLAYER'S current location. However when ALT-Right-Clicking the Minimap Coordinates, if a MapNote already exists at Player's location, then the details will be merged with the existing note.
Use the "/mnminic" slash command to toggle display of Minimap coordinates, or the new checkbox on the Options Frame.
 
- NEW Key bindings available that will do the same thing as Clicking on the Minimap Coordinates.
i.e. either create a new QuickNote/TargetNote, or Create/Merge a TargetNote.
 
- NEW Slash commands can be used for the same functions :
/mnt - create a new QuickNote/TargetNote at the player's Current location
/mnm - create/merge a TargetNote for the Player's current target at the Player's current location
 
 
 
==================================================================
Changes from the Base Version to MapNotes(Fan's Update)v2.00.11200
==================================================================
 
NOTE: IF UPGRADING FROM PREVIOUS VERSIONS OF MAPNOTES - BACKUP YOUR MAPNOTES.LUA
DATABASE FILE FROM YOUR SAVEDVARIABLES FOLDER FIRST
 
- This version of MapNotes changes the Keying system used to record notes. If you are upgrading from a previous version of MapNotes, then it is important to save a copy of your MapNotes.lua file from your saved variables directory.
Because of these changes, people upgrading from old versions will lose there old style data and will not be able to revert to their old version unless they have saved a copy of their MapNotes.lua database file.
See the "MapNotes ZoneShift Conversions" section of the Readme.txt file for more details.
 
- You can now make notes on the Continent Maps and the overal World Map
 
- You can now make notes on Battleground Maps
 
 
MapNotes PlugIn Interface and Support for AlphaMap & Atlas
----------------------------------------------------------
- Added the ability to create MapNotes on AlphaMap (Fan's Update) v2.60.11200 Instance, Battleground, & World Boss Maps. Note that AlphaMap already supports the display of MapNotes on World maps, and you must still use the World Map to create World map notes; However, you can now make MapNotes on the AlphaMap when displaying Instances, Battlegrounds, and World Boss maps.(This functionality is actually built in to AlphaMap itself, and takes advantage of the PlugIn feature now built in to this version of MapNotes.)
 
- Added the ability to create MapNotes on Atlas maps. (Again, this uses the Plugin features added to this version of MapNotes, but I have included the Atlas support natively, and it should work with most recent versions of Atlas)
 
- Provided a PlugIn interface by which other AddOns can add their own Frames over which MapNotes can then create MapNotes. Other Developers should see the extensive comments in the code, and check AlphaMap (Fan's Update) for an example of how to use this interface. (Read Plugins.lua)
 
 
MapNotes Import Functions
-------------------------
- For people moving from MetaMap or CTMapMod, there are 2 new slash commands available for people to import the notes made in those AddOns in to this version of MapNotes.
There are also 2 commands available to import AlphaMap's built in notes if you prefer to use MapNotes notes instead of AlphaMap's own.
All of these functions are mainly designed for people who have just installed MapNotes (Fan's Update). If you have been using this version of MapNotes for some time already, and have your own notes, then these functions may overwrite your existing notes.
See the Slash Commands section for details on use.
 
 
Movable MapNotes
----------------
- You can now Control-Alt-Click Drag Notes to move them to different locations on the Map. No need to delete and re-create, just ctrl-alt-drag.
 
 
Changes to the Party Note
-------------------------
- First of all, the bug causing it to not be displayed on the World Map has been fixed.
 
- Shift-Right clicking places the note, and now Shift-Right clicking will also remove it, and make sure the MiniMap icon is also removed
 
- Removed the dependancy on Sky. Only members of your Party who also have MapNotes (Fan's Update) installed will receive a note. You will NOT spam the members of your party who do not have this AddOn with strange MapNotes coordinates.
 
 
Changes to the MiniMapNote
--------------------------
- Stopped the Mininote from preventing use of the WorldMap
 
- Made sure the Mininote stops displaying if the underlying MapNote is deleted
 
 
Change to Maximum number of Notes
---------------------------------
- No longer a maximum number of notes/lines. Notes and Lines are now created dynamically which will save memory for most people
 
 
MapNotes Search Feature
-----------------------
- Can now search your MapNotes database for certain text, and MapNotes will report the number and locations of all notes containing that text to the default chat window
(SEE Slash Commands)
 
 
MapNotes Highlighting
---------------------
- If you have lots of notes and want to clearly identify a single one on a map, or if you want a certain note to remain highlighted, then use this command and they will be displayed with a green circle around them.
If there are several notes with that name, then they will all be highlighted
(SEE Slash Commands)
 
 
Miscallaneous Changes
---------------------
- Compatibility changes ensuring the menu frames are always fully opaque and appear near the cursor when the WorldMap has been altered by other AddOns.
 
- Made some updates more immediate so that maps/frames show new/deleted notes/lines as soon as you add/delete them.
 
- Multiple small bug fixes
 
 
 
 
 
SEE Readme.old.txt FOR HISTORIC CHANGES TO EARLIER VERSIONS OF MAPNOTS
\ No newline at end of file
MapNotes/MapNotesOptionsFrame.xml New file
0,0 → 1,1241
<!--
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
-->
 
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/FrameXML/UI.xsd">
 
<Frame name="MapNotesOptionsFrame" inherits="MapNotes_FrameTemplate" frameStrata="TOOLTIP" parent="UIParent">
<Size>
<AbsDimension x="450" y="372"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString inherits="GameFontGreenLarge" text="MAPNOTES_OPTIONS_MENU">
<Anchors>
<Anchor point="TOP" relativeTo="MapNotesOptionsFrame">
<Offset><AbsDimension x="0" y="-8"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Frames>
<Button name="MapNotesButtonDeleteLandMarks" inherits="MapNotes_ButtonTemplate" text="MAPNOTES_DELETELANDMARKS">
<Anchors>
<Anchor point="CENTER" relativePoint="Bottom">
<Offset>
<AbsDimension x="-102.5" y="30"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
PlaySound("igMainMenuOption");
MapNotes_DeleteLandMarks();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
</Scripts>
</Button>
 
<Button name="$parentCancel" inherits="MapNotes_ButtonTemplate" text="CLOSE">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MapNotesButtonDeleteLandMarks">
<Offset>
<AbsDimension x="20" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
PlaySound("igMainMenuOption");
MapNotesOptionsFrame:Hide();
</OnClick>
</Scripts>
</Button>
 
<EditBox name="MapNotes_GhostTextBox" autoFocus="true" historyLines="0" letters="0" hidden="false">
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnEscapePressed>
MapNotesOptionsFrame:Hide();
</OnEscapePressed>
</Scripts>
</EditBox>
 
<CheckButton name="MapNotesOptionsCheckbox0" id="0">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="50" y="-30"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="MapNotesOptionsIcon0Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon0">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox1" id="1">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MapNotesOptionsCheckbox0">
<Offset><AbsDimension x="60" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="MapNotesOptionsIcon1Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon1">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox2" id="2">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MapNotesOptionsCheckbox1">
<Offset><AbsDimension x="60" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="MapNotesOptionsIcon2Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon2">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox3" id="3">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MapNotesOptionsCheckbox2">
<Offset><AbsDimension x="60" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="MapNotesOptionsIcon3Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon3">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox4" id="4">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MapNotesOptionsCheckbox3">
<Offset><AbsDimension x="60" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="MapNotesOptionsIcon4Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon4">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox5" id="5">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="TOP" relativePoint="BOTTOM" relativeTo="MapNotesOptionsCheckbox0">
<Offset><AbsDimension x="0" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="MapNotesOptionsIcon5Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon5">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox6" id="6">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MapNotesOptionsCheckbox5">
<Offset><AbsDimension x="60" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="MapNotesOptionsIcon6Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon6">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox7" id="7">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MapNotesOptionsCheckbox6">
<Offset><AbsDimension x="60" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="MapNotesOptionsIcon7Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon7">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox8" id="8">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MapNotesOptionsCheckbox7">
<Offset><AbsDimension x="60" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="MapNotesOptionsIcon8Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon8">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox9" id="9">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MapNotesOptionsCheckbox8">
<Offset><AbsDimension x="60" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="MapNotesOptionsIcon9Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon9">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox10" id="10">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="50" y="-78"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MapNotesOptionsCheckbox10Text" inherits="GameFontNormalSmall" text="MAPNOTES_OWNNOTES">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="1" y="1"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox11" id="11">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="TOP" relativePoint="BOTTOM" relativeTo="MapNotesOptionsCheckbox10">
<Offset><AbsDimension x="0" y="3"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MapNotesOptionsCheckbox11Text" inherits="GameFontNormalSmall" text="MAPNOTES_OTHERNOTES">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="1" y="1"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox12" id="12">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="TOP" relativePoint="BOTTOM" relativeTo="MapNotesOptionsCheckbox11">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MapNotesOptionsCheckbox12Text" inherits="GameFontNormalSmall" text="MAPNOTES_HIGHLIGHT_LASTCREATED">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="1" y="1"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox13" id="13">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="TOP" relativePoint="BOTTOM" relativeTo="MapNotesOptionsCheckbox12">
<Offset><AbsDimension x="0" y="3"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MapNotesOptionsCheckbox13Text" inherits="GameFontNormalSmall" text="MAPNOTES_HIGHLIGHT_MININOTE">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="1" y="1"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox14" id="14">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="TOP" relativePoint="BOTTOM" relativeTo="MapNotesOptionsCheckbox13">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MapNotesOptionsCheckbox14Text" inherits="GameFontNormalSmall" text="MAPNOTES_ACCEPTINCOMING">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="1" y="1"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
MapNotesOptionsCheckbox15:Enable();
MapNotesOptionsCheckbox15Text:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
else
PlaySound("igMainMenuOptionCheckBoxOn");
MapNotesOptionsCheckbox15:Disable();
MapNotesOptionsCheckbox15Text:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b);
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox15" hidden="true" id="15">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="TOP" relativePoint="BOTTOM" relativeTo="MapNotesOptionsCheckbox14">
<Offset><AbsDimension x="20" y="3"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MapNotesOptionsCheckbox15Text" inherits="GameFontNormalSmall" text="MAPNOTES_INCOMING_CAP">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="1" y="1"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckbox16" id="16">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="TOP" relativePoint="BOTTOM" relativeTo="MapNotesOptionsCheckbox14">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MapNotesOptionsCheckbox16Text" inherits="GameFontNormalSmall" text="MAPNOTES_AUTOPARTYASMININOTE">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset><AbsDimension x="1" y="1"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
else
PlaySound("igMainMenuOptionCheckBoxOn");
end
MapNotes_WriteOptions();
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckboxMapC">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="TOP" relativePoint="BOTTOM" relativeTo="MapNotesOptionsCheckbox16">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MapNotesOptionsCheckboxMapCText" inherits="GameFontNormalSmall" text="MAPNOTES_MAP_COORDS">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset>
<AbsDimension x="1" y="1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
MapNotes_Options.mapC = true;
MN_SetCoordsPos();
else
PlaySound("igMainMenuOptionCheckBoxOn");
MapNotes_Options.mapC = nil;
MN_SetCoordsPos();
end
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckboxMiniC">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MapNotesOptionsCheckboxMapC">
<Offset>
<AbsDimension x="150" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MapNotesOptionsCheckboxMiniCText" inherits="GameFontNormalSmall" text="MAPNOTES_MINIMAP_COORDS">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset>
<AbsDimension x="1" y="1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
MN_MinimapCoordsFrame:Show();
MapNotes_Options.miniC = true;
else
PlaySound("igMainMenuOptionCheckBoxOn");
MN_MinimapCoordsFrame:Hide();
MapNotes_Options.miniC = false;
end
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<CheckButton name="MapNotesOptionsCheckboxLM">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="TOP" relativePoint="BOTTOM" relativeTo="MapNotesOptionsCheckboxMapC">
<Offset><AbsDimension x="0" y="-1"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MapNotesOptionsCheckboxLMText" inherits="GameFontNormalSmall" text="MAPNOTES_LANDMARKS_CHECK">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT">
<Offset>
<AbsDimension x="1" y="1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnClick>
if this:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOff");
MapNotes_Options.landMarks = true;
<!-- MapNotes_CreateLandMarks(); -->
MapNotes_IterateLandMarks(true);
else
PlaySound("igMainMenuOptionCheckBoxOn");
MapNotes_Options.landMarks = nil;
end
MapNotes_GhostTextBox:SetFocus(true);
</OnClick>
<OnEnter>
GameTooltip:SetOwner(this, "ANCHOR_CURSOR");
GameTooltip:SetText(MAPNOTES_MAGELLAN);
GameTooltip:Show();
GameTooltip:SetFrameLevel( this:GetFrameLevel() + 1 );
</OnEnter>
<OnLeave>
GameTooltip:Hide();
</OnLeave>
<OnShow>
this:SetFrameLevel( MapNotesOptionsFrame:GetFrameLevel() + 2 );
</OnShow>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
</CheckButton>
<Slider name="MN_FrameSlider" hidden="false" enabled="true" inherits="OptionsSliderTemplate">
<Size>
<AbsDimension x="165" y="18"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT" relativeTo="MapNotesOptionsCheckboxLM">
<Offset><AbsDimension x="0" y="-16"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MN_FrameSliderValue" inherits="GameFontGreenSmall">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_FrameSliderText">
<Offset>
<AbsDimension x="2" y="0" />
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad>
MN_FrameSliderText:SetPoint("BOTTOM", "MN_FrameSlider", "TOP", -10, 0);
MN_FrameSliderText:SetText(MAPNOTES_CHAT_COMMAND_SCALE);
MN_FrameSlider:SetMinMaxValues(0.5,1.5);
MN_FrameSlider:SetValueStep(0.05);
</OnLoad>
<OnMouseUp>
MapNotes_ScaleFrames();
</OnMouseUp>
<OnValueChanged>
MapNotes_Options.nFactor = MN_FrameSlider:GetValue();
MN_FrameSliderValue:SetText( math.floor(MN_FrameSlider:GetValue() * 100) .. "%" );
</OnValueChanged>
<OnShow>
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 2 );
if ( MapNotes_Options.nFactor ) then
MN_FrameSlider:SetValue( MapNotes_Options.nFactor );
end
</OnShow>
</Scripts>
</Slider>
<Slider name="MN_IconSlider" hidden="false" enabled="true" inherits="OptionsSliderTemplate">
<Size>
<AbsDimension x="165" y="18"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_FrameSlider">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MN_IconSliderValue" inherits="GameFontGreenSmall">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_IconSliderText">
<Offset>
<AbsDimension x="2" y="0" />
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad>
MN_IconSliderText:SetPoint("BOTTOM", "MN_IconSlider", "TOP", -10, 0);
MN_IconSliderText:SetText(MAPNOTES_CHAT_COMMAND_ISCALE);
MN_IconSlider:SetMinMaxValues(8,48);
MN_IconSlider:SetValueStep(1);
</OnLoad>
<OnMouseUp>
MapNotes_WorldMapButton_OnUpdate();
</OnMouseUp>
<OnValueChanged>
MapNotes_Options.iFactor = MN_IconSlider:GetValue();
MN_IconSliderValue:SetText( MN_IconSlider:GetValue() );
MapNotes_WorldMapButton_OnUpdate();
</OnValueChanged>
<OnShow>
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 2 );
</OnShow>
</Scripts>
</Slider>
<Slider name="MN_AlphaSlider" hidden="false" enabled="true" inherits="OptionsSliderTemplate">
<Size>
<AbsDimension x="165" y="18"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT" relativeTo="MN_IconSlider">
<Offset><AbsDimension x="0" y="-24"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MN_AlphaSliderValue" inherits="GameFontGreenSmall">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_AlphaSliderText">
<Offset>
<AbsDimension x="2" y="0" />
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad>
MN_AlphaSliderText:SetPoint("BOTTOM", "MN_AlphaSlider", "TOP", -10, 0);
MN_AlphaSliderText:SetText(MAPNOTES_CHAT_COMMAND_ASCALE);
MN_AlphaSlider:SetMinMaxValues(0,1);
MN_AlphaSlider:SetValueStep(0.1);
</OnLoad>
<OnMouseUp>
MapNotes_WorldMapButton_OnUpdate();
</OnMouseUp>
<OnValueChanged>
MapNotes_Options.aFactor = MN_AlphaSlider:GetValue();
MN_AlphaSliderValue:SetText( math.floor( MN_AlphaSlider:GetValue() * 10 ) * 10 .. "%" );
MapNotes_WorldMapButton_OnUpdate();
</OnValueChanged>
<OnShow>
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 2 );
</OnShow>
</Scripts>
</Slider>
<Slider name="MN_CoordSlider" hidden="false" enabled="true" inherits="OptionsSliderTemplate">
<Size>
<AbsDimension x="165" y="18"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT" relativeTo="MN_FrameSlider">
<Offset><AbsDimension x="0" y="-24"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MN_CoordSliderValue" inherits="GameFontGreenSmall">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_CoordSliderText">
<Offset>
<AbsDimension x="2" y="0" />
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad>
MN_CoordSliderText:SetPoint("BOTTOM", "MN_CoordSlider", "TOP", -10, 0);
MN_CoordSliderText:SetText(MN_CODEC_FMT);
MN_CoordSlider:SetMinMaxValues(0,2);
MN_CoordSlider:SetValueStep(1);
</OnLoad>
<OnValueChanged>
MapNotes_Options.coordF = math.floor( MN_CoordSlider:GetValue() * 10 ) / 10;
MN_COORD_F = MapNotes_Options.coordF;
MN_CoordSliderValue:SetText( MN_CoordSlider:GetValue() );
</OnValueChanged>
<OnShow>
self:SetValue( MN_COORD_F );
self:SetFrameLevel( this:GetParent():GetFrameLevel() + 2 );
</OnShow>
</Scripts>
</Slider>
</Frames>
<Scripts>
<OnLoad>
this:SetBackdropColor(0,0,0);
</OnLoad>
<OnShow>
MapNotes_NormaliseScale(this);
MapNotes_OpenOptionsFrame();
</OnShow>
<OnHide>
this:SetParent("UIParent");
</OnHide>
</Scripts>
</Frame>
 
<Frame name="MN_MapCoords" movable="true" toplevel="true" hidden="true" parent="WorldMapFrame"> <!-- Try ...Frame instead of ...Button parent -->
<Size>
<AbsDimension x="90" y="32"/>
</Size>
<Anchors>
<Anchor point="CENTER" relativeTo="WorldMapButton" relativePoint="BOTTOMLEFT" >
<Offset>
<AbsDimension x="16" y="532"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MN_MapCoordsText" inherits="GameFontNormalLarge" text="Player" hidden="false" justifyH="CENTER" justifyV="BOTTOM" >
<Color r="1.0" g="1.0" b="1.0"/>
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="2" y="1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Frames>
<Frame name="MN_MapCoordsMovementFrame" hidden="true" setAllPoints="true" enableMouse="true" movable="true">
<Scripts>
<OnShow>
this:SetFrameLevel(MN_MapCoords:GetFrameLevel() + 1);
</OnShow>
<OnMouseDown>
MN_MapCoords.isMoving = true;
MN_RememberCoordsPos();
MN_MapCoords:StartMoving();
</OnMouseDown>
<OnMouseUp>
if ( MN_MapCoords.isMoving ) then
MN_MapCoords:StopMovingOrSizing();
MN_MapCoords.isMoving = false;
MN_RememberCoordsPos();
end
</OnMouseUp>
</Scripts>
</Frame>
</Frames>
<Scripts>
<OnShow>
this:SetFrameStrata("TOOLTIP");
</OnShow>
<OnUpdate>
MN_MapCoords_OnUpdate(self, arg1);
</OnUpdate>
</Scripts>
<Backdrop bgFile="Interface\TutorialFrame\TutorialFrameBackground" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="5" right="5" top="5" bottom="5"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="16"/>
</TileSize>
<EdgeSize>
<AbsValue val="16"/>
</EdgeSize>
</Backdrop>
</Frame>
 
<Button name="MN_MinimapCoordsFrame" clampedToScreen="true" frameStrata="LOW" enableMouse="true" movable="true" hidden="true" parent="UIParent">
<Size>
<AbsDimension x="90" y="28"/>
</Size>
<Anchors>
<Anchor point="TOP" relativeTo="MinimapCluster" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="8" y="16"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MN_MinimapCoordsFrameText" inherits="GameFontNormal" text="Player" hidden="false" justifyH="CENTER" justifyV="BOTTOM" >
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="6" y="0"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnUpdate>
MN_MinimapCoords_OnUpdate(self, arg1);
</OnUpdate>
<OnMouseDown>
HideDropDownMenu(1);
if ( arg1 == "LeftButton" ) then
self:StartMoving();
else
MN_MinimapCoords_OnClick();
end
</OnMouseDown>
<OnMouseUp>
if ( arg1 == "LeftButton" ) then
self:StopMovingOrSizing();
end
</OnMouseUp>
</Scripts>
<Backdrop bgFile="Interface\TutorialFrame\TutorialFrameBackground" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="5" right="5" top="5" bottom="5"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="16"/>
</TileSize>
<EdgeSize>
<AbsValue val="16"/>
</EdgeSize>
</Backdrop>
</Button>
 
</Ui>
MapNotes/MapNotesColours.lua New file
0,0 → 1,43
--[[
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
]]
 
MN_PARTY_ICON = nil; -- Replace with the Name of the icon's graphics file INCLUDING the Path from Interface\\ as per below
MN_TLOC_ICON = nil; -- Replace with the Name of the icon's graphics file INCLUDING the Path from Interface\\ as per below
 
MN_MISC_GFX_PATH = "Interface\\AddOns\\MapNotes\\MiscGFX"; -- Moved here as now also used in Utilities.lua
MN_POI_ICONS_PATH = "Interface\\AddOns\\MapNotes\\POIIcons";
 
MapNotes_Colors = {};
MapNotes_Colors[0] = {r = 1.0, g = 0.82, b = 0.0};
MapNotes_Colors[1] = {r = 0.55, g = 0.46, b = 0.04};
MapNotes_Colors[2] = {r = 0.87, g = 0.06, b = 0.0};
MapNotes_Colors[3] = {r = 0.56, g = 0.0, b = 0.0};
MapNotes_Colors[4] = {r = 0.18, g = 0.7, b = 0.2};
MapNotes_Colors[5] = {r = 0.0, g = 0.39, b = 0.05};
MapNotes_Colors[6] = {r = 0.42, g = 0.47, b = 0.87};
MapNotes_Colors[7] = {r = 0.25, g = 0.35, b = 0.66};
MapNotes_Colors[8] = {r = 1.0, g = 1.0, b = 1.0};
MapNotes_Colors[9] = {r = 0.65, g = 0.65, b = 0.65};
 
 
-- In Order for another AddOn to replace the default Icons and colours they should take the following steps :
--
-- Modification of colours is no longer fully supported - as users can now select their own
-- A Modified colour table can still be supplied above to modify the defaults, but no need to SetTextures
-- (If you do SetTextures - they will be reset to by the program and the supplied colour table used anyway)
--
-- 1.) Make MapNotes a Required Dependancy for their AddOn
-- 2.) Provide their own graphics in their own AddOn's Library Path
-- 3.) Include an OnEven function in their AddOn which takes the following steps, once "VARIABLES_LOADED" has occurred :
-- - Replace the _PATH Constants above, with Directory Paths pointing to their own AddOn's graphics
-- - Replace the MapNotes_Colors array above with their own colour choices
-- - Include the following code snippet that has been commented out below :
--
-- for i = 0, 9, 1 do
-- getglobal("MN_EditIcon"..i.."Texture"):SetTexture(MN_POI_ICONS_PATH.."\\Icon"..i);
-- getglobal("MapNotesOptionsIcon"..i.."Texture"):SetTexture(MN_POI_ICONS_PATH.."\\Icon"..i);
-- end
--
\ No newline at end of file
MapNotes/localization.fr.lua New file
0,0 → 1,159
--[[
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
 
Special thanks to Vjeux for the French translation
]]
 
-- À: C3 80 - \195\128
-- à: C3 A0 - \195\160
-- â: C3 A2 - \195\162
-- ç: C3 A7 - \185\167
-- è: C3 A8 - \195\168
-- é: C3 A9 - \195\169
-- ê: C3 AA - \195\170
-- ë: C3 AB - \195\171
-- î: C3 AE - \195\174
-- ô: C3 B4 - \195\180
-- û: C3 BB - \195\187
-- ': E2 80 99 - \226\128\153
 
if GetLocale() == "frFR" then
 
-- General
MAPNOTES_NAME = "MapNotes"
MAPNOTES_ADDON_DESCRIPTION = "Ajoute un syst\195\168me de note au WorldMap."
MAPNOTES_DOWNLOAD_SITES = "Voir le dossier de README"
 
-- Interface Configuration
MAPNOTES_WORLDMAP_HELP_1 = "Bon Clic Sur La Carte \195\128 bourdonner Dehors"
MAPNOTES_WORLDMAP_HELP_2 = "Clic Gauche Sur La Carte \195\128 bourdonner Dedans"
MAPNOTES_WORLDMAP_HELP_3 = "<Commande>+Bon Clic Sur La Carte Pour ouvrir Le Menu De Notes De Carte"
MAPNOTES_CLICK_ON_SECOND_NOTE = "|cFFFF0000MapNotes:|r Choisissez une Note pour tracer/effacer une ligne"
 
MAPNOTES_NEW_MENU = "Notes De Carte"
MAPNOTES_NEW_NOTE = "Cr\195\169er une Note"
MAPNOTES_MININOTE_OFF = "D\195\169sactiver MiniNotes"
MAPNOTES_OPTIONS = "Options"
MAPNOTES_CANCEL = "Annuler"
 
MAPNOTES_POI_MENU = "Notes De Carte"
MAPNOTES_EDIT_NOTE = "Modifier Note"
MAPNOTES_MININOTE_ON = "Utiliser comme MiniNote"
MAPNOTES_SPECIAL_ACTIONS = "Actions sp\195\169ciales"
MAPNOTES_SEND_NOTE = "Envoyer Note"
 
MAPNOTES_SPECIALACTION_MENU = "Actions sp\195\169ciales"
MAPNOTES_TOGGLELINE = "Cr\195\169er/Supprimer la ligne"
MAPNOTES_DELETE_NOTE = "Supprimer la Note"
 
MAPNOTES_EDIT_MENU = "Modifier une Note"
MAPNOTES_SAVE_NOTE = "Sauvegarder"
MAPNOTES_EDIT_TITLE = "Titre (requis):"
MAPNOTES_EDIT_INFO1 = "Ligne D\226\128\153Information 1 (optionel):"
MAPNOTES_EDIT_INFO2 = "Ligne D\226\128\153Information 2 (optionel):"
MAPNOTES_EDIT_CREATOR = "Cr\195\169ateur (optionel):"
 
MAPNOTES_SEND_MENU = "Envoyer Note"
MAPNOTES_SLASHCOMMAND = "Changer de Mode"
MAPNOTES_SEND_TITLE = "Envoyer Note:"
MAPNOTES_SEND_TIP = "Les Notes peuvent \195\170tre re\185\167ues par tous les utilisateurs de MapNotes(Fan's Update)."
MAPNOTES_SEND_PLAYER = "Nom du joueur :"
MAPNOTES_SENDTOPLAYER = "Envoyer au joueur"
MAPNOTES_SENDTOPARTY = "Envoyer au groupe/raid"
MAPNOTES_SENDTOPARTY_TIP = "Claquement gauche - Partie\nClaquement droit - Raid";
MAPNOTES_SHOWSEND = "Changer de Mode"
MAPNOTES_SEND_SLASHTITLE = "Obtenir la /commande :"
MAPNOTES_SEND_SLASHTIP = "Selectionnez ceci et utilisez CTRL+C pour la copier dans le presse-papier. (Vous pouvez ensuite l\226\128\153envoyer sur un forum par exemple)"
MAPNOTES_SEND_SLASHCOMMAND = "/Commande :"
 
MAPNOTES_OPTIONS_MENU = "Options"
MAPNOTES_SAVE_OPTIONS = "Sauvegarder"
MAPNOTES_OWNNOTES = "Afficher les notes cr\195\169\195\169es par votre personnage."
MAPNOTES_OTHERNOTES = "Afficher les Notes re\185\167ues des autres joueurs."
MAPNOTES_HIGHLIGHT_LASTCREATED = "Mettre en \195\169vidence (en |cFFFF0000rouge|r) la derni\195\168re Note cr\195\169\195\169e."
MAPNOTES_HIGHLIGHT_MININOTE = "Mettre en \195\169vidence (en |cFF6666FFbleu|r) la Note selectionn\195\169e."
MAPNOTES_ACCEPTINCOMING = "Accepter les Notes des autres utilisateurs."
MAPNOTES_INCOMING_CAP = "Refuser une Note si vous avez moins de 5 Notes disponibles."
MAPNOTES_AUTOPARTYASMININOTE = "Membres du groupe en MiniNote."
 
MAPNOTES_CREATEDBY = "Cr\195\169\195\169 par"
MAPNOTES_CHAT_COMMAND_ENABLE_INFO = "Cette commande vous permet d\226\128\153ajouter une Note trouv\195\169e sur une page web par exemple."
MAPNOTES_CHAT_COMMAND_ONENOTE_INFO = "Autorise la r\195\169ception de la prochaine Note."
MAPNOTES_CHAT_COMMAND_MININOTE_INFO = "Mettre la prochaine Note re\185\167ue en tant que MiniNote (avec une copie sur la carte)."
MAPNOTES_CHAT_COMMAND_MININOTEONLY_INFO = "Mettre la prochaine Note re\185\167ue en tant que MiniNote (seulement sur la minicarte)."
MAPNOTES_CHAT_COMMAND_MININOTEOFF_INFO = "D\195\169sactiver MiniNote."
MAPNOTES_CHAT_COMMAND_MNTLOC_INFO = "Ajoute une position sur la carte."
MAPNOTES_CHAT_COMMAND_QUICKNOTE = "Cr\195\169er une Note \195\160 votre position actuelle."
MAPNOTES_CHAT_COMMAND_QUICKTLOC = "Cr\195\169er une Note \195\160 la position donn\195\169e."
MAPNOTES_MAPNOTEHELP = "Cette commande ne peut \195\170tre utilis\195\169e que pour ajouter une Note."
MAPNOTES_ONENOTE_OFF = "Autoriser une Note : D\195\169sactiv\195\169"
MAPNOTES_ONENOTE_ON = "Autoriser une Note : Activ\195\169"
MAPNOTES_MININOTE_SHOW_0 = "Prochaine Note en MiniNote: D\195\169sactiv\195\169"
MAPNOTES_MININOTE_SHOW_1 = "Prochaine Note en MiniNote: Activ\195\169"
MAPNOTES_MININOTE_SHOW_2 = "Prochaine Note en MiniNote: Seulement"
MAPNOTES_DECLINE_SLASH = "Ajout impossible, trop de Notes dans la zone |cFFFFD100%s|r."
MAPNOTES_DECLINE_SLASH_NEAR = "Ajout impossible, Note trop proche de |cFFFFD100%q|r dans |cFFFFD100%s|r."
MAPNOTES_DECLINE_GET = "R\195\169ception impossible, trop de Notes dans la zone |cFFFFD100%s|r, ou la r\195\169ception de Notes est d\195\169sactiv\195\169e."
MAPNOTES_ACCEPT_SLASH = "Note ajout\195\169 dans |cFFFFD100%s|r."
MAPNOTES_ACCEPT_GET = "Vous avez re\185\167u la Note \226\128\153|cFFFFD100%s|r dans |cFFFFD100%s|r."
MAPNOTES_PARTY_GET = "|cFFFFD100%s|r utilis\195\169 comme Note de g\226\128\153roupe dans |cFFFFD100%s|r."
MAPNOTES_DECLINE_NOTETONEAR = "|cFFFFD100%s|r a essay\195\169 de vous envoyer la Note |cFFFFD100%s|r, mais elle est trop proche de |cFFFFD100%q|r."
MAPNOTES_QUICKNOTE_NOTETONEAR = "Cr\195\169ation impossible. Vous \195\170tes trop proche de |cFFFFD100%s|r."
MAPNOTES_QUICKNOTE_NOPOSITION = "Cr\195\169ation impossible. Impossible de r\195\169cup\195\169rer votre position actuelle."
MAPNOTES_QUICKNOTE_DEFAULTNAME = "Quicknote"
MAPNOTES_QUICKNOTE_OK = "Cr\195\169\195\169 dans |cFFFFD100%s|r."
MAPNOTES_QUICKNOTE_TOOMANY = "Il y a d\195\169ja trop de Notes dans |cFFFFD100%s|r."
MAPNOTES_DELETED_BY_NAME = "A supprim\195\169 tout le Notes de carte avec le cr\195\169ateur |cFFFFD100%s|r et le nom |cFFFFD100%s|r."
MAPNOTES_DELETED_BY_CREATOR = "A supprim\195\169 tout le Notes de carte avec le cr\195\169ateur |cFFFFD100%s|r."
MAPNOTES_QUICKTLOC_NOTETONEAR = "Cr\195\169ation impossible. Trop proche de |cFFFFD100%s|r."
MAPNOTES_QUICKTLOC_NOZONE = "Cr\195\169ation impossible. Impossible de r\195\169cup\195\169rer la zone actuelle."
MAPNOTES_QUICKTLOC_NOARGUMENT = "Utilisation: \226\128\153/quicktloc xx,yy [icone] [titre]\226\128\153."
MAPNOTES_SETMININOTE = "Utiliser comme MiniNote"
MAPNOTES_THOTTBOTLOC = "Thottbot Position"
MAPNOTES_PARTYNOTE = "Note de groupe"
 
MAPNOTES_CONVERSION_COMPLETE = MAPNOTES_VERSION.." - Changez complet. Veuillez v\195\169rifier vos notes."
 
-- Drop Down Menu
MAPNOTES_SHOWNOTES = "Montrez Les Notes"
MAPNOTES_DROPDOWNTITLE = "Notes De Carte"
MAPNOTES_DROPDOWNMENUTEXT = "Options"
 
MAPNOTES_WARSONGGULCH = "Goulet des Warsong"
MAPNOTES_ALTERACVALLEY = "Vall\195\169e d\226\128\153Alterac"
MAPNOTES_ARATHIBASIN = "Bassin d\226\128\153Arathi"
MAPNOTES_NETHERSTORM = "L'Eil du Cyclone";
 
MAPNOTES_COSMIC = "Cosmic";
 
 
-- Coordinates
MAPNOTES_MAP_COORDS = "Carte Coords";
MAPNOTES_MINIMAP_COORDS = "Minimap Coords";
 
 
-- MapNotes Target & Merging
MAPNOTES_MERGED = "MapNote Merged for : ";
MAPNOTES_MERGE_DUP = "MapNote already exists for : ";
MAPNOTES_MERGE_WARNING = "You must have something targetted to merge notes.";
 
BINDING_HEADER_MAPNOTES = "MapNotes";
BINDING_NAME_MN_TARGET_NEW = "QuickNote/TargetNote";
BINDING_NAME_MN_TARGET_MERGE = "Merge Target Note";
 
MN_LEVEL = "Niveau";
 
-- Magellan Style LandMarks
MAPNOTES_LANDMARKS = "Landmarks"; -- Landmarks, as in POI, or Magellan
MAPNOTES_LANDMARKS_CHECK = "Auto-MapNote "..MAPNOTES_LANDMARKS;
MAPNOTES_DELETELANDMARKS = "Delete "..MAPNOTES_LANDMARKS;
MAPNOTES_MAGELLAN = "(~Magellan)";
MAPNOTES_LM_CREATED = " MapNotes Created in ";
MAPNOTES_LM_MERGED = " MapNotes Merged in ";
MAPNOTES_LM_SKIPPED = " MapNotes not Noted in ";
MAPNOTES_LANDMARKS_NOTIFY = MAPNOTES_LANDMARKS.." Noted in ";
 
 
end
MapNotes/localization.es.lua New file
0,0 → 1,171
--[[
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
 
]]
 
-- À: C3 80 - \195\128
-- à: C3 A0 - \195\160
-- â: C3 A2 - \195\162
-- ç: C3 A7 - \185\167
-- è: C3 A8 - \195\168
-- é: C3 A9 - \195\169
-- ê: C3 AA - \195\170
-- ë: C3 AB - \195\171
-- î: C3 AE - \195\174
-- ô: C3 B4 - \195\180
-- û: C3 BB - \195\187
-- ': E2 80 99 - \226\128\153
 
if GetLocale() == "esES" then
 
-- General
MAPNOTES_NAME = "MapNotes";
MAPNOTES_ADDON_DESCRIPTION = "Adds a note system to the WorldMap.";
MAPNOTES_DOWNLOAD_SITES = "See README for download sites";
 
-- Interface Configuration
MAPNOTES_WORLDMAP_HELP_1 = "Right-Click On Map To Zoom Out";
MAPNOTES_WORLDMAP_HELP_2 = "Left-Click On Map To Zoom In";
MAPNOTES_WORLDMAP_HELP_3 = "<Control>+Right-Click On Map To Open "..MAPNOTES_NAME.." Menu";
MAPNOTES_CLICK_ON_SECOND_NOTE = "|cFFFF0000"..MAPNOTES_NAME..":|r Choose Second Note To Draw/Clear A Line";
 
MAPNOTES_NEW_MENU = MAPNOTES_NAME;
MAPNOTES_NEW_NOTE = "Create Note";
MAPNOTES_MININOTE_OFF = "Turn MiniNote Off";
MAPNOTES_OPTIONS = "Options";
MAPNOTES_CANCEL = "Cancel";
 
MAPNOTES_POI_MENU = MAPNOTES_NAME;
MAPNOTES_EDIT_NOTE = "Edit Note";
MAPNOTES_MININOTE_ON = "Set As MiniNote";
MAPNOTES_SPECIAL_ACTIONS = "Special Actions";
MAPNOTES_SEND_NOTE = "Send Note";
 
MAPNOTES_SPECIALACTION_MENU = "Special Actions";
MAPNOTES_TOGGLELINE = "Toggle Line";
MAPNOTES_DELETE_NOTE = "Delete Note";
 
MAPNOTES_EDIT_MENU = "Edit Note";
MAPNOTES_SAVE_NOTE = "Save";
MAPNOTES_EDIT_TITLE = "Title (required):";
MAPNOTES_EDIT_INFO1 = "Info Line 1 (optional):";
MAPNOTES_EDIT_INFO2 = "Info Line 2 (optional):";
MAPNOTES_EDIT_CREATOR = "Creator (optional):";
 
MAPNOTES_SEND_MENU = "Send Note";
MAPNOTES_SLASHCOMMAND = "Change Mode";
MAPNOTES_SEND_TITLE = "Send Note:";
MAPNOTES_SEND_TIP = "These notes can be received by all MapNotes(Fan's Update) users.";
MAPNOTES_SEND_PLAYER = "Enter player name:";
MAPNOTES_SENDTOPLAYER = "Send to player";
MAPNOTES_SENDTOPARTY = "Send to party/banda";
MAPNOTES_SENDTOPARTY_TIP = "Clic Izquierdo - Party\nClic Derecha - Banda";
MAPNOTES_SHOWSEND = "Change Mode";
MAPNOTES_SEND_SLASHTITLE = "Get slash Command:";
MAPNOTES_SEND_SLASHTIP = "Highlight this and use CTRL+C to copy to clipboard (then you can post it in a forum for example)";
MAPNOTES_SEND_SLASHCOMMAND = "/Command:";
 
MAPNOTES_OPTIONS_MENU = "Options";
MAPNOTES_SAVE_OPTIONS = "Save";
MAPNOTES_OWNNOTES = "Show notes created by your character";
MAPNOTES_OTHERNOTES = "Show notes received from other characters";
MAPNOTES_HIGHLIGHT_LASTCREATED = "Highlight last created note in |cFFFF0000red|r";
MAPNOTES_HIGHLIGHT_MININOTE = "Highlight note selected for MiniNote in |cFF6666FFblue|r";
MAPNOTES_ACCEPTINCOMING = "Accept incoming notes from other players";
MAPNOTES_INCOMING_CAP = "Decline notes if they would leave less than 5 notes free";
MAPNOTES_AUTOPARTYASMININOTE = "Automatically set party notes as MiniNote.";
 
MAPNOTES_CREATEDBY = "Created by";
MAPNOTES_CHAT_COMMAND_ENABLE_INFO = "This command enables you to instert notes gotten by a webpage for example.";
MAPNOTES_CHAT_COMMAND_ONENOTE_INFO = "Overrides the options setting, so that the next note you receive is accepted.";
MAPNOTES_CHAT_COMMAND_MININOTE_INFO = "Displays the next received note directly as MiniNote (and insterts it into the map):";
MAPNOTES_CHAT_COMMAND_MININOTEONLY_INFO = "Displays the next note received as MiniNote only (not inserted into map).";
MAPNOTES_CHAT_COMMAND_MININOTEOFF_INFO = "Turns the MiniNote off.";
MAPNOTES_CHAT_COMMAND_MNTLOC_INFO = "Sets a Thottbott marker on the map.";
MAPNOTES_CHAT_COMMAND_QUICKNOTE = "Creates a note at the current position on the map.";
MAPNOTES_CHAT_COMMAND_QUICKTLOC = "Creates a note at the given coordinate position on the map in the current zone.";
 
MAPNOTES_CHAT_COMMAND_SEARCH = "Search for notes containing [text]";
MAPNOTES_CHAT_COMMAND_HIGHLIGHT = "Highlight MapNotes with the following [title]";
 
MAPNOTES_CHAT_COMMAND_IMPORT_METAMAP = "Imports MetaMapNotes. Intended for people migrating to MapNotes.\nMetaMap must be Installed and Enabled for the command to work. Then Un-Install MetaMap.\nWARNING : Intended for new users. May over-write existing notes."; --Telic_4
MAPNOTES_CHAT_COMMAND_IMPORT_ALPHAMAP = "Import AlphaMap's Instance Notes : Requires AlphaMap (Fan's Update) to be Installed and Enabled"; --Telic_4
 
MAPNOTES_MAPNOTEHELP = "This command can only be used to insert a note";
MAPNOTES_ONENOTE_OFF = "Allow one note: OFF";
MAPNOTES_ONENOTE_ON = "Allow one note: ON";
MAPNOTES_MININOTE_SHOW_0 = "Next as MiniNote: OFF";
MAPNOTES_MININOTE_SHOW_1 = "Next as MiniNote: ON";
MAPNOTES_MININOTE_SHOW_2 = "Next as MiniNote: ONLY";
MAPNOTES_DECLINE_SLASH = "Could not add, too many notes in |cFFFFD100%s|r.";
MAPNOTES_DECLINE_SLASH_NEAR = "Could not add, this note is too near to |cFFFFD100%q|r in |cFFFFD100%s|r.";
MAPNOTES_DECLINE_GET = "Could not receive note from |cFFFFD100%s|r: too many notes in |cFFFFD100%s|r, or reception disabled in the options.";
MAPNOTES_ACCEPT_SLASH = "Note added to the map of |cFFFFD100%s|r.";
MAPNOTES_ACCEPT_GET = "You received a note from |cFFFFD100%s|r in |cFFFFD100%s|r.";
MAPNOTES_PARTY_GET = "|cFFFFD100%s|r set a new party note in |cFFFFD100%s|r.";
MAPNOTES_DECLINE_NOTETONEAR = "|cFFFFD100%s|r tried to send you a note in |cFFFFD100%s|r, but it was too near to |cFFFFD100%q|r.";
MAPNOTES_QUICKNOTE_NOTETONEAR = "Can't create note. You are too near to |cFFFFD100%s|r.";
MAPNOTES_QUICKNOTE_NOPOSITION = "Can't create note: could not retrieve current position.";
MAPNOTES_QUICKNOTE_DEFAULTNAME = "Quicknote";
MAPNOTES_QUICKNOTE_OK = "Created note on the map of |cFFFFD100%s|r.";
MAPNOTES_QUICKNOTE_TOOMANY = "There are already too many notes on the map of |cFFFFD100%s|r.";
MAPNOTES_DELETED_BY_NAME = "Deleted all "..MAPNOTES_NAME.." with creator |cFFFFD100%s|r and name |cFFFFD100%s|r.";
MAPNOTES_DELETED_BY_CREATOR = "Deleted all "..MAPNOTES_NAME.." with creator |cFFFFD100%s|r.";
MAPNOTES_QUICKTLOC_NOTETONEAR = "Can't create note. The location is too near to the note |cFFFFD100%s|r.";
MAPNOTES_QUICKTLOC_NOZONE = "Can't create note: could not retrieve current zone.";
MAPNOTES_QUICKTLOC_NOARGUMENT = "Usage: '/quicktloc xx,yy [icon] [title]'.";
MAPNOTES_SETMININOTE = "Set note as new MiniNote";
MAPNOTES_THOTTBOTLOC = "Thottbot Location";
MAPNOTES_PARTYNOTE = "Party Note";
MAPNOTES_WFC_WARN = "Use |c0000FF00'/mn -tloc xx,yy'|r OR |c0000FF00'/mntloc xx,yy'|r to show a location on the map.";
 
MAPNOTES_CONVERSION_COMPLETE = MAPNOTES_VERSION.." - Conversion complete. Please check your notes."; -- ??
 
MAPNOTES_TRUNCATION_WARNING = "The Note Text being Sent had to be truncated"; -- ??
 
MAPNOTES_IMPORT_REPORT = " Notes Imported"; -- ??
MAPNOTES_NOTESFOUND = " Note(s) Found"; -- ??
 
-- Drop Down Menu
MAPNOTES_SHOWNOTES = "Show Notes";
MAPNOTES_DROPDOWNTITLE = MAPNOTES_NAME;
MAPNOTES_DROPDOWNMENUTEXT = "Quick Options";
 
MAPNOTES_WARSONGGULCH = "Warsong Gulch";
MAPNOTES_ALTERACVALLEY = "Alterac Valley";
MAPNOTES_ARATHIBASIN = "Arathi Basin";
MAPNOTES_NETHERSTORM = "El Ojo de la Tormenta";
 
MAPNOTES_COSMIC = "Cosmic";
 
 
-- Coordinates
MAPNOTES_MAP_COORDS = "Map Coords";
MAPNOTES_MINIMAP_COORDS = "Minimap Coords";
 
 
-- MapNotes Target & Merging
MAPNOTES_MERGED = "MapNote Merged for : ";
MAPNOTES_MERGE_DUP = "MapNote already exists for : ";
MAPNOTES_MERGE_WARNING = "You must have something targetted to merge notes.";
 
BINDING_HEADER_MAPNOTES = "MapNotes";
BINDING_NAME_MN_TARGET_NEW = "QuickNote/TargetNote";
BINDING_NAME_MN_TARGET_MERGE = "Merge Target Note";
 
MN_LEVEL = "Level";
 
-- Magellan Style LandMarks
MAPNOTES_LANDMARKS = "Landmarks"; -- Landmarks, as in POI, or Magellan
MAPNOTES_LANDMARKS_CHECK = "Auto-MapNote "..MAPNOTES_LANDMARKS;
MAPNOTES_DELETELANDMARKS = "Delete "..MAPNOTES_LANDMARKS;
MAPNOTES_MAGELLAN = "(~Magellan)";
MAPNOTES_LM_CREATED = " MapNotes Created in ";
MAPNOTES_LM_MERGED = " MapNotes Merged in ";
MAPNOTES_LM_SKIPPED = " MapNotes not Noted in ";
MAPNOTES_LANDMARKS_NOTIFY = MAPNOTES_LANDMARKS.." Noted in ";
 
 
end
MapNotes/localization.kr.lua New file
0,0 → 1,148
-- Last Update : 11/03/2006
 
if GetLocale() == "koKR" then
 
-- General
MAPNOTES_NAME = "MapNotes";
MAPNOTES_ADDON_DESCRIPTION = "세계 지도에 메모 시스템을 추가합니다.";
MAPNOTES_DOWNLOAD_SITES = "다운로드 사이트에서 README 화일을 읽어주세요.";
 
-- Interface Configuration
MAPNOTES_WORLDMAP_HELP_1 = "지도 축소: 마우스 오른쪽 버튼";
MAPNOTES_WORLDMAP_HELP_2 = "지도 확대: 마우스 왼쪽 버튼";
MAPNOTES_WORLDMAP_HELP_3 = MAPNOTES_NAME.." 메뉴 열기: <컨트롤>+마우스 오른쪽 버튼";
MAPNOTES_CLICK_ON_SECOND_NOTE = "|cFFFF0000"..MAPNOTES_NAME..":|r 메모 삭제 / 선긋기를 할 두번째 메모를 선택하세요";
 
MAPNOTES_NEW_MENU = MAPNOTES_NAME;
MAPNOTES_NEW_NOTE = "메모 만들기";
MAPNOTES_MININOTE_OFF = "미니맵 메모 표시 해제";
MAPNOTES_OPTIONS = "설정";
MAPNOTES_CANCEL = "취소";
 
MAPNOTES_POI_MENU = MAPNOTES_NAME;
MAPNOTES_EDIT_NOTE = "메모 편집";
MAPNOTES_MININOTE_ON = "미니맵에 메모 표";
MAPNOTES_SPECIAL_ACTIONS = "메모 삭제 / 선긋기";
MAPNOTES_SEND_NOTE = "메모 보내기";
 
MAPNOTES_SPECIALACTION_MENU = "메모 삭제 / 선긋기";
MAPNOTES_TOGGLELINE = "메모간 선긋기";
MAPNOTES_DELETE_NOTE = "메모 삭제";
 
MAPNOTES_EDIT_MENU = "메모 편집";
MAPNOTES_SAVE_NOTE = "저장";
MAPNOTES_EDIT_TITLE = "제목 (필수 입력사항):";
MAPNOTES_EDIT_INFO1 = "내용 1 (선택 입력사항):";
MAPNOTES_EDIT_INFO2 = "내용 2 (선택 입력사항):";
MAPNOTES_EDIT_CREATOR = "작성자 (선택 입력사항):";
 
MAPNOTES_SEND_MENU = "메모 보내기";
MAPNOTES_SLASHCOMMAND = "보내기 모드 변경";
MAPNOTES_SEND_TITLE = "메모 보내기:";
MAPNOTES_SEND_TIP = "MapNotes(Fan's Update) 기능을 사용하는 사용자들에게 메모를 보낼 수 있습니다.";
MAPNOTES_SEND_PLAYER = "플레이어 이름 입력:";
MAPNOTES_SENDTOPLAYER = "한사람에게 전송";
MAPNOTES_SENDTOPARTY = "파티원에게 전송";
MAPNOTES_SENDTOPARTY_TIP = "Left Click - Party\nRight Click - Raid";
MAPNOTES_SHOWSEND = "보내기 모드 변경";
MAPNOTES_SEND_SLASHTITLE = "/ 명령어 보기:";
MAPNOTES_SEND_SLASHTIP = "다음의 명령을 CTRL+A로 선택하시고 CTRL+C로 카피하신 후\n게시판 등에 올려서 정보를 공유할 수 있습니다.";
MAPNOTES_SEND_SLASHCOMMAND = "/ 명령어:";
 
MAPNOTES_OPTIONS_MENU = "옵션";
MAPNOTES_SAVE_OPTIONS = "저장";
MAPNOTES_OWNNOTES = "자기가 작성한 맵 메모 표시";
MAPNOTES_OTHERNOTES = "다른 사용자로부터 받은 맵 메모 표시";
MAPNOTES_HIGHLIGHT_LASTCREATED = "|cFFFF0000빨간색|r으로 마지막에 작성한 메모 표시";
MAPNOTES_HIGHLIGHT_MININOTE = "미니맵에 표시할 메모를 |cFF6666FF파란색|r으로 표시";
MAPNOTES_ACCEPTINCOMING = "다른 사용자로부터 메모받기 허용";
MAPNOTES_INCOMING_CAP = "만들수 있는 메모가 5개 미만일경우 허용 않함";
MAPNOTES_AUTOPARTYASMININOTE = "파티원이 사용하고 있는 미니맵 메모 자동 공유"
 
MAPNOTES_CREATEDBY = "님께서 작성";
MAPNOTES_CHAT_COMMAND_ENABLE_INFO = "이 명령어는 웹사이트 등에 올려진 메모를 등록할 때 사용하는 명령어 입니다.";
MAPNOTES_CHAT_COMMAND_ONENOTE_INFO = "옵션 설정 내역을 무시하고 이후의 메모를 한번만 전송받는 것을 허용합니다.";
MAPNOTES_CHAT_COMMAND_MININOTE_INFO = "이후에 받는 맵 메모는 미니맵에도 표시합니다. (지도에도 추가됩니다):";
MAPNOTES_CHAT_COMMAND_MININOTEONLY_INFO = "이후에 받는 맵 메모를 미니맵에만 표시합니다. (지도에는 추가되지 않습니다).";
MAPNOTES_CHAT_COMMAND_MININOTEOFF_INFO = "미니맵에 메모 표시 기능을 해제합니다.";
MAPNOTES_CHAT_COMMAND_MNTLOC_INFO = "지도에 좌표를 표시합니다.";
MAPNOTES_CHAT_COMMAND_QUICKNOTE = "현재 위치에 맵 메모를 작성합니다.";
MAPNOTES_CHAT_COMMAND_QUICKTLOC = "좌표 정보를 입력하여 맵 메모를 작성합니다.";
 
MAPNOTES_CHAT_COMMAND_IMPORT_METAMAP = "Imports MetaMapNotes. Intended for people migrating to MapNotes.\nMetaMap must be Installed and Enabled for the command to work. Then Un-Install MetaMap.\nWARNING : Intended for new users. May over-write existing notes."; --Telic_4
MAPNOTES_CHAT_COMMAND_IMPORT_ALPHAMAP = "Import AlphaMap's Instance Notes : Requires AlphaMap (Fan's Update) to be Installed and Enabled"; --Telic_4
 
MAPNOTES_MAPNOTEHELP = "이 명령어는 맵 메모를 만드는 데 쓰입니다.";
MAPNOTES_ONENOTE_OFF = "맵 메모 허용상태: 허용않함";
MAPNOTES_ONENOTE_ON = "맵 메모 허용상태: 허용";
MAPNOTES_MININOTE_SHOW_0 = "미니맵 표시 여부: 허용않함";
MAPNOTES_MININOTE_SHOW_1 = "미니맵 표시 여부: 허용";
MAPNOTES_MININOTE_SHOW_2 = "미니맵 표시 여부: 미니맵에만 표시";
MAPNOTES_DECLINE_SLASH = "메모를 만들 수 없습니다. |cFFFFD100%s|r 지역에 너무 많은 메모가 있습니다.";
MAPNOTES_DECLINE_SLASH_NEAR = "메모를 만들 수 없습니다. |cFFFFD100%s|r 지역의 |cFFFFD100%q|r 메모가 너무 가까이 있습니다.";
MAPNOTES_DECLINE_GET = "|cFFFFD100%s|r님으로부터 메모를 받을 수 없습니다: |cFFFFD100%s|r 지역에 너무 많은 메모가 있거나, 옵션에서 허용하지 않음으로 설정되어 있습니다.";
MAPNOTES_ACCEPT_SLASH = "|cFFFFD100%s|r 지역에 메모를 추가합니다.";
MAPNOTES_ACCEPT_GET = "|cFFFFD100%s|r님으로부터 |cFFFFD100%s|r 지역에 메모를 전송받았습니다.";
MAPNOTES_PARTY_GET = "|cFFFFD100%s|r님께서 모든 파티원에게 |cFFFFD100%s|r 지역에 메모를 전송하였습니다.";
MAPNOTES_DECLINE_NOTETONEAR = "|cFFFFD100%s|r님께서 당신에게 |cFFFFD100%s|r지역에 메모를 보냈습니다, 하지만 |cFFFFD100%q|r 메모와 자리가 겹쳐 생성하지 못했습니다.";
MAPNOTES_QUICKNOTE_NOTETONEAR = "메모를 만들 수 없습니다. |cFFFFD100%s|r 메모와 너무 가까운 곳에 있습니다.";
MAPNOTES_QUICKNOTE_NOPOSITION = "메모를 만들 수 없습니다: 현재 위치 정보를 알 수 없습니다.";
MAPNOTES_QUICKNOTE_DEFAULTNAME = "빠른 메모";
MAPNOTES_QUICKNOTE_OK = "|cFFFFD100%s|r 지역에 메모를 작성합니다.";
MAPNOTES_QUICKNOTE_TOOMANY = "|cFFFFD100%s|r 지역에 이미 너무 많은 메모가 있습니다.";
MAPNOTES_DELETED_BY_NAME = "Deleted all "..MAPNOTES_NAME.." with creator |cFFFFD100%s|r and name |cFFFFD100%s|r.";
MAPNOTES_DELETED_BY_CREATOR = "Deleted all "..MAPNOTES_NAME.." with creator |cFFFFD100%s|r.";
MAPNOTES_QUICKTLOC_NOTETONEAR = "메모를 만들 수 없습니다. 지정한 위치가 |cFFFFD100%s|r 메모에 너무 가깝습니다.";
MAPNOTES_QUICKTLOC_NOZONE = "메모를 만들 수 없습니다: 지정한 위치 정보를 알 수 없습니다.";
MAPNOTES_QUICKTLOC_NOARGUMENT = "사용 예: '/좌표작성 좌표(xx,yy) [아이콘] [제목]'.";
MAPNOTES_SETMININOTE = "메모를 미니맵에 표시";
MAPNOTES_THOTTBOTLOC = "Thottbot 좌표로 작성";
MAPNOTES_PARTYNOTE = "파티원들에게 전송된 맵 메모";
 
MAPNOTES_CONVERSION_COMPLETE = MAPNOTES_VERSION.." - Conversion complete. Please check your notes."; -- ??
 
MAPNOTES_TRUNCATION_WARNING = "The Note Text being Sent had to be truncated"; -- ??
 
MAPNOTES_IMPORT_REPORT = "개의 메모를 전송받았습니다";--" Notes Imported"; -- ??
MAPNOTES_NOTESFOUND = "개의 메모를 찾았습니다.";--" Note(s) Found"; -- ??
 
-- Drop Down Menu
MAPNOTES_SHOWNOTES = "메모 표시";
MAPNOTES_DROPDOWNTITLE = MAPNOTES_NAME;
MAPNOTES_DROPDOWNMENUTEXT = "빠른 설정";
 
MAPNOTES_WARSONGGULCH = "전쟁노래 협곡";
MAPNOTES_ALTERACVALLEY = "알터랙 계곡";
MAPNOTES_ARATHIBASIN = "아라시 분지";
MAPNOTES_NETHERSTORM = "Eye of the Storm";
 
MAPNOTES_COSMIC = "Cosmic";
 
 
-- Coordinates
MAPNOTES_MAP_COORDS = "Map Coords";
MAPNOTES_MINIMAP_COORDS = "Minimap Coords";
 
 
-- MapNotes Target & Merging
MAPNOTES_MERGED = "MapNote Merged for : ";
MAPNOTES_MERGE_DUP = "MapNote already exists for : ";
MAPNOTES_MERGE_WARNING = "You must have something targetted to merge notes.";
 
BINDING_HEADER_MAPNOTES = "MapNotes";
BINDING_NAME_MN_TARGET_NEW = "QuickNote/TargetNote";
BINDING_NAME_MN_TARGET_MERGE = "Merge Target Note";
 
MN_LEVEL = "레벨";
 
-- Magellan Style LandMarks
MAPNOTES_LANDMARKS = "Landmarks"; -- Landmarks, as in POI, or Magellan
MAPNOTES_LANDMARKS_CHECK = "Auto-MapNote "..MAPNOTES_LANDMARKS;
MAPNOTES_DELETELANDMARKS = "Delete "..MAPNOTES_LANDMARKS;
MAPNOTES_MAGELLAN = "(~Magellan)";
MAPNOTES_LM_CREATED = " MapNotes Created in ";
MAPNOTES_LM_MERGED = " MapNotes Merged in ";
MAPNOTES_LM_SKIPPED = " MapNotes not Noted in ";
MAPNOTES_LANDMARKS_NOTIFY = MAPNOTES_LANDMARKS.." Noted in ";
 
end
\ No newline at end of file
MapNotes/POIIcons/Icon0.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/Iconparty.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/Icon1.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/Icon2.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/Icontloc.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/Icon3.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/Icon4.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/Icon5.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/Icon6.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/Icon7.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/Icon8.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/Icon9.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/Overlay.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/POIIcons/TextColourTemplate.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/Utilities.lua New file
0,0 → 1,1591
--[[
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
]]
 
-- Generic Dialogues for getting mass delete criteria
StaticPopupDialogs["MN_DELETE_FILTER"] = {
text = TEXT("___"),
button1 = ACCEPT,
button2 = CANCEL,
hasEditBox = 1,
maxLetters = 28,
OnShow = function()
getglobal(this:GetName().."Text"):SetText( MN_DELETE_TITLE_TEXT );
end,
OnAccept = function()
local del = getglobal(this:GetParent():GetName().."EditBox"):GetText();
if ( ( del ) and ( del ~= "" ) ) then
if ( MapNotes.delFilter.type == "text" ) then
MapNotes_DeleteNotesWithText(del, MapNotes.delFilter.key);
elseif ( MapNotes.delFilter.type == "creator" ) then
MapNotes_DeleteNotesByCreatorAndName(del, nil, MapNotes.delFilter.key);
end
this:GetParent():Hide();
end
end,
EditBoxOnEnterPressed = function()
local del = getglobal(this:GetParent():GetName().."EditBox"):GetText();
if ( ( del ) and ( del ~= "" ) ) then
if ( MapNotes.delFilter.type == "text" ) then
MapNotes_DeleteNotesWithText(del, MapNotes.delFilter.key);
elseif ( MapNotes.delFilter.type == "creator" ) then
MapNotes_DeleteNotesByCreatorAndName(del, nil, MapNotes.delFilter.key);
end
this:GetParent():Hide();
end
end,
EditBoxOnEscapePressed = function()
this:GetParent():Hide();
end,
OnHide = function()
MapNotes.delFilter = nil;
end,
timeout = 0,
hideOnEscape = 1,
};
 
-- Drop Down Menu stuff
 
MapNotes = {};
MapNotes.dd = CreateFrame("Frame", "MapNotes_DropDown", nil, "UIDropDownMenuTemplate");
MapNotes.pluginKeys = {};
 
local function MN_Wasted()
if ( MapNotes_Undelete_Info.key ) then
return;
else
return nil, nil, true;
end
end
 
local function MN_Copied()
if ( MapNotes.clipBoard ) then
return;
else
return nil, nil, true;
end
end
 
local function MN_Copy(andCut)
-- only route is through DropDown menus and that is where the information is stored
local note = MapNotes_Data_Notes[MapNotes.dd.key];
if ( note ) then
note = note[MapNotes.dd.id];
if ( note ) then
MapNotes.clipBoard = {};
-- Now,
-- we are NOT copying the specific ID; Nor are we copying the x or y value of the note - ONLY the text, colours, and icon
-- if pasted in the future, a new ID will be assigned, and x and y will depend on where it has been pasted (needless to say the key will also be determined at that time)
-- also going to allow the creator to change based on who is doing the pasting...
MapNotes.clipBoard.name = note.name;
MapNotes.clipBoard.ncol = note.ncol;
MapNotes.clipBoard.inf1 = note.inf1;
MapNotes.clipBoard.in1c = note.in1c;
MapNotes.clipBoard.inf2 = note.inf2;
MapNotes.clipBoard.in2c = note.in2c;
MapNotes.clipBoard.icon = note.icon;
MapNotes.clipBoard.mininote = note.mininote;
MapNotes.clipBoard.customIcon = note.customIcon;
 
-- if Cutting a note, then we now also need to delete it
if ( andCut ) then
MapNotes_DeleteNote(MapNotes.dd.id, MapNotes.dd.key);
end
end
end
end
 
local function MN_Paste()
if ( MapNotes.clipBoard ) then
MapNotes_HideAll();
 
local currentZone = MapNotes_Data_Notes[ MapNotes.dd.key ];
 
if ( currentZone ) then
local checknote = MapNotes_CheckNearNotes(MapNotes.dd.key, MapNotes.dd.x, MapNotes.dd.y);
if ( checknote ) then
MapNotes_StatusPrint(format(MAPNOTES_QUICKNOTE_NOTETONEAR, MapNotes_Data_Notes[MapNotes.dd.key][checknote].name ) );
else
local Plugin = MapNotes.pluginKeys[MapNotes.dd.key];
MapNotes_TempData_Id = MapNotes_GetZoneTableSize(currentZone) + 1;
 
currentZone[MapNotes_TempData_Id] = {};
currentZone[MapNotes_TempData_Id].name = MapNotes.clipBoard.name
currentZone[MapNotes_TempData_Id].ncol = MapNotes.clipBoard.ncol
currentZone[MapNotes_TempData_Id].inf1 = MapNotes.clipBoard.inf1
currentZone[MapNotes_TempData_Id].in1c = MapNotes.clipBoard.in1c
currentZone[MapNotes_TempData_Id].inf2 = MapNotes.clipBoard.inf2
currentZone[MapNotes_TempData_Id].in2c = MapNotes.clipBoard.in2c
currentZone[MapNotes_TempData_Id].icon = MapNotes.clipBoard.icon
currentZone[MapNotes_TempData_Id].mininote = MapNotes.clipBoard.mininote
currentZone[MapNotes_TempData_Id].customIcon = MapNotes.clipBoard.customIcon
currentZone[MapNotes_TempData_Id].xPos = MapNotes.dd.x;
currentZone[MapNotes_TempData_Id].yPos = MapNotes.dd.y;
currentZone[MapNotes_TempData_Id].creator = UnitName("player");
 
if ( Plugin ) then
MapNotes_PlugInsDrawNotes(Plugin);
else
MapNotes_MapUpdate();
end
 
MapNotes_StatusPrint( format(MAPNOTES_ACCEPT_SLASH, MapNotes_GetMapDisplayName(MapNotes.dd.key, Plugin)) );
end
end
end
end
 
local function MN_Status()
if ( MapNotes_Options.shownotes ) then
return MAPNOTES_SHOWNOTES, true;
else
return MAPNOTES_SHOWNOTES;
end
end
 
MapNotes.base_dd_info = {
-- Define level one elements here
[1] = {
{ -- Title
text = MAPNOTES_NAME,
isTitle = 1,
},
{ -- Create new note
text = MAPNOTES_NEW_NOTE,
func = function()
MapNotesEditFrame:SetParent( MapNotes.dd.pFrame );
MapNotes_TempData_xPos = MapNotes.dd.x;
MapNotes_TempData_yPos = MapNotes.dd.y;
MapNotes_TempData_Id = nil;
MapNotesEditFrame.k = MapNotes.dd.key;
MapNotesEditFrame.miniMe = IsControlKeyDown();
MapNotes_OpenEditForNewNote();
end,
tooltipTitle = MN_TT_MINITITLE;
tooltipText = MN_TT_MINITEXT;
},
{ -- QuickNote for quick creation without editing
text = MAPNOTES_QUICKNOTE_DEFAULTNAME,
func = function()
local Plugin = MapNotes.pluginKeys[ MapNotes.dd.key ];
local lNote = MapNotes_ShortCutNote(MapNotes.dd.x, MapNotes.dd.y, Plugin, IsControlKeyDown(), MapNotes.dd.key);
if ( ( not Plugin ) or ( Plugin.wmflag ) ) then
MapNotes_MapUpdate();
else
MapNotes_PlugInsDrawNotes(Plugin);
end
if ( lNote ) then
lNote = getglobal( "MapNotesPOI" .. lNote );
if ( lNote ) then
lNote:SetFrameLevel( MapNotes.dd.pFrame:GetFrameLevel() + 1 );
end
end
end,
tooltipTitle = MN_TT_MINITITLE;
tooltipText = MN_TT_MINITEXT;
},
{ -- Group Note
text = MAPNOTES_PARTYNOTE,
func = function()
MapNotes_SetPartyNote(MapNotes.dd.x, MapNotes.dd.y);
MapNotes_MapUpdate();
end,
},
{ -- Special Actions
text = MAPNOTES_SPECIAL_ACTIONS,
hasArrow = true,
value = "special",
},
{ -- Mass Delete Options
text = MN_MDELETE,
hasArrow = true,
value = "delete",
},
{ -- Options
text = MAPNOTES_OPTIONS,
func = function()
MapNotes_HideAll();
MapNotesOptionsFrame:SetParent(MapNotes.dd.pFrame);
local pScale = MapNotes.dd.pFrame:GetEffectiveScale();
MapNotesOptionsFrame:SetScale( 0.8 / pScale );
MapNotesOptionsFrame:Show();
MapNotesOptionsFrame:SetAlpha(1);
end,
},
{ -- Cancel
text = CANCEL,
func = function()
HideDropDownMenu(1);
end,
},
},
[2] = {
special = {
{ -- Show (/Hide) All MapNotes
dynamicFunc = MN_Status,
func = function()
if ( MapNotes_Options.shownotes ) then
MapNotes_Options.shownotes = false;
else
MapNotes_Options.shownotes = true;
end
HideDropDownMenu(1);
local Plugin = MapNotes.pluginKeys[ MapNotes.dd.key ];
if ( ( not Plugin ) or ( Plugin.wmflag ) ) then
MapNotes_MapUpdate();
else
MapNotes_PlugInsDrawNotes(Plugin);
end
end
},
{ -- Paste a Copied/Cut note
dynamicFunc = MN_Copied,
text = MN_PASTE,
func = function()
MN_Paste();
HideDropDownMenu(1);
end,
},
{ -- Undelete if possible...
dynamicFunc = MN_Wasted,
text = MAPNOTES_CHAT_COMMAND_UNDELETE,
func = function()
MapNotes_Undelete();
HideDropDownMenu(1);
end
},
},
delete = {
{ -- containing Text
text = MN_TEXT,
func = function()
local lName = MapNotes_GetMapDisplayName(MapNotes.dd.key);
MN_DELETE_TITLE_TEXT = MN_MDELETE .. MN_TEXT .. " (" .. lName .. ")";
MapNotes.delFilter = {};
MapNotes.delFilter.type = "text";
MapNotes.delFilter.key = MapNotes.dd.key;
StaticPopup_Show("MN_DELETE_FILTER");
HideDropDownMenu(1);
end,
},
{ -- by Creator
text = MN_CREATOR,
func = function()
local lName = MapNotes_GetMapDisplayName(MapNotes.dd.key);
MN_DELETE_TITLE_TEXT = MN_MDELETE .. MN_CREATOR .. " (" .. lName .. ")";
MapNotes.delFilter = {};
MapNotes.delFilter.type = "creator";
MapNotes.delFilter.key = MapNotes.dd.key;
StaticPopup_Show("MN_DELETE_FILTER");
HideDropDownMenu(1);
end,
},
},
},
};
 
local function MN_GetMiniNoteToggleText()
if ( string.find(MapNotes.dd.key, "^WM %a+") ) then
if ( not MapNotes.dd.id ) then
return nil, nil, true, nil;
 
elseif ( MapNotes.dd.id == 0 ) then
if ( MapNotes_MiniNote_Data.icon == "tloc") then
return MAPNOTES_MININOTE_OFF;
else
return MAPNOTES_MININOTE_ON;
end
 
elseif ( MapNotes.dd.id == -1 ) then
if ( MapNotes_MiniNote_Data.icon == "party") then
return MAPNOTES_MININOTE_OFF;
else
return MAPNOTES_MININOTE_ON;
end
 
elseif ( MapNotes_Data_Notes[MapNotes.dd.key][MapNotes.dd.id].mininote ) then
return MAPNOTES_MININOTE_OFF;
 
else
return MAPNOTES_MININOTE_ON;
end
 
else
return nil, nil, nil, true;
end
end
 
 
MapNotes.mininote_dd_info = {
-- Define level one elements here
[1] = {
{ -- Title
text = MAPNOTES_NAME,
isTitle = 1,
},
{ -- Edit Note
text = MAPNOTES_EDIT_NOTE,
func = function()
MapNotesEditFrame.k = MapNotes.dd.key;
MapNotes_OpenEditForExistingNote(MapNotes.dd.key, MapNotes.dd.id);
end,
},
{ -- Delete Note
text = MAPNOTES_DELETE_NOTE,
func = function()
MapNotes_DeleteNote(MapNotes.dd.id, MapNotes.dd.key);
end,
},
{ -- Mininote Toggle
text = nil,
dynamicFunc = MN_GetMiniNoteToggleText;
func = function()
if ( not MapNotes.dd.id ) then
-- Doh !!!
 
elseif ( MapNotes_Data_Notes[MapNotes.dd.key][MapNotes.dd.id].mininote ) then
local note = {};
note.key = MapNotes.dd.key
note.id = MapNotes.dd.id;
MapNotes_ClearMiniNote(nil, note);
else
MapNotes_SetAsMiniNote(MapNotes.dd.id);
end
end,
},
{ -- Options
text = MAPNOTES_OPTIONS,
func = function()
MapNotes_HideAll();
MapNotesOptionsFrame:SetParent(MapNotes.dd.pFrame);
local pScale = MapNotes.dd.pFrame:GetEffectiveScale();
MapNotesOptionsFrame:SetScale( 0.8 / pScale );
MapNotesOptionsFrame:Show();
MapNotesOptionsFrame:SetAlpha(1);
end,
},
{ -- Cancel
text = CANCEL,
func = function()
HideDropDownMenu(1);
end,
},
},
};
 
MapNotes.note_dd_info = {
-- Define level one elements here
[1] = {
{ -- Title
text = MAPNOTES_NAME,
isTitle = 1,
},
{
-- Edit Note
text = MAPNOTES_EDIT_NOTE,
func = function()
MapNotesEditFrame.k = MapNotes.dd.key;
MapNotes_OpenEditForExistingNote(MapNotes.dd.key, MapNotes.dd.id);
end,
},
{
-- Delete Note
text = MAPNOTES_DELETE_NOTE,
func = function()
MapNotes_DeleteNote(MapNotes.dd.id, MapNotes.dd.key);
end,
},
{ -- Mininote Toggle
text = nil,
dynamicFunc = MN_GetMiniNoteToggleText;
func = function()
if ( not MapNotes.dd.id ) then
-- Doh !!!
 
elseif ( MapNotes_Data_Notes[MapNotes.dd.key][MapNotes.dd.id].mininote ) then
local note = {};
note.key = MapNotes.dd.key
note.id = MapNotes.dd.id;
MapNotes_ClearMiniNote(nil, note);
else
MapNotes_SetAsMiniNote(MapNotes.dd.id);
end
end,
},
{ -- Special Actions
text = MAPNOTES_SPECIAL_ACTIONS,
hasArrow = true,
value = "special",
},
{ -- Send to ...
text = MAPNOTES_SEND_NOTE;
hasArrow = true,
value = "send",
},
{ -- Options
text = MAPNOTES_OPTIONS,
func = function()
MapNotes_HideAll();
MapNotesOptionsFrame:SetParent(MapNotes.dd.pFrame);
local pScale = MapNotes.dd.pFrame:GetEffectiveScale();
MapNotesOptionsFrame:SetScale( 0.8 / pScale );
MapNotesOptionsFrame:Show();
MapNotesOptionsFrame:SetAlpha(1);
end,
},
{ -- Cancel
text = CANCEL,
func = function()
HideDropDownMenu(1);
end,
},
},
[2] = {
special = {
{ -- Cut Note
text = MN_CUT,
func = function()
-- have to write this functionality
MN_Copy(true);
HideDropDownMenu(1);
end,
},
{ -- Copy Note
text = MN_COPY,
func = function()
-- have to write this functionality
MN_Copy();
HideDropDownMenu(1);
end,
},
{ -- Draw... from/to?
text = MAPNOTES_TOGGLELINE,
func = function()
MapNotes_StartGUIToggleLine(MapNotes.dd.key);
HideDropDownMenu(1);
end,
},
},
send = {
{ -- Whisper
text = WHISPER .. " / " .. MAPNOTES_SEND_SLASHTITLE,
func = function()
MapNotesSendFrame.key = MapNotes.dd.key;
MapNotes_ShowSendFrame(1);
HideDropDownMenu(1);
end,
},
{ -- Party
text = PARTY,
func = function()
MapNotesSendFrame.key = MapNotes.dd.key;
MapNotes_SendNote(2);
HideDropDownMenu(1);
end
},
{ -- Raid
text = RAID,
func = function()
MapNotesSendFrame.key = MapNotes.dd.key;
MapNotes_SendNote(3);
HideDropDownMenu(1);
end
},
{ -- Battleground
text = BATTLEGROUND,
func = function()
MapNotesSendFrame.key = MapNotes.dd.key;
MapNotes_SendNote(4);
HideDropDownMenu(1);
end
},
{ -- Guild
text = GUILD,
func = function()
MapNotesSendFrame.key = MapNotes.dd.key;
MapNotes_SendNote(5);
HideDropDownMenu(1);
end
},
},
},
};
 
MapNotes.temp_dd_info = {
-- Define level one elements here
[1] = {
{ -- Title
text = MAPNOTES_NAME,
isTitle = 1,
},
{ -- Convert to Permanent Note without opening Edit Frame... i.e. delete temporary, and create quick note(?)
text = MN_CONVERT,
func = function()
local Plugin = MapNotes_DeleteNote(MapNotes.dd.id, MapNotes.dd.key, true);
local storeN = MAPNOTES_QUICKNOTE_DEFAULTNAME;
if ( MapNotes.dd.id == 0 ) then
MAPNOTES_QUICKNOTE_DEFAULTNAME = tostring(MAPNOTES_THOTTBOTLOC );
elseif ( MapNotes.dd.id == -1 ) then
MAPNOTES_QUICKNOTE_DEFAULTNAME = tostring(MAPNOTES_PARTYNOTE);
end
 
local lNote = MapNotes_ShortCutNote(MapNotes.dd.x, MapNotes.dd.y, Plugin, true, MapNotes.dd.key);
if ( ( not Plugin ) or ( Plugin.wmflag ) ) then
MapNotes_MapUpdate();
else
MapNotes_PlugInsDrawNotes(Plugin);
end
if ( lNote ) then
lNote = getglobal( "MapNotesPOI" .. lNote );
if ( lNote ) then
lNote:SetFrameLevel( MapNotes.dd.pFrame:GetFrameLevel() + 1 );
end
end
 
MAPNOTES_QUICKNOTE_DEFAULTNAME = storeN;
end,
},
{ -- Toggle as Mininote
text = nil,
dynamicFunc = MN_GetMiniNoteToggleText;
func = function()
if ( not MapNotes.dd.id ) then
-- Doh !!!
 
elseif ( MapNotes.dd.id == 0 ) then
if ( MapNotes_MiniNote_Data.icon == "tloc") then
MapNotes_ClearMiniNote(nil, "tloc");
else
MapNotes_SetAsMiniNote(0);
end
 
elseif ( MapNotes.dd.id == -1 ) then
if ( MapNotes_MiniNote_Data.icon == "party") then
MapNotes_ClearMiniNote(nil, "party");
else
MapNotes_SetAsMiniNote(-1);
end
end
end,
},
{ -- Delete
text = MAPNOTES_DELETE_NOTE,
func = function()
MapNotes_DeleteNote(MapNotes.dd.id, MapNotes.dd.key);
end,
},
{ -- Options
text = MAPNOTES_OPTIONS,
func = function()
MapNotes_HideAll();
MapNotesOptionsFrame:SetParent(MapNotes.dd.pFrame);
local pScale = MapNotes.dd.pFrame:GetEffectiveScale();
MapNotesOptionsFrame:SetScale( 0.8 / pScale );
MapNotesOptionsFrame:Show();
MapNotesOptionsFrame:SetAlpha(1);
end,
},
{ -- Cancel
text = CANCEL,
func = function()
HideDropDownMenu(1);
end,
},
},
};
 
MapNotes.coords_dd_info = {
-- Define level one elements here
[1] = {
{ -- Title
text = MAPNOTES_NAME,
isTitle = 1,
},
{ -- Quick Note
text = MAPNOTES_QUICKNOTE_DEFAULTNAME,
func = function()
MapNotes_CreateQuickNote(nil, nil, nil, nil, IsControlKeyDown());
end,
tooltipTitle = MN_TT_MINITITLE;
tooltipText = MN_TT_MINITEXT;
},
{ -- Target Note
text = BINDING_NAME_MN_TARGET_NEW,
func = function()
MapNotes_TargetNote("");
end,
tooltipTitle = MN_TT_MINITITLE;
tooltipText = MN_TT_MINITEXT;
},
{ -- Merge Note
text = BINDING_NAME_MN_TARGET_MERGE,
func = function()
MapNotes_MergeNote("");
end,
tooltipTitle = MN_TT_MINITITLE;
tooltipText = MN_TT_MINITEXT;
},
{ -- Undelete if possible...
dynamicFunc = MN_Wasted,
text = MAPNOTES_CHAT_COMMAND_UNDELETE,
func = function()
MapNotes_Undelete();
HideDropDownMenu(1);
end,
},
{ -- Mass Delete Options
text = MN_MDELETE,
hasArrow = true,
value = "delete",
},
{ -- Options
text = MAPNOTES_OPTIONS,
func = function()
MapNotes_HideAll();
MapNotesOptionsFrame:SetParent(MapNotes.dd.pFrame);
local pScale = MapNotes.dd.pFrame:GetEffectiveScale();
MapNotesOptionsFrame:SetScale( 0.8 / pScale );
MapNotesOptionsFrame:Show();
MapNotesOptionsFrame:SetAlpha(1);
end,
},
{ -- Cancel
text = CANCEL,
func = function()
HideDropDownMenu(1);
end,
},
},
[2] = {
delete = {
{ -- containing Text
text = MN_TEXT,
func = function()
MN_DELETE_TITLE_TEXT = MN_MDELETE .. MN_TEXT .. " (" .. MN_ALLZONES .. ")";
MapNotes.delFilter = {};
MapNotes.delFilter.type = "text";
StaticPopup_Show("MN_DELETE_FILTER");
HideDropDownMenu(1);
end,
},
{ -- by Creator
text = MN_CREATOR,
func = function()
MN_DELETE_TITLE_TEXT = MN_MDELETE .. MN_CREATOR .. " (" .. MN_ALLZONES .. ")";
MapNotes.delFilter = {};
MapNotes.delFilter.type = "creator";
StaticPopup_Show("MN_DELETE_FILTER");
HideDropDownMenu(1);
end,
},
},
},
};
 
 
local function MN_Init_DD(self, level)
-- Make sure level is set to 1, if not supplied
level = level or 1
 
-- Get the current level from the info table
local info = MapNotes.dd.info[level]
 
-- If a value has been set, try to find it at the current level
if level > 1 and UIDROPDOWNMENU_MENU_VALUE then
if info[UIDROPDOWNMENU_MENU_VALUE] then
info = info[UIDROPDOWNMENU_MENU_VALUE]
end
end
 
-- Add the buttons to the menu
for idx, entry in ipairs(info) do
if ( entry.dynamicFunc ) then
local text, checked, disabled, ignore = entry.dynamicFunc();
if ( text ) then entry.text = text; end
entry.checked = checked;
entry.disabled = disabled;
if ( ignore ) then entry.text = nil; end
else
entry.checked = nil;
end
 
if ( entry.text ) then
UIDropDownMenu_AddButton(entry, level);
end
end
end
 
function MapNotes:InitialiseDropdown(pFrame, x, y, info, key, id)
self.dd.pFrame = pFrame;
self.dd.x = x;
self.dd.y = y;
self.dd.info = info;
self.dd.key = key;
self.dd.id = id;
UIDropDownMenu_Initialize(self.dd, MN_Init_DD, "MENU");
end
 
 
-- Extract x and y coordinates from text with optional comma/space separators allowing for decimal points
 
function MapNotes_ExtractCoords(data)
local tS, tE, tX, tY = string.find(data, "(%d%d?%.%d*)%.%.*(%d%d?%.%d*)");
 
if ( ( not tX ) or ( not tY ) ) then
tS, tE, tX, tY = string.find(data, "(%d%d?%.?%d*)[^0-9^%.]+%.*[^0-9^%.]*(%d%d?%.?%d*)");
end
 
if ( ( not tX ) and ( not tY ) ) then
tS, tE, tX, tY = string.find(data, "(%d%d?)%.+(%d%d?)");
end
 
if ( ( tX ) and ( tY ) ) then
tX = tonumber(tX);
tY = tonumber(tY);
end
 
if ( ( tX ) and ( tY ) ) then
local restText = string.sub(data, tE+1);
if ( not restText ) then
restText = "";
end
local msgStart = string.find(restText, "%S");
if ( ( msgStart ) and ( msgStart < string.len(restText) ) ) then
restText = string.sub(restText, msgStart);
end
return tX, tY, restText;
end
 
MapNotes_StatusPrint(MAPNOTES_COORDINATE_FORMATTING_ERROR1);
MapNotes_StatusPrint(MAPNOTES_COORDINATE_FORMATTING_ERROR2);
MapNotes_StatusPrint(MAPNOTES_COORDINATE_FORMATTING_ERROR3);
return nil, nil, nil;
end
 
 
-- Telic_1 Functions
 
function MapNotes_GetAdjustedMapXY(lclFrame, x, y)
local normalisingFactor = MN_DEFAULT_SCALE;
if ( ( MapNotes_Options ) and ( MapNotes_Options.nFactor ) ) then
normalisingFactor = MapNotes_Options.nFactor;
end
local eScale = 1 / (normalisingFactor / lclFrame:GetEffectiveScale());
local xAdjustment, yAdjustment = 125, 60;
local width = lclFrame:GetWidth() * eScale;
local height = lclFrame:GetHeight() * eScale;
local adjustedX, adjustedY = x, y;
 
if ( not x ) then
adjustedX, adjustedY = MapNotes_GetMouseXY(lclFrame);
end
 
local xOff, yOff = 0, 0;
if ( adjustedX < 0.5 ) then
xOff = xAdjustment;
else
xOff = -(xAdjustment);
end
if ( adjustedY < 0.5 ) then
yOff = -(yAdjustment);
else
yOff = yAdjustment;
end
 
adjustedX = math.floor( ( (width*adjustedX) + xOff ) );
adjustedY = math.floor( ( -(height*adjustedY) + yOff) );
 
return adjustedX, adjustedY;
end
 
function MapNotes_GetMouseXY(lclFrame)
local width = lclFrame:GetWidth();
local height = lclFrame:GetHeight();
local x, y = GetCursorPosition();
x = x / (lclFrame:GetEffectiveScale());
y = y / (lclFrame:GetEffectiveScale());
local centerX, centerY = lclFrame:GetCenter();
x = (x - (centerX - (width/2))) / width;
y = (centerY + (height/2) - y ) / height;
 
return x, y;
end
 
 
 
function MapNotes_NormaliseScale(theFrame, toScale)
local normalisingFactor = MN_DEFAULT_SCALE;
if ( ( MapNotes_Options ) and ( MapNotes_Options.nFactor ) ) then
normalisingFactor = MapNotes_Options.nFactor;
end
local anchorFrame = theFrame:GetParent();
if ( anchorFrame ) then
if ( not toScale ) then
toScale = normalisingFactor;
end
local eScale = anchorFrame:GetEffectiveScale();
eScale = toScale / eScale;
theFrame:SetScale( eScale );
return eScale;
end
end
 
 
 
-- Telic_2 Functions
 
-- Probably need the ability to create Note Buttons for each AddOn that wants them
-- as won't be able to show MapNotes on the World map and Alpha Map at the same time
-- if they are trying to display the exact same XML components...
-- If Plugin is left nil, then this function can be called to generate the default MapNotes POI buttons
-- Could therefore be used to create them dynamically as needed instead of having a fixed maximum...
function MapNotes_AssignPOI(index, Plugin)
local POI;
 
if ( Plugin ) then
local lclFrame = getglobal(Plugin.frame);
POI = getglobal( (Plugin.frame) .. "POI" .. index );
 
if ( not POI ) then
POI = CreateFrame("Button", (Plugin.frame) .. "POI" .. index, lclFrame, "MapNotesPOIButtonTemplate");
POI:SetID(index);
end
 
POI.Plugin = Plugin; -- Associate Plugin Data with each Note (nil for original WorldMap Notes)
-- Useful for distinguishing between types of note; Also, useful for
-- other AddOns that want to remain compatible (i.e. NotesUNeed)
 
else
local lclFrame = getglobal("WorldMapButton");
POI = getglobal( "MapNotesPOI" .. index );
 
if ( not POI ) then
POI = CreateFrame("Button", "MapNotesPOI" .. index, WorldMapButton, "MapNotesPOIButtonTemplate");
POI:SetID(index);
end
 
POI.Plugin = nil; -- Just to be explicit
end
 
return POI;
end
 
function MapNotes_AssignLine(index, Plugin)
local Line;
 
if ( Plugin ) then
local lclFrame = getglobal( (Plugin.frame) .. "_MNLinesFrame" );
Line = getglobal( lclFrame:GetName() .. "Lines_" .. index );
if ( not Line ) then
Line = lclFrame:CreateTexture( (lclFrame:GetName() .. "Lines_" .. index), "ARTWORK" );
end
 
else
Line = getglobal("MapNotesLines_"..index);
if ( not Line ) then
Line = MapNotesLinesFrame:CreateTexture( ("MapNotesLines_"..index), "ARTWORK");
end
end
 
return Line;
end
 
 
 
 
-- Telic_10 Functions
-------------------------------------------------------------------------------------------------
-- Make MapNotes independant of Localisation (ZoneShifting) Errors
-- (i.e. future proofed. It doesn't fix errors already present in the notes when upgrading.)
-------------------------------------------------------------------------------------------------
 
MapNotes_Keys = {}; -- MapNotes Keys with Localised name details
MapNotes_OldKeys = {}; -- Mapping of old [Continent][Zone] to New Key values (for this localisation)
MapNotes_MetaKeys = {}; -- Mapping of MetaMaps new (but still not global?) Map Keys
 
-- Basically adding Localised names to the the 'constants' now used as note keys
function MapNotes_LoadMapData()
 
MapNotes_BuildKeyList(); -- Other Addons that want to use the same keys should look here
 
if ( not MapNotes_Data_Notes ) then
MapNotes_Data_Notes = {};
end
if ( not MapNotes_Data_Lines ) then
MapNotes_Data_Lines = {};
end
if ( not MapNotes_Undelete_Info ) then
MapNotes_Undelete_Info = {};
end
 
for mapName, mapObject in pairs(MapNotes_Keys) do
if ( not MapNotes_Data_Notes[ mapName ] ) then
MapNotes_Data_Notes[ mapName ] = {};
end
if ( not MapNotes_Data_Lines[ mapName ] ) then
MapNotes_Data_Lines[ mapName ] = {};
end
end
 
if ( not MapNotes_Options.Edition ) then
MapNotes_Options.Edition = MAPNOTES_EDITION;
end
MapNotes_Options.Version = MAPNOTES_VERSION;
end
 
--Other Addons that want to use the same keys should look here
--World Map Keys are basically "WM "..GetMapInfo()
--Localised names are all fetched from game info, except for Battlegrounds - these need to be provided in the localisation files
function MapNotes_BuildKeyList()
local continentNames = { GetMapContinents() };
 
local key = "WM Cosmic"; -- Burning Crusade Support
MapNotes_Keys[key] = {};
MapNotes_Keys[key].name = MAPNOTES_COSMIC;
MapNotes_Keys[key].longName = MAPNOTES_COSMIC;
 
local key = "WM WorldMap"; -- Manually set when GetMapInfo() returns nil
MapNotes_Keys[key] = {};
MapNotes_Keys[key].name = WORLD_MAP; -- Blizzard provided constant
MapNotes_Keys[key].longName = WORLD_MAP;
 
key = "WM AlteracValley";
MapNotes_Keys[key] = {};
MapNotes_Keys[key].miniData = MAPNOTES_BASEKEYS[key].miniData;
MapNotes_Keys[key].name = MAPNOTES_ALTERACVALLEY;
MapNotes_Keys[key].longName = MAPNOTES_ALTERACVALLEY;
 
key = "WM ArathiBasin";
MapNotes_Keys[key] = {};
MapNotes_Keys[key].miniData = MAPNOTES_BASEKEYS[key].miniData;
MapNotes_Keys[key].name = MAPNOTES_ARATHIBASIN;
MapNotes_Keys[key].longName = MAPNOTES_ARATHIBASIN;
 
key = "WM WarsongGulch";
MapNotes_Keys[key] = {};
MapNotes_Keys[key].miniData = MAPNOTES_BASEKEYS[key].miniData;
MapNotes_Keys[key].name = MAPNOTES_WARSONGGULCH;
MapNotes_Keys[key].longName = MAPNOTES_WARSONGGULCH;
 
key = "WM NetherstormArena";
MapNotes_Keys[key] = {};
MapNotes_Keys[key].miniData = MAPNOTES_BASEKEYS[key].miniData;
MapNotes_Keys[key].name = MAPNOTES_NETHERSTORM;
MapNotes_Keys[key].longName = MAPNOTES_NETHERSTORM;
 
key = "WM StrandoftheAncients";
MapNotes_Keys[key] = {};
MapNotes_Keys[key].miniData = MAPNOTES_BASEKEYS[key].miniData;
MapNotes_Keys[key].name = MAPNOTES_SOTA;
MapNotes_Keys[key].longName = MAPNOTES_SOTA;
 
key = "WM ScarletEnclave";
MapNotes_Keys[key] = {};
MapNotes_Keys[key].miniData = MAPNOTES_BASEKEYS[key].miniData;
MapNotes_Keys[key].name = MAPNOTES_SCARLETENCLAVE;
MapNotes_Keys[key].longName = MAPNOTES_SCARLETENCLAVE;
 
for i in ipairs(continentNames) do
SetMapZoom(i);
local map = GetMapInfo();
map = "WM "..map;
if ( not MapNotes_Keys[map] ) then
MapNotes_Keys[map] = {};
end
MapNotes_Keys[map].name = continentNames[i];
MapNotes_Keys[map].longName = continentNames[i];
MapNotes_Keys[map].c = i;
 
if ( not MapNotes_OldKeys[i] ) then
MapNotes_OldKeys[i] = {};
end
 
local zoneNames = { GetMapZones(i) };
local dL;
local floored = {};
for j in ipairs(zoneNames) do
SetMapZoom(i, j);
map = GetMapInfo();
dL = GetNumDungeonMapLevels();
if ( dL > 0 ) then
floored[map] = {};
floored[map].floors = dL;
floored[map].c = i;
floored[map].z = j;
else
map = "WM "..map;
if ( not MapNotes_Keys[map] ) then
MapNotes_Keys[map] = {};
end
if ( ( MAPNOTES_BASEKEYS[map] ) and ( MAPNOTES_BASEKEYS[map].miniData ) ) then
MapNotes_Keys[map].miniData = MAPNOTES_BASEKEYS[map].miniData;
else
MapNotes_Keys[map].miniData = MAPNOTES_DEFAULT_MINIDATA;
end
MapNotes_Keys[map].name = zoneNames[j];
MapNotes_Keys[map].longName = continentNames[i].." - "..zoneNames[j];
MapNotes_Keys[map].c = i;
MapNotes_Keys[map].z = j;
 
if ( not MapNotes_OldKeys[i][j] ) then
MapNotes_OldKeys[i][j] = map;
end
 
if ( MetaMap_ZoneIDToName ) then
local metaKey = MetaMap_ZoneIDToName(i, j);
if ( metaKey ) then
MapNotes_MetaKeys[metaKey] = map;
end
end
end
 
for map, floorDetails in pairs(floored) do
local floorname, key;
local mapTmp = strupper(map);
for floor=1, floorDetails.floors do
floorname = getglobal("DUNGEON_FLOOR_" .. mapTmp .. floor);
key = "WM " .. map .. floor;
if ( not MapNotes_Keys[key] ) then
MapNotes_Keys[key] = {};
end
if ( ( MAPNOTES_BASEKEYS[key] ) and ( MAPNOTES_BASEKEYS[key].miniData ) ) then
MapNotes_Keys[key].miniData = MAPNOTES_BASEKEYS[key].miniData;
else
MapNotes_Keys[key].miniData = MAPNOTES_DEFAULT_MINIDATA;
end
MapNotes_Keys[key].name = zoneNames[j] .. ": " .. floorname;
MapNotes_Keys[key].longName = continentNames[i].." - "..zoneNames[j] .. ": " .. floorname;
MapNotes_Keys[key].c = floorDetails.c;
MapNotes_Keys[key].z = floorDetails.z;
MapNotes_Keys[key].f = floor;
 
if ( not MapNotes_OldKeys[i][j] ) then
MapNotes_OldKeys[i][j] = map;
end
 
end
end
end
end
end
 
 
 
function MapNotes_GetMapKey()
local map = GetMapInfo();
local dL = GetCurrentMapDungeonLevel();
 
if ( not map ) then
if ( GetCurrentMapContinent() == WORLDMAP_COSMIC_ID ) then
map = "Cosmic";
else
map = "WorldMap";
end
end
 
if ( dL > 0 ) then
map = "WM "..map..dL;
else
map = "WM "..map;
end
 
return map;
end
 
 
function MapNotes_GetMapDisplayName(key, Plugin)
if ( not Plugin ) then
Plugin = MapNotes.pluginKeys[key];
end
 
if ( Plugin ) then
if ( Plugin.lclFnc ) then
local subber = Plugin.name .. " ";
local basicKey, subbed = string.gsub(key, subber, "");
if ( ( basicKey ) and ( subbed ) and ( subbed > 0 ) ) then
local localiser = getglobal(Plugin.lclFnc);
if ( ( localiser ) and ( type(localiser) == "function" ) ) then
local name = localiser(basicKey);
if ( name ) then
lName = Plugin.name .. " - " .. name;
return name, lName, Plugin.name;
end
end
end
end
 
else
if ( MapNotes_Keys[key] ) then
return MapNotes_Keys[key].name, MapNotes_Keys[key].longName, WORLD_MAP;
end
end
 
return tostring(key), tostring(key), "?"; -- Allow for no Localised Name data (i.e. at least don't return nil and cause a crash)
end
 
 
-------------------------------------------------------------------------------------------------
-- Scaling functions for note
-------------------------------------------------------------------------------------------------
 
local MN_SCALE_MIN = 0.65;
local MN_SCALE_MAX = 1.2;
 
function MN_ScaleMe(self, minum, maxum, dflt)
local gScale = UIParent:GetScale();
local lScale = self:GetParent():GetScale();
local eScale = self:GetParent():GetEffectiveScale();
 
if ( not minum ) then
minum = MN_SCALE_MIN;
end
if ( not maxum ) then
maxum = MN_SCALE_MAX;
end
if ( not dflt ) then
dflt = 1;
end
 
eScale = eScale * dflt;
 
if ( eScale < minum ) then
return ( ( minum / gScale ) / lScale );
elseif ( eScale > maxum ) then
return ( ( maxum / gScale ) / lScale );
end
 
return dflt;
end
 
 
-- Telic_4 Functions
-------------------------------------------------------------------------------------------------
-- Import from other Noting AddOns
-- NOTE : Not Importing any "Lines" at the moment...
-------------------------------------------------------------------------------------------------
 
-- METAMAP IMPORT
 
local numberImported;
 
function MapNotes_ImportMetaMap()
local key;
 
numberImported = 0;
if ( MetaMap_Notes ) then
for index, records in pairs(MetaMap_Notes) do
if ( index == METAMAP_WARSONGGULCH ) then
key = "WM WarsongGulch";
if ( not MapNotes_Data_Notes[key] ) then
MapNotes_Data_Notes[key] = {};
MapNotes_Data_Lines[key] = {};
end
MapNotes_ImportZoneNotes(records, MapNotes_Data_Notes[key]);
 
elseif ( index == METAMAP_ALTERACVALLEY ) then
key = "WM AlteracValley";
if ( not MapNotes_Data_Notes[key] ) then
MapNotes_Data_Notes[key] = {};
MapNotes_Data_Lines[key] = {};
end
MapNotes_ImportZoneNotes(records, MapNotes_Data_Notes[key]);
 
elseif ( index == METAMAP_ARATHIBASIN ) then
key = "WM ArathiBasin";
if ( not MapNotes_Data_Notes[key] ) then
MapNotes_Data_Notes[key] = {};
MapNotes_Data_Lines[key] = {};
end
MapNotes_ImportZoneNotes(records, MapNotes_Data_Notes[key]);
 
-- elseif -- MetaMap Instances
-- Nowhere to display Instance notes in basic version of MapNotes
-- (Can import AlphaMap's Instance notes and use alongside AlphaMap)
 
elseif ( MapNotes_MetaKeys[index] ) then
local key = MapNotes_MetaKeys[index];
if ( not MapNotes_Data_Notes[key] ) then
MapNotes_Data_Notes[key] = {};
MapNotes_Data_Lines[key] = {};
end
MapNotes_ImportZoneNotes(records, MapNotes_Data_Notes[key]);
end
end
end
 
MapNotes_StatusPrint(numberImported..MAPNOTES_IMPORT_REPORT);
end
 
function MapNotes_ImportZoneNotes(sourceData, targetData)
for index, record in ipairs(sourceData) do
targetData[index] = sourceData[index];
numberImported = numberImported + 1;
end
end
 
 
 
 
-- ALPHAMAP IMPORT
 
function MapNotes_ImportAlphaMap(bgOnly)
local key;
numberImported = 0;
 
if ( AM_ALPHAMAP_LIST ) then
for index, map in pairs(AM_ALPHAMAP_LIST) do
if ( ( ( bgOnly == "OnlyBGs" ) and ( map.type == AM_TYP_BG ) ) or ( ( bgOnly ~= "OnlyBGs" ) and ( map.type ~= AM_TYP_BG ) ) ) then
local key = "AlphaMap "..(map.filename);
if ( not MapNotes_Data_Notes[key] ) then
MapNotes_Data_Notes[key] = {};
MapNotes_Data_Lines[key] = {};
end
local targetData = MapNotes_Data_Notes[key];
local index = 0;
 
table.sort(map);
for detailName, details in pairs(map) do
if ( ( type(details) == "table" ) and ( details.coords ) ) then
for point, coordinates in ipairs(details.coords) do
numberImported = numberImported + 1;
index = index + 1;
local imported = MapNotes_CreateAlphaNote(details, targetData, index, coordinates);
if ( not imported ) then
numberImported = numberImported - 1;
index = index - 1;
end
end
end
end
end
end
end
 
MapNotes_StatusPrint(numberImported..MAPNOTES_IMPORT_REPORT);
end
 
function MapNotes_ImportAlphaMapBG()
MapNotes_ImportAlphaMap("OnlyBGs");
end
 
function MapNotes_CreateAlphaNote(noteDetails, targetData, index, coords)
if ( ( coords[1] == 0 ) and ( coords[2] == 0 ) ) then
return nil;
end
 
targetData[index] = {};
targetData[index].name = noteDetails.text;
targetData[index].inf1 = noteDetails.tooltiptxt;
if ( noteDetails.special ) then
targetData[index].inf2 = noteDetails.special;
else
targetData[index].inf2 = "";
end
targetData[index].creator = "AlphaMap";
targetData[index].xPos = coords[1] / 100;
targetData[index].yPos = coords[2] / 100;
targetData[index].in2c = 8;
 
if ( noteDetails.colour == AM_RED ) then
targetData[index].icon = 6;
targetData[index].ncol = 2;
targetData[index].in1c = 0;
 
elseif ( noteDetails.colour == AM_GREEN ) then
targetData[index].icon = 0;
targetData[index].ncol = 4;
targetData[index].in1c = 0;
 
elseif ( noteDetails.colour == AM_BLUE ) then
targetData[index].icon = 2;
targetData[index].ncol = 6;
targetData[index].in1c = 0;
 
elseif ( noteDetails.colour == AM_GOLD ) then
targetData[index].icon = 0;
targetData[index].ncol = 0;
targetData[index].in1c = 0;
 
elseif ( noteDetails.colour == AM_PURPLE ) then
targetData[index].icon = 7;
targetData[index].ncol = 7;
targetData[index].in1c = 7;
 
elseif ( noteDetails.colour == AM_ORANGE ) then
targetData[index].icon = 5;
targetData[index].ncol = 1;
targetData[index].in1c = 1;
 
elseif ( noteDetails.colour == AM_YELLOW ) then
targetData[index].icon = 5;
targetData[index].ncol = 0;
targetData[index].in1c = 0;
end
 
-- For possible Future Development
if ( noteDetails.lootid ) then
targetData[index].lootid = noteDetails.lootid;
end
 
return true;
end
 
-- /script MapNotes_ImportCarto()
-- Wibble
function MapNotes_ImportCarto()
 
local rIcons = {};
local rIconsIndex = 0;
 
local colours = {
[16771840] = 0,
[16421120] = 1,
[16727339] = 2,
[16752278] = 3,
[717312] = 4,
[45568] = 5,
[65535] = 6,
[46591] = 7,
[99999] = 8,
[13421772] = 9,
};
 
local icons = {
["Moon"] = 1,
["Skull"] = 2,
["Square"] = 3,
["Cross"] = 4,
["Triangle"] = 5,
["Circle"] = 6,
["Diamond"] = 7,
["Star"] = 8,
};
 
local cIcons = {
["Moon"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidCrescentMoon",
["Skull"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidSkull",
["Square"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidBlueSquared",
["Cross"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidRedCross",
["Triangle"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidGreenTriangle",
["Circle"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidOrangeCircle",
["Diamond"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidPurpleDiamond",
["Star"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidYellowStarDiamond",
};
 
local cNotes = CartographerDB.namespaces.Notes.account.pois;
local currentZone, nNote;
local count = 0;
 
for locale, lNotes in pairs(cNotes) do
-- get key from locale
currentZone = nil;
 
for key, data in pairs(MapNotes_Keys) do
if ( data.name == locale ) then
currentZone = MapNotes_Data_Notes[key];
if ( currentZone ) then
break;
end
end
end
 
if ( not currentZone ) then
currentZone = MapNotes_Data_Notes[locale];
end
 
if ( currentZone ) then
for id, details in pairs(lNotes) do
nNote = {};
nNote.xPos, nNote.yPos = ( (id % 10001)/10000), ( math.floor(id / 10001)/10000 );
nNote.name = ( details.title or "" );
nNote.ncol = 8;
if ( ( details.titleCol ) and ( colours[details.titleCol] ) ) then
nNote.nol = colours[details.titleCol];
end
nNote.inf1 = ( details.info or "" );
nNote.in1c = 4;
if ( ( details.infoCol ) and ( colours[details.infoCol] ) ) then
nNote.in1c = colours[details.infoCol];
end
nNote.inf2 = ( details.info2 or "" );
nNote.in2c = 0;
if ( ( details.info2Col ) and ( colours[details.info2Col] ) ) then
nNote.in2c = colours[details.info2Col];
end
nNote.creator = ( details.creator or "Cartographer" );
if ( icons[details.icon] ) then
nNote.icon = icons[details.icon];
else
if ( not rIcons[details.icon] ) then
rIcons[details.icon] = rIconsIndex;
rIconsIndex = rIconsIndex + 1;
if ( rIconsIndex > 9 ) then
rIconsIndex = 0;
end
end
nNote.icon = rIcons[details.icon];
end
nNote.customIcon = ( cIcons[details.icon] or "" );
 
table.insert( currentZone, nNote );
count = count + 1;
end
end
end
 
MapNotes_StatusPrint(count..MAPNOTES_IMPORT_REPORT);
end
 
 
-- CTMapMod
 
function MapNotes_ImportCTMap()
numberImported = 0;
 
if ( CT_UserMap_Notes ) then
for mnKey, values in pairs(MapNotes_Keys) do
local ctKey = values.name;
local mnIndex = 0;
 
if ( CT_UserMap_Notes[ctKey] ) then
for ctNoteIndex, ctNote in ipairs(CT_UserMap_Notes[ctKey]) do
if ( ctNote.set < 7 ) then
mnIndex = mnIndex + 1;
numberImported = numberImported + 1;
local targetData = MapNotes_Data_Notes[mnKey];
MapNotes_CreateCTNote(ctNote, targetData, mnIndex);
end
end
end
end
end
 
MapNotes_StatusPrint(numberImported..MAPNOTES_IMPORT_REPORT);
end
 
function MapNotes_CreateCTNote(noteDetails, targetData, index)
targetData[index] = {};
targetData[index].name = noteDetails.name;
targetData[index].inf1 = noteDetails.descript;
targetData[index].inf2 = "";
targetData[index].creator = "CTMapMod";
targetData[index].xPos = noteDetails.x;
targetData[index].yPos = noteDetails.y;
targetData[index].in2c = 0;
 
if ( noteDetails.set == 1 ) then
targetData[index].icon = 0;
targetData[index].ncol = 0;
targetData[index].in1c = 0;
 
elseif ( noteDetails.set == 2 ) then
targetData[index].icon = 2;
targetData[index].ncol = 7;
targetData[index].in1c = 7;
 
elseif ( noteDetails.set == 3 ) then
targetData[index].icon = 1;
targetData[index].ncol = 2;
targetData[index].in1c = 2;
 
elseif ( noteDetails.set == 4 ) then
targetData[index].icon = 4;
targetData[index].ncol = 8;
targetData[index].in1c = 8;
 
elseif ( noteDetails.set == 5 ) then
targetData[index].icon = 3;
targetData[index].ncol = 4;
targetData[index].in1c = 4;
 
elseif ( noteDetails.set == 6 ) then
targetData[index].icon = 6;
targetData[index].ncol = 3;
targetData[index].in1c = 3;
end
end
 
 
 
-- Data Fix for people who have gaps in notes, making it seem as though many notes are missing
 
function MN_DataCheck(report)
MapNotes_Data_Notes = MN_DataCheck_Sort(MapNotes_Data_Notes, report);
MapNotes_Data_Lines = MN_DataCheck_Sort(MapNotes_Data_Lines, report);
end
 
function MN_DataCheck_Sort(data, report)
local holdingArray, errors = {}, 0;
if ( report ) then
report = 0;
end
 
for key, notes in pairs(data) do
holdingArray[key] = {};
local counter = 0;
for note, details in pairs(notes) do
if ( details.name ) then
if ( not details.icon ) then
errors = errors + 1;
details.icon = 0;
end
if ( not details.inf1 ) then
errors = errors + 1;
details.inf1 = "";
end
if ( not details.inf2 ) then
errors = errors + 1;
details.inf2 = "";
end
if ( not details.xPos ) then
errors = errors + 1;
details.xPos = 0;
end
if ( not details.yPos ) then
errors = errors + 1;
details.yPos = 0;
end
end
counter = counter + 1;
holdingArray[key][counter] = details;
end
if ( report ) then
report = report + counter;
end
end
 
if ( report ) then
DEFAULT_CHAT_FRAME:AddMessage("MapNotes -> "..report, 0.9, 0.1, 0.1);
end
if ( errors > 0 ) then
DEFAULT_CHAT_FRAME:AddMessage("MapNotes -> |cffff0000"..errors.."|r Errors Self Corrected", 0.9, 0.1, 0.1);
end
 
return holdingArray;
end
 
 
 
-- Temporary include a fix function for Stormwind map adjustments
function Stormwindy()
local x, y;
local moved = 0;
 
for i, n in ipairs(MapNotes_Data_Notes["WM Stormwind"]) do
x = n.xPos*.76+.203;
if ( x > 0.9999 ) then x = 0.9999; end
y = n.yPos*.76+.253;
if ( y > 0.9999 ) then y = 0.9999; end
 
n.xPos = x;
n.yPos = y;
moved = moved + 1;
end
 
DEFAULT_CHAT_FRAME:AddMessage("MapNotes -> "..moved, 0.9, 0.1, 0.1);
MapNotes_WorldMapButton_OnUpdate();
end
 
 
MapNotes/MapNotesFAQ.txt New file
0,0 → 1,97
 
 
One thing that people should be aware of is that this version of MapNotes has changed the Keying system for notes, and no longer uses the Continent/Zone as a heading under which to save them.
Your MapNotes should be automatically converted the first time you log in.
This means that you can't use older versions of Magellan for example, which will still try to create MapNotes under the old Continent / Zone system, and you won't be able to send/receive notes with players using older versions of MapNotes.
NOTE : This version of MapNotes includes Magellan functionality via a new checkbox on the Options frame.
 
 
 
Q01 - How do I make notes on the map now ?
|
A01 - <Control>-<Right Click> on the World Map to show the MapNotes menu from where you can Create a new note, or access the Options menu, etc. (The traditional methods of note creation via slash commands, or receiving from other users still work - note that you can only send/receive notes with other users of MapNotes (Fan's Update), and NOT to users of other versions of MapNotes.)
OR
<Control>-<Alt>-Right Click on the Map to speedily create a quicknote.
Also check the key bindings and other information in the Readme.txt file for more details.
<Control>-<Alt>-Right Click on a note to quickly open the Edit Window for that note.
So you can quickly create and edit a new note by <Control>-<Alt>-Double Right Clicking.
 
 
Q02 - The MapNotes in game help shows Slash Commands such as '/mn -q', etc. Can I still use the slash commands I'm used to such as '/quicknote' ?
|
A02 - Yes. I have introduced a new set of slash commands that I consider to be more consistant, but the legacy Slash commands are still available.
If you need help on the Slash commands in game, I have added some Help messages - just type '/mn' on its own to see what version of MapNotes you are playing with, and what commands are available.
New slash commands all follow the form '/mn [-switch] [parameters, ...]'
But you can still use '/mn [MapNote]' to create a new note - see the Readme.txt file for details on how to format a [Mapnote] in order to create one from the command line.
 
 
 
Q03 - Can I still use '/tloc' to show coordinates under the Minimap ?
|
A03 - '/tloc' can still be used to toggle the display of coordinates under the minimap. There are NO other dependancies apart from MapNotes itself, and this command will display MapNotes' own coordinates whether or not you have Thottbott installed.
'/tloc' is basically identical to the new '/mn -minic' command for toggling minimap coordinates.
 
 
 
Q04 - Can I still use '/tloc xx,yy' to place a Thottbott marker on the World Map ?
|
A04 - No. Use either '/mn -tloc xx,yy' or '/mntloc xx,yy'. There are various reasons for why I separated the toggling of Minimap coordinates from the creation of a Thottbott Note - see separate posting for details.
 
 
 
Q05 - Is there a way to quickly create a note at my Players current location while I play ?
(i.e. without having to move away so that I can click on the part of the map that my Player arrow was obscuring...)
|
A05 - MapNotes (Fan's Update) provides several methods for the creation of Quicknotes :
1.) the original Slash command functionality; '/mn -q' OR '/quicknote'
2.) NEW slash command '/mn -t' will create a MapNote at the Players current location if you have nothing Targetted.
However, if you do have a target, then '/mn -t' will create a MapNote with details of your Target at the PLAYER'S current location. If you are too near to an existing MapNote, then you will be warned that no MapNote can be created.
3.) NEW slash command '/mn -m' will also create a MapNote based on the player's current Target, at the PLAYER'S current location.
However, if the player is too near an existing MapNote to create a new one, then the details of the current Target will be Merged with the existing MapNote.
4.) NEW Key-Binding added for the QuickNote/TargetNote ('/mn -t') command; And NEW Key-Binding added for the TargetNote/MergeNote ('/mn -m') command also.
5.) <Alt>-Left-Clicking on the MapNotes Minimap Coordinates will also execute the QuickNote/TargetNote functionality.
6.) <Alt>-Right-Clicking on the MapNotes Minimap Coordinates will execute the TargetNote/MergeNote functionality.
 
 
 
Q06 - The 'Turn Mininote Off' button is no longer available when I bring up the 'Create New Note' menu by <Control>-<Right Clicking> on the World Map. Also, when I type, '/mininoteoff' or '/mn -minioff', the current Mininote does not disappear.
What's going on ?
|
A06 - MapNotes (Fan's Update) now allows you to use multiple MapNotes as Mininotes that you can track via the Minimap.
You can still only use ONE Party Note OR ONE Thottbott marker - but you can turn on as many MapNotes as you like to use as Mininotes. This means that currently, the '/mn -minioff' command will only turn off Party/Thottbott Mininotes. Any mininote that is based on a permanent MapNote must be turned off by one of 2 methods :
1.) <Control>-<Alt>-<Left Click> on any Mininote on the Minimap to turn off that Mininote - this is probably the easies/quickest method. It will NOT delete the underlying MapNotes - just stop using it as a Mininote.
2.) Right-Click on the MapNote itself on the World Map, and choose the "Turn Mininote Off" option for that note.
(Note that when you use the "Set As Mininote" button for a MapNote, then the option automatically changes to "Turn Mininote Off" when you Right-Click that MapNote again.)
3.) Delete the underlying MapNote - extreme but it works.
Note : Yup, that's right, there is no global way to turn off ALL Mininotes at the moment - I didn't think it was necessary so far, as <Control>-<Alt>-<Left Clicking> the actual Mininotes on the Minimap is a quick easy way to turn them off...
4.) New key binding or "/mn -allmini" command to toggle all MapNotes on/off as Mininotes
 
 
 
Q07 - Is there an easy way to adjust the position of a Note, other than deleting it, and re-creating it in a new location ?
|
A07 - Map Notes can easily be moved to new locations by <Control>-<Alt>-Left-Click dragging with the Mouse.
 
 
 
Q08 - Can MapNotes show Player/Cursor Coordinates on the WorldMap ?
|
A08 - Use '/mn -mapc' to toggle display of Player/Cursor coordinates on the World Map. If you are not happy with the default location of the coordinates, you can <Control>-Click drag them to a different location, and they will remember where you drop them.
 
 
 
Q09 - Can the <Alt>-Click method of line drawing be used again ?
|
A09 - Yes. The toggling of lines between points by <Alt>-Left-Clicking each point has been fixed in this version.
 
 
 
Q10 - I want to be able to make notes on Atlas Instance maps
|
A10 - MapNotes (Fan's Update) comes with a Plugins Interface allowing it to make notes on Frames/Maps belonging to other AddOns. But the other AddOns need to use the MapNotes Interface. AlphaMap (Fan's Update) v2.62.11200 and later works with MapNotes (Fan's Update) so that you can create MapNotes on AlphaMap Battleground/Instance/WorldBoss maps in exactly the same way as you do on the WorldMap. MapNotes (Fan's Update) also comes with in-built support for the current version of Atlas, so that you can make MapNotes on any of the Atlas maps.
 
 
 
Q11 - I want to use MapNotes (Fan's Update) to make notes on the Naxxramas Dungeon map in AlphaMap, but nothing happens when I <Control>-<Right Click> on AlphaMap's Naxxramas map ?
|
A11 - Open up the Naxxramas map in AlphaMap; Open up the AlphaMap Options frame; Click on the first 'General' Tab, and make sure that the "Enable Map Notes" check box is checked. Make sure this option is checked for any map where you want to be able to make MapNotes in AlphaMap.
\ No newline at end of file
MapNotes/Bindings.xml New file
0,0 → 1,15
<Bindings>
<!-- User interface key bindings -->
<Binding name="MN_TARGET_NEW" description="QuickNote/TargetNote" runOnUp="false" header="MAPNOTES">
MapNotes_TargetNote("");
</Binding>
<Binding name="MN_TARGET_MERGE" description="Merge Target Note" runOnUp="false">
MapNotes_MergeNote("");
</Binding>
<Binding name="MN_TOGGLE_MINIS" description="Toggle Mininotes" runOnUp="false">
MapNotes_TotallyMini();
</Binding>
<Binding name="MN_MINIMAP_STYLE" description="Cycle through Minimap Styles" runOnUp="false">
MN_CustomMinimapCycler();
</Binding>
</Bindings>
\ No newline at end of file
MapNotes/LegacySlashCommands.txt New file
0,0 → 1,90
 
Legacy Slash Command Details
----------------------------
 
 
 
/mapnote OR /mapnotes OR /mn
Only used to insert a Map Note by a slash command (which you can create in the Send Menu), for example, to put a note at the Entrance of Stormwind City on the map Elwynn Forest:
 
"/mapnote k<WM Elwynn> x<0.320701> y<0.491480> t<Stormwind> i1<Entrance> i2<> cr<ciphersimian> i<0> tf<0> i1f<0> i2f<0>"
 
NOTE: The above would all be on one line Description of the identifiers:
 
k<#> - Key based on the map name from GetMapInfo() prefixed by "WM " (English name on all clients - never localised) Varies for other AddOns using the Plugin functionality
x<#> - X coordinate, based on the GetPlayerMapPosition() function
y<#> - Y coordinate, based on the GetPlayerMapPosition() function
t<text> - Title for the MapNote
i1<text> - first line of text displayed under the Title in the MapNote (Info 1)
i2<text> - second line of text displayed under the Title in the MapNote (Info 2)
cr<text> - Creator of the MapNote
i<#> - icon to use for the MapNote, AddOns/MapNotes/POIIcons/Icon#.tga
tf<#> - color of the Title, AddOns/MapNotes/POIIcons/Color#.tga
i1f<#> - color of the Info 1 line (colors as above)
i1f<#> - color of the Info 2 line (colors as above)
 
 
 
/onenote [on|off] OR /allowonenote [on|off] OR /aon [on|off] OR /mn1 [on|off]
Allows you to receive the next note, even if you have disabled receiving in the options. If invoked with no parameters, it will toggle the current state.
 
 
/nextmininote [on|off] OR /nmn [on|off] OR /mnmn [on|off]
Shows the next note created (using any method) as a MiniNote and also puts it on the WorldMap. If invoked with no parameters, it will toggle the current state.
 
 
/nextmininoteonly [on|off] OR /nmno [on|off]
Like the previous command, but doesn't put the note on the WorldMap.
 
 
/mininoteoff OR /mno
Turns the MiniNote off.
 
 
/mntloc tbX,tbY
Sets a "Thottbot location" on the map. Use it with no arguments to toggle it off.
X and Y are in "Thottbot coordinates" which can be represented as follows:
local x,y = GetPlayerMapPosition()
local tbX = math.floor(x*100)
local tbY = math.floor(y*100)
This note is not bound to the map you are currently on. Left click on it and select "Create New Note" to turn it into a standard note on the map you are viewing.
 
 
/quicknote [icon] [name] OR /qnote [icon] [name]
Adds a note at your current location, icon and name are optional (icon any number from 0 to 9, AddOns/MapNotes/POIIcons/Icon#.tga)
 
 
/quicktloc xx,yy [icon] [name] OR /qtloc xx,yy [icon] [name]
Addes a note on the map you are currently on at the given thottbot location, icon and name are optional (icon any number from 0 to 9, AddOns/MapNotes/POIIcons/Icon#.tga)
 
 
NEW SLASH COMMANDS IN MapNotes(Fan's Update)
 
/mnsearch [search text] OR /mns [search text]
If you want to search for a note, to see if one exists, or where it is, then you can use this command, and MapNotes will print out a report in the chat window, displaying the names of all maps which have a note containing that text
 
 
/mnhighlight [note name] OR /mnhl [note name]
If you have lots of notes and want to clearly identify a single one on a map, or if you want a certain note to remain highlighted, then use this command and they will be displayed with a green circle around them.
If there are several notes with that name, then they will all be highlighted
 
 
/mnmapc
Toggle the display of Player and Cursor Coordinates on the World Map
Control-Left-Click and drag the coordinates to move them to a different position on the World Map if you are not happy with the default.
 
 
/mnminic
Toggle the display of Player coordinates below the Minimap.
 
 
 
/mnt
Creates a quicknote at the Player's current location if the Player has no target.
If the Player does have a target, then it will create a note for that target at the Player's current location.
 
 
/mnm
Creates a note for the Player's target at the Player's current location.
OR Merges the details for the Player's current target in to a Map Note that has already been created at the Player's current location.
MUST have targetted a Player/NPC/Mob for this to work.
\ No newline at end of file
MapNotes/localization.de.lua New file
0,0 → 1,179
--[[
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
 
Special thanks to StarDust for the German translation
]]
 
-- Ä: C3 84 - \195\132
-- Ö: C3 96 - \195\150
-- Ü: C3 9C - \195\156
-- ß: C3 9F - \195\159
-- ä: C3 A4 - \195\164
-- ö: C3 B6 - \195\182
-- ü: C3 BC - \195\188
 
if GetLocale() == "deDE" then
 
-- General
MAPNOTES_NAME = "MapNotes"
MAPNOTES_ADDON_DESCRIPTION = "F\195\188gt ein Bemerkungs/Notes System der Weltkarte hinzu."
MAPNOTES_DOWNLOAD_SITES = "Sehe README f\195\188r Download Seiten"
 
-- Inteface Configuration
MAPNOTES_WORLDMAP_HELP_1 = "Rechts-Klicken um aus der Karte zu zoomen"
MAPNOTES_WORLDMAP_HELP_2 = "Links-Klicken um hinein zu zoomen"
MAPNOTES_WORLDMAP_HELP_3 = "<Strg>+Rechts-Klicken auf die Karte um das "..MAPNOTES_NAME.." Menu zu \195\182ffnen"
MAPNOTES_CLICK_ON_SECOND_NOTE = "|cFFFF0000Karten Notizen:|r W\195\164hle eine zweite Notiz um jene\ndurch eine Linie zu verbinden/Linie wieder zu l\195\182schen."
 
MAPNOTES_NEW_MENU = "Karten Notizen"
MAPNOTES_NEW_NOTE = "Notiz erstellen"
MAPNOTES_MININOTE_OFF = "Kurz-Notizen aussch."
MAPNOTES_OPTIONS = "Einstellungen"
MAPNOTES_CANCEL = "Abbrechen"
 
MAPNOTES_POI_MENU = "Karten Notizen"
MAPNOTES_EDIT_NOTE = "Notiz bearbeiten"
MAPNOTES_MININOTE_ON = "Als Kurz-Notiz"
MAPNOTES_SPECIAL_ACTIONS = "Spezielle Aktionen"
MAPNOTES_SEND_NOTE = "Notiz senden"
 
MAPNOTES_SPECIALACTION_MENU = "Spezielle Aktionen"
MAPNOTES_TOGGLELINE = "Notizen verbinden"
MAPNOTES_DELETE_NOTE = "Notiz l\195\182schen"
 
MAPNOTES_EDIT_MENU = "Notiz Bearbeiten"
MAPNOTES_SAVE_NOTE = "Speichern"
MAPNOTES_EDIT_TITLE = "Titel (erfordert):"
MAPNOTES_EDIT_INFO1 = "Info Zeile 1 (optional):"
MAPNOTES_EDIT_INFO2 = "Info Zeile 2 (optional):"
MAPNOTES_EDIT_CREATOR = "Sch\195\182pfer (optional):"
 
MAPNOTES_SEND_MENU = "Notiz Senden"
MAPNOTES_SLASHCOMMAND = "Modus wechseln"
MAPNOTES_SEND_TITLE = "Notiz senden:"
MAPNOTES_SEND_TIP = "Diese Notiz kann von allen Benutzern der Karten Notizen MapNotes(Fan's Update) empfangen werden."
MAPNOTES_SEND_PLAYER = "Spielername eingeben:"
MAPNOTES_SENDTOPLAYER = "An Spieler senden"
MAPNOTES_SENDTOPARTY = "An Gruppe/Schlachtzug senden"
MAPNOTES_SENDTOPARTY_TIP = "Links Klick - Gruppe\nRechts Klick - Schlachtzug";
MAPNOTES_SHOWSEND = "Modus wechseln"
MAPNOTES_SEND_SLASHTITLE = "Slash-Befehle:"
MAPNOTES_SEND_SLASHTIP = "Dies markieren und STRG+C dr\195\188cken um in die Zwischenablage zu kopieren. (dann kann es zum Beispiel in einem Forum ver\195\182ffentlicht werden)"
MAPNOTES_SEND_SLASHCOMMAND = "/Befehl:"
 
MAPNOTES_OPTIONS_MENU = "Einstellungen"
MAPNOTES_SAVE_OPTIONS = "Speichern"
MAPNOTES_OWNNOTES = "Notizen anzeigen, die von diesem Charakter erstellt wurden"
MAPNOTES_OTHERNOTES = "Notizen anzeigen, die von anderen Spielern empfangen wurden"
MAPNOTES_HIGHLIGHT_LASTCREATED = "Zuletzt erstellte Notiz in |cFFFF0000rot|r hervorheben"
MAPNOTES_HIGHLIGHT_MININOTE = "Notizen die als Kurz-Notiz markiert wurden in |cFF6666FFblau|r hervorheben"
MAPNOTES_ACCEPTINCOMING = "Ankommende Notizen von anderen Spielern akzeptieren"
MAPNOTES_INCOMING_CAP = "Ankommende Notizen ablehnen wenn\nweniger als 5 freie Notizen \195\188brig bleiben"
MAPNOTES_AUTOPARTYASMININOTE = "Markiere Gruppen-Notizen automatisch als Kurz-Notiz"
 
MAPNOTES_CREATEDBY = "Erstellt von"
MAPNOTES_CHAT_COMMAND_ENABLE_INFO = "Dieser Befehl erlaubt es zum Beispiel Notizen, die von einer Webseite empfangen wurden, einzuf\195\188gen."
MAPNOTES_CHAT_COMMAND_ONENOTE_INFO = "\195\156bergeht die Einstellungen, wodurch die n\195\164chste empfangene Notiz in jedem Fall akzeptiert wird."
MAPNOTES_CHAT_COMMAND_MININOTE_INFO = "Markiert die n\195\164chste empfangene Notiz direkt als Kurz-Notiz (und f\195\188gt jene auf der Karte ein)."
MAPNOTES_CHAT_COMMAND_MININOTEONLY_INFO = "Markiert die n\195\164chste empfangene Notiz nur als Kurz-Notiz (und f\195\188gt jene nicht auf der Karte ein)."
MAPNOTES_CHAT_COMMAND_MININOTEOFF_INFO = "Kurz-Notizen nicht mehr anzeigen."
MAPNOTES_CHAT_COMMAND_MNTLOC_INFO = "Setzt eine tloc auf der Karte."
MAPNOTES_CHAT_COMMAND_QUICKNOTE = "F\195\188gt auf der momentanen Position auf der Karte eine Notiz ein."
MAPNOTES_CHAT_COMMAND_QUICKTLOC = "F\195\188gt auf der angegebenen tloc Position auf der Karte, in der momentanen Zone, eine Notiz ein."
MAPNOTES_MAPNOTEHELP = "Dieser Befehl kann nur zum Einf\195\188gen einer Notiz benutzt werden."
MAPNOTES_ONENOTE_OFF = "Eine Notiz zulassen: AUS"
MAPNOTES_ONENOTE_ON = "Eine Notiz zulassen: AN"
MAPNOTES_MININOTE_SHOW_0 = "N\195\164chste als Kurz-Notiz: AUS"
MAPNOTES_MININOTE_SHOW_1 = "N\195\164chste als Kurz-Notiz: AN"
MAPNOTES_MININOTE_SHOW_2 = "N\195\164chste als Kurz-Notiz: IMMER"
MAPNOTES_DECLINE_SLASH = "Notiz kann nicht hinzugef\195\188gt werden, zuviele Notizen in |cFFFFD100%s|r."
MAPNOTES_DECLINE_SLASH_NEAR = "Notiz kann nicht hinzugef\195\188gt werden, sie befindet sich zu nahe an |cFFFFD100%q|r in |cFFFFD100%s|r."
MAPNOTES_DECLINE_GET = "Notiz von |cFFFFD100%s|r konnte nicht empfangen werden: zu viele Notizen in |cFFFFD100%s|r, oder Empfang in den Einstellungen deaktiviert."
MAPNOTES_ACCEPT_SLASH = "Notiz auf der Karte von |cFFFFD100%s|r hinzugef\195\188gt."
MAPNOTES_ACCEPT_GET = "Notiz von |cFFFFD100%s|r in |cFFFFD100%s|r empfangen."
MAPNOTES_PARTY_GET = "|cFFFFD100%s|r hat eine neue Gruppen-Notiz in |cFFFFD100%s|r hinzugef\195\188gt."
MAPNOTES_DECLINE_NOTETONEAR = "|cFFFFD100%s|r hat versucht dir in |cFFFFD100%s|r eine Notiz zu senden, aber jene war zu nahe bei |cFFFFD100%q|r."
MAPNOTES_QUICKNOTE_NOTETONEAR = "Notiz konnte nicht erstellt werden: Du befindest dich zu nahe bei |cFFFFD100%s|r."
MAPNOTES_QUICKNOTE_NOPOSITION = "Notiz konnte nicht erstellt werden: momentane Position konnte nicht ermittelt werden."
MAPNOTES_QUICKNOTE_DEFAULTNAME = "Schnell-Notiz"
MAPNOTES_QUICKNOTE_OK = "Notiz auf der Karte in |cFFFFD100%s|r erstellt."
MAPNOTES_QUICKNOTE_TOOMANY = "Es befinden sich bereits zu viele Notizen auf der Karte von |cFFFFD100%s|r."
MAPNOTES_DELETED_BY_NAME = "Alle Karten Notizen mit dem Erzeuger |cFFFFD100%s|r und dem Namen |cFFFFD100%s|r wurden gel\195\182scht"
MAPNOTES_DELETED_BY_CREATOR = "Alle Karten Notizen mit dem Erzeuger |cFFFFD100%s|r wurden gel\195\182scht"
MAPNOTES_QUICKTLOC_NOTETONEAR = "Notiz konnte nicht erstellt werden: Die Position ist zu nahe bei |cFFFFD100%s|r."
MAPNOTES_QUICKTLOC_NOZONE = "Notiz konnte nicht erstellt werden: momentane Zone konnte nicht ermittelt werden."
MAPNOTES_QUICKTLOC_NOARGUMENT = "Benutzung: '/quicktloc xx,yy [Icon] [Title]'."
MAPNOTES_SETMININOTE = "Setzt die Notiz als neue Kurz-Notiz."
MAPNOTES_THOTTBOTLOC = "Thottbot Ortsangabe"
MAPNOTES_PARTYNOTE = "Gruppen-Notiz"
 
MAPNOTES_CONVERSION_COMPLETE = MAPNOTES_VERSION.." - Konvertierung abgeschlossen. \195\156berpr\195\188fen sie bitte ihre Notes."
 
-- Errors
MAPNOTES_ERROR_NO_OLD_ZONESHIFT = "FEHLER: Kein altes Zoneshift definiert."
 
-- Drop Down Menu
MAPNOTES_SHOWNOTES = "Notizen anzeigen"
MAPNOTES_DROPDOWNTITLE = "Karten Notizen"
MAPNOTES_DROPDOWNMENUTEXT = "Optionen"
 
MAPNOTES_WARSONGGULCH = "Warsongschlucht"
MAPNOTES_ALTERACVALLEY = "Alteractal"
MAPNOTES_ARATHIBASIN = "Arathibecken"
MAPNOTES_NETHERSTORM = "Auge des Sturms";
 
MAPNOTES_COSMIC = "Cosmic";
 
 
-- Coordinates
MAPNOTES_MAP_COORDS = "Map Coords";
MAPNOTES_MINIMAP_COORDS = "Minimap Coords";
 
 
-- MapNotes Target & Merging
MAPNOTES_MERGED = "MapNote Merged for : ";
MAPNOTES_MERGE_DUP = "MapNote already exists for : ";
MAPNOTES_MERGE_WARNING = "You must have something targetted to merge notes.";
 
BINDING_HEADER_MAPNOTES = "MapNotes";
BINDING_NAME_MN_TARGET_NEW = "QuickNote/TargetNote";
BINDING_NAME_MN_TARGET_MERGE = "Merge Target Note";
 
MN_LEVEL = "Stufe";
 
-- Magellan Style LandMarks
MAPNOTES_LANDMARKS = "Landmarks"; -- Landmarks, as in POI, or Magellan
MAPNOTES_LANDMARKS_CHECK = "Auto-MapNote "..MAPNOTES_LANDMARKS;
MAPNOTES_DELETELANDMARKS = "Delete "..MAPNOTES_LANDMARKS;
MAPNOTES_MAGELLAN = "(~Magellan)";
MAPNOTES_LM_CREATED = " MapNotes Created in ";
MAPNOTES_LM_MERGED = " MapNotes Merged in ";
MAPNOTES_LM_SKIPPED = " MapNotes not Noted in ";
MAPNOTES_LANDMARKS_NOTIFY = MAPNOTES_LANDMARKS.." Noted in ";
 
MN_AUTO_DESCRIPTIONS = {
["SQUARE"] = "Quadrat",
 
["CORNER-TOPRIGHT"] = "Rund:Ecke oben rechts",
["CORNER-BOTTOMRIGHT"] = "Rund:Ecke unten rechts",
["CORNER-BOTTOMLEFT"] = "Rund:Ecke unten links",
["CORNER-TOPLEFT"] = "Rund:Ecke oben links",
 
["SIDE-RIGHT"] = "Rund:Eckes rechts",
["SIDE-BOTTOM"] = "Rund:Eckes unten",
["SIDE-LEFT"] = "Rund:Eckes links",
["SIDE-TOP"] = "Rund:Eckes oben",
 
["TRICORNER-TOPRIGHT"] = "Quadrat:Ecke oben rechts",
["TRICORNER-BOTTOMRIGHT"] = "Quadrat:Ecke unten rechts",
["TRICORNER-BOTTOMLEFT"] = "Quadrat:Ecke unten links",
["TRICORNER-TOPLEFT"] = "Quadrat:Ecke oben links",
 
["CIRCULAR"] = "Rund";
};
 
MN_STYLE_AUTOMATIC = "Automatic";
 
end
MapNotes/MiscGFX/Highlight.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/MiscGFX/DarkerBackground.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/MiscGFX/BaW.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/MiscGFX/Lastnote.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/MiscGFX/LineTemplateNegative256.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/MiscGFX/LineTemplatePositive256.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/MiscGFX/LineTemplateUp256.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/MiscGFX/LineTemplateDown256.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotes/PlugIns.lua New file
0,0 → 1,564
--[[
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
]]
 
-- Global Variables to allow access from other Scripts. Other AddOns may add to the MAPNOTES_PLUGINS_LIST in order to take
-- advantage of MapNotes note making ability within their own code
 
MAPNOTES_PLUGINS_LIST = {};
MAPNOTES_DISABLED_PLUGINS = {};
 
-- AlphaMap
-- AlphaMap Registers its data and functions from within that AddOn itself
-- so see download and look at that AddOn for an example of how AddOns can 'Plug In' to MapNotes functionality
 
-- ATLAS PLUGIN CODE MOVED TO ITS OWN ADDON --
 
--MAPNOTES_PLUGINS_LIST.Atlas = { name = "Atlas", -- Used internally by MapNotes to ensure returned Keys are unique
-- frame = "AtlasFrame", -- Other AddOn's main frame on which to make notes (String)
-- --
-- keyVal = "Atlas_MN_Query", -- Function to return a MapNotes Key for recording notes against.
-- -- Equals MapNotes own [Continent][Zone] key for organising notes.
-- -- Preferably, also return a Localised name associated with the Key
-- lclFnc = "Atlas_MN_Localiser", -- Return a Localised name based on a 'key' value-- initFnc = "AlphaMap_MN_Initialise", -- Can include a custom initialisation function
-- wmflag = "1" -- Indicates the Plugin will display (BlizzardFrame)World MapNotes
-- -- (See AlphaMap (Fan's Update) for an example)
-- --
-- initFnc = "Atlas_MN_Init", -- Can include an initialisation routine of your own that will execute
-- -- when the Plugin is Registered with MapNotes
-- --
-- -- BELOW NOT IMPLEMENTED ATM
-- -- Potentially add other controls such as ...
-- mBttn = "RightButton", -- What mouse button should be used for note creation
-- cKey1 = IsControlKeyDown, -- What 'control' keys should be pressed in conjunction with the mouse
-- cKey2 = IsAltKeyDown, -- before we create a note / open a MapNotes Menu...
-- cKey3 = IsShiftKeyDown, -- (Remember 'control' keys are function names)
-- tt = GameTooltip -- Specify explicitly the tooltip to be displayed OnEnter...TipBuddy?
--};
 
local MapNotes_PlugInsMonitorInterval = 0.1;
local MapNotes_PlugInsRefreshInterval = 0.25;
MapNotes.MapNotes_Plugin_Updating = {};
 
MapNotes_PlugInFrames = {};
 
---------------------------------------------------------------------------------------------
-- Functions acting as Handlers for Specific PlugIns
-- NOTE That these could be written and included in the other AddOn and don't have to be included
-- in the base of MapNotes
---------------------------------------------------------------------------------------------
 
-- AlphaMap
 
-- AlphaMap Registers its data and functions from within that AddOn itself
-- so see download and look at that AddOn for an example of how AddOns can 'Plug In' to MapNotes functionality
 
 
 
-- Atlas
 
--function Atlas_MN_Query()
-- local key = nil;
-- local mapRaw = AtlasMap:GetTexture();
--
-- if ( mapRaw ) then
-- local i, l = 0; -- note that 'l' is deliberately left 'nil' by this assignment
-- while ( true ) do
-- i = string.find(mapRaw, "\\", i+2);
-- if ( i ) then
-- l = i+1;
-- else
-- break;
-- end
-- end
-- if ( l ) then
-- key = string.sub(mapRaw, l);
-- end
-- end
--
-- return key;
--end
 
--function Atlas_MN_Localiser(key)
-- if ( AtlasText[key] ) then
-- return AtlasText[key].ZoneName;
-- end
--
-- return;
--end
 
 
 
-- ...
 
 
 
---------------------------------------------------------------------------------------------
-- General PlugIn Management
---------------------------------------------------------------------------------------------
 
function MapNotes_LoadPlugIns()
-- Called after Variables are Loaded to initialise all 'natively supported' PlugIns
-- (Which is currently none, as I felt Atlas Plugin code was best moved to its own AddOn)
for index, values in pairs(MAPNOTES_PLUGINS_LIST) do
local plugInFrame = getglobal(values.frame);
if ( plugInFrame ) then
MapNotes_RegisterPlugin(values);
end
end
end
 
function MapNotes_RegisterPlugin(Plugin)
local plugInFrame = getglobal(Plugin.frame);
-- Create a 'control' Frame over the other AddOn's main frame with an OnUpdate function
-- so that we know when the other AddOn's frame IsVisible
local ctrlName = Plugin.frame .."_MNControl";
local ctrl = CreateFrame("Frame", ctrlName, plugInFrame); -- Other AddOn's main frame is Parent so
ctrl:SetScript("OnUpdate", MapNotes_PlugInsOnUpdate); -- so only shows when other AddOn Frame IsVisible()
ctrl.MapNotes_PlugInsMonitorTimer = 0; -- and OnUpdate only executes when visible...
ctrl.MapNotes_PlugInsRefreshTimer = 0;
ctrl:SetAllPoints(plugInFrame);
ctrl.Plugin = Plugin;
ctrl.currentKey = "";
ctrl:SetScript("OnShow", MapNotes_PlugInsDrawNotes);
 
-- Create a Frame equivalent to the WorldMapButton, so that we can register Clicks for
-- note creation
local bttnName = Plugin.frame .."_MNOverlay";
local bttn = CreateFrame("Button", bttnName, plugInFrame);
bttn:SetAllPoints(plugInFrame);
bttn:RegisterForClicks("LeftButtonUp", "RightButtonUp");
bttn:SetScript("OnClick", function()
MapNotes_PlugInsOnClick(this, arg1);
end);
bttn:Hide();
bttn.Plugin = Plugin;
 
-- Create a Frame for the Drawing of Lines
local lineFrameName = Plugin.frame .."_MNLinesFrame";
local lineFrame = CreateFrame("Frame", lineFrameName, plugInFrame);
lineFrame:SetAllPoints(plugInFrame);
lineFrame:SetScript("OnShow", MapNotes_PlugInsOnShow);
 
-- Allow Party notes on any Plugin frame
local p = CreateFrame("Button", Plugin.name .. "PartyNote", plugInFrame, "WorldMapMapNotesMiscTemplate");
p:SetID(-1);
p.note = "party";
p.timer = 0;
p.hAngle = 0;
p.s = 0;
p.c = 0;
p.Plugin = Plugin; -- 29/07/2007
-- If Displaying WorldMap Notes, then create tloc notes
if ( Plugin.wmflag ) then
local t = CreateFrame("Button", Plugin.name .. "tlocNote", plugInFrame, "WorldMapMapNotesMiscTemplate");
t:SetID(0);
t.note = "tloc"; -- 29/07/2007
t.timer = 0;
t.hAngle = 0;
t.s = 0;
t.c = 0;
t.Plugin = Plugin; -- 29/07/2007
end
 
-- Create an entry in a second PlugIn array, so that we can look up a PlugIn's details from the XML Parent of a Note
-- i.e. when we click on a note displayed in another AddOn, we can fetch the name of the Note's Parent Frame, and check
-- this array for the relevant PlugIn details
MapNotes_PlugInFrames[plugInFrame] = Plugin;
 
-- Run the Plugin's associated Initialisation Script if it exists...
if ( Plugin.initFnc ) then
local initFnc = getglobal(Plugin.initFnc);
if ( ( initFnc ) and ( type(initFnc) == "function" ) ) then
initFnc();
end
end
 
-- Store currently registered keys for this plugin
local s, name = nil, nil;
for key in pairs(MapNotes_Data_Notes) do
s = string.find(key, " ");
name = string.sub(key, 1, s-1);
if ( ( name ) and ( name == Plugin.name ) ) then
MapNotes.pluginKeys[key] = Plugin;
end
end
end
 
-- All Plugins are 'Enabled' by default when Registered
-- This only needs to be used after a call to MapNotes_DisablePlugin()
function MapNotes_EnablePlugin(Plugin)
if ( ( Plugin ) and ( MAPNOTES_DISABLED_PLUGINS[ Plugin.name ] ) ) then
MAPNOTES_DISABLED_PLUGINS[ Plugin.name ] = nil;
MapNotes_PlugInsDrawNotes(Plugin);
end
end
 
function MapNotes_DisablePlugin(Plugin)
if ( ( Plugin ) and ( not MAPNOTES_DISABLED_PLUGINS[ Plugin.name ] ) ) then
MAPNOTES_DISABLED_PLUGINS[ Plugin.name ] = true;
local overLay = getglobal( Plugin.frame .."MNOverlay" );
if ( overLay ) then
overLay:Hide();
end
MapNotes_PlugInsDrawNotes(Plugin);
end
end
 
---------------------------------------------------------------------------------------------
-- The following functions are associated and used by ANY/ALL PlugIns, and are 'personalised'
-- to that AddOn by the changing value of "this", and 'local' variables associated with them
-- via dot notation, and passed parameters
-- e.g. "AlphaMapAlphaMapFrame_MNControl.MapNotes_PlugInsTimer" = "this.MapNotes_PlugInsTimer"
---------------------------------------------------------------------------------------------
 
function MapNotes_PlugInsGetKey(Plugin)
if ( Plugin ) then
local keyVal = getglobal(Plugin.keyVal);
if ( type(keyVal) == "function" ) then
local key = keyVal();
if ( key ) then
if ( not Plugin.wmflag ) then -- Allow for Plugins editing real MapNotes
key = (Plugin.name).." "..key; -- which will already be prefixed with "WM "
if ( not MapNotes.pluginKeys[key] ) then MapNotes.pluginKeys[key] = Plugin; end
end -- Otherwise, makes sure its unique per AddOn
return key;
end
end
end
 
return nil;
end
 
 
 
function MapNotes_PlugInsOnUpdate(self, elapsed)
 
local eScale = self:GetEffectiveScale();
if ( self.eScale ~= eScale ) then
self.eScale = eScale;
MapNotes_PlugInsDrawNotes(self.Plugin);
end
 
if ( not MAPNOTES_DISABLED_PLUGINS[ self.Plugin.name ] ) then
-- Default OnUpdate arg1 = elapsed time since last OnUpdate
-- "this" obviously referencing the Frame whose OnUpdate this is being executed for
 
self.MapNotes_PlugInsMonitorTimer = self.MapNotes_PlugInsMonitorTimer + arg1;
if ( self.MapNotes_PlugInsMonitorTimer > MapNotes_PlugInsMonitorInterval ) then
local plugInFrame = self:GetParent();
local plugInOverlay = getglobal( (plugInFrame:GetName()).."_MNOverlay" );
 
-- Toggle a 'mouse interactive' frame that can capture mouse clicks for note creation
-- Check frequently for pressing of Control key
 
if ( IsControlKeyDown() ) then
if ( not plugInOverlay:IsVisible() ) then
plugInOverlay:Show();
end
else
if ( plugInOverlay:IsVisible() ) then
plugInOverlay:Hide();
end
end
 
self.MapNotes_PlugInsMonitorTimer = 0;
end
 
self.MapNotes_PlugInsRefreshTimer = self.MapNotes_PlugInsRefreshTimer + arg1;
if ( self.MapNotes_PlugInsRefreshTimer > MapNotes_PlugInsRefreshInterval ) then
local key = MapNotes_PlugInsGetKey(self.Plugin);
if ( not MapNotes.pluginKeys[key] ) then MapNotes.pluginKeys[key] = Plugin; end
 
-- Check less frequently for a change in the other AddOns Key which will require an update to the displayed MapNotes
-- Can force a 'relatively' quick update of the displayed MapNotes by resetting the value of .currentKey elsewhere.
if ( self.currentKey ~= key ) then
self.currentKey = key;
getglobal(self.Plugin.frame).key = key;
MapNotes_PlugInsDrawNotes(self.Plugin);
end
 
self.MapNotes_PlugInsRefreshTimer = 0;
end
end
end
 
 
 
function MapNotes_PlugInsOnShow()
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 );
end
 
 
 
function MapNotes_PlugInsOnClick(self, mouseButton)
 
-- Default OnClick arg1 = Mouse button clicked
-- "this" obviously being the _MNOverlay frame that was clicked
 
-- local mouseBttn = arg1;
 
if ( mouseButton == "RightButton" ) then -- emulating MapNotes standard functionality
local MapNotes_PlugInFrame = self:GetParent();
local x, y = MapNotes_GetMouseXY(MapNotes_PlugInFrame);
 
if ( IsShiftKeyDown() ) then
if ( self.Plugin.wmflag ) then
MapNotes_SetPartyNote(x, y);
else
local key = MapNotes_PlugInsGetKey(self.Plugin);
MapNotes_SetPartyNote(x, y, key);
MapNotes_PlugInsDrawNotes(self.Plugin);
end
 
elseif ( IsAltKeyDown() ) then -- Telic_Beta_1
if ( self.Plugin.wmflag ) then
MapNotes_ShortCutNote(x, y);
MapNotes_MapUpdate();
else
MapNotes_ShortCutNote(x, y, self.Plugin);
MapNotes_PlugInsDrawNotes(self.Plugin);
end
 
else
local key = MapNotes_PlugInsGetKey(self.Plugin);
 
if ( key ) then
MapNotes:InitialiseDropdown(MapNotes_PlugInFrame, x, y, MapNotes.base_dd_info, key);
ToggleDropDownMenu(1, nil, MapNotes.dd, "cursor", 0, 0);
end
end
end
end
 
 
 
function MapNotes_PlugInsRefresh()
for frame, Plugin in pairs(MapNotes_PlugInFrames) do
if ( frame:IsVisible() ) then
MapNotes_PlugInsDrawNotes(Plugin);
end
end
end
 
 
 
function MapNotes_PlugInsDrawNotes(Plugin)
if ( Plugin.Plugin ) then
Plugin = Plugin.Plugin;
end
 
if ( MapNotes.MapNotes_Plugin_Updating[Plugin.name] ) then
return;
end
 
MapNotes.MapNotes_Plugin_Updating[Plugin.name] = true;
 
local border = ( MapNotes_Options.iFactor / MAPNOTES_DFLT_ICONSIZE ) * MAPNOTES_BORDER;
local lBorder = ( MapNotes_Options.iFactor / MAPNOTES_DFLT_ICONSIZE ) * ( MAPNOTES_BORDER / 2.2);
local nNotes, nLines = 1, 1;
local key = MapNotes_PlugInsGetKey(Plugin);
local plugInFrame = getglobal( Plugin.frame );
local width = plugInFrame:GetWidth();
local height = plugInFrame:GetHeight();
local scalingFactor = MN_ScaleMe(plugInFrame);
 
if ( not plugInFrame:IsVisible() ) then
return;
end
 
if ( key ) then
if ( not MapNotes_Data_Notes[key] ) then
MapNotes_Data_Notes[key] = {};
MapNotes_Data_Lines[key] = {};
end
 
if ( ( MapNotes_Options.shownotes ) and ( not MAPNOTES_DISABLED_PLUGINS[ Plugin.name ] ) ) then
local currentZone = MapNotes_Data_Notes[key];
local currentLineZone = MapNotes_Data_Lines[key];
local POI, POIMininote, POIHighlight, POILastnote, POIName;
local findIn;
 
for i, value in ipairs(currentZone) do
POI = MapNotes_AssignPOI(i, Plugin); -- fetches with getglobal, or creates if doesn't exist yet
POI.key = key;
POI.nid = i;
POI.Plugin = Plugin;
POIName = POI:GetName();
POI:SetScale( scalingFactor );
local xOffset = (currentZone[i].xPos * width) / scalingFactor;
local yOffset = -(currentZone[i].yPos * height) / scalingFactor;
POI:SetUserPlaced(false);
POI:ClearAllPoints();
POI:SetPoint("CENTER", plugInFrame, "TOPLEFT", xOffset, yOffset);
-- Custom
POITexture = getglobal(POIName.."Texture");
POIMininote = getglobal(POIName.."Mininote");
POILastnote = getglobal(POIName.."Lastnote");
POIHighlight = getglobal(POIName.."Highlight");
POITexture:SetTexture(nil);
if ( currentZone[i].customIcon ) then
POITexture:SetTexture( currentZone[i].customIcon );
end
local txtr = POITexture:GetTexture();
if ( not txtr ) then
POITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..currentZone[i].icon);
end
 
findIn = string.lower(value.name);
if ( ( MapNotes_HighlightedNote ~= "" ) and ( string.find( findIn, MapNotes_HighlightedNote ) ) ) then
POIHighlight:Show();
if ( ( findIn == MapNotes_HighlightedNote ) and ( MapNotes_Options[13] ~= "off" ) ) then
-- Custom
POIMininote:Show();
end
-- Custom
elseif ( ( currentZone[i].mininote ) and ( MapNotes_Options[13] ~= "off" ) ) then
POIMininote:Show();
POIHighlight:Hide();
 
else
POIMininote:Hide();
POIHighlight:Hide();
end
 
if MapNotes_Options[currentZone[i].icon] ~= "off" then
if ( ( ( MapNotes_Options[10] ~= "off" ) and ( currentZone[i].creator == UnitName("player") ) )
or ( ( MapNotes_Options[11] ~= "off" ) and ( currentZone[i].creator ~= UnitName("player") ) ) ) then
POI:SetWidth( MapNotes_Options.iFactor );
POIMininote:SetWidth( border );
POI:SetHeight( MapNotes_Options.iFactor );
POIMininote:SetHeight( border );
POI:SetAlpha( MapNotes_Options.aFactor );
POILastnote:Hide();
POI:Show();
end
else
POI:Hide();
end
nNotes = nNotes + 1;
end
 
if ( MapNotes_Options[12] ~= "off" ) then
if ( ( POI ) and ( POI:IsVisible() ) ) then
POILastnote:SetWidth( lBorder );
POILastnote:SetHeight( lBorder );
POILastnote:Show();
end
end
 
if ( currentLineZone ) then
for i, line in ipairs(currentLineZone) do
MapNotes_DrawLine(i, line.x1, line.y1, line.x2, line.y2, Plugin);
nLines = nLines + 1;
end
end
end
end
 
local POI = getglobal( (Plugin.frame) .. "POI" .. nNotes );
while ( POI ) do
POI:Hide();
nNotes = nNotes + 1;
POI = getglobal( (Plugin.frame) .. "POI" .. nNotes );
end
 
local otherLines = getglobal( (Plugin.frame) .. "_MNLinesFrameLines_" .. nLines );
while ( otherLines ) do
otherLines:Hide();
nLines = nLines + 1;
otherLines = getglobal( (Plugin.frame) .. "_MNLinesFrameLines_" .. nLines );
end
 
-- tloc button
local tlocNote = getglobal(Plugin.name .. "tlocNote");
if ( tlocNote ) then
if ( ( MapNotes_tloc_xPos ) and ( MapNotes_tloc_key == key ) ) then
local tlocNoteTexture = getglobal(Plugin.name .. "tlocNoteTexture");
local tlocNoteMininote = getglobal(Plugin.name .. "tlocNoteMininote");
if ( tlocNoteTexture ) then
tlocNoteTexture:SetTexture(nil);
if ( MN_TLOC_ICON ) then
tlocNoteTexture:SetTexture(MN_TLOC_ICON);
end
local txtr = tlocNoteTexture:GetTexture();
if ( not txtr ) then
if ( MN_TLOC_ICON ) then MN_TLOC_ICON = nil; end
tlocNoteTexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
end
end
if ( ( MapNotes_Options[13] ~= "off" ) and ( MapNotes_MiniNote_Data.icon == "tloc" ) ) then
tlocNoteMininote:SetWidth( border );
tlocNoteMininote:SetHeight( border );
tlocNoteMininote:Show();
tlocNoteMininote.key = key;
tlocNoteMininote.nid = 0;
else
tlocNoteMininote:Hide();
end
tlocNote:SetScale( scalingFactor );
xOffset = ( MapNotes_tloc_xPos * width ) / scalingFactor;
yOffset = ( -MapNotes_tloc_yPos * height ) / scalingFactor;
tlocNote:SetPoint("CENTER", Plugin.frame, "TOPLEFT", xOffset, yOffset);
tlocNote:SetWidth( MapNotes_Options.iFactor );
tlocNote:SetHeight( MapNotes_Options.iFactor );
tlocNote:SetAlpha( MapNotes_Options.aFactor );
tlocNote:Show();
tlocNote.key = key;
tlocNote.nid = 0;
else
tlocNote:Hide();
end
end
 
-- party note
local partyNote = getglobal(Plugin.name .. "PartyNote");
if ( partyNote ) then
if ( ( MapNotes_PartyNoteData.xPos ) and ( key == MapNotes_PartyNoteData.key ) ) then --Telic_5
local partyNoteTexture = getglobal(Plugin.name .. "PartyNoteTexture");
local partyNoteMininote = getglobal(Plugin.name .. "PartyNoteMininote");
partyNoteTexture:SetTexture(nil);
if ( MN_PARTY_ICON ) then -- 5.60
partyNoteTexture:SetTexture(MN_PARTY_ICON); -- 5.60
end
local txtr = partyNoteTexture:GetTexture();
if ( not txtr ) then -- 5.60
if ( MN_PARTY_ICON ) then MN_PARTY_ICON = nil; end
partyNoteTexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
end
if MapNotes_Options[13] ~= "off" and MapNotes_MiniNote_Data.icon == "party" then
partyNoteMininote:SetWidth( border );
partyNoteMininote:SetHeight( border );
partyNoteMininote:Show();
partyNoteMininote.key = key;
partyNoteMininote.nid = -1;
partyNoteMininote.Plugin = Plugin;
else
partyNoteMininote:Hide();
end
partyNote:SetScale( scalingFactor );
xOffset = (MapNotes_PartyNoteData.xPos * width) / scalingFactor;
yOffset = (-MapNotes_PartyNoteData.yPos * height) / scalingFactor;
partyNote:SetPoint("CENTER", Plugin.frame, "TOPLEFT", xOffset, yOffset);
partyNote:SetWidth( MapNotes_Options.iFactor );
partyNote:SetHeight( MapNotes_Options.iFactor );
partyNote:SetAlpha( MapNotes_Options.aFactor );
partyNote:Show();
partyNote.key = key;
partyNote.nid = -1;
partyNote.Plugin = Plugin;
else
partyNote:Hide();
end
end
 
if ( ( Plugin.wmflag ) and ( not MapNotesFU_Drawing ) ) then
MapNotes_MapUpdate();
end
 
MapNotes.MapNotes_Plugin_Updating[Plugin.name] = nil;
end
 
 
MapNotes/localization.tw.lua New file
0,0 → 1,151
--
-- MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
--
-- See the README file for more information.
--
 
-- English is the default localization for MapNotes
if (GetLocale()=="zhTW") then
 
-- General
MAPNOTES_NAME = "MapNotes"
MAPNOTES_ADDON_DESCRIPTION = "Adds a note system to the WorldMap."
MAPNOTES_DOWNLOAD_SITES = "See README for download sites"
 
-- Interface Configuration
MAPNOTES_WORLDMAP_HELP_1 = "使用右鍵拉遠地圖"
MAPNOTES_WORLDMAP_HELP_2 = "使用左鍵拉近地圖"
MAPNOTES_WORLDMAP_HELP_3 = "在地圖上使用「Control + 右鍵」以開啟地圖標記選單"
MAPNOTES_CLICK_ON_SECOND_NOTE = "|cFFFF0000地圖標記:|r 選擇第二個標記以畫出/清除一條線"
 
MAPNOTES_NEW_MENU = "地圖標記";
MAPNOTES_NEW_NOTE = "創建標記";
MAPNOTES_MININOTE_OFF = "關閉小地圖上的標記";
MAPNOTES_OPTIONS = "選項";
MAPNOTES_CANCEL = "取消";
 
MAPNOTES_POI_MENU = "地圖標記";
MAPNOTES_EDIT_NOTE = "編輯標記";
MAPNOTES_MININOTE_ON = "設置為小地圖標記";
MAPNOTES_SPECIAL_ACTIONS = "特殊操作";
MAPNOTES_SEND_NOTE = "發送標記";
 
MAPNOTES_SPECIALACTION_MENU = "特殊操作";
MAPNOTES_TOGGLELINE = "切換線條";
MAPNOTES_DELETE_NOTE = "刪除標記";
 
MAPNOTES_EDIT_MENU = "編輯標記";
MAPNOTES_SAVE_NOTE = "保存";
MAPNOTES_EDIT_TITLE = "標題 (必填):";
MAPNOTES_EDIT_INFO1 = "信息行 1 (可選):";
MAPNOTES_EDIT_INFO2 = "信息行 2 (可選):";
MAPNOTES_EDIT_CREATOR = "創建者 (可選):"
 
MAPNOTES_SEND_MENU = "發送標記";
MAPNOTES_SLASHCOMMAND = "改變模式";
MAPNOTES_SEND_TITLE = "發送標記:";
MAPNOTES_SEND_TIP = "這些標記可以被其他地圖標記使用者接收\n('發送給隊友'功能必須配合MapNotes(Fan's Update)才可使用)";
MAPNOTES_SEND_PLAYER = "輸入玩家名字:";
MAPNOTES_SENDTOPLAYER = "發送給玩家";
MAPNOTES_SENDTOPARTY = "發送給隊友";
MAPNOTES_SENDTOPARTY_TIP = "Left Click to Party\nRight Click to Raid";
MAPNOTES_SHOWSEND = "改變模式";
MAPNOTES_SEND_SLASHTITLE = "得到斜線命令:";
MAPNOTES_SEND_SLASHTIP = "選中這些並使用 CTRL+C 復制到剪切板\n(之後可以將它進行上傳論壇等處理)";
MAPNOTES_SEND_SLASHCOMMAND = "/Command:";
 
MAPNOTES_OPTIONS_MENU = "選項";
MAPNOTES_SAVE_OPTIONS = "保存";
MAPNOTES_OWNNOTES = "顯示自己建立的標記";
MAPNOTES_OTHERNOTES = "顯示收到的標記";
MAPNOTES_HIGHLIGHT_LASTCREATED = "高亮提示最後建立的標記為|cFFFF0000紅色|r";
MAPNOTES_HIGHLIGHT_MININOTE = "高亮提示最後選擇為小地圖標記的標記為|cFF6666FF藍色|r";
MAPNOTES_ACCEPTINCOMING = "接受其他玩家傳入的標記";
MAPNOTES_INCOMING_CAP = "Decline notes if they would leave less than 5 notes free";
MAPNOTES_AUTOPARTYASMININOTE = "自動將團隊標記設為小地圖標記."
 
MAPNOTES_CREATEDBY = "創建人:";
MAPNOTES_CHAT_COMMAND_ENABLE_INFO = "這個命令允許你插入從其他地方得到的標記(如網頁).";
MAPNOTES_CHAT_COMMAND_ONENOTE_INFO = "忽略選項設置, 使你可以接收下一個傳入的標記.";
MAPNOTES_CHAT_COMMAND_MININOTE_INFO = "將下一個傳入的標記直接設置為小地圖標記 (同時在地圖上插入標記):";
MAPNOTES_CHAT_COMMAND_MININOTEONLY_INFO = "將下一個傳入的標記僅設置為小地圖標記 (不在地圖上插入標記).";
MAPNOTES_CHAT_COMMAND_MININOTEOFF_INFO = "關閉小地圖標記.";
MAPNOTES_CHAT_COMMAND_MNTLOC_INFO = "在地圖上創建 tloc 標記.";
MAPNOTES_CHAT_COMMAND_QUICKNOTE = "在地圖上創建當前位置的標記.";
MAPNOTES_CHAT_COMMAND_QUICKTLOC = "在當前區域地圖上創建一個 tloc 制定位置的標記.";
MAPNOTES_CHAT_COMMAND_IMPORT_METAMAP = "Imports MetaMapNotes. Intended for people migrating to MapNotes.\nMetaMap must be Installed and Enabled for the command to work. Then Un-Install MetaMap.\nWARNING : Intended for new users. May over-write existing notes."; --Telic_4
MAPNOTES_CHAT_COMMAND_IMPORT_ALPHAMAP = "Import AlphaMap's Instance Notes : Requires AlphaMap (Fan's Update) to be Installed and Enabled"; --Telic_4
MAPNOTES_MAPNOTEHELP = "這個命令只能用來創建標記";
MAPNOTES_ONENOTE_OFF = "允許一個標記傳入: 關閉";
MAPNOTES_ONENOTE_ON = "允許一個標記傳入: 打開";
MAPNOTES_MININOTE_SHOW_0 = "下一個傳入標記作為小地圖標記: 關閉";
MAPNOTES_MININOTE_SHOW_1 = "下一個傳入標記作為小地圖標記: 打開";
MAPNOTES_MININOTE_SHOW_2 = "下一個傳入標記作為小地圖標記: 僅小地圖標記";
MAPNOTES_DECLINE_SLASH = "無法增加,太多標記在 |cFFFFD100%s|r.";
MAPNOTES_DECLINE_SLASH_NEAR = "無法增加, 這個標記太接近 |cFFFFD100%q|r 在 |cFFFFD100%s|r.";
MAPNOTES_DECLINE_GET = "無法接收 |cFFFFD100%s|r傳入的標記: 太多標記在 |cFFFFD100%s|r, 或設置中禁止接收該標記.";
MAPNOTES_ACCEPT_SLASH = "標記增加到了 |cFFFFD100%s|r 的地圖上.";
MAPNOTES_ACCEPT_GET = "你接收到一個從 |cFFFFD100%s|r 發來的標記在 |cFFFFD100%s|r.";
MAPNOTES_PARTY_GET = "|cFFFFD100%s|r 在 |cFFFFD100%s|r設置了一個新的團隊標記.";
MAPNOTES_DECLINE_NOTETONEAR = "|cFFFFD100%s|r 試圖給你發送一個在 |cFFFFD100%s|r 的標記, 但是它太接近 |cFFFFD100%q|r 了.";
MAPNOTES_QUICKNOTE_NOTETONEAR = "無法創建標記. 你太接近 |cFFFFD100%s|r 了.";
MAPNOTES_QUICKNOTE_NOPOSITION = "無法創建標記: 無法得到當前位置.";
MAPNOTES_QUICKNOTE_DEFAULTNAME = "快速標記";
MAPNOTES_QUICKNOTE_OK = "在地圖 |cFFFFD100%s|r 上創建標記.";
MAPNOTES_QUICKNOTE_TOOMANY = "已經有太多標記在 |cFFFFD100%s|r 的地圖上了.";
MAPNOTES_DELETED_BY_NAME = "已刪除所有由 %s 以及 %s 所創建的地圖標記."
MAPNOTES_DELETED_BY_CREATOR = "已刪除所有由 %s 所建立的地圖標記."
MAPNOTES_QUICKTLOC_NOTETONEAR = "無法創建標記. 位置太接近標記 |cFFFFD100%s|r 了.";
MAPNOTES_QUICKTLOC_NOZONE = "無法創建標記: 無法得到當前區域.";
MAPNOTES_QUICKTLOC_NOARGUMENT = "用法: '/quicktloc xx,yy [icon] [title]'.";
MAPNOTES_SETMININOTE = "將標記設置為新的小地圖標記";
MAPNOTES_THOTTBOTLOC = "Thottbot 坐標";
MAPNOTES_PARTYNOTE = "團隊標記";
 
MAPNOTES_CONVERSION_COMPLETE = MAPNOTES_VERSION.." - 轉換完畢,請勿重複執行這個指令."
 
MAPNOTES_TRUNCATION_WARNING = "The Note Text being Sent had to be truncated"; -- ??
 
MAPNOTES_IMPORT_REPORT = " Notes Imported"; -- ??
MAPNOTES_NOTESFOUND = " Note(s) Found"; -- ??
 
-- Drop Down Menu
MAPNOTES_SHOWNOTES = "顯示標記";
MAPNOTES_DROPDOWNTITLE = "地圖標記";
MAPNOTES_DROPDOWNMENUTEXT = "快速標記";
 
MAPNOTES_WARSONGGULCH = "戰歌峽谷";
MAPNOTES_ALTERACVALLEY = "奧特蘭克山谷";
MAPNOTES_ARATHIBASIN = "阿拉希盆地";
MAPNOTES_NETHERSTORM = "Eye of the Storm";
 
MAPNOTES_COSMIC = "Cosmic";
 
 
-- Coordinates
MAPNOTES_MAP_COORDS = "Map Coords";
MAPNOTES_MINIMAP_COORDS = "Minimap Coords";
 
 
-- MapNotes Target & Merging
MAPNOTES_MERGED = "MapNote Merged for : ";
MAPNOTES_MERGE_DUP = "MapNote already exists for : ";
MAPNOTES_MERGE_WARNING = "You must have something targetted to merge notes.";
 
BINDING_HEADER_MAPNOTES = "MapNotes";
BINDING_NAME_MN_TARGET_NEW = "QuickNote/TargetNote";
BINDING_NAME_MN_TARGET_MERGE = "Merge Target Note";
 
MN_LEVEL = "Level";
 
-- Magellan Style LandMarks
MAPNOTES_LANDMARKS = "Landmarks"; -- Landmarks, as in POI, or Magellan
MAPNOTES_LANDMARKS_CHECK = "Auto-MapNote "..MAPNOTES_LANDMARKS;
MAPNOTES_DELETELANDMARKS = "Delete "..MAPNOTES_LANDMARKS;
MAPNOTES_MAGELLAN = "(~Magellan)";
MAPNOTES_LM_CREATED = " MapNotes Created in ";
MAPNOTES_LM_MERGED = " MapNotes Merged in ";
MAPNOTES_LM_SKIPPED = " MapNotes not Noted in ";
MAPNOTES_LANDMARKS_NOTIFY = MAPNOTES_LANDMARKS.." Noted in ";
 
end
\ No newline at end of file
MapNotes/MapNotesConstants.lua New file
0,0 → 1,706
--[[
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
]]
 
MAPNOTES_VERSION = "5.11.30000";
MAPNOTES_EDITION = "Fan's Update";
 
MN_DEFAULT_SCALE = 0.75;
MN_DEFAULT_ISCALE = 16;
MN_DEFAULT_ASCALE = 1;
 
-- Commands
MAPNOTES_ENABLE_COMMANDS = { "/mapnote", "/mapnotes", "/mn" };
MAPNOTES_ONENOTE_COMMANDS = { "/onenote", "/allowonenote", "/aon", "/mn1" };
MAPNOTES_MININOTE_COMMANDS = { "/nextmininote", "/nmn", "/mnmn" };
MAPNOTES_MININOTEONLY_COMMANDS = { "/nextmininoteonly", "/nmno", "/mnmn1" };
MAPNOTES_MININOTEOFF_COMMANDS = { "/mininoteoff", "/mno", "/mnmn0" };
MAPNOTES_MNTLOC_COMMANDS = { "/mntloc" }
MAPNOTES_QUICKNOTE_COMMANDS = { "/quicknote", "/qnote", "/mnq" };
MAPNOTES_QUICKTLOC_COMMANDS = { "/quicktloc", "/qtloc", "/mnqtloc" };
MAPNOTES_SEARCH_COMMANDS = { "/mnsearch", "/mns" };
MAPNOTES_HLIGHT_COMMANDS = { "/mnhighlight", "/mnhl" };
MAPNOTES_MINICOORDS_COMMANDS = { "/mnminic" };
MAPNOTES_MAPCOORDS_COMMANDS = { "/mnmapc" };
MAPNOTES_NTARGET_COMMANDS = { "/mnt" };
MAPNOTES_MTARGET_COMMANDS = { "/mnm" };
MAPNOTES_WFC_COMMANDS = { "/tloc", "/thottbottloc" };
-- Import Commands
MAPNOTES_IMPORT_METAMAP = { "/MapNotes_Import_MetaMap" }; --Telic_4
MAPNOTES_IMPORT_ALPHAMAP = { "/MapNotes_Import_AlphaMap" }; --Telic_4
MAPNOTES_IMPORT_ALPHAMAPBG = { "/MapNotes_Import_AlphaMapBG" }; --Telic_4
MAPNOTES_IMPORT_CTMAPMOD = { "/MapNotes_Import_CTMapMod" }; --Telic_4
 
MAPNOTES_DFLT_ICONSIZE = 18;
MAPNOTES_BORDER = 46;
 
MapNotes_Mininote_UpdateRate = 0.01; -- Update rate required when a 'child' of Minimap, is less than 0.03 !!!
-- so moved the parent of the OnUpdate Function to the UI - buttons still
-- children of Minimap obviously
-- 5.60 - To provide for sufficient performance for Rotating Minimap support
-- this has been put back to a Minimap level OnUpdate, and a value of similar
-- magnitude to the original
MapNotes_WorldMap_UpdateRate = 0.1;
MapNotes_MinDiff = 7;
MAPNOTES_MAXLINES = 100;
 
MN_COORD_FS = {
[0] = "%d, %d",
[1] = "%.1f, %.1f",
[2] = "%.2f, %.2f",
};
MN_COORD_F = 1;
 
MAPNOTES_BASEKEYS = {
["WM LochModan"] = {
["miniData"] = {
["scale"] = 0.07839152145224,
["xOffset"] = 0.51118749188138,
["yOffset"] = 0.50940913489577,
},
},
["WM BurningSteppes"] = {
["miniData"] = {
["scale"] = 0.08321525646393001,
["xOffset"] = 0.04621224670174,
["yOffset"] = 0.61780780524905,
},
},
["WM Moonglade"] = {
["miniData"] = {
["scale"] = 0.06292695969921,
["xOffset"] = 0.50130287793373,
["yOffset"] = 0.17560823085517,
},
},
["WM Barrens"] = {
["miniData"] = {
["scale"] = 0.27539211944292,
["xOffset"] = 0.3924934733345,
["yOffset"] = 0.45601063260257,
},
},
["WM Winterspring"] = {
["miniData"] = {
["scale"] = 0.19293573573141,
["xOffset"] = 0.47237382938446,
["yOffset"] = 0.17390990272233,
},
},
["WM Ogrimmar"] = {
["miniData"] = {
["scale"] = 0.03811449638057,
["xOffset"] = 0.56378554142668,
["yOffset"] = 0.42905218646258,
},
},
["WM Westfall"] = {
["miniData"] = {
["scale"] = 0.09943208435841,
["xOffset"] = 0.36884571674582,
["yOffset"] = 0.71874918595783,
},
},
["WM Badlands"] = {
["miniData"] = {
["scale"] = 0.07066771883566,
["xOffset"] = 0.51361415033147,
["yOffset"] = 0.56915717993261,
},
},
["WM Darkshore"] = {
["miniData"] = {
["scale"] = 0.17799008894522,
["xOffset"] = 0.38383175154516,
["yOffset"] = 0.18206216123156,
},
},
["WM Undercity"] = {
["miniData"] = {
["scale"] = 0.02727719546939,
["xOffset"] = 0.4297399924566,
["yOffset"] = 0.23815358517831,
},
},
["WM Dalaran1"] = {
["miniData"] = {
["scale"] = 0.02727719546939,
["xOffset"] = 0.4297399924566,
["yOffset"] = 0.23815358517831,
},
},
["WM Dalaran2"] = {
["miniData"] = {
["scale"] = 0.02727719546939,
["xOffset"] = 0.4297399924566,
["yOffset"] = 0.23815358517831,
},
},
["WM Desolace"] = {
["miniData"] = {
["scale"] = 0.12219839120669,
["xOffset"] = 0.34873187115693,
["yOffset"] = 0.50331046935371,
},
},
["WM Tanaris"] = {
["miniData"] = {
["scale"] = 0.18750104661175,
["xOffset"] = 0.46971301480866,
["yOffset"] = 0.76120931364891,
},
},
["WM Durotar"] = {
["miniData"] = {
["scale"] = 0.1436829497008,
["xOffset"] = 0.5170978270910001,
["yOffset"] = 0.44802818134926,
},
},
["WM Silithus"] = {
["miniData"] = {
["scale"] = 0.18885969712845,
["xOffset"] = 0.33763582469211,
["yOffset"] = 0.7581522495192899,
},
},
["WM SwampOfSorrows"] = {
["miniData"] = {
["scale"] = 0.06516347991404001,
["xOffset"] = 0.5176979527207,
["yOffset"] = 0.7281597470161501,
},
},
["WM StonetalonMountains"] = {
["miniData"] = {
["scale"] = 0.13272833611061,
["xOffset"] = 0.37556627748617,
["yOffset"] = 0.40285135292988,
},
},
["WM Darnassis"] = {
["miniData"] = {
["scale"] = 0.02876626176374,
["xOffset"] = 0.38392150175204,
["yOffset"] = 0.10441296545475,
},
},
["WM Alterac"] = {
["miniData"] = {
["scale"] = 0.07954563533736,
["xOffset"] = 0.43229874660542,
["yOffset"] = 0.25425926375262,
},
},
["WM SearingGorge"] = {
["miniData"] = {
["scale"] = 0.06338794005822999,
["xOffset"] = 0.46372051266487,
["yOffset"] = 0.5781237938250901,
},
},
["WM AlteracValley"] = {
["miniData"] = {
["scale"] = 0.13,
["xOffset"] = 0.41757282062541,
["yOffset"] = 0.33126468682991,
},
},
["WM Hilsbrad"] = {
["miniData"] = {
["scale"] = 0.09090931690055,
["xOffset"] = 0.4242436124746,
["yOffset"] = 0.30113436864162,
},
},
["WM Wetlands"] = {
["miniData"] = {
["scale"] = 0.11745423014662,
["xOffset"] = 0.46561438951659,
["yOffset"] = 0.40971063365152,
},
},
["WM Duskwood"] = {
["miniData"] = {
["scale"] = 0.07670475476181,
["xOffset"] = 0.43087243362495,
["yOffset"] = 0.73224350550454,
},
},
["WM ThousandNeedles"] = {
["miniData"] = {
["scale"] = 0.1195658287792,
["xOffset"] = 0.47554411191734,
["yOffset"] = 0.6834235638965001,
},
},
["WM WesternPlaguelands"] = {
["miniData"] = {
["scale"] = 0.12215946583965,
["xOffset"] = 0.44270955019641,
["yOffset"] = 0.17471356786018,
},
},
["WM Ashenvale"] = {
["miniData"] = {
["scale"] = 0.15670371525706,
["xOffset"] = 0.41757282062541,
["yOffset"] = 0.33126468682991,
},
},
["WM Teldrassil"] = {
["miniData"] = {
["scale"] = 0.13836131003639,
["xOffset"] = 0.36011098024729,
["yOffset"] = 0.0394832297921,
},
},
["WM Tirisfal"] = {
["miniData"] = {
["scale"] = 0.12837403412087,
["xOffset"] = 0.36837217317549,
["yOffset"] = 0.15464954319582,
},
},
["WM Mulgore"] = {
["miniData"] = {
["scale"] = 0.13960673216274,
["xOffset"] = 0.40811854919226,
["yOffset"] = 0.53286226907346,
},
},
["WM Ironforge"] = {
["miniData"] = {
["scale"] = 0.02248317426784,
["xOffset"] = 0.47481923366335,
["yOffset"] = 0.51289242617182,
},
},
["WM Felwood"] = {
["miniData"] = {
["scale"] = 0.15625084006464,
["xOffset"] = 0.41995800144849,
["yOffset"] = 0.23097545880609,
},
},
["WM Silverpine"] = {
["miniData"] = {
["scale"] = 0.11931848806212,
["xOffset"] = 0.3565350229009,
["yOffset"] = 0.24715695496522,
},
},
["WM Aszhara"] = {
["miniData"] = {
["scale"] = 0.13779501505279,
["xOffset"] = 0.5528203691804901,
["yOffset"] = 0.30400571307545,
},
},
["WM Hinterlands"] = {
["miniData"] = {
["scale"] = 0.10937523495111,
["xOffset"] = 0.49929119700867,
["yOffset"] = 0.25567971676068,
},
},
["WM ArathiBasin"] = {
["miniData"] = {
["scale"] = 0.045,
["xOffset"] = 0.41757282062541,
["yOffset"] = 0.33126468682991,
},
},
["WM UngoroCrater"] = {
["miniData"] = {
["scale"] = 0.10054401185671,
["xOffset"] = 0.4492759445152,
["yOffset"] = 0.7649457362940501,
},
},
["WM Stormwind"] = {
["miniData"] = {
["scale"] = 0.03819701270887,
["xOffset"] = 0.41531450060561,
["yOffset"] = 0.67097280492581,
},
},
["WM Elwynn"] = {
["miniData"] = {
["scale"] = 0.09860350595046,
["xOffset"] = 0.41092682316676,
["yOffset"] = 0.65651531970162,
},
},
["WM Redridge"] = {
["miniData"] = {
["scale"] = 0.06170112311456,
["xOffset"] = 0.49917278340928,
["yOffset"] = 0.68359285304999,
},
},
["WM EasternPlaguelands"] = {
["miniData"] = {
["scale"] = 0.10996723642661,
["xOffset"] = 0.51663255550387,
["yOffset"] = 0.15624753972085,
},
},
["WM DunMorogh"] = {
["miniData"] = {
["scale"] = 0.13991525534426,
["xOffset"] = 0.40335096278072,
["yOffset"] = 0.48339696712179,
},
},
["WM DeadwindPass"] = {
["miniData"] = {
["scale"] = 0.07102298961531001,
["xOffset"] = 0.47822105868635,
["yOffset"] = 0.7386355504851601,
},
},
["WM Feralas"] = {
["miniData"] = {
["scale"] = 0.18885970960818,
["xOffset"] = 0.31589651244686,
["yOffset"] = 0.61820581746798,
},
},
["WM BlastedLands"] = {
["miniData"] = {
["scale"] = 0.09517074521836,
["xOffset"] = 0.48982154167011,
["yOffset"] = 0.7684651998651,
},
},
["WM WarsongGulch"] = {
["miniData"] = {
["scale"] = 0.035,
["xOffset"] = 0.41757282062541,
["yOffset"] = 0.33126468682991,
},
},
["WM Arathi"] = {
["miniData"] = {
["scale"] = 0.10227310921644,
["xOffset"] = 0.47916793249546,
["yOffset"] = 0.32386170078419,
},
},
["WM NetherstormArena"] = {
["miniData"] = {
["scale"] = 0.10227310921644,
["xOffset"] = 0.47916793249546,
["yOffset"] = 0.32386170078419,
},
},
["WM StrandoftheAncients"] = {
["miniData"] = {
["scale"] = 0.10227310921644,
["xOffset"] = 0.47916793249546,
["yOffset"] = 0.32386170078419,
},
},
["WM ScarletEnclave"] = {
["miniData"] = {
["scale"] = 0.10227310921644,
["xOffset"] = 0.47916793249546,
["yOffset"] = 0.32386170078419,
},
},
["WM Dustwallow"] = {
["miniData"] = {
["scale"] = 0.14266384095509,
["xOffset"] = 0.49026338351379,
["yOffset"] = 0.60461876174686,
},
},
["WM Stranglethorn"] = {
["miniData"] = {
["scale"] = 0.18128603034401,
["xOffset"] = 0.39145470225916,
["yOffset"] = 0.79412224886668,
},
},
["WM ThunderBluff"] = {
["miniData"] = {
["scale"] = 0.02836291430658,
["xOffset"] = 0.44972878210917,
["yOffset"] = 0.55638479002362,
}
},
["WM ShattrathCity"] = {
["miniData"] = {
["scale"] = 0.03811449638057,
["xOffset"] = 0.56378554142668,
["yOffset"] = 0.42905218646258,
}
},
["WM EversongWoods"] = {
["miniData"] = {
["scale"] = 0.13991525534426,
["xOffset"] = 0.40335096278072,
["yOffset"] = 0.48339696712179,
}
},
["WM Zangarmarsh"] = {
["miniData"] = {
["scale"] = 0.13991525534426,
["xOffset"] = 0.40335096278072,
["yOffset"] = 0.48339696712179,
}
},
["WM Nagrand"] = {
["miniData"] = {
["scale"] = 0.13991525534426,
["xOffset"] = 0.40335096278072,
["yOffset"] = 0.48339696712179,
}
},
["WM Netherstorm"] = {
["miniData"] = {
["scale"] = 0.13991525534426,
["xOffset"] = 0.40335096278072,
["yOffset"] = 0.48339696712179,
}
},
["WM BloodmystIsle"] = {
["miniData"] = {
["scale"] = 0.13991525534426,
["xOffset"] = 0.40335096278072,
["yOffset"] = 0.48339696712179,
}
},
["WM Hellfire"] = {
["miniData"] = {
["scale"] = 0.13991525534426,
["xOffset"] = 0.40335096278072,
["yOffset"] = 0.48339696712179,
}
},
["WM TheExodar"] = {
["miniData"] = {
["scale"] = 0.03811449638057,
["xOffset"] = 0.56378554142668,
["yOffset"] = 0.42905218646258,
}
},
["WM ShadowmoonValley"] = {
["miniData"] = {
["scale"] = 0.13991525534426,
["xOffset"] = 0.40335096278072,
["yOffset"] = 0.48339696712179,
}
},
["WM TerokkarForest"] = {
["miniData"] = {
["scale"] = 0.13991525534426,
["xOffset"] = 0.40335096278072,
["yOffset"] = 0.48339696712179,
}
},
["WM Ghostlands"] = {
["miniData"] = {
["scale"] = 0.13991525534426,
["xOffset"] = 0.40335096278072,
["yOffset"] = 0.48339696712179,
}
},
["WM BladesEdgeMountains"] = {
["miniData"] = {
["scale"] = 0.13991525534426,
["xOffset"] = 0.40335096278072,
["yOffset"] = 0.48339696712179,
}
},
["WM AzuremystIsle"] = {
["miniData"] = {
["scale"] = 0.13991525534426,
["xOffset"] = 0.40335096278072,
["yOffset"] = 0.48339696712179,
}
},
["WM SilvermoonCity"] = {
["miniData"] = {
["scale"] = 0.03811449638057,
["xOffset"] = 0.56378554142668,
["yOffset"] = 0.42905218646258,
}
},
};
 
MapNotes_CityConst = {
[0] = {
["cityScale"] = 1.565,
},
[1] = {
["cityScale"] = 1.687,
},
[2] = {
["cityScale"] = 1.882,
},
[3] = {
["cityScale"] = 2.210,
},
[4] = {
["cityScale"] = 2.575,
},
[5] = {
["cityScale"] = 2.651,
}
};
 
MapNotes_MiniConst = {
[1] = {
[0] = {
["xScale"] = 11016.6,
["yScale"] = 7399.9,
},
[1] = {
["xScale"] = 12897.3,
["yScale"] = 8638.1,
},
[2] = {
["xScale"] = 15478.8,
["yScale"] = 10368.0,
},
[3] = {
["xScale"] = 19321.8,
["yScale"] = 12992.7,
},
[4] = {
["xScale"] = 25650.4,
["yScale"] = 17253.2,
},
[5] = {
["xScale"] = 38787.7,
["yScale"] = 26032.1,
}
},
[2] = {
[0] = {
["xScale"] = 10448.3,
["yScale"] = 7072.7,
},
[1] = {
["xScale"] = 12160.5,
["yScale"] = 8197.8,
},
[2] = {
["xScale"] = 14703.1,
["yScale"] = 9825.0,
},
[3] = {
["xScale"] = 18568.7,
["yScale"] = 12472.2,
},
[4] = {
["xScale"] = 24390.3,
["yScale"] = 15628.5,
},
[5] = {
["xScale"] = 37012.2,
["yScale"] = 25130.6,
}
},
[3] = {
[0] = {
["xScale"] = 10448.3,
["yScale"] = 7072.7,
},
[1] = {
["xScale"] = 12160.5,
["yScale"] = 8197.8,
},
[2] = {
["xScale"] = 14703.1,
["yScale"] = 9825.0,
},
[3] = {
["xScale"] = 18568.7,
["yScale"] = 12472.2,
},
[4] = {
["xScale"] = 24390.3,
["yScale"] = 15628.5,
},
[5] = {
["xScale"] = 37012.2,
["yScale"] = 25130.6,
}
},
[4] = {
[0] = {
["xScale"] = 10448.3,
["yScale"] = 7072.7,
},
[1] = {
["xScale"] = 12160.5,
["yScale"] = 8197.8,
},
[2] = {
["xScale"] = 14703.1,
["yScale"] = 9825.0,
},
[3] = {
["xScale"] = 18568.7,
["yScale"] = 12472.2,
},
[4] = {
["xScale"] = 24390.3,
["yScale"] = 15628.5,
},
[5] = {
["xScale"] = 37012.2,
["yScale"] = 25130.6,
}
},
};
 
MAPNOTES_DEFAULT_MINIDATA = {
["scale"] = 0.15,
["xOffset"] = 0.4,
["yOffset"] = 0.4,
["cont"] = 2,
};
 
MN_MINIMAP_STYLES = {
[1] = "SQUARE",
[2] = "CORNER-TOPRIGHT",
[3] = "CORNER-BOTTOMRIGHT",
[4] = "CORNER-BOTTOMLEFT",
[5] = "CORNER-TOPLEFT",
[6] = "SIDE-RIGHT",
[7] = "SIDE-BOTTOM",
[8] = "SIDE-LEFT",
[9] = "SIDE-TOP",
[10] = "TRICORNER-TOPRIGHT",
[11] = "TRICORNER-BOTTOMRIGHT",
[12] = "TRICORNER-BOTTOMLEFT",
[13] = "TRICORNER-TOPLEFT",
[14] = "CIRCULAR",
};
 
MN_AUTO_MINIMAPS = {
["SQUARE"] = { true, true, true, true },
 
["CORNER-TOPRIGHT"] = { false, true, true, true },
["CORNER-BOTTOMRIGHT"] = { true, false, true, true },
["CORNER-BOTTOMLEFT"] = { true, true, true, false },
["CORNER-TOPLEFT"] = { true, true, false, true },
 
["SIDE-RIGHT"] = { false, false, true, true },
["SIDE-BOTTOM"] = { true, false, true, false },
["SIDE-LEFT"] = { true, true, false, false },
["SIDE-TOP"] = { false, true, false, true },
 
["TRICORNER-TOPRIGHT"] = { true, false, false, false },
["TRICORNER-BOTTOMRIGHT"] = { false, true, false, false },
["TRICORNER-BOTTOMLEFT"] = { false, false, false, true },
["TRICORNER-TOPLEFT"] = { false, false, true, false },
 
["CIRUCULAR"] = { false, false, false, false },
};
MapNotes/MapNotesMiniNoteFrame.xml New file
0,0 → 1,237
<!--
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
-->
 
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/FrameXML/UI.xsd">
 
<Button name="MapNotesPOIButtonTemplate" enableMouse="true" movable="true" virtual="true">
<Size>
<AbsDimension x="18" y="18"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="$parentMininote" file="Interface\AddOns\MapNotes\MiscGFX\BaW" hidden="true">
<Size>
<AbsDimension x="19" y="19"/>
</Size>
<Anchors>
<Anchor point="CENTER">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
<Layer level="ARTWORK">
<Texture name="$parentLastnote" file="Interface\AddOns\MapNotes\MiscGFX\Lastnote" hidden="true">
<Size>
<AbsDimension x="19" y="19"/>
</Size>
<Anchors>
<Anchor point="CENTER">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
<Layer level="OVERLAY">
<Texture name="$parentTexture" file="" setAllPoints="true"/>
<Texture name="$parentHighlight" file="Interface\AddOns\MapNotes\MiscGFX\Highlight" hidden="true">
<Size>
<AbsDimension x="22" y="22"/>
</Size>
<Anchors>
<Anchor point="CENTER">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
self:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnShow>
self:SetFrameLevel(self:GetParent():GetFrameLevel() + 3);
self.hAngle = 0;
self.s = 0;
self.c = 0;
self.timer = 0;
</OnShow>
<OnMouseDown>
if ( ( IsControlKeyDown() ) and ( IsAltKeyDown() ) and ( arg1 == "LeftButton" ) ) then
self.isMoving = true;
MapNotes_RememberPosition(self:GetID());
self:StartMoving();
end
</OnMouseDown>
<OnMouseUp>
if ( self.isMoving ) then
self:StopMovingOrSizing();
self.isMoving = false;
MapNotes_RepositionNote(self:GetID());
end
</OnMouseUp>
<OnEnter>
MN_NoteOnEnter(self);
</OnEnter>
<OnLeave>
WorldMapTooltip:Hide();
GameTooltip:Hide();
</OnLeave>
<OnClick>
MapNotes_Note_OnClick(self, arg1);
</OnClick>
<OnUpdate>
MN_NoteUpdate(self, arg1);
</OnUpdate>
</Scripts>
</Button>
 
<Button name="WorldMapMapNotesMiscTemplate" hidden="true" virtual="true">
<Size>
<AbsDimension x="18" y="18"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="$parentMininote" file="Interface\AddOns\MapNotes\MiscGFX\BaW" hidden="true">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="CENTER">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
<Layer level="ARTWORK">
<Texture name="$parentTexture" file="" setAllPoints="true"/>
</Layer>
</Layers>
<Scripts>
<OnLoad>
self:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnEnter>
MN_NoteOnEnter(self);
</OnEnter>
<OnLeave>
GameTooltip:Hide();
WorldMapTooltip:Hide();
</OnLeave>
<OnClick>
MapNotes_Misc_OnClick(self, arg1, self:GetParent());
</OnClick>
<OnUpdate>
MN_NoteUpdate(self, arg1);
</OnUpdate>
</Scripts>
</Button>
<!-- Could try this as a normal frame with OnMouseDown events and a normal texture layer definition -->
<Button name="MN_MiniNotePOITemplate" enableMouse="true" clampedToScreen="true" parent="Minimap" virtual="true">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Scripts>
<OnLoad>
this:SetFrameLevel(5);
this.timeSinceLastUpdate = 0;
<!-- this:RegisterForClicks("LeftButtonUp", "RightButtonUp"); -->
</OnLoad>
<OnShow>
this.timeSinceLastUpdate = 0;
</OnShow>
<OnUpdate>
POI_OnUpdate(arg1, this);
</OnUpdate>
<OnEnter>
MN_NoteOnEnter(self);
</OnEnter>
<OnLeave>
GameTooltip:Hide();
</OnLeave>
<OnMouseUp>
MapNotes_MiniNote_OnClick(self, arg1);
</OnMouseUp>
</Scripts>
<NormalTexture name="$parentTexture" file=""/>
</Button>
 
<!-- enable clicking through hidden player frame that triggers tooltip-->
<Button name="MapNotes_WorldMapPlayerButton" parent="WorldMapPlayer">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnEnter>
WorldMapPlayer:GetScript("OnEnter")(WorldMapPlayer);
</OnEnter>
<OnLeave>
WorldMapPlayer:GetScript("OnLeave")(WorldMapPlayer);
</OnLeave>
<OnClick>
MapNotes_WorldMapButton_OnClick(WorldMapButton, arg1);
</OnClick>
</Scripts>
</Button>
 
<!-- for tloc function -->
<Button name="MapNotesPOItloc" inherits="WorldMapMapNotesMiscTemplate" parent="WorldMapButton">
<Scripts>
<OnShow>
self:SetFrameLevel(self:GetParent():GetFrameLevel() + 3);
self:SetID(0);
self.hAngle = 0;
self.s = 0;
self.c = 0;
self.timer = 0;
</OnShow>
</Scripts>
</Button>
 
<Button name="MapNotesPOIparty" inherits="WorldMapMapNotesMiscTemplate" parent="WorldMapButton">
<Scripts>
<OnShow>
self:SetFrameLevel(self:GetParent():GetFrameLevel() + 3);
self:SetID(-1);
self.hAngle = 0;
self.s = 0;
self.c = 0;
self.timer = 0;
</OnShow>
</Scripts>
</Button>
 
<!-- Adds the MiniNote POI to MiniMapFrame -->
<Button name="MN_MiniNotePOI" inherits="MN_MiniNotePOITemplate" hidden="true" toplevel="true">
<Anchors>
<Anchor point="CENTER" relativeTo="MinimapBackdrop" relativePoint="TOPLEFT">
<Offset><AbsDimension x="-51" y="60"/></Offset>
</Anchor>
</Anchors>
</Button>
 
</Ui>
MapNotes/MapNotesTemplates.xml New file
0,0 → 1,73
<!--
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
-->
 
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/FrameXML/UI.xsd">
 
<Script file="MapNotesConstants.lua"/>
<Script file="MapNotesColours.lua"/>
<Script file="localization.en.lua"/>
<Script file="localization.de.lua"/>
<Script file="localization.fr.lua"/>
<Script file="localization.kr.lua"/>
<Script file="localization.tw.lua"/>
<Script file="localization.es.lua"/>
<Script file="localization.cn.lua"/>
<Script file="Utilities.lua"/> <!-- Telic_1 -->
<Script file="PlugIns.lua"/> <!-- Telic_2 -->
 
<Frame name="MapNotes_FrameTemplate" toplevel="true" movable="true" hidden="true"
parent="WorldMapFrame" frameStrata="TOOLTIP" enableMouse="true" virtual="true"> <!-- Telic_2 frameStrata -->
<Scripts>
<OnMouseDown>
if ( arg1 == "LeftButton" ) then
self:StartMoving();
end
</OnMouseDown>
<OnMouseUp>
if ( arg1 == "LeftButton" ) then
self:StopMovingOrSizing();
end
</OnMouseUp>
<OnShow> <!-- Telic_1 -->
this:SetAlpha(1.0); <!-- Telic_1 - caters for AddOns that can change the parent frame Alpha setting -->
</OnShow> <!-- Telic_1 -->
</Scripts>
 
<Backdrop bgFile="Interface\Tooltips\UI-Tooltip-Background" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="5" right="5" top="5" bottom="5"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="16"/>
</TileSize>
<EdgeSize>
<AbsValue val="16"/>
</EdgeSize>
</Backdrop>
</Frame>
 
<Button name="MapNotes_ButtonTemplate" inherits="UIPanelButtonTemplate2" virtual="true">
<Size>
<AbsDimension x="185" y="21"/>
</Size>
<Scripts> <!-- Telic_2 -->
<OnShow> <!-- Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!-- Telic_2 -->
</OnShow> <!-- Telic_2 -->
</Scripts> <!-- Telic_2 -->
</Button>
 
<Button name="MapNotes_CancelButtonTemplate" inherits="MapNotes_ButtonTemplate" virtual="true" text="MAPNOTES_CANCEL">
<Scripts>
<OnClick>
PlaySound("igMainMenuOption");
this:GetParent():Hide();
</OnClick>
</Scripts>
</Button>
 
<Texture name="MapNotesLineTemplate" hidden="true" virtual="true"/>
</Ui>
MapNotes/MapNotes.lua New file
0,0 → 1,4016
--[[
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more information.
]]
 
 
MapNotes_Details = {
name = MAPNOTES_NAME,
description = MAPNOTES_ADDON_DESCRIPTION,
version = MAPNOTES_VERSION,
releaseDate = "14 November 2007",
author = "Telic",
email = "telic@hotmail.co.uk",
website = MAPNOTES_DOWNLOAD_SITES,
category = MYADDONS_CATEGORY_MAP,
frame = "MapNotesOptionsFrame",
optionsframe = "MapNotesOptionsFrame",
};
 
MapNotes_Options = {};
MapNotes_Data_Notes = {};
MapNotes_Data_Lines = {};
MapNotes_MiniNote_Data = {};
MapNotes_Undelete_Info = {};
 
MapNotes_MiniNote_IsInCity = false;
MapNotes_MiniNote_MapzoomInit = false;
MapNotes_SetNextAsMiniNote = 0;
MapNotes_AllowOneNote = 0;
MapNotes_LastReceivedNote_xPos = 0;
MapNotes_LastReceivedNote_yPos = 0;
MapNotes_ZoneNames = {};
MapNotes_LastLineClick = {};
MapNotes_LastLineClick.time = 0;
 
MapNotes_TempData_Id = "";
MapNotes_TempData_Creator = "";
MapNotes_TempData_xPos = "";
MapNotes_TempData_yPos = "";
MapNotes_TempData_Icon = "";
MapNotes_TempData_TextColor = "";
MapNotes_TempData_Info1Color = "";
MapNotes_TempData_Info2Color = "";
MapNotes_TempData_miniNote = nil;
 
MapNotes_PartyNoteData = {};
MapNotes_tloc_xPos = nil;
MapNotes_tloc_yPos = nil;
MapNotes_tloc_name = nil;
MapNotes_tloc_key = nil;
 
MapNotes_Started = nil;
MN_toggleClosed = nil;
MapNotes_HighlightedNote = "";
 
local highlightedNotes = {};
local id = 0;
local MapNotesFU_Drawing = nil;
local MapNotesWorldMapTimeSinceLastUpdate = 0;
local MapNotes_DoubleClick_Timer = 0;
local MapNotes_DoubleClick_Key = "";
local MapNotes_DoubleClick_Id = 0;
MapNotes_TargetInfo_Proceed = nil;
 
local atan2 = math.atan2;
local sin = math.sin;
local cos = math.cos;
local tan = math.tan;
local sqrt = math.sqrt;
local abs = math.abs;
 
--[[
Hooked Functions
--]]
local orig_MapNotes_WorldMapButton_OnClick; -- MapNotes hides WorldMapButton_OnClick on right-clicks
local orig_ChatFrame_MessageEventHandler;
local orig_Minimap_OnClick;
 
local MN_DefaultCoordsX = 60;
local MN_DefaultCoordsY = 532;
local MN_MOFFSET_X = 0.0022;
local MN_MOFFSET_Y = 0.0;
local MN_cUpdate = 0.0;
local MN_cUpdateLimit = 0.05;
local MN_miniRadius = 66;
local MN_currentZoom = 0;
local MN_rotatingMinimap = nil;
 
 
local function MapNotes_NewNoteSlot(key)
local currentZone = MapNotes_Data_Notes[key];
return MapNotes_GetZoneTableSize(currentZone) + 1;
end
 
function MapNotes_Hooker()
 
-- WorldMapButton_OnClick -- not secure, but couldn't find any Taint of Pet Bars when making notes in combat, etc.
orig_MapNotes_WorldMapButton_OnClick = WorldMapButton_OnClick;
WorldMapButton_OnClick = MapNotes_WorldMapButton_OnClick;
 
-- ToggleWorldMap
-- Secure Hook
hooksecurefunc("ToggleFrame", MapNotes_ToggleWorldMap);
-- hooksecurefunc("ToggleWorldMap", MapNotes_ToggleWorldMap);
 
-- ChatFrame_MessageEventHandler
orig_ChatFrame_MessageEventHandler = ChatFrame_MessageEventHandler;
ChatFrame_MessageEventHandler = MapNotes_ChatFrame_MessageEventHandler;
 
-- Create notes from Minimap clicks
orig_Minimap_OnClick = Minimap_OnClick;
Minimap_OnClick = MapNotes_Minimap_OnClick;
 
end
 
function MapNotes_OnLoad()
 
WorldMapMagnifyingGlassButton:SetText(MAPNOTES_WORLDMAP_HELP_1.."\n"..MAPNOTES_WORLDMAP_HELP_2.."\n"..MAPNOTES_WORLDMAP_HELP_3);
 
SlashCmdList["MAPNOTES"] = MapNotes_GetNoteBySlashCommand;
for i = 1, table.getn(MAPNOTES_ENABLE_COMMANDS) do
setglobal("SLASH_MAPNOTES"..i, MAPNOTES_ENABLE_COMMANDS[i]);
end
 
SlashCmdList["MN_ONENOTE"] = MapNotes_OneNote;
for i = 1, table.getn(MAPNOTES_ONENOTE_COMMANDS) do
setglobal("SLASH_MN_ONENOTE"..i, MAPNOTES_ONENOTE_COMMANDS[i]);
end
 
SlashCmdList["MN_MININOTE"] = MapNotes_NextMiniNote;
for i = 1, table.getn(MAPNOTES_MININOTE_COMMANDS) do
setglobal("SLASH_MN_MININOTE"..i, MAPNOTES_MININOTE_COMMANDS[i]);
end
 
SlashCmdList["MN_MININOTEONLY"] = MapNotes_NextMiniNoteOnly;
for i = 1, table.getn(MAPNOTES_MININOTEONLY_COMMANDS) do
setglobal("SLASH_MN_MININOTEONLY"..i, MAPNOTES_MININOTEONLY_COMMANDS[i]);
end
 
SlashCmdList["MN_MININOTEOFF"] = MapNotes_ClearMiniNoteGlobal;
for i = 1, table.getn(MAPNOTES_MININOTEOFF_COMMANDS) do
setglobal("SLASH_MN_MININOTEOFF"..i, MAPNOTES_MININOTEOFF_COMMANDS[i]);
end
 
SlashCmdList["MN_TLOC"] = MapNotes_mntloc;
for i = 1, table.getn(MAPNOTES_MNTLOC_COMMANDS) do
setglobal("SLASH_MN_TLOC"..i, MAPNOTES_MNTLOC_COMMANDS[i]);
end
 
SlashCmdList["MN_QUICKNOTE"] = MapNotes_CreateQuickNote;
for i = 1, table.getn(MAPNOTES_QUICKNOTE_COMMANDS) do
setglobal("SLASH_MN_QUICKNOTE"..i, MAPNOTES_QUICKNOTE_COMMANDS[i]);
end
 
SlashCmdList["MN_QUICKTLOC"] = MapNotes_Quicktloc;
for i = 1, table.getn(MAPNOTES_QUICKTLOC_COMMANDS) do
setglobal("SLASH_MN_QUICKTLOC"..i, MAPNOTES_QUICKTLOC_COMMANDS[i]);
end
 
SlashCmdList["MN_SEARCH"] = MapNotes_Search;
for i = 1, table.getn(MAPNOTES_SEARCH_COMMANDS) do
setglobal("SLASH_MN_SEARCH"..i, MAPNOTES_SEARCH_COMMANDS[i]);
end
 
SlashCmdList["MN_HIGHLIGHT"] = MapNotes_Highlight;
for i = 1, table.getn(MAPNOTES_HLIGHT_COMMANDS) do
setglobal("SLASH_MN_HIGHLIGHT"..i, MAPNOTES_HLIGHT_COMMANDS[i]);
end
 
SlashCmdList["MN_MINICOORDS"] = MapNotes_MiniCToggle;
for i = 1, table.getn(MAPNOTES_MINICOORDS_COMMANDS) do
setglobal("SLASH_MN_MINICOORDS"..i, MAPNOTES_MINICOORDS_COMMANDS[i]);
end
 
SlashCmdList["MN_MAPCOORDS"] = MapNotes_MapCToggle;
for i = 1, table.getn(MAPNOTES_MAPCOORDS_COMMANDS) do
setglobal("SLASH_MN_MAPCOORDS"..i, MAPNOTES_MAPCOORDS_COMMANDS[i]);
end
 
SlashCmdList["MN_TARGETNOTE"] = MapNotes_TargetNote;
for i = 1, table.getn(MAPNOTES_NTARGET_COMMANDS) do
setglobal("SLASH_MN_TARGETNOTE"..i, MAPNOTES_NTARGET_COMMANDS[i]);
end
 
SlashCmdList["MN_TARGETMERGE"] = MapNotes_MergeNote;
for i = 1, table.getn(MAPNOTES_MTARGET_COMMANDS) do
setglobal("SLASH_MN_TARGETMERGE"..i, MAPNOTES_MTARGET_COMMANDS[i]);
end
 
SlashCmdList["MN_WFC"] = MapNotes_WFC;
for i = 1, table.getn(MAPNOTES_WFC_COMMANDS) do
setglobal("SLASH_MN_WFC"..i, MAPNOTES_WFC_COMMANDS[i]);
end
 
SlashCmdList["IMPORTMETAMAP"] = MapNotes_ImportMetaMap; --Telic_4
for i = 1, table.getn(MAPNOTES_IMPORT_METAMAP) do --Telic_4
setglobal("SLASH_IMPORTMETAMAP"..i, MAPNOTES_IMPORT_METAMAP[i]); --Telic_4
end --Telic_4
 
SlashCmdList["IMPORTALPHAMAP"] = MapNotes_ImportAlphaMap; --Telic_4
for i = 1, table.getn(MAPNOTES_IMPORT_ALPHAMAP) do --Telic_4
setglobal("SLASH_IMPORTALPHAMAP"..i, MAPNOTES_IMPORT_ALPHAMAP[i]); --Telic_4
end --Telic_4
 
SlashCmdList["IMPORTALPHABGMAP"] = MapNotes_ImportAlphaMapBG; --Telic_4
for i = 1, table.getn(MAPNOTES_IMPORT_ALPHAMAPBG) do --Telic_4
setglobal("SLASH_IMPORTALPHABGMAP"..i, MAPNOTES_IMPORT_ALPHAMAPBG[i]); --Telic_4
end --Telic_4
 
SlashCmdList["IMPORTCTMAP"] = MapNotes_ImportCTMap; --Telic_4
for i = 1, table.getn(MAPNOTES_IMPORT_CTMAPMOD) do --Telic_4
setglobal("SLASH_IMPORTCTMAP"..i, MAPNOTES_IMPORT_CTMAPMOD[i]); --Telic_4
end --Telic_4
 
end
 
 
 
function MapNotes_VariablesLoaded()
 
MapNotes_MiniNote_Data = {};
 
if ( not MapNotes_Options.colourT ) then
MapNotes_Options.colourT = {};
end
if ( not MapNotes_Options.colourT[1] ) then
MapNotes_Options.colourT[1] = {};
end
if ( not MapNotes_Options.colourT[2] ) then
MapNotes_Options.colourT[2] = {};
end
if ( not MapNotes_Options.colourT[3] ) then
MapNotes_Options.colourT[3] = {};
end
if ( MapNotes_Options.coordF == nil ) then
MapNotes_Options.coordF = MN_COORD_F;
else
MN_COORD_F = MapNotes_Options.coordF;
end
 
if ( MapNotes_Options.miniC == nil ) then
MapNotes_Options.miniC = true;
end
 
MapNotes.scaleFrames = {
[1] = MapNotesOptionsFrame,
[2] = MapNotesEditFrame,
[3] = MapNotesSendFrame,
};
 
MapNotes_ResetHighlightsOnLoad();
 
if ( MapNotes_MiniNote_Data.icon ~= nil ) then
MN_MiniNotePOITexture:SetTexture(nil);
if ( ( MapNotes_MiniNote_Data.icon == "party" ) and ( MNIL ) and ( MN_PARTY_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_PARTY_ICON);
elseif ( ( MapNotes_MiniNote_Data.icon == "tloc" ) and ( MNIL ) and ( MN_TLOC_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_TLOC_ICON);
end
local txtr = MN_MiniNotePOITexture:GetTexture();
if ( not txtr ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..MapNotes_MiniNote_Data.icon);
end
end
 
if myAddOnsFrame_Register then
myAddOnsFrame_Register(MapNotes_Details);
end
 
MapNotes_Hooker();
MapNotes_LoadMapData(); -- (Also upgrades from previous MapNotes versions
if ( MapNotes_Data ) then
MapNotes_Data = nil; -- {} ? Legacy now remove to nil
end
if ( MapNotes_Lines ) then
MapNotes_Lines = nil; -- {} ? Legacy now remove to nil
end
MapNotes_LoadPlugIns(); --Telic_2
 
if ( MapNotes_Options.miniC ) then
MN_MinimapCoordsFrame:Show();
end
 
if ( MapNotes_Options.shownotes == nil ) then
MapNotes_Options.shownotes = true;
end
 
if ( not MapNotes_Options.nFactor ) then
MapNotes_Options.nFactor = MN_DEFAULT_SCALE;
end
MN_FrameSlider:SetValue( MapNotes_Options.nFactor );
 
if ( not MapNotes_Options.iFactor ) then
MapNotes_Options.iFactor = MN_DEFAULT_ISCALE;
end
MN_IconSlider:SetValue( MapNotes_Options.iFactor );
 
if ( not MapNotes_Options.aFactor ) then
MapNotes_Options.aFactor = MN_DEFAULT_ASCALE;
end
MN_AlphaSlider:SetValue( MapNotes_Options.aFactor );
 
if ( not MapNotes_Options.coordsLocX ) then
MapNotes_Options.coordsLocX = MN_DefaultCoordsX;
end
if ( not MapNotes_Options.coordsLocY ) then
MapNotes_Options.coordsLocY = MN_DefaultCoordsY;
end
MN_SetCoordsPos();
 
local msg = "MapNotes(Fan's Update) |c0000FF00"..MAPNOTES_VERSION.."|r";
DEFAULT_CHAT_FRAME:AddMessage(msg, 0.64, 0.21, 0.93);
 
-- No more quick options so no more need to do this
-- WorldMapZoneMinimapDropDown:ClearAllPoints();
-- WorldMapZoneMinimapDropDown:SetPoint("TOPLEFT", WorldMapPositioningGuide, "TOP", -394, -35);
 
MN_DataCheck(nil);
 
SetMapToCurrentZone();
end
 
function MapNotes_ScaleFrames()
for i, frame in ipairs(MapNotes.scaleFrames) do
MapNotes_NormaliseScale( frame );
end
end
 
function MapNotes_CheckNearNotes(key, xPos, yPos)
local i = 1;
 
if ( ( not key ) or ( not MapNotes_Data_Notes[key] ) ) then
local alrt = "!!!";
if ( key ) then
alrt = "!!! : "..key;
end
DEFAULT_CHAT_FRAME:AddMessage("!!!"..alrt, 0.64, 0.21, 0.93);
end
 
for j, value in ipairs(MapNotes_Data_Notes[key]) do
local deltax = abs(MapNotes_Data_Notes[key][i].xPos - xPos);
local deltay = abs(MapNotes_Data_Notes[key][i].yPos - yPos);
if ( ( deltax <= (0.0009765625 * MapNotes_MinDiff) ) and ( deltay <= (0.0013020833 * MapNotes_MinDiff) ) ) then
return i;
end
i = i + 1;
end
 
return false;
end
 
function MapNotes_StatusPrint(msg)
msg = "<"..MAPNOTES_NAME..">: "..msg;
if DEFAULT_CHAT_FRAME then
DEFAULT_CHAT_FRAME:AddMessage(msg, 1.0, 0.5, 0.25);
end
end
 
function MapNotes_mntloc(msg, name)
if ( ( not msg ) or ( msg == "" ) ) then
MapNotes_tloc_xPos = nil;
MapNotes_tloc_yPos = nil;
MapNotes_tloc_name = nil;
MapNotes_tloc_key = nil;
if ( MapNotes_MiniNote_Data.icon == "tloc" ) then
MapNotes_ClearMiniNote(true, "tloc");
end
else
SetMapToCurrentZone();
local x, y = MapNotes_ExtractCoords(msg);
if ( ( x ) and ( y ) ) then
if ( not name ) then
name = MAPNOTES_THOTTBOTLOC;
end
MapNotes_tloc_xPos = x / 100;
MapNotes_tloc_yPos = y / 100;
MapNotes_tloc_name = name;
MapNotes_tloc_key = MapNotes_GetMapKey();
MapNotes_MiniNote_Data.id = 0;
MapNotes_MiniNote_Data.key = MapNotes_tloc_key;
MapNotes_MiniNote_Data.xPos = MapNotes_tloc_xPos;
MapNotes_MiniNote_Data.yPos = MapNotes_tloc_yPos;
MapNotes_MiniNote_Data.name = MapNotes_tloc_name;
MapNotes_MiniNote_Data.color = 0;
MapNotes_MiniNote_Data.icon = "tloc";
MN_MiniNotePOITexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_TLOC_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_TLOC_ICON);
end
local txtr = MN_MiniNotePOITexture:GetTexture();
if ( not txtr ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..MapNotes_MiniNote_Data.icon);
end
end
end
MapNotes_MapUpdate();
end
 
function MapNotes_GetNoteFromChat(note, who)
if who ~= UnitName("player") then
if ( gsub(note, ".*<M_N+>%s+%w+.*p<([^>]*)>.*", "%1", 1) == "1" ) then -- Party Note
local key = gsub(note, ".*<M_N+> k<([^>]*)>.*", "%1", 1);
local xPos = gsub(note, ".*<M_N+>%s+%w+.*x<([^>]*)>.*", "%1", 1) + 0;
local yPos = gsub(note, ".*<M_N+>%s+%w+.*y<([^>]*)>.*", "%1", 1) + 0;
local lKey = gsub(note, ".*<M_N+>%s+%w+.*l<([^>]*)>.*", "%1", 1);
MapNotes_PartyNoteData.key = key;
MapNotes_PartyNoteData.xPos = xPos;
MapNotes_PartyNoteData.yPos = yPos;
if ( lKey ) then
MapNotes_StatusPrint( format( MAPNOTES_PARTY_GET, who, lKey ) );
else
MapNotes_StatusPrint( format( MAPNOTES_PARTY_GET, who, MapNotes_GetMapDisplayName(key) ) );
end
local worldMapTest = string.sub(key, 1, 3);
if ( ( worldMapTest == "WM " ) and
( MapNotes_MiniNote_Data.icon == "party" or MapNotes_Options[16] ~= "off" ) ) then
MapNotes_MiniNote_Data.id = -1;
MapNotes_MiniNote_Data.key = key;
MapNotes_MiniNote_Data.xPos = xPos;
MapNotes_MiniNote_Data.yPos = yPos;
MapNotes_MiniNote_Data.name = MAPNOTES_PARTYNOTE;
MapNotes_MiniNote_Data.color = 0;
MapNotes_MiniNote_Data.icon = "party";
MN_MiniNotePOITexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_PARTY_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_PARTY_ICON);
end
local txtr = MN_MiniNotePOITexture:GetTexture();
if ( not txtr ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..MapNotes_MiniNote_Data.icon);
end
 
elseif ( ( worldMapTest ~= "WM " ) and ( MapNotes_MiniNote_Data.icon == "party" ) ) then
MapNotes_ClearMiniNote(true, "party");
end
 
else
local key = gsub(note,".*<M_N+> k<([^>]*)>.*","%1",1);
local xPos = gsub(note,".*<M_N+>%s+%w+.*x<([^>]*)>.*","%1",1) + 0;
local yPos = gsub(note,".*<M_N+>%s+%w+.*y<([^>]*)>.*","%1",1) + 0;
local title = gsub(note,".*<M_N+>%s+%w+.*t<([^>]*)>.*","%1",1);
local info1 = gsub(note,".*<M_N+>%s+%w+.*i1<([^>]*)>.*","%1",1);
local info2 = gsub(note,".*<M_N+>%s+%w+.*i2<([^>]*)>.*","%1",1);
local creator = gsub(note,".*<M_N+>%s+%w+.*cr<([^>]*)>.*","%1",1);
local icon = gsub(note,".*<M_N+>%s+%w+.*i<([^>]*)>.*","%1",1)+0;
local tcolor = gsub(note,".*<M_N+>%s+%w+.*tf<([^>]*)>.*","%1",1)+0;
local i1color = gsub(note,".*<M_N+>%s+%w+.*i1f<([^>]*)>.*","%1",1)+0;
local i2color = gsub(note,".*<M_N+>%s+%w+.*i2f<([^>]*)>.*","%1",1)+0;
local miniN = gsub(note,".*<M_N+>%s+%w+.*mn<([^>]*)>.*","%1",1);
 
if MapNotes_LastReceivedNote_xPos == xPos and MapNotes_LastReceivedNote_yPos == yPos then
-- do nothing, because the previous note is exactly the same as the current note
 
else
if ( not MapNotes_Data_Notes[key] ) then
MapNotes_Data_Notes[key] = {};
end
local checknote = MapNotes_CheckNearNotes(key, xPos, yPos);
MapNotes_LastReceivedNote_xPos = xPos;
MapNotes_LastReceivedNote_yPos = yPos;
 
if checknote then
MapNotes_StatusPrint(format(MAPNOTES_DECLINE_NOTETONEAR, who, MapNotes_GetMapDisplayName(key), MapNotes_Data_Notes[key][checknote].name ) );
return;
end
local n_id = 0;
local i = MapNotes_GetZoneTableSize(MapNotes_Data_Notes[key]);
 
if MapNotes_SetNextAsMiniNote ~= 2 then
if ( ( MapNotes_AllowOneNote == 1 ) or ( MapNotes_Options[14] ~= "off" ) ) then
MapNotes_TempData_Id = i + 1;
MapNotes_Data_Notes[key][MapNotes_TempData_Id] = {};
MapNotes_Data_Notes[key][MapNotes_TempData_Id].name = title;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].ncol = tcolor;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].inf1 = info1;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].in1c = i1color;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].inf2 = info2;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].in2c = i2color;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].creator = creator;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].icon = icon;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].xPos = xPos;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].yPos = yPos;
if ( ( MapNotes_SetNextAsMiniNote ~= 0 ) or ( ( miniN ) and ( miniN == "1" ) ) ) then
MapNotes_Data_Notes[key][MapNotes_TempData_Id].mininote = true;
end
n_id = MapNotes_TempData_Id;
MapNotes_StatusPrint(format(MAPNOTES_ACCEPT_GET, who, MapNotes_GetMapDisplayName(key) ) );
 
else
MapNotes_StatusPrint(format(MAPNOTES_DECLINE_GET, who, MapNotes_GetMapDisplayName(key) ) );
end
end
 
if MapNotes_SetNextAsMiniNote == 2 then
MapNotes_MiniNote_Data.xPos = xPos;
MapNotes_MiniNote_Data.yPos = xPos;
MapNotes_MiniNote_Data.key = key;
MapNotes_MiniNote_Data.id = n_id;
MapNotes_MiniNote_Data.name = title;
MapNotes_MiniNote_Data.color = tcolor;
MapNotes_MiniNote_Data.icon = "tloc";
MN_MiniNotePOITexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_TLOC_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_TLOC_ICON);
end
local txtr = MN_MiniNotePOITexture:GetTexture();
if ( not txtr ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..MapNotes_MiniNote_Data.icon);
end
MapNotes_StatusPrint(MAPNOTES_SETMININOTE);
end
MapNotes_AllowOneNote = 0;
end
end
MapNotes_MapUpdate();
end
end
 
function MapNotes_GetNoteBySlashCommand(msg)
local returnValue = false;
local cmd, prms = nil, nil;
 
if ( ( msg ) and ( msg ~= "" ) ) then
cmd = strsub(msg, 1, 1);
if ( ( cmd == "-" ) or ( cmd == "?" ) ) then
local sep = string.find(msg, " ");
if ( sep ) then
prms = string.sub(msg, sep+1);
cmd = strsub(msg, 1, sep-1);
else
cmd = strsub(msg, 1);
prms = "";
end
if ( ( cmd ) and ( prms ) ) then
cmd = string.lower(cmd);
MapNotes_MainCommandHandler(cmd, prms);
else
MapNotes_Help();
returnValue = false;
end
 
elseif ( ( string.find(msg, "k<") ) and ( string.find(msg, "x<") ) ) then
msg = "<M_N> "..msg;
local key = gsub(msg,".*<M_N+> k<([^>]*)>.*","%1",1);
local xPos = gsub(msg,".*<M_N+>%s+%w+.*x<([^>]*)>.*","%1",1) + 0;
local yPos = gsub(msg,".*<M_N+>%s+%w+.*y<([^>]*)>.*","%1",1) + 0;
local title = gsub(msg,".*<M_N+>%s+%w+.*t<([^>]*)>.*","%1",1);
local info1 = gsub(msg,".*<M_N+>%s+%w+.*i1<([^>]*)>.*","%1",1);
local info2 = gsub(msg,".*<M_N+>%s+%w+.*i2<([^>]*)>.*","%1",1);
local creator = gsub(msg,".*<M_N+>%s+%w+.*cr<([^>]*)>.*","%1",1);
local icon = gsub(msg,".*<M_N+>%s+%w+.*i<([^>]*)>.*","%1",1)+0;
local tcolor = gsub(msg,".*<M_N+>%s+%w+.*tf<([^>]*)>.*","%1",1)+0;
local i1color = gsub(msg,".*<M_N+>%s+%w+.*i1f<([^>]*)>.*","%1",1)+0;
local i2color = gsub(msg,".*<M_N+>%s+%w+.*i2f<([^>]*)>.*","%1",1)+0;
local miniN = gsub(msg,".*<M_N+>%s+%w+.*mn<([^>]*)>.*","%1",1);
local checknote = MapNotes_CheckNearNotes(key, xPos, yPos);
local n_id = 0;
local i = MapNotes_GetZoneTableSize(MapNotes_Data_Notes[key]);
 
if MapNotes_SetNextAsMiniNote ~= 2 then
if ( not MapNotes_Data_Notes[key] ) then
MapNotes_Data_Notes[key] = {};
end
local checknote = MapNotes_CheckNearNotes(key, xPos, yPos);
if checknote then
MapNotes_StatusPrint(format(MAPNOTES_DECLINE_SLASH_NEAR, MapNotes_Data_Notes[key][checknote].name, MapNotes_GetMapDisplayName(key) ) );
returnValue = false;
else
MapNotes_TempData_Id = i + 1;
MapNotes_Data_Notes[key][MapNotes_TempData_Id] = {};
MapNotes_Data_Notes[key][MapNotes_TempData_Id].name = title;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].ncol = tcolor;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].inf1 = info1;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].in1c = i1color;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].inf2 = info2;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].in2c = i2color;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].creator = creator;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].icon = icon;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].xPos = xPos;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].yPos = yPos;
if ( ( MapNotes_SetNextAsMiniNote ~= 0 ) or ( ( miniN ) and ( miniN == "1" ) ) ) then
MapNotes_Data_Notes[key][MapNotes_TempData_Id].mininote = true;
end
n_id = MapNotes_TempData_Id;
MapNotes_StatusPrint(format(MAPNOTES_ACCEPT_SLASH, MapNotes_GetMapDisplayName(key) ) );
returnValue = true;
end
end
 
if MapNotes_SetNextAsMiniNote == 2 then
MapNotes_MiniNote_Data.xPos = xPos;
MapNotes_MiniNote_Data.yPos = yPos;
MapNotes_MiniNote_Data.key = key;
MapNotes_MiniNote_Data.id = 0;
MapNotes_MiniNote_Data.name = title;
MapNotes_MiniNote_Data.color = tcolor;
MapNotes_MiniNote_Data.icon = "tloc";
MN_MiniNotePOITexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_TLOC_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_TLOC_ICON);
end
local txtr = MN_MiniNotePOITexture:GetTexture();
if ( not txtr ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..MapNotes_MiniNote_Data.icon);
end
 
MapNotes_StatusPrint(MAPNOTES_SETMININOTE);
end
 
else
MapNotes_Help();
returnValue = false;
end
 
else
MapNotes_Help();
returnValue = false;
end
 
if ( returnValue ) then
MapNotes_MapUpdate();
end
return returnValue;
end
 
function MapNotes_MainCommandHandler(cmd, prms)
if ( ( cmd == "-allow" ) or ( cmd == "-a" ) ) then
MapNotes_OneNote(prms);
 
elseif ( cmd == "-allmini" ) then
MapNotes_TotallyMini();
 
elseif ( cmd == "-automini" ) then
MapNotes_NextMiniNote(prms);
 
elseif ( cmd == "-nextmini" ) then
MapNotes_NextMiniNote(prms);
 
elseif ( cmd == "-minionly" ) then
MapNotes_NextMiniNoteOnly(prms);
 
elseif ( cmd == "-minioff" ) then
MapNotes_ClearMiniNoteGlobal();
 
elseif ( cmd == "-tloc" ) then
MapNotes_mntloc(prms);
 
elseif ( cmd == "-q" ) then
MapNotes_CreateQuickNote(prms);
 
elseif ( cmd == "-qtloc" ) then
MapNotes_Quicktloc(prms);
 
elseif ( cmd == "-mapc" ) then
MapNotes_MapCToggle();
 
elseif ( cmd == "-minic" ) then
MapNotes_MiniCToggle();
 
elseif ( cmd == "-s" ) then
MapNotes_Search(prms);
 
elseif ( cmd == "-hl" ) then
MapNotes_Highlight(prms);
 
elseif ( cmd == "-t" ) then
MapNotes_TargetNote(prms);
 
elseif ( cmd == "-m" ) then
MapNotes_MergeNote(prms);
 
elseif ( cmd == "-datacheck" ) then
MN_DataCheck(true);
 
elseif ( cmd == "-scale" ) then
local nFactor = tonumber( prms );
if ( ( nFactor ) and ( nFactor >= 0.5 ) and ( nFactor <= 1.5 ) ) then
MapNotes_Options.nFactor = nFactor;
else
local msg = "|c0000FF00/mn -scale [0.5 - 1.5] |r";
MapNotes_StatusPrint(msg);
end
MN_FrameSlider:SetValue( MapNotes_Options.nFactor );
 
elseif ( cmd == "-undelete" ) then
MapNotes_Undelete();
 
elseif ( cmd == "-clearicons" ) then
MapNotes_ClearIcons();
 
elseif ( cmd == "-mstyle" ) then
MN_CustomMinimapCycler( tonumber(prms) );
 
else
MapNotes_Help();
end
end
 
function MapNotes_Help()
local msg = "MapNotes(Fan's Update) |c0000FF00"..MAPNOTES_VERSION.."|r";
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn k<WM txt> x<#> y<#> t<txt> i1<txt> i2<#> cr<txt> i<#> tf<#> i1f<#> i2f<#> mn<boolean> |r: " .. MAPNOTES_CHAT_COMMAND_ENABLE_INFO;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -allow |r: " .. MAPNOTES_CHAT_COMMAND_ONENOTE_INFO;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -nextmini |r: " .. MAPNOTES_CHAT_COMMAND_MININOTE_INFO;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -minionly |r: " .. MAPNOTES_CHAT_COMMAND_MININOTEONLY_INFO;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -minioff |r: " .. MAPNOTES_CHAT_COMMAND_MININOTEOFF_INFO;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -tloc xx,yy |r: " .. MAPNOTES_CHAT_COMMAND_MNTLOC_INFO;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -q [icon] [title] |r: " .. MAPNOTES_CHAT_COMMAND_QUICKNOTE;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -qtloc xx,yy [icon] [title] |r: " .. MAPNOTES_CHAT_COMMAND_QUICKTLOC;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -mapc |r: " .. MAPNOTES_MAP_COORDS;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -minic |r: " .. MAPNOTES_MINIMAP_COORDS;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -s |r: " .. MAPNOTES_CHAT_COMMAND_SEARCH;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -hl |r: " .. MAPNOTES_CHAT_COMMAND_HIGHLIGHT;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -t |r: " .. BINDING_NAME_MN_TARGET_NEW;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -m |r: " .. BINDING_NAME_MN_TARGET_MERGE;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -scale [0.5 - 1.5] |r: " .. MAPNOTES_CHAT_COMMAND_SCALE;
MapNotes_StatusPrint(msg);
msg = "|c0000FF00/mn -undelete |r: " .. MAPNOTES_CHAT_COMMAND_UNDELETE;
MapNotes_StatusPrint(msg);
end
 
function MapNotes_Quicktloc(msg, MN_creatorOverride, MN_mininoteOverride)
if msg == "" then
MapNotes_StatusPrint(MAPNOTES_QUICKTLOC_NOARGUMENT);
 
else
local x, y, msg = MapNotes_ExtractCoords(msg);
if ( ( x ) and ( y ) ) then
local key = MapNotes_GetMapKey();
x = x / 100;
y = y / 100;
local checknote = MapNotes_CheckNearNotes(key, x, y);
if checknote then
MapNotes_StatusPrint(format(MAPNOTES_QUICKNOTE_NOTETONEAR,
MapNotes_Data_Notes[key][checknote].name ) );
 
else
local n_id = 0;
local icon = 0;
local name = MAPNOTES_THOTTBOTLOC;
if ( ( msg ) and ( msg ~= "" ) ) then
local icheck = strsub(msg, 1, 2);
if ( string.find(icheck, "%d%s") ) then
icon = tonumber( string.sub(msg, 1, 1) );
msg = strsub(msg, 3);
end
if ( ( msg ) and ( msg ~= "" ) ) then
local msgStart = string.find(msg, "%S");
local msgBack = 80;
if ( msgStart ) then
msgBack = msgStart + 80;
else
msgStart = 1;
end
msg = strsub(msg, msgStart, msgBack);
if ( ( msg ) and ( msg ~= "" ) ) then
name = msg;
end
end
end
 
if MapNotes_SetNextAsMiniNote ~= 2 then
local i = MapNotes_GetZoneTableSize(MapNotes_Data_Notes[key]);
MapNotes_TempData_Id = i + 1;
MapNotes_Data_Notes[key][MapNotes_TempData_Id] = {};
MapNotes_Data_Notes[key][MapNotes_TempData_Id].name = name;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].ncol = 0;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].inf1 = "";
MapNotes_Data_Notes[key][MapNotes_TempData_Id].in1c = 0;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].inf2 = "";
MapNotes_Data_Notes[key][MapNotes_TempData_Id].in2c = 0;
if ( MN_creatorOverride ) then
MapNotes_Data_Notes[key][MapNotes_TempData_Id].creator = MN_creatorOverride;
MN_creatorOverride = nil;
else
MapNotes_Data_Notes[key][MapNotes_TempData_Id].creator = UnitName("player");
end
MapNotes_Data_Notes[key][MapNotes_TempData_Id].icon = icon;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].xPos = x;
MapNotes_Data_Notes[key][MapNotes_TempData_Id].yPos = y;
if ( ( MapNotes_SetNextAsMiniNote ~= 0 ) or ( MN_mininoteOverride ) ) then
MapNotes_Data_Notes[key][MapNotes_TempData_Id].mininote = true;
end
n_id = MapNotes_TempData_Id;
MapNotes_StatusPrint(format(MAPNOTES_QUICKNOTE_OK, MapNotes_GetMapDisplayName(key) ) );
end
 
if MapNotes_SetNextAsMiniNote == 2 then
MapNotes_MiniNote_Data.xPos = x;
MapNotes_MiniNote_Data.yPos = y;
MapNotes_MiniNote_Data.key = key;
MapNotes_MiniNote_Data.id = 0;
MapNotes_MiniNote_Data.name = name;
MapNotes_MiniNote_Data.color = 0;
MapNotes_MiniNote_Data.icon = "tloc";
MN_MiniNotePOITexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_TLOC_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_TLOC_ICON);
end
local txtr = MN_MiniNotePOITexture:GetTexture();
if ( not txtr ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..MapNotes_MiniNote_Data.icon);
end
 
MapNotes_StatusPrint(MAPNOTES_SETMININOTE);
end
end
end
end
 
MapNotes_MapUpdate();
end
 
 
 
function MapNotes_ShortCutNote(x, y, Plugin, miniIt, key)
if ( ( x ) and ( y ) ) then
local currentZone;
 
if ( not key ) then
if ( Plugin ) then
key = MapNotes_PlugInsGetKey(Plugin);
else
key = MapNotes_GetMapKey();
end
end
currentZone = MapNotes_Data_Notes[key];
 
local checkDist = MapNotes_CheckNearNotes(key, x, y);
if ( checkDist ) then
MapNotes_StatusPrint(format(MAPNOTES_DECLINE_SLASH_NEAR, MapNotes_Data_Notes[key][checkDist].name, MapNotes_GetMapDisplayName(key) ) );
MapNotes_Data_Notes[key][checkDist].mininote = true;
return;
end
 
if MapNotes_SetNextAsMiniNote ~= 2 then
MapNotes_TempData_Id = ( MapNotes_GetZoneTableSize( currentZone ) ) + 1;
currentZone[MapNotes_TempData_Id] = {};
currentZone[MapNotes_TempData_Id].name = MAPNOTES_QUICKNOTE_DEFAULTNAME;
currentZone[MapNotes_TempData_Id].ncol = 0;
currentZone[MapNotes_TempData_Id].inf1 = "";
currentZone[MapNotes_TempData_Id].in1c = 0;
currentZone[MapNotes_TempData_Id].inf2 = "";
currentZone[MapNotes_TempData_Id].in2c = 0;
currentZone[MapNotes_TempData_Id].creator = UnitName("player");
currentZone[MapNotes_TempData_Id].icon = 0;
currentZone[MapNotes_TempData_Id].xPos = x;
currentZone[MapNotes_TempData_Id].yPos = y;
n_id = MapNotes_TempData_Id;
if ( Plugin ) then
MapNotes_StatusPrint( format( MAPNOTES_QUICKNOTE_OK, MapNotes_GetMapDisplayName(key, Plugin) ) );
else
MapNotes_StatusPrint( format( MAPNOTES_QUICKNOTE_OK, MapNotes_GetMapDisplayName(key) ) );
end
if ( ( MapNotes_SetNextAsMiniNote ~= 0 ) or ( miniIt ) ) and
( ( not Plugin ) or ( Plugin.wmflag ) ) then
currentZone[MapNotes_TempData_Id].mininote = true;
MapNotes_StatusPrint(MAPNOTES_SETMININOTE);
end
 
return MapNotes_TempData_Id;
end
 
if MapNotes_SetNextAsMiniNote == 2 then
MapNotes_MiniNote_Data.xPos = x;
MapNotes_MiniNote_Data.yPos = y;
MapNotes_MiniNote_Data.key = key;
MapNotes_MiniNote_Data.id = 0;
MapNotes_MiniNote_Data.name = MAPNOTES_QUICKNOTE_DEFAULTNAME;
MapNotes_MiniNote_Data.color = 0;
MapNotes_MiniNote_Data.icon = "tloc";
MN_MiniNotePOITexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_TLOC_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_TLOC_ICON);
end
local txtr = MN_MiniNotePOITexture:GetTexture();
if ( not txtr ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..MapNotes_MiniNote_Data.icon);
end
 
MapNotes_StatusPrint(MAPNOTES_SETMININOTE);
end
 
end
end
 
function MapNotes_CreateQuickNote(msg, msg2, msg3, shouldMerge, miniIt)
x, y = GetPlayerMapPosition("player");
if ( ( ( x ) and ( x == 0 ) ) and ( ( y ) and ( y == 0 ) ) ) then
SetMapToCurrentZone();
x, y = GetPlayerMapPosition("player");
end
 
local key = MapNotes_GetMapKey();
local currentZone = MapNotes_Data_Notes[key];
local checknote = MapNotes_CheckNearNotes(key, x, y);
 
if ( ( checknote ) and ( shouldMerge ) ) then
MapNotes_Merge(key, checknote, msg, msg2, msg3);
return;
end
 
if ( checknote ) then
MapNotes_StatusPrint(format(MAPNOTES_QUICKNOTE_NOTETONEAR,
MapNotes_Data_Notes[key][checknote].name ) );
 
elseif ( ( x == 0 ) and ( y == 0 ) ) then
MapNotes_StatusPrint(MAPNOTES_QUICKNOTE_NOPOSITION);
 
else
local n_id = 0;
local icon = 0;
local l_zone = GetMinimapZoneText();
local m_zone = GetRealZoneText();
if ( l_zone == m_zone ) then
m_zone = nil;
end
 
-- local name = MAPNOTES_QUICKNOTE_DEFAULTNAME;
local name = "";
 
if ( ( msg ) and ( msg ~= "" ) ) then
local icheck = strsub(msg, 1, 2);
if ( string.find(icheck, "%d%s") ) then
icon = tonumber( string.sub(msg, 1, 1) );
msg = strsub(msg, 3);
end
if ( ( msg ) and ( msg ~= "" ) ) then
local msgStart = string.find(msg, "%S");
local msgBack = 80;
if ( msgStart ) then
msgBack = msgStart + 80;
else
msgStart = 1;
end
msg = strsub(msg, msgStart, msgBack);
if ( ( msg ) and ( msg ~= "" ) ) then
name = msg;
end
end
end
 
if ( name == "" ) then
name = l_zone;
end
 
if ( ( not msg2 ) or ( msg2 == "" ) ) then
msg2 = "";
if ( name ~= l_zone ) then
msg2 = l_zone;
elseif ( m_zone ) then
msg2 = m_zone;
else
msg2 = MAPNOTES_QUICKNOTE_DEFAULTNAME;
end
end
 
if ( ( not msg3 ) or ( msg3 == "" ) ) then
msg3 = "";
if ( ( name ~= l_zone ) and ( msg2 ~= l_zone ) ) then
msg3 = l_zone;
elseif ( ( m_zone ) and ( msg2 ~= m_zone ) ) then
msg3 = m_zone;
elseif ( msg2 ~= MAPNOTES_QUICKNOTE_DEFAULTNAME ) then
msg3 = MAPNOTES_QUICKNOTE_DEFAULTNAME;
end
end
 
if MapNotes_SetNextAsMiniNote ~= 2 then
local i = MapNotes_GetZoneTableSize(currentZone);
MapNotes_TempData_Id = i + 1;
currentZone[MapNotes_TempData_Id] = {};
currentZone[MapNotes_TempData_Id].name = name;
currentZone[MapNotes_TempData_Id].ncol = 0;
currentZone[MapNotes_TempData_Id].inf1 = msg2;
currentZone[MapNotes_TempData_Id].in1c = 0;
currentZone[MapNotes_TempData_Id].inf2 = msg3;
currentZone[MapNotes_TempData_Id].in2c = 0;
currentZone[MapNotes_TempData_Id].creator = UnitName("player");
currentZone[MapNotes_TempData_Id].icon = icon;
currentZone[MapNotes_TempData_Id].xPos = x;
currentZone[MapNotes_TempData_Id].yPos = y;
n_id = MapNotes_TempData_Id;
MapNotes_StatusPrint(format(MAPNOTES_QUICKNOTE_OK, GetRealZoneText()));
if ( ( MapNotes_SetNextAsMiniNote ~= 0 ) or ( miniIt ) ) then
currentZone[MapNotes_TempData_Id].mininote = true;
-- MapNotes_SetNextAsMiniNote = 0;
MapNotes_StatusPrint(MAPNOTES_SETMININOTE);
end
end
 
if MapNotes_SetNextAsMiniNote == 2 then
MapNotes_MiniNote_Data.xPos = x;
MapNotes_MiniNote_Data.yPos = y;
MapNotes_MiniNote_Data.key = key;
MapNotes_MiniNote_Data.id = 0;
MapNotes_MiniNote_Data.name = name;
MapNotes_MiniNote_Data.color = 0;
MapNotes_MiniNote_Data.icon = "tloc";
MN_MiniNotePOITexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_TLOC_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_TLOC_ICON);
end
local txtr = MN_MiniNotePOITexture:GetTexture();
if ( not txtr ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..MapNotes_MiniNote_Data.icon);
end
 
MapNotes_StatusPrint(MAPNOTES_SETMININOTE);
end
end
end
 
 
 
function MapNotes_Misc_OnClick(self, mouseButton, lclFrame)
 
local Plugin, key = self.Plugin;
 
if ( not MapNotes_FramesHidden() ) then
return;
else
MapNotes_ClearGUI();
end
 
if ( Plugin ) then
key = MapNotes_PlugInsGetKey(Plugin);
if ( not lclFrame ) then
lclFrame = Plugin.frame;
end
 
else
key = MapNotes_GetMapKey();
if ( not lclFrame ) then
lclFrame = WorldMapButton;
end
end
 
local ax, ay = MapNotes_GetMouseXY(lclFrame);
 
local note = "party";
local theID = -1;
if ( self:GetID() == 0 ) then
note = "tloc";
theID = 0;
end
 
if ( mouseButton == "RightButton" ) then
 
if ( ( IsShiftKeyDown() ) and ( not IsAltKeyDown() ) ) then
if ( note == "party" ) then --spfix1 --Telic_7
MapNotes_DeleteNote(-1); -- 29/07/2007
if ( this.Plugin ) then -- 29/07/2007
MapNotes_PlugInsDrawNotes(this.Plugin); -- 29/07/2007
end -- 29/07/2007
return; --Telic_7
 
else -- also allow Shift-Right deletion of tloc -- 29/07/2007
MapNotes_DeleteNote(0); -- 29/07/2007
if ( this.Plugin ) then -- 29/07/2007
MapNotes_PlugInsDrawNotes(this.Plugin); -- 29/07/2007
end -- 29/07/2007
return; -- 29/07/2007
end --Telic_7
 
elseif ( ( IsAltKeyDown() ) and ( not IsShiftKeyDown() ) ) then -- 29/07/2007
if ( note == "party" ) then -- 29/07/2007
local worldMapTest = string.sub(MapNotes_PartyNoteData.key, 1, 3);
if ( worldMapTest == "WM " ) then
MapNotes_SetAsMiniNote(-1); -- Should "Toggle" Party Mininote -- 29/07/2007
MapNotes_MapUpdate(); -- 29/07/2007
return; -- 29/07/2007
end
-- 29/07/2007
else -- 29/07/2007
MapNotes_SetAsMiniNote(0); -- Should "Toggle" tloc Mininote -- 29/07/2007
MapNotes_MapUpdate(); -- 29/07/2007
return; -- 29/07/2007
end
end --Telic_7
 
local xOffset, yOffset = MapNotes_GetAdjustedMapXY(lclFrame, ax, ay); --Telic_1
-- Needs to be Misc Note info...
MapNotes:InitialiseDropdown(lclFrame, ax, ay, MapNotes.temp_dd_info, key, theID);
ToggleDropDownMenu(1, nil, MapNotes.dd, "cursor", 0, 0);
 
WorldMapTooltip:Hide();
GameTooltip:Hide();
if ( ( note == "party" ) and ( MapNotes_MiniNote_Data.icon == "party" ) ) then --spfix1
MapNotes_TempData_Id = -1;
elseif ( note == "party" ) then --spfix1
MapNotes_TempData_Id = -1;
elseif ( MapNotes_MiniNote_Data.icon == "tloc" ) then --spfix1
MapNotes_TempData_Id = 0;
else --spfix1
MapNotes_TempData_Id = 0;
end
end
end
 
function MapNotes_NextMiniNote(msg)
msg = string.lower(msg);
if msg == "on" then
MapNotes_SetNextAsMiniNote = 1;
MapNotes_StatusPrint(MAPNOTES_MININOTE_SHOW_1);
elseif msg == "off" then
MapNotes_SetNextAsMiniNote = 0;
MapNotes_StatusPrint(MAPNOTES_MININOTE_SHOW_0);
elseif MapNotes_SetNextAsMiniNote == 1 then
MapNotes_SetNextAsMiniNote = 0;
MapNotes_StatusPrint(MAPNOTES_MININOTE_SHOW_0);
else
MapNotes_SetNextAsMiniNote = 1;
MapNotes_StatusPrint(MAPNOTES_MININOTE_SHOW_1);
end
end
 
function MapNotes_NextMiniNoteOnly(msg)
msg = string.lower(msg);
if msg == "on" then
MapNotes_SetNextAsMiniNote = 2;
MapNotes_StatusPrint(MAPNOTES_MININOTE_SHOW_2);
elseif msg == "off" then
MapNotes_SetNextAsMiniNote = 0;
MapNotes_StatusPrint(MAPNOTES_MININOTE_SHOW_0);
elseif MapNotes_SetNextAsMiniNote == 2 then
MapNotes_SetNextAsMiniNote = 0;
MapNotes_StatusPrint(MAPNOTES_MININOTE_SHOW_0);
else
MapNotes_SetNextAsMiniNote = 2;
MapNotes_StatusPrint(MAPNOTES_MININOTE_SHOW_2);
end
end
 
function MapNotes_OneNote(msg)
msg = string.lower(msg);
if msg == "on" then
MapNotes_AllowOneNote = 1;
MapNotes_StatusPrint(MAPNOTES_ONENOTE_ON);
elseif msg == "off" then
MapNotes_AllowOneNote = 0;
MapNotes_StatusPrint(MAPNOTES_ONENOTE_OFF);
elseif MapNotes_AllowOneNote == 1 then
MapNotes_AllowOneNote = 0;
MapNotes_StatusPrint(MAPNOTES_ONENOTE_OFF);
else
MapNotes_AllowOneNote = 1;
MapNotes_StatusPrint(MAPNOTES_ONENOTE_ON);
end
end
 
 
function MapNotes_MinimapUpdateZoom()
if MapNotes_MiniNote_MapzoomInit then
if MapNotes_MiniNote_IsInCity then
MapNotes_MiniNote_IsInCity = false;
else
MapNotes_MiniNote_IsInCity = true;
end
else
local tempzoom = 0;
if GetCVar("minimapZoom") == GetCVar("minimapInsideZoom") then
if GetCVar("minimapInsideZoom")+0 >= 3 then
Minimap:SetZoom(Minimap:GetZoom() - 1);
tempzoom = 1;
else
Minimap:SetZoom(Minimap:GetZoom() + 1);
tempzoom = -1;
end
end
 
if GetCVar("minimapInsideZoom")+0 == Minimap:GetZoom() then
MapNotes_MiniNote_IsInCity = true;
else
MapNotes_MiniNote_IsInCity = false;
end
 
Minimap:SetZoom(Minimap:GetZoom() + tempzoom);
MapNotes_MiniNote_MapzoomInit = true;
end
end
 
function MapNotes_ChatFrame_MessageEventHandler(self, event, ...)
if ( ( strsub(event, 1, 16) == "CHAT_MSG_WHISPER" ) and ( strsub(arg1, 1, 5) == "<M_N>" ) ) then
if strsub(event, 17) == "_INFORM" then
-- do nothing
else
MapNotes_GetNoteFromChat(arg1, arg2);
end
 
else
orig_ChatFrame_MessageEventHandler(self, event, ...);
end
end
 
 
 
function MapNotes_WorldMap_OnUpdate(self, elapsed)
MapNotesWorldMapTimeSinceLastUpdate = MapNotesWorldMapTimeSinceLastUpdate + elapsed;
 
local eScale = self:GetEffectiveScale();
if ( self.eScale ~= eScale ) then
self.eScale = eScale;
MapNotes_WorldMapButton_OnUpdate();
end
 
self.oTimer = self.oTimer + elapsed;
if ( ( self.oTimer > 0.02 ) and ( self.oTimer < 0.12 ) ) then
MapNotes_WorldMapButton_OnUpdate();
end
 
if ( ( IsControlKeyDown() ) or ( IsShiftKeyDown() ) ) then
if ( WorldMapFrameAreaLabel:IsVisible() ) then
WorldMapFrameAreaLabel:Hide();
end
else
if ( not WorldMapFrameAreaLabel:IsVisible() ) then
WorldMapFrameAreaLabel:Show();
end
end
 
if ( MapNotesWorldMapTimeSinceLastUpdate > MapNotes_WorldMap_UpdateRate ) then
 
if ( IsControlKeyDown() ) then
if ( WorldMapMagnifyingGlassButton:IsVisible() ) then
WorldMapMagnifyingGlassButton:Hide();
end
if ( not MapNotes_WorldMapButton:IsVisible() ) then
MapNotes_WorldMapButton:Show();
end
 
elseif ( IsShiftKeyDown() ) then
if ( WorldMapMagnifyingGlassButton:IsVisible() ) then
WorldMapMagnifyingGlassButton:Hide();
end
if ( MapNotes_WorldMapButton:IsVisible() ) then
MapNotes_WorldMapButton:Hide();
end
 
else
if ( not WorldMapMagnifyingGlassButton:IsVisible() ) then
WorldMapMagnifyingGlassButton:Show();
end
if ( MapNotes_WorldMapButton:IsVisible() ) then
MapNotes_WorldMapButton:Hide();
end
end
 
MapNotesWorldMapTimeSinceLastUpdate = 0;
end
end
 
 
function MN_CustomMinimapCycler(style)
if ( ( style ) and ( type(style) == "number" ) ) then
if ( style == 0 ) then
MapNotes_Options.customMinimap = nil;
else
MapNotes_Options.customMinimap = style;
end
 
elseif ( not MapNotes_Options.customMinimap ) then
MapNotes_Options.customMinimap = 1;
 
else
MapNotes_Options.customMinimap = MapNotes_Options.customMinimap + 1;
if ( not MN_MINIMAP_STYLES[ MapNotes_Options.customMinimap ] ) then
MapNotes_Options.customMinimap = nil;
end
end
 
if ( MapNotes_Options.customMinimap ) then
MapNotes_StatusPrint( MapNotes_Options.customMinimap .. " : " .. MN_AUTO_DESCRIPTIONS[ MN_MINIMAP_STYLES[MapNotes_Options.customMinimap] ] );
 
else
MapNotes_StatusPrint( "0 : " .. MN_STYLE_AUTOMATIC );
end
end
 
local function MN_GetMinimapShape()
if ( MapNotes_Options.customMinimap ) then
return MN_AUTO_MINIMAPS[ MN_MINIMAP_STYLES[MapNotes_Options.customMinimap] ];
 
elseif ( GetMinimapShape ) then
return MN_AUTO_MINIMAPS[ GetMinimapShape() ];
end
 
return nil;
end
local minimapShaped;
local visibilityUpdate = 0;
local MN_currentConst, MN_key;
local MN_pX, MN_pY, MN_dist = 0, 0, 0;
local MN_xPos, MN_yPos = 0, 0;
local MN_xScale, MN_yScale = 1, 1;
function MapNotes_MiniNote_OnUpdate(self, elapsed)
visibilityUpdate = visibilityUpdate + elapsed;
 
if ( ( MapNotes_TargetInfo_Proceed ) and ( GameTooltip:IsVisible() ) ) then
MapNotes_TargetInfo_Proceed.func();
return;
end
 
if ( visibilityUpdate > MapNotes_WorldMap_UpdateRate ) then -- Changed Update Rate slightly higher
 
-- check for Minimap shape change via SimpleMinimap in this OnUpdate function
minimapShaped = MN_GetMinimapShape();
 
MN_pX, MN_pY = GetPlayerMapPosition("player");
local lZone, lCont = GetCurrentMapZone(), GetCurrentMapContinent();
 
-- NOTE : if no player position or MapZone == 0... no need to show
if ( ( ( MN_pX == 0 ) and ( MN_pY == 0 ) ) or ( lZone == 0 ) ) then
MN_MiniNotePOI:Hide();
MapNotes_HideMiniNotes(1);
visibilityUpdate = 0;
return;
end
 
MN_currentConst = nil; -- reset & use as control for individual OnUpdates
local counter = 1;
local key = MapNotes_GetMapKey();
if ( ( MapNotes_Keys[key] ) and ( MapNotes_Keys[key].miniData ) ) then
if ( ( MapNotes_Keys[key] ) and ( MapNotes_Keys[key].miniData ) ) then
MN_currentConst = MapNotes_Keys[key].miniData;
else
MN_currentConst = MAPNOTES_DEFAULT_MINIDATA;
end
MN_currentZoom = Minimap:GetZoom();
if ( GetCVar("rotateMinimap") == "1" ) then
MN_rotatingMinimap = true;
else
MN_rotatingMinimap = nil;
end
 
if ( lZone > 0 ) then
MN_xScale = MapNotes_MiniConst[lCont][MN_currentZoom].xScale;
MN_yScale = MapNotes_MiniConst[lCont][MN_currentZoom].yScale;
else
MN_xScale = MapNotes_MiniConst[MAPNOTES_DEFAULT_MINIDATA.cont][MN_currentZoom].xScale;
MN_yScale = MapNotes_MiniConst[MAPNOTES_DEFAULT_MINIDATA.cont][MN_currentZoom].yScale;
end
if ( MapNotes_MiniNote_IsInCity ) then
MN_xScale = MN_xScale * MapNotes_CityConst[MN_currentZoom].cityScale;
MN_yScale = MN_yScale * MapNotes_CityConst[MN_currentZoom].cityScale;
end
 
MN_pX = MN_pX * MN_currentConst.scale + MN_currentConst.xOffset;
MN_pY = MN_pY * MN_currentConst.scale + MN_currentConst.yOffset;
 
if ( ( MapNotes_MiniNote_Data.key == key ) and ( MapNotes_MiniNote_Data.xPos ) ) then
MN_xPos = MapNotes_MiniNote_Data.xPos * MN_currentConst.scale + MN_currentConst.xOffset;
MN_yPos = MapNotes_MiniNote_Data.yPos * MN_currentConst.scale + MN_currentConst.yOffset;
MN_xPos = (MN_xPos - MN_pX) * MN_xScale;
MN_yPos = (MN_yPos - MN_pY) * MN_yScale;
MN_MiniNotePOI.key = key;
MN_MiniNotePOI.nid = MapNotes_MiniNote_Data.id;
MN_MiniNotePOI.xPos = MN_xPos;
MN_MiniNotePOI.yPos = MN_yPos;
MN_MiniNotePOI.ref = MapNotes_MiniNote_Data.id;
MN_MiniNotePOI.dist = sqrt( MN_xPos*MN_xPos + MN_yPos*MN_yPos );
if ( not MN_MiniNotePOI:IsVisible() ) then
MN_MiniNotePOI.timeSinceLastUpdate = 0;
-- MN_MiniNotePOI only shown through this routine now, and no explicit :Show() anywhere else, so the expected valudes for POI should be managed from here
-- so that it can be treated in exactly the same way as a normal MapNote Mininote detailed below
POI_OnUpdate(1, MN_MiniNotePOI);
end
else
MN_MiniNotePOI:Hide();
end
 
-- Plot normal MapNote Mininotes
if ( MapNotes_Data_Notes[key] ) then
local supData, subData = MapNotes_Data_Notes[key];
local i, POI, POITexture = 1;
while ( supData[i] ) do
subData = supData[i];
if ( subData.mininote ) then
POI = getglobal("MN_MiniNotePOI"..counter);
if ( not POI ) then
POI = CreateFrame("Button", "MN_MiniNotePOI"..counter, Minimap, "MN_MiniNotePOITemplate");
end
if ( POI ) then
MN_xPos = subData.xPos * MN_currentConst.scale + MN_currentConst.xOffset;
MN_yPos = subData.yPos * MN_currentConst.scale + MN_currentConst.yOffset;
MN_xPos = (MN_xPos - MN_pX) * MN_xScale;
MN_yPos = (MN_yPos - MN_pY) * MN_yScale;
POI.ref = i;
POI.key = key;
POI.nid = i;
POI.xPos = MN_xPos;
POI.yPos = MN_yPos;
POI.dist = sqrt( MN_xPos*MN_xPos + MN_yPos*MN_yPos );
 
POI.key = key;
POI.timeSinceLastUpdate = 0;
-- Custom
POITexture = getglobal(POI:GetName().."Texture");
POITexture:SetTexture(nil);
if ( ( MNIL ) and ( subData.customIcon ) ) then
POITexture:SetTexture( subData.customIcon );
end
if ( not POITexture:GetTexture() ) then
POITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..subData.icon);
end
POI_OnUpdate(1, POI);
 
counter = counter + 1;
end
end
i = i + 1;
end
end
 
else
MN_MiniNotePOI:Hide();
end
 
MapNotes_HideMiniNotes(counter); -- hide remaining Mininotes
visibilityUpdate = 0;
end
end
 
 
local MN_facing;
-- Basically the design here is to keep as many of the "traditional" required variables in the main OnUpdate because they don't need to be calculated SO frequently...
-- If possible, the only variable that needs Frequent updating is the Rotation Angle... But I move the test of the "if Rotation turned on" test in to the Main OnUpdate also, and only do a boolean test here
-- In other words I'm assuming you don't move SO quickly that changes in distance "stutter", but changes in orientation need to be reflected very quickly
function POI_OnUpdate(elapsed, POI)
POI.timeSinceLastUpdate = POI.timeSinceLastUpdate + elapsed;
 
if ( POI.timeSinceLastUpdate > MapNotes_Mininote_UpdateRate ) then
POI.timeSinceLastUpdate = 0;
 
if ( ( MN_pX == 0 ) and ( MN_pY == 0 ) ) then
return;
end
 
if ( MN_currentConst ) then
MN_xPos, MN_yPos = POI.xPos, POI.yPos;
MN_dist = POI.dist;
 
-- Recalculate the angle and convert from Polar coordinates back to cartesian coordinates if necessary
-- i.e. if Minimap Rotation needs to be accounted for
if ( MN_rotatingMinimap ) then
local theta = atan2(MN_xPos, MN_yPos) + MiniMapCompassRing:GetFacing();
MN_xPos = sin(theta) * MN_dist;
MN_yPos = cos(theta) * MN_dist;
end
 
-- Squared map ?
if ( minimapShaped ) then
local squared = 1;
if ( MN_xPos < 0 ) then squared = squared + 2; end
if ( MN_yPos > 0 ) then squared = squared + 1; end
squared = minimapShaped[squared];
if ( squared ) then
local p, q = abs(MN_xPos), abs(MN_yPos);
if ( q > p ) then p = q; end
if ( p > MN_miniRadius ) then
MN_dist = p;
else
MN_dist = 0;
end
end
end
 
if ( MN_dist > MN_miniRadius ) then
local scaling = MN_miniRadius / MN_dist;
MN_xPos = MN_xPos * scaling;
MN_yPos = MN_yPos * scaling;
end
 
POI:SetPoint("CENTER", "Minimap", "CENTER", MN_xPos, -MN_yPos);
POI:Show();
end
end
end
 
 
function MapNotes_HideMiniNotes(fr)
local POI = getglobal("MN_MiniNotePOI"..fr);
while ( POI ) do
POI:Hide();
POI.key = nil;
fr = fr + 1;
POI = getglobal("MN_MiniNotePOI"..fr);
end
end
 
 
 
function MapNotes_Edit_SetIcon(icon)
MapNotes_TempData_Icon = icon;
MN_IconOverlay:SetPoint("TOPLEFT", "MN_EditIcon"..icon, "TOPLEFT", -3, 3);
end
 
function MapNotes_Edit_SetTextColor(color, mBttn)
if ( ( not mBttn ) or ( mBttn == "LeftButton" ) ) then
MapNotes_TempData_TextColor = color;
MN_TextColorOverlay:SetPoint("TOPLEFT", "MN_TextColor"..color, "TOPLEFT", -3, 3);
else
if ( IsAltKeyDown() ) then
MapNotes_Options.colourT[1][color] = nil;
MN_InitialiseTextColours();
else
ColorPickerFrame.strata = ColorPickerFrame:GetFrameStrata();
ColorPickerFrame:SetParent(MapNotesEditFrame);
if ( MapNotesEditFrame:GetParent() == WorldMapButton ) then
ColorPickerFrame.forceHide = true;
end
MN_SetUpColourPicker(1, color);
ColorPickerFrame:SetFrameStrata("TOOLTIP");
ColorPickerFrame:SetFrameLevel(MapNotesEditFrame:GetFrameLevel() + 3);
ColorPickerOkayButton:SetFrameLevel( ColorPickerFrame:GetFrameLevel() + 1 );
ColorPickerCancelButton:SetFrameLevel( ColorPickerFrame:GetFrameLevel() + 1 );
end
end
end
 
function MapNotes_Edit_Set_Info1Color(color, mBttn)
if ( ( not mBttn ) or ( mBttn == "LeftButton" ) ) then
MapNotes_TempData_Info1Color = color;
MN_Info1ColorOverlay:SetPoint("TOPLEFT", "MN_Info1Color"..color, "TOPLEFT", -3, 3);
else
if ( IsAltKeyDown() ) then
MapNotes_Options.colourT[2][color] = nil;
MN_InitialiseTextColours();
else
ColorPickerFrame.strata = ColorPickerFrame:GetFrameStrata();
ColorPickerFrame:SetParent(MapNotesEditFrame);
if ( MapNotesEditFrame:GetParent() == WorldMapButton ) then
ColorPickerFrame.forceHide = true;
end
MN_SetUpColourPicker(2, color);
ColorPickerFrame:SetFrameStrata("TOOLTIP");
ColorPickerFrame:SetFrameLevel(MapNotesEditFrame:GetFrameLevel() + 3);
ColorPickerOkayButton:SetFrameLevel( ColorPickerFrame:GetFrameLevel() + 1 );
ColorPickerCancelButton:SetFrameLevel( ColorPickerFrame:GetFrameLevel() + 1 );
end
end
end
 
function MapNotes_Edit_Set_Info2Color(color, mBttn)
if ( ( not mBttn ) or ( mBttn == "LeftButton" ) ) then
MapNotes_TempData_Info2Color = color;
MN_Info2ColorOverlay:SetPoint("TOPLEFT", "MN_Info2Color"..color, "TOPLEFT", -3, 3);
else
if ( IsAltKeyDown() ) then
MapNotes_Options.colourT[3][color] = nil;
MN_InitialiseTextColours();
else
ColorPickerFrame.strata = ColorPickerFrame:GetFrameStrata();
ColorPickerFrame:SetParent(MapNotesEditFrame);
if ( MapNotesEditFrame:GetParent() == WorldMapButton ) then
ColorPickerFrame.forceHide = true;
end
MN_SetUpColourPicker(3, color);
ColorPickerFrame:SetFrameStrata("TOOLTIP");
ColorPickerFrame:SetFrameLevel(MapNotesEditFrame:GetFrameLevel() + 3);
ColorPickerOkayButton:SetFrameLevel( ColorPickerFrame:GetFrameLevel() + 1 );
ColorPickerCancelButton:SetFrameLevel( ColorPickerFrame:GetFrameLevel() + 1 );
end
end
end
 
function MapNotes_OpenEditForExistingNote(key, nid)
MapNotes_HideAll();
 
local currentZone = MapNotes_Data_Notes[key];
local lclFrame = UIParent;
local Plugin = MapNotes.pluginKeys[key];
 
if ( ( Plugin ) and ( not Plugin.wmflag ) ) then
lclFrame = getglobal( Plugin.frame );
 
elseif ( WorldMapButton:IsVisible() ) then
lclFrame = WorldMapButton;
end
 
MapNotes_TempData_Id = nid;
MapNotes_TempData_Creator = currentZone[MapNotes_TempData_Id].creator;
MapNotes_TempData_xPos = currentZone[MapNotes_TempData_Id].xPos;
MapNotes_TempData_yPos = currentZone[MapNotes_TempData_Id].yPos;
MapNotes_TempData_miniNote = currentZone[MapNotes_TempData_Id].mininote;
if ( not currentZone[MapNotes_TempData_Id].icon ) then
currentZone[MapNotes_TempData_Id].icon = 0;
end
MapNotes_Edit_SetIcon(currentZone[MapNotes_TempData_Id].icon);
MapNotes_Edit_SetTextColor(currentZone[MapNotes_TempData_Id].ncol);
MapNotes_Edit_Set_Info1Color(currentZone[MapNotes_TempData_Id].in1c);
MapNotes_Edit_Set_Info2Color(currentZone[MapNotes_TempData_Id].in2c);
MapNotes_TitleWideEditBox:SetText(currentZone[MapNotes_TempData_Id].name);
MN_Info1WideEditBox:SetText(currentZone[MapNotes_TempData_Id].inf1);
MN_Info2WideEditBox:SetText(currentZone[MapNotes_TempData_Id].inf2);
MN_CreatorWideEditBox:SetText(currentZone[MapNotes_TempData_Id].creator);
MapNotesEditFrame:SetParent(lclFrame);
MapNotesEditFrame.miniMe = currentZone[MapNotes_TempData_Id].mininote;
MapNotesEditFrame.k = key;
MapNotesEditFrame:Show();
end
 
function MapNotes_ShowSendFrame(number)
local Plugin = MapNotes.pluginKeys[ MapNotesSendFrame.key ];
local lclFrame = WorldMapButton;
 
if ( Plugin ) then
lclFrame = getglobal( Plugin.frame );
end
 
if ( number == 1 ) then
MapNotesSendPlayer:Enable();
 
MapNotesChangeSendFrame:SetText(MAPNOTES_SLASHCOMMAND);
MapNotes_SendWideEditBox:SetText("");
if UnitCanCooperate("player", "target") then
MapNotes_SendWideEditBox:SetText(UnitName("target"));
end
MapNotes_SendFrame_Title:SetText(MAPNOTES_SEND_TITLE);
MapNotes_SendFrame_Tip:SetText(MAPNOTES_SEND_TIP);
MapNotes_SendFrame_Player:SetText(MAPNOTES_SEND_PLAYER);
MapNotes_ToggleSendValue = 2;
 
elseif ( number == 2 ) then
MapNotesSendPlayer:Disable();
MapNotesChangeSendFrame:SetText(MAPNOTES_SHOWSEND);
MapNotes_SendWideEditBox:SetText("/mapnote "..MapNotes_GenerateSendString(2));
MapNotes_SendFrame_Title:SetText(MAPNOTES_SEND_SLASHTITLE);
MapNotes_SendFrame_Tip:SetText(MAPNOTES_SEND_SLASHTIP);
MapNotes_SendFrame_Player:SetText(MAPNOTES_SEND_SLASHCOMMAND);
MapNotes_ToggleSendValue = 1;
end
 
if not MapNotesSendFrame:IsVisible() then
MapNotes_HideAll();
MapNotesSendFrame:SetParent(lclFrame);
MapNotesSendFrame:Show();
end
end
 
function MapNotes_GenerateSendString(version)
-- <M_N> k<1> x<0.123123> y<0.123123> t<> i1<> i2<> cr<> i<8> tf<3> i1f<5> i2f<6>
local text = "";
local upperLimit = 164; -- SendAddonMessage with combined Prefix..Text of over 254 = Disconnect
 
if version == 1 then
text = "<M_N> ";
end
 
local key = MapNotesSendFrame.key;
local currentZone = MapNotes_Data_Notes[key];
 
local keyLen = string.len(key);
upperLimit = upperLimit - keyLen;
local t1 = MapNotes_EliminateUsedChars(currentZone[MapNotes_TempData_Id].name);
local t2 = MapNotes_EliminateUsedChars(currentZone[MapNotes_TempData_Id].inf1);
local t3 = MapNotes_EliminateUsedChars(currentZone[MapNotes_TempData_Id].inf2);
local cr = MapNotes_EliminateUsedChars(currentZone[MapNotes_TempData_Id].creator);
local truncated;
t1, t2, t3, cr, truncated = MapNotes_CheckLength(t1, t2, t3, cr, upperLimit);
 
text = text.."k<"..key..">"
local xPos = floor(currentZone[MapNotes_TempData_Id].xPos * 1000000)/1000000;
local yPos = floor(currentZone[MapNotes_TempData_Id].yPos * 1000000)/1000000;
 
text = text.." x<"..xPos.."> y<"..yPos..">";
text = text.." t<".. t1 ..">";
text = text.." i1<".. t2 ..">";
text = text.." i2<".. t3 ..">";
if not currentZone[MapNotes_TempData_Id].creator then
currentZone[MapNotes_TempData_Id].creator = UnitName("player");
end
text = text.." cr<"..cr..">";
text = text.." i<"..currentZone[MapNotes_TempData_Id].icon..">";
text = text.." tf<"..currentZone[MapNotes_TempData_Id].ncol..">";
text = text.." i1f<"..currentZone[MapNotes_TempData_Id].in1c..">";
text = text.." i2f<"..currentZone[MapNotes_TempData_Id].in2c..">";
 
if ( ( version == 1 ) and ( truncated ) ) then
MapNotes_StatusPrint(MAPNOTES_TRUNCATION_WARNING);
end
 
text = string.gsub(text, "|", "\124\124");
 
return text;
end
 
function MapNotes_CheckLength(t1, t2, t3, cr, upperLimit)
local l1 = string.len(t1);
local l2 = string.len(t2);
local l3 = string.len(t3);
local l4 = string.len(cr);
local truncated;
 
if ( l1 > upperLimit ) then
t1 = string.sub(t1, 1, upperLimit);
t2 = "";
t3 = "";
cr = "";
truncated = true;
 
elseif ( (l1+l2) > upperLimit ) then
t2 = string.sub(t2, 1, (upperLimit-l1));
t3 = "";
cr = "";
truncated = true;
 
elseif ( (l1+l2+l3) > upperLimit ) then
t3 = string.sub(t3, 1, (upperLimit-l1-l2));
cr = "";
truncated = true;
 
elseif ( (l1+l2+l3+l4) > upperLimit ) then
cr = string.sub(cr, 1, (upperLimit-l1-l2-l3));
truncated = true;
end
 
return t1, t2, t3, cr, truncated;
end
 
function MapNotes_EliminateUsedChars(text)
text = string.gsub(text, "<", "");
text = string.gsub(text, ">", "");
return text;
end
 
 
function MapNotes_SendNote(type)
if ( type == 1 ) then
SendChatMessage(MapNotes_GenerateSendString(1), "WHISPER", this.language, MapNotes_SendWideEditBox:GetText());
MapNotes_HideAll();
 
elseif ( type == 2 ) then
local msg = MapNotes_GenerateSendString(1);
SendAddonMessage( "MapNotes_FU", msg, "PARTY" );
 
elseif ( type == 3 ) then
local msg = MapNotes_GenerateSendString(1);
SendAddonMessage( "MapNotes_FU", msg, "RAID" );
 
elseif ( type == 4 ) then
local msg = MapNotes_GenerateSendString(1);
SendAddonMessage( "MapNotes_FU", msg, "BATTLEGROUND" );
 
elseif ( type == 5 ) then
local msg = MapNotes_GenerateSendString(1);
SendAddonMessage( "MapNotes_FU", msg, "GUILD" );
end
end
 
function MapNotes_OpenOptionsFrame()
for i=0, 16, 1 do
if MapNotes_Options[i] ~= "off" then
getglobal("MapNotesOptionsCheckbox"..i):SetChecked(1);
else
getglobal("MapNotesOptionsCheckbox"..i):SetChecked(0);
end
end
if ( MapNotes_Options.mapC ) then
MapNotesOptionsCheckboxMapC:SetChecked(1);
else
MapNotesOptionsCheckboxMapC:SetChecked(0);
end
if ( MapNotes_Options.miniC ) then
MapNotesOptionsCheckboxMiniC:SetChecked(1);
else
MapNotesOptionsCheckboxMiniC:SetChecked(0);
end
if ( MapNotes_Options.landMarks ) then
MapNotesOptionsCheckboxLM:SetChecked(1);
else
MapNotesOptionsCheckboxLM:SetChecked(0);
end
end
 
function MapNotes_WriteOptions()
for i=0, 16, 1 do
if getglobal("MapNotesOptionsCheckbox"..i):GetChecked() then
MapNotes_Options[i] = nil;
else
MapNotes_Options[i] = "off";
end
end
MapNotes_PlugInsRefresh();
MapNotes_MapUpdate();
end
 
function MapNotes_SetAsMiniNote(nid)
local key = MapNotes_GetMapKey();
local currentZone = nil;
 
if ( ( nid ) and ( nid > 0 ) ) then
currentZone = MapNotes_Data_Notes[key];
if ( currentZone ) then
currentZone = currentZone[nid];
end
end
 
if ( ( nid == 0 ) and ( MapNotes_MiniNote_Data.icon == "tloc" ) ) then
MapNotes_ClearMiniNote(true, "tloc");
 
elseif ( ( nid == -1 ) and ( MapNotes_MiniNote_Data.icon == "party" ) ) then
MapNotes_ClearMiniNote(true, "party");
 
elseif ( ( currentZone ) and ( currentZone.mininote ) ) then
currentZone.mininote = nil;
 
else
MapNotes_MiniNote_Data.key = key;
MapNotes_MiniNote_Data.id = nid -- able to show, because there wasn't a delete and its not received for showing on Minimap only
if ( nid == 0 ) then
MapNotes_MiniNote_Data.xPos = MapNotes_tloc_xPos;
MapNotes_MiniNote_Data.yPos = MapNotes_tloc_yPos;
MapNotes_MiniNote_Data.key = key;
MapNotes_MiniNote_Data.name = MAPNOTES_THOTTBOTLOC;
MapNotes_MiniNote_Data.color = 0;
MapNotes_MiniNote_Data.icon = "tloc";
MN_MiniNotePOITexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_TLOC_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_TLOC_ICON);
end
local txtr = MN_MiniNotePOITexture:GetTexture();
if ( not txtr ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..MapNotes_MiniNote_Data.icon);
end
 
elseif ( nid == -1 ) then
MapNotes_MiniNote_Data.xPos = MapNotes_PartyNoteData.xPos;
MapNotes_MiniNote_Data.yPos = MapNotes_PartyNoteData.yPos;
MapNotes_MiniNote_Data.key = key;
MapNotes_MiniNote_Data.name = MAPNOTES_PARTYNOTE;
MapNotes_MiniNote_Data.color = 0;
MapNotes_MiniNote_Data.icon = "party";
MN_MiniNotePOITexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_PARTY_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_PARTY_ICON);
end
local txtr = MN_MiniNotePOITexture:GetTexture();
if ( not txtr ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..MapNotes_MiniNote_Data.icon);
end
 
elseif ( currentZone ) then
currentZone.mininote = true;
end
end
 
MapNotes_MapUpdate();
end
 
function MapNotes_ClearMiniNoteGlobal()
MapNotes_ClearMiniNote(nil, nil);
end
 
function MapNotes_ClearMiniNote(skipMapUpdate, typ)
if ( ( typ ) and ( ( typ == "party" ) or ( typ == "tloc" ) ) ) then
if ( typ == "party" ) then
MapNotesPOIparty:SetAlpha( MapNotes_Options.aFactor );
else
MapNotesPOItloc:SetAlpha( MapNotes_Options.aFactor );
end
MapNotes_MiniNote_Data.xPos = nil;
MapNotes_MiniNote_Data.yPos = nil;
MapNotes_MiniNote_Data.key = nil;
MapNotes_MiniNote_Data.id = nil; -- nothing to show on the zone map
MapNotes_MiniNote_Data.name = nil;
MapNotes_MiniNote_Data.color = nil;
MapNotes_MiniNote_Data.icon = nil;
MN_MiniNotePOI:Hide();
 
elseif ( typ.ref ) then
MapNotes_Data_Notes[typ.key][typ.ref].mininote = nil;
typ:Hide();
 
elseif ( typ.id ) then
MapNotes_Data_Notes[typ.key][typ.id].mininote = nil;
 
else
MapNotes_MiniNote_Data.xPos = nil;
MapNotes_MiniNote_Data.yPos = nil;
MapNotes_MiniNote_Data.key = nil;
MapNotes_MiniNote_Data.id = nil; -- nothing to show on the zone map
MapNotes_MiniNote_Data.name = nil;
MapNotes_MiniNote_Data.color = nil;
MapNotes_MiniNote_Data.icon = nil;
MN_MiniNotePOI:Hide();
end
 
if ( not skipMapUpdate ) then
MapNotes_MapUpdate();
end
end
 
 
function MapNotes_WriteNote()
MapNotes_HideAll();
 
local key = MapNotesEditFrame.k;
local Plugin = MapNotes.pluginKeys[key];
local currentZone = MapNotes_Data_Notes[key];
 
currentZone[MapNotes_TempData_Id] = {};
currentZone[MapNotes_TempData_Id].name = MapNotes_TitleWideEditBox:GetText();
currentZone[MapNotes_TempData_Id].ncol = MapNotes_TempData_TextColor;
currentZone[MapNotes_TempData_Id].inf1 = MN_Info1WideEditBox:GetText();
currentZone[MapNotes_TempData_Id].in1c = MapNotes_TempData_Info1Color;
currentZone[MapNotes_TempData_Id].inf2 = MN_Info2WideEditBox:GetText();
currentZone[MapNotes_TempData_Id].in2c = MapNotes_TempData_Info2Color;
currentZone[MapNotes_TempData_Id].creator = MN_CreatorWideEditBox:GetText();
currentZone[MapNotes_TempData_Id].icon = MapNotes_TempData_Icon;
currentZone[MapNotes_TempData_Id].xPos = MapNotes_TempData_xPos;
currentZone[MapNotes_TempData_Id].yPos = MapNotes_TempData_yPos;
currentZone[MapNotes_TempData_Id].mininote = MapNotes_TempData_miniNote;
 
if ( MapNotesEditFrame.miniMe ) then
currentZone[MapNotes_TempData_Id].mininote = true;
 
elseif ( ( key == MapNotes_MiniNote_Data.key ) and ( MapNotes_MiniNote_Data.id == MapNotes_TempData_Id ) ) then
currentZone[MapNotes_TempData_Id].mininote = true;
end
 
if ( Plugin ) then
MapNotes_PlugInsDrawNotes(Plugin);
else
MapNotes_MapUpdate();
end
end
 
function MapNotes_MapUpdate()
-- if WorldMapButton:IsVisible() then
MapNotes_WorldMapButton_OnUpdate();
-- end
if Minimap:IsVisible() then
Minimap_OnUpdate(Minimap, 0.0); --Telic_* (Lack of argument can cause error in Minimap.lua)
end
end
 
function MapNotes_HideAll()
-- dialogs
MapNotesEditFrame:Hide();
MapNotesOptionsFrame:Hide();
MapNotesSendFrame:Hide();
 
MapNotes_ClearGUI();
end
 
 
 
function MapNotes_HideFrames()
MapNotesEditFrame:Hide();
MapNotesOptionsFrame:Hide();
MapNotesSendFrame:Hide();
MapNotes_ClearGUI();
end
 
 
 
function MapNotes_FramesHidden()
if ( ( MapNotesEditFrame:IsVisible() ) or
( MapNotesSendFrame:IsVisible() ) or
( MapNotesOptionsFrame:IsVisible() ) ) then
return false;
else
return true;
end
end
 
function MapNotes_DeleteNote(nid, key, suppress)
local Plugin;
 
if ( type(key) == "string" ) then
Plugin = MapNotes.pluginKeys[key];
 
elseif ( ( key ) and ( key.frame ) ) then
Plugin = key;
key = MapNotes_PlugInsGetKey(key);
 
else
if ( not key ) then
key = MapNotes_GetMapKey();
end
end
 
if ( nid == 0 ) then
MapNotes_tloc_xPos = nil;
MapNotes_tloc_yPox = nil;
MapNotes_tloc_name = nil;
MapNotes_tloc_key = nil;
if ( MapNotes_MiniNote_Data.icon == "tloc") then
MapNotes_ClearMiniNote(true, "tloc");
end
MapNotes_MapUpdate();
return
 
elseif ( nid == -1 ) then
MapNotes_PartyNoteData.xPos = nil;
MapNotes_PartyNoteData.yPos = nil;
MapNotes_PartyNoteData.key = nil;
if ( MapNotes_MiniNote_Data.icon == "party" ) then
MapNotes_ClearMiniNote(true, "party");
end
if ( Plugin ) then
MapNotes_PlugInsDrawNotes(Plugin)
else
MapNotes_MapUpdate();
end
return Plugin;
end
 
local currentZone, lastEntry;
currentZone = MapNotes_Data_Notes[key];
lastEntry = MapNotes_GetZoneTableSize(currentZone);
 
MapNotes_DeleteLines(key, currentZone[nid].xPos, currentZone[nid].yPos);
 
if ( ( lastEntry ~= 0 ) and ( nid <= lastEntry ) ) then
MapNotes_Undelete_Info.key = key;
if ( Plugin ) then
MapNotes_Undelete_Info.plugin = Plugin.name; -- Plugin itself is a table reference which won't survive relog - so store name, and retrieve plugin based on it
else -- If Plugin not loaded, then delete the undelete info...
MapNotes_Undelete_Info.plugin = nil;
end
 
MapNotes_Undelete_Info.name = currentZone[nid].name;
currentZone[nid].name = currentZone[lastEntry].name;
currentZone[lastEntry].name = nil;
 
MapNotes_Undelete_Info.ncol = currentZone[nid].ncol;
currentZone[nid].ncol = currentZone[lastEntry].ncol;
currentZone[lastEntry].ncol = nil;
 
MapNotes_Undelete_Info.inf1 = currentZone[nid].inf1;
currentZone[nid].inf1 = currentZone[lastEntry].inf1;
currentZone[lastEntry].inf1 = nil;
 
MapNotes_Undelete_Info.in1c = currentZone[nid].in1c;
currentZone[nid].in1c = currentZone[lastEntry].in1c;
currentZone[lastEntry].in1c = nil;
 
MapNotes_Undelete_Info.inf2 = currentZone[nid].inf2;
currentZone[nid].inf2 = currentZone[lastEntry].inf2;
currentZone[lastEntry].inf2 = nil;
 
MapNotes_Undelete_Info.in2c = currentZone[nid].in2c;
currentZone[nid].in2c = currentZone[lastEntry].in2c;
currentZone[lastEntry].in2c = nil;
 
MapNotes_Undelete_Info.creator = currentZone[nid].creator;
currentZone[nid].creator = currentZone[lastEntry].creator;
currentZone[lastEntry].creator = nil;
 
MapNotes_Undelete_Info.icon = currentZone[nid].icon;
currentZone[nid].icon = currentZone[lastEntry].icon;
currentZone[lastEntry].icon = nil;
 
MapNotes_Undelete_Info.xPos = currentZone[nid].xPos;
currentZone[nid].xPos = currentZone[lastEntry].xPos;
currentZone[lastEntry].xPos = nil;
 
MapNotes_Undelete_Info.yPos = currentZone[nid].yPos;
currentZone[nid].yPos = currentZone[lastEntry].yPos;
currentZone[lastEntry].yPos = nil;
 
MapNotes_Undelete_Info.mininote = currentZone[nid].mininote;
if ( currentZone[lastEntry].mininote ) then
currentZone[nid].mininote = true;
currentZone[lastEntry].mininote = nil;
else
currentZone[nid].mininote = nil;
end
 
MapNotes_Undelete_Info.customIcon = currentZone[nid].customIcon;
if ( currentZone[lastEntry].customIcon ) then
currentZone[nid].customIcon = currentZone[lastEntry].customIcon;
currentZone[lastEntry].customIcon = nil;
else
currentZone[nid].customIcon = nil;
end
 
currentZone[lastEntry] = nil;
end
 
if ( not suppress ) then
if ( Plugin ) then
MapNotes_PlugInsDrawNotes(Plugin);
else
MapNotes_MapUpdate();
end
end
 
return Plugin;
end
 
 
function MapNotes_Undelete()
if ( MapNotes_Undelete_Info.key ) then
local currentZone = MapNotes_Data_Notes[MapNotes_Undelete_Info.key];
if ( currentZone ) then
local checknote = MapNotes_CheckNearNotes(MapNotes_Undelete_Info.key, MapNotes_Undelete_Info.xPos, MapNotes_Undelete_Info.yPos);
if ( checknote ) then
MapNotes_StatusPrint(format(MAPNOTES_QUICKNOTE_NOTETONEAR, MapNotes_Data_Notes[MapNotes_Undelete_Info.key][checknote].name ) );
else
MapNotes_TempData_Id = ( MapNotes_GetZoneTableSize( currentZone ) ) + 1;
currentZone[MapNotes_TempData_Id] = {};
currentZone[MapNotes_TempData_Id].name = MapNotes_Undelete_Info.name;
MapNotes_Undelete_Info.name = nil;
currentZone[MapNotes_TempData_Id].ncol = MapNotes_Undelete_Info.ncol;
MapNotes_Undelete_Info.ncol = nil;
currentZone[MapNotes_TempData_Id].inf1 = MapNotes_Undelete_Info.inf1;
MapNotes_Undelete_Info.inf1 = nil;
currentZone[MapNotes_TempData_Id].in1c = MapNotes_Undelete_Info.in1c;
MapNotes_Undelete_Info.in1c = nil;
currentZone[MapNotes_TempData_Id].inf2 = MapNotes_Undelete_Info.inf2;
MapNotes_Undelete_Info.inf2 = nil;
currentZone[MapNotes_TempData_Id].in2c = MapNotes_Undelete_Info.in2c;
MapNotes_Undelete_Info.in2c = nil;
currentZone[MapNotes_TempData_Id].creator = MapNotes_Undelete_Info.creator;
MapNotes_Undelete_Info.creator = nil;
currentZone[MapNotes_TempData_Id].icon = MapNotes_Undelete_Info.icon;
MapNotes_Undelete_Info.icon = nil;
currentZone[MapNotes_TempData_Id].xPos = MapNotes_Undelete_Info.xPos;
MapNotes_Undelete_Info.xPos = nil;
currentZone[MapNotes_TempData_Id].yPos = MapNotes_Undelete_Info.yPos;
MapNotes_Undelete_Info.yPos = nil;
currentZone[MapNotes_TempData_Id].mininote = MapNotes_Undelete_Info.mininote;
MapNotes_Undelete_Info.mininote = nil;
currentZone[MapNotes_TempData_Id].customIcon = MapNotes_Undelete_Info.customIcon;
MapNotes_Undelete_Info.customIcon = nil;
 
local Plugin;
if ( MapNotes_Undelete_Info.plugin ) then
for p, details in pairs(MAPNOTES_PLUGINS_LIST) do
if ( MapNotes_Undelete_Info.plugin == details.name ) then
Plugin = details;
end
end
if ( Plugin ) then MapNotes_PlugInsDrawNotes(Plugin); end
else
MapNotes_MapUpdate();
end
MapNotes_StatusPrint( format(MAPNOTES_ACCEPT_SLASH, MapNotes_GetMapDisplayName(MapNotes_Undelete_Info.key, Plugin)) );
MapNotes_Undelete_Info.key = nil;
MapNotes_Undelete_Info.plugin = nil;
end
end
end
end
 
function MapNotes_GetZoneTableSize(zoneTable)
local i = 0;
 
for index, records in ipairs(zoneTable) do
i = i + 1;
end
 
return i;
end
 
 
function MapNotes_DeleteNotesWithText(text, key)
if ( not text ) then
return;
end
 
local count, cText, Plugin = 0;
 
if ( ( key ) and ( MapNotes_Data_Notes[key] ) ) then
local records = MapNotes_Data_Notes[key];
for n_id=MapNotes_GetZoneTableSize(records), 1, -1 do
cText = records[n_id].name .. records[n_id].inf1 .. records[n_id].inf2;
if ( string.find(cText, text) ) then
Plugin = MapNotes_DeleteNote(n_id, key, true);
count = count + 1;
end
end
 
else
for key, records in pairs(MapNotes_Data_Notes) do
for n_id=MapNotes_GetZoneTableSize(records), 1, -1 do
cText = records[n_id].name .. records[n_id].inf1 .. records[n_id].inf2;
if ( string.find(cText, text) ) then
Plugin = MapNotes_DeleteNote(n_id, key, true);
count = count + 1;
end
end
end
end
 
if ( text ) then
MapNotes_StatusPrint(format(TEXT(MN_DELETED_WITH_TEXT), text) .. " (" .. count .. ")");
end
 
if ( Plugin ) then
MapNotes_PlugInsDrawNotes(Plugin);
else
MapNotes_MapUpdate();
end
end
 
function MapNotes_DeleteNotesByCreatorAndName(creator, name, key) --Oh,that's where its called from;)WoWKb -- 29/07/2007
if ( not creator ) then
return;
end
 
local region = MN_ALLZONES;
local count, Plugin = 0;
 
if ( ( key ) and ( MapNotes_Data_Notes[key] ) ) then
local records = MapNotes_Data_Notes[key];
for n_id=MapNotes_GetZoneTableSize(records), 1, -1 do
if ( ( creator == records[n_id].creator ) and ( name == records[n_id].name or name == nil ) ) then
Plugin = MapNotes_DeleteNote(n_id, key, true);
count = count + 1;
end
end
 
else
for key, records in pairs(MapNotes_Data_Notes) do
for n_id=MapNotes_GetZoneTableSize(records), 1, -1 do
if ( ( creator == records[n_id].creator ) and ( name == records[n_id].name or name == nil ) ) then
Plugin = MapNotes_DeleteNote(n_id, key, true);
count = count + 1;
end
end
end
end
 
if ( name ) then
MapNotes_StatusPrint(format(TEXT(MAPNOTES_DELETED_BY_NAME), creator, name) .. " (" .. count .. ")");
else
MapNotes_StatusPrint(format(TEXT(MAPNOTES_DELETED_BY_CREATOR), creator) .. " (" .. count .. ")");
end
 
if ( Plugin ) then
MapNotes_PlugInsDrawNotes(Plugin);
else
MapNotes_MapUpdate();
end
end
 
function MapNotes_ClearMiniNotesByCreator(creator)
if ( not creator ) then
return;
end
 
for key, records in pairs(MapNotes_Data_Notes) do
for n_id=MapNotes_GetZoneTableSize(records), 1, -1 do
if ( creator == records[n_id].creator ) then
records[n_id].mininote = nil;
end
end
end
end
 
 
 
function MapNotes_Note_OnClick(self, mouseButton)
local lclFrame = self:GetParent();
local Plugin = self.Plugin;
local key = self.key;
local nid = self.nid;
 
CloseDropDownMenus(); -- test to see if this can taint ? %%%
 
if not MapNotes_FramesHidden() then
return;
end
 
local currentZone;
 
currentZone = MapNotes_Data_Notes[key];
 
if ( MapNotes_LastLineClick.GUIactive ) then
local ax = currentZone[nid].xPos;
local ay = currentZone[nid].yPos;
if ( ( MapNotes_LastLineClick.x ~= ax or MapNotes_LastLineClick.y ~= ay) and ( MapNotes_LastLineClick.key == key ) ) then
MapNotes_ToggleLine(key, ax, ay, MapNotes_LastLineClick.x, MapNotes_LastLineClick.y, Plugin);
end
MapNotes_ClearGUI();
 
elseif ( mouseButton == "RightButton" ) then
MapNotes_TempData_Id = nid; -- Doh! *** DO NOT DELETE ***
 
if ( ( IsControlKeyDown() ) and ( IsAltKeyDown() ) ) then
MapNotes_OpenEditForExistingNote(key, nid);
MapNotes_TitleWideEditBox:SetFocus();
MapNotes_TitleWideEditBox:HighlightText();
 
elseif ( IsAltKeyDown() ) then
if ( IsShiftKeyDown() ) then
local lTime = GetTime() - 0.6;
if ( ( MapNotes_DoubleClick_Timer > lTime ) and ( MapNotes_DoubleClick_Id == nid ) and ( MapNotes_DoubleClick_Key == key ) ) then
MapNotes_DeleteNote(nid, key);
MapNotes_DoubleClick_Id = -2;
MapNotes_DoubleClick_Key = "";
MapNotes_DoubleClick_Timer = lTime - 2;
 
else
MapNotes_DoubleClick_Id = nid;
MapNotes_DoubleClick_Key = key;
MapNotes_DoubleClick_Timer = GetTime() - 0.1; -- paranoid in case 2 clicks can fetch same time ;P
end
 
elseif ( ( not Plugin ) or ( Plugin.wmflag ) ) then -- Mininotes only on WorldMap type notes
if ( currentZone[nid].mininote ) then
currentZone[nid].mininote = nil;
else
currentZone[nid].mininote = true;
end
MapNotes_MapUpdate();
end
 
else
local xOffset, yOffset = MapNotes_GetAdjustedMapXY(lclFrame);
WorldMapTooltip:Hide();
GameTooltip:Hide();
MapNotes:InitialiseDropdown(lclFrame, currentZone[nid].xPos, currentZone[nid].yPos, MapNotes.note_dd_info, key, nid);
ToggleDropDownMenu(1, nil, MapNotes.dd, "cursor", 0, 0);
WorldMapTooltip:Hide();
GameTooltip:Hide();
end
 
elseif ( ( mouseButton == "LeftButton" ) and ( IsAltKeyDown() ) and ( not IsControlKeyDown() ) ) then
local ax = currentZone[nid].xPos;
local ay = currentZone[nid].yPos;
if (MapNotes_LastLineClick.x ~= ax or MapNotes_LastLineClick.y ~= ay) and MapNotes_LastLineClick.key == key and MapNotes_LastLineClick.time > GetTime() - 4 then
MapNotes_ToggleLine(key, ax, ay, MapNotes_LastLineClick.x, MapNotes_LastLineClick.y, Plugin);
else
MapNotes_LastLineClick.x = ax;
MapNotes_LastLineClick.y = ay;
MapNotes_LastLineClick.key = key;
MapNotes_LastLineClick.time = GetTime();
end
end
end
 
function MapNotes_StartGUIToggleLine(key)
if ( not MapNotes.pluginKeys[key] ) then
WorldMapMagnifyingGlassButton:SetText(MAPNOTES_WORLDMAP_HELP_1.."\n"..MAPNOTES_WORLDMAP_HELP_2.."\n"..MAPNOTES_WORLDMAP_HELP_3.."\n"..MAPNOTES_CLICK_ON_SECOND_NOTE);
end
 
local currentZone = MapNotes_Data_Notes[key]; --Telic_*
 
MapNotes_LastLineClick.GUIactive = true;
MapNotes_LastLineClick.x = currentZone[MapNotes_TempData_Id].xPos; --Telic_* (changed to use currentZone)
MapNotes_LastLineClick.y = currentZone[MapNotes_TempData_Id].yPos; --Telic_* (changed to use cuurentZone)
MapNotes_LastLineClick.key = key;
end
 
function MapNotes_ClearGUI()
WorldMapMagnifyingGlassButton:SetText(MAPNOTES_WORLDMAP_HELP_1.."\n"..MAPNOTES_WORLDMAP_HELP_2.."\n"..MAPNOTES_WORLDMAP_HELP_3);
MapNotes_LastLineClick.GUIactive = false;
end
 
function MapNotes_DrawLine(n_id, x1, y1, x2, y2, Plugin) --Telic_2 (Added Plugin parameter)
if ( ( not x1 ) or ( not x2 ) or ( not y1 ) or ( not y2 ) ) then
return;
end
 
local MapNotesLine = MapNotes_AssignLine(n_id, Plugin);
 
local lineFrame = WorldMapDetailFrame;
if ( Plugin ) then
lineFrame = getglobal( Plugin.frame .. "_MNLinesFrame" );
end
 
local positiveSlopeTexture = MN_MISC_GFX_PATH.."\\LineTemplatePositive256";
local negativeSlopeTexture = MN_MISC_GFX_PATH.."\\LineTemplateNegative256";
local width = lineFrame:GetWidth();
local height = lineFrame:GetHeight();
 
local deltax = ( abs((x1 - x2) * width) );
local deltay = ( abs((y1 - y2) * height) );
 
local xOffset = ( (math.min(x1,x2) * width ) );
local yOffset = (-(math.min(y1,y2) * height) );
local lowerpixel = math.min(deltax, deltay);
lowerpixel = lowerpixel / 256;
if lowerpixel > 1 then
lowerpixel = 1;
end
 
if deltax == 0 then
deltax = 2;
MapNotesLine:SetTexture(0, 0, 0);
MapNotesLine:SetTexCoord(0, 1, 0, 1);
elseif deltay == 0 then
deltay = 2;
MapNotesLine:SetTexture(0, 0, 0);
MapNotesLine:SetTexCoord(0, 1, 0, 1);
elseif x1 - x2 < 0 then
if y1 - y2 < 0 then
MapNotesLine:SetTexture(negativeSlopeTexture);
MapNotesLine:SetTexCoord(0, lowerpixel, 0, lowerpixel);
else
MapNotesLine:SetTexture(positiveSlopeTexture);
MapNotesLine:SetTexCoord(0, lowerpixel, 1-lowerpixel, 1);
end
else
if y1 - y2 < 0 then
MapNotesLine:SetTexture(positiveSlopeTexture);
MapNotesLine:SetTexCoord(0, lowerpixel, 1-lowerpixel, 1);
else
MapNotesLine:SetTexture(negativeSlopeTexture);
MapNotesLine:SetTexCoord(0, lowerpixel, 0, lowerpixel);
end
end
 
MapNotesLine:SetPoint("TOPLEFT", lineFrame, "TOPLEFT", xOffset, yOffset);
MapNotesLine:SetWidth(deltax);
MapNotesLine:SetHeight(deltay);
MapNotesLine:Show();
end
 
function MapNotes_DeleteLines(key, x, y)
local zoneTable = MapNotes_Data_Lines[key];
local lineCount = MapNotes_GetZoneTableSize(zoneTable);
local offset = 0;
 
for i = 1, lineCount, 1 do
if (zoneTable[i-offset].x1 == x and zoneTable[i-offset].y1 == y) or (zoneTable[i-offset].x2 == x and zoneTable[i-offset].y2 == y) then
for j = i, lineCount-1, 1 do
zoneTable[j-offset].x1 = zoneTable[j+1-offset].x1;
zoneTable[j-offset].x2 = zoneTable[j+1-offset].x2;
zoneTable[j-offset].y1 = zoneTable[j+1-offset].y1;
zoneTable[j-offset].y2 = zoneTable[j+1-offset].y2;
end
zoneTable[lineCount-offset] = nil;
offset = offset + 1;
end
end
MapNotes_LastLineClick.key = "nil";
end
 
 
 
function MapNotes_ToggleLine(key, x1, y1, x2, y2, Plugin)
local zoneTable = MapNotes_Data_Lines[key];
local newline = true;
 
local lineCount = MapNotes_GetZoneTableSize(zoneTable);
 
for i = 1, lineCount, 1 do
if i <= lineCount then
if (zoneTable[i].x1 == x1 and zoneTable[i].y1 == y1 and zoneTable[i].x2 == x2 and zoneTable[i].y2 == y2) or
(zoneTable[i].x1 == x2 and zoneTable[i].y1 == y2 and zoneTable[i].x2 == x1 and zoneTable[i].y2 == y1) then
for j = i, lineCount-1, 1 do
zoneTable[j].x1 = zoneTable[j+1].x1;
zoneTable[j].x2 = zoneTable[j+1].x2;
zoneTable[j].y1 = zoneTable[j+1].y1;
zoneTable[j].y2 = zoneTable[j+1].y2;
end
zoneTable[lineCount] = nil;
PlaySound("igMainMenuOption");
newline = false;
lineCount = lineCount - 1;
end
end
end
if ( newline ) then
zoneTable[lineCount+1] = {};
zoneTable[lineCount+1].x1 = x1;
zoneTable[lineCount+1].x2 = x2;
zoneTable[lineCount+1].y1 = y1;
zoneTable[lineCount+1].y2 = y2;
end
MapNotes_LastLineClick.key = "nil";
 
if ( Plugin ) then
MapNotes_PlugInsDrawNotes(Plugin);
else
MapNotes_MapUpdate();
end
end
 
 
 
function MapNotes_OpenEditForNewNote()
if ( MapNotes_TempData_Id == 0 ) then
MapNotes_tloc_xPos = nil;
MapNotes_tloc_yPos = nil;
MapNotes_tloc_name = nil;
MapNotes_tloc_key = nil;
end
 
MapNotes_TempData_Id = MapNotes_NewNoteSlot(MapNotesEditFrame.k);
MapNotes_TempData_Creator = UnitName("player");
MapNotes_Edit_SetIcon(0);
MapNotes_Edit_SetTextColor(0);
MapNotes_Edit_Set_Info1Color(0);
MapNotes_Edit_Set_Info2Color(0);
MapNotes_TitleWideEditBox:SetText("");
MN_Info1WideEditBox:SetText("");
MN_Info2WideEditBox:SetText("");
MN_CreatorWideEditBox:SetText(MapNotes_TempData_Creator);
MapNotes_HideAll();
MapNotesEditFrame:Show();
end
 
function MapNotes_SetPartyNote(xPos, yPos, pKey)
if ( ( not pKey ) and ( ( GetCurrentMapZone() == 0 ) or ( GetCurrentMapContinent() == 0 ) ) ) then
return;
end
 
xPos = floor(xPos * 1000000) / 1000000;
yPos = floor(yPos * 1000000) / 1000000;
local key, lKey;
if ( pKey ) then
key = pKey;
_, lKey = MapNotes_GetMapDisplayName(key);
else
key = MapNotes_GetMapKey();
lKey = MapNotes_GetMapDisplayName(key);
end
 
MapNotes_PartyNoteData.key = key;
MapNotes_PartyNoteData.xPos = xPos;
MapNotes_PartyNoteData.yPos = yPos;
 
local msg = "<M_N> k<"..key.."> x<"..xPos.."> y<"..yPos.."> l<"..lKey.."> p<1>"; --Telic_6
 
if ( ( IsControlKeyDown() ) and ( GetNumRaidMembers() > 0 ) ) then -- Send Party note if not in Raid
SendAddonMessage( "MapNotes_FU", msg, "RAID" );
 
else
SendAddonMessage( "MapNotes_FU", msg, "PARTY" ); --Telic_6
end
 
if ( ( not pKey ) and ( ( MapNotes_MiniNote_Data.icon == "party" ) or ( MapNotes_Options[16] ~= "off" ) ) ) then
MapNotes_MiniNote_Data.id = -1;
MapNotes_MiniNote_Data.key = key;
MapNotes_MiniNote_Data.xPos = xPos;
MapNotes_MiniNote_Data.yPos = yPos;
MapNotes_MiniNote_Data.name = MAPNOTES_PARTYNOTE;
MapNotes_MiniNote_Data.color = 0;
MapNotes_MiniNote_Data.icon = "party";
MN_MiniNotePOITexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_PARTY_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_PARTY_ICON);
end
local txtr = MN_MiniNotePOITexture:GetTexture();
if ( not txtr ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..MapNotes_MiniNote_Data.icon);
end
 
elseif ( ( pKey ) and ( MapNotes_MiniNote_Data.icon == "party" ) ) then
MapNotes_ClearMiniNote(true, "party");
end
 
MapNotes_MapUpdate();
end
 
 
 
function MapNotes_MiniNote_OnClick(self, mouseButton)
if ( ( mouseButton == "RightButton" ) and ( self.ref ) and ( self.ref > 0 ) ) then
if ( ( IsControlKeyDown() ) and ( not IsAltKeyDown() ) ) then
SetMapToCurrentZone();
local x, y = GetPlayerMapPosition("player");
if ( ( x == 0 ) and ( y == 0 ) ) then
 
else
local key = MapNotes_GetMapKey();
if ( self.key == key ) then
MapNotes:InitialiseDropdown(UIParent, nil, nil, MapNotes.mininote_dd_info, key, self.ref);
ToggleDropDownMenu(1, nil, MapNotes.dd, "cursor", 0, 0);
return;
end
end
 
elseif ( ( IsShiftKeyDown() ) and ( IsAltKeyDown() ) ) then
local lTime = GetTime() - 0.7; -- allow 1 second for the second click
if ( ( MapNotes_DoubleClick_Timer > lTime ) and ( MapNotes_DoubleClick_Id == self.ref ) and ( MapNotes_DoubleClick_Key == self.key ) ) then
MapNotes_HideFrames();
MapNotes_DeleteNote(self.ref, self.key);
MapNotes_StatusPrint(MAPNOTES_DELETE_NOTE);
MapNotes_DoubleClick_Id = -2;
MapNotes_DoubleClick_Key = "";
MapNotes_DoubleClick_Timer = lTime - 2;
 
else
MapNotes_DoubleClick_Id = self.ref;
MapNotes_DoubleClick_Key = self.key;
MapNotes_DoubleClick_Timer = GetTime() - 0.1; -- paranoid in case 2 clicks can fetch same time ;P
end
return;
 
elseif ( ( IsControlKeyDown() ) and ( IsAltKeyDown() ) ) then
if ( MapNotesEditFrame:IsVisible() ) then
MapNotesEditFrame:Hide();
else
MapNotes_OpenEditForExistingNote(self.key, self.ref);
MapNotes_TitleWideEditBox:SetFocus();
MapNotes_TitleWideEditBox:HighlightText();
end
return;
 
elseif ( ( IsAltKeyDown() ) ) then
local note = MapNotes_Data_Notes[self.key];
if ( note ) then
note = note[self.ref];
end
if ( note ) then
note.mininote = nil;
end
MapNotes_MapUpdate();
return;
end
 
elseif ( ( mouseButton == "RightButton" ) and ( self.ref <= 0 ) ) then
if ( ( IsControlKeyDown() ) and ( not IsAltKeyDown() ) ) then
SetMapToCurrentZone();
local x, y = GetPlayerMapPosition("player");
if ( ( x == 0 ) and ( y == 0 ) ) then
 
else
local key = MapNotes_GetMapKey();
if ( self.key == key ) then
MapNotes:InitialiseDropdown(UIParent, MapNotes_MiniNote_Data.xPos, MapNotes_MiniNote_Data.yPos, MapNotes.temp_dd_info, key, self.ref);
ToggleDropDownMenu(1, nil, MapNotes.dd, "cursor", 0, 0);
return;
end
end
 
elseif ( ( IsShiftKeyDown() ) and ( not IsAltKeyDown() ) and ( not IsControlKeyDown() ) ) then
MapNotes_DeleteNote(self.ref, self.key);
 
elseif ( ( IsAltKeyDown() ) and ( not IsControlKeyDown() ) and ( not IsShiftKeyDown() ) ) then
if ( self.ref == 0 ) then
MapNotes_ClearMiniNote(nil, "tloc");
elseif ( self.ref == -1 ) then
MapNotes_ClearMiniNote(nil, "party");
end
end
return;
end
 
Minimap_OnClick(Minimap, mouseButton);
end
 
function MapNotes_Minimap_OnClick(...)
if ( ( IsControlKeyDown() ) and ( IsAltKeyDown() ) and ( arg1 == "RightButton" ) ) then
local x, y = GetCursorPosition();
x = x / this:GetEffectiveScale();
y = y / this:GetEffectiveScale();
 
local cx, cy = this:GetCenter();
x = x - cx;
y = 1 - ( y - cy );
local dist = sqrt(x * x + y * y);
if ( dist < (this:GetWidth() / 2) ) then
 
SetMapToCurrentZone();
local pX, pY = GetPlayerMapPosition("player");
local lZone, lCont = GetCurrentMapZone(), GetCurrentMapContinent();
 
if ( ( ( pX == 0 ) and ( pY == 0 ) ) or ( lZone == 0 ) ) then
return;
 
else
local currentConst, currentZoom, rotatingMinimap, xScale, yScale, mapX, mapY;
local key = MapNotes_GetMapKey();
 
if ( ( MapNotes_Keys[key] ) and ( MapNotes_Keys[key].miniData ) ) then
if ( ( MapNotes_Keys[key] ) and ( MapNotes_Keys[key].miniData ) ) then
currentConst = MapNotes_Keys[key].miniData;
else
currentConst = MAPNOTES_DEFAULT_MINIDATA;
end
currentZoom = Minimap:GetZoom();
 
if ( GetCVar("rotateMinimap") == "1" ) then
rotatingMinimap = MiniMapCompassRing:GetFacing();
end
 
if ( rotatingMinimap ) then
local theta = atan2(x, y);
theta = theta - rotatingMinimap;
x = sin(theta) * dist;
y = cos(theta) * dist;
end
 
if ( lZone > 0 ) then
xScale = MapNotes_MiniConst[lCont][currentZoom].xScale;
yScale = MapNotes_MiniConst[lCont][currentZoom].yScale;
else
xScale = MapNotes_MiniConst[MAPNOTES_DEFAULT_MINIDATA.cont][currentZoom].xScale;
yScale = MapNotes_MiniConst[MAPNOTES_DEFAULT_MINIDATA.cont][currentZoom].yScale;
end
if ( MapNotes_MiniNote_IsInCity ) then
xScale = xScale * MapNotes_CityConst[currentZoom].cityScale;
yScale = yScale * MapNotes_CityConst[currentZoom].cityScale;
end
 
pX = pX * currentConst.scale + currentConst.xOffset;
pY = pY * currentConst.scale + currentConst.yOffset;
 
x = ( ( (x / xScale) + pX ) - currentConst.xOffset ) / currentConst.scale;
y = ( ( (y / yScale) + pY ) - currentConst.yOffset ) / currentConst.scale;
 
MapNotes_ShortCutNote(x, y, nil, true);
end
end
end
 
else
orig_Minimap_OnClick(...);
end
end
 
 
 
-- Create the note in the Players current Map if not in an Instance
function MN_ThottInterface_Local(x, y, desc, creator)
-- No need to reset to a previous map - if not current then they're probably viewing a map,
-- and presumably would want to see it change and the marker placed on it...
SetMapToCurrentZone();
 
-- Get MapKey if valid coordinate system for current map...
local pX, pY = GetPlayerMapPosition("player");
if ( ( pX <= 0 ) and ( pY <= 0 ) ) then
return;
end
local key = MapNotes_GetMapKey();
 
MN_ThottInterface(key, x, y, desc, creator);
end
 
-- Create the note on a specified map using legacy keying system
-- This may suffer from the old zone shift problems associated with this keying system on different clients, depending on other AddOn calling it
function MN_ThottInterface_Legacy(c, z, x, y, desc, creator)
-- Translate Continent/Zone to key
local key = MapNotes_OldKeys[c][z];
 
-- Could do some testing for inside Instances where note creation is possible.... ???
 
if ( key ) then
-- SetMapZoom(c, z); -- ???
MN_ThottInterface(key, x, y, desc);
end
end
 
function MN_ThottInterface(key, x, y, desc, creator)
local msg;
 
if ( IsAltKeyDown() ) then -- Must hold down <Alt> if wanting a temporary Thott marker
MapNotes_tloc_xPos = x / 100;
MapNotes_tloc_yPos = y / 100;
MapNotes_tloc_name = desc;
MapNotes_tloc_key = key;
MapNotes_MiniNote_Data.id = 0;
MapNotes_MiniNote_Data.key = MapNotes_tloc_key;
MapNotes_MiniNote_Data.xPos = MapNotes_tloc_xPos;
MapNotes_MiniNote_Data.yPos = MapNotes_tloc_yPos;
MapNotes_MiniNote_Data.name = desc;
MapNotes_MiniNote_Data.color = 4;
MapNotes_MiniNote_Data.icon = "tloc";
MN_MiniNotePOITexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_TLOC_ICON ) ) then
MN_MiniNotePOITexture:SetTexture(MN_TLOC_ICON);
end
local txtr = MN_MiniNotePOITexture:GetTexture();
if ( not txtr ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..MapNotes_MiniNote_Data.icon);
end
local msg = format( MAPNOTES_ACCEPT_SLASH, MapNotes_GetMapDisplayName(key) );
MapNotes_StatusPrint( msg );
 
elseif ( IsControlKeyDown() ) then -- else hold down <Ctrl> if wanting a permanent marker
-- Hide other frames
-- Set Creator to Lightheaded
-- Use Red Cross marker
MapNotes_HideFrames();
local MN_creatorOverride, MN_mininoteOverride = creator, true;
if ( ( not MN_creatorOverride ) and ( Lightheaded ) ) then
MN_creatorOverride = "Lightheaded";
-- else
-- MN_creatorOverride = "";
end
if ( IsShiftKeyDown() ) then
MN_mininoteOverride = nil;
end
MapNotes_Quicktloc( x .. ", " .. y .. " 6 "..desc, MN_creatorOverride, MN_mininoteOverride );
end
end
 
 
 
function MapNotes_WorldMapButton_OnClick(button, mouseButton)
CloseDropDownMenus();
 
if ( not MapNotes_FramesHidden() ) then
return;
else
MapNotes_ClearGUI();
end
 
local key = MapNotes_GetMapKey();
 
-- if we are viewing a continent or continents or it was left-click call the original handler
if ( ( mouseButton == "LeftButton" ) or ( ( mouseButton == "RightButton" ) and ( not IsControlKeyDown() ) and ( not IsShiftKeyDown() ) ) ) then --Telic_7
orig_MapNotes_WorldMapButton_OnClick(button, mouseButton);
return;
end
 
-- <control>+right-click is used to bring up the main menu when viewing a particular zone/city
-- shift right-click is used to set the party note at the click location
 
if not button then
button = WorldMapButton;
end
 
local adjustedX, adjustedY = MapNotes_GetMouseXY(button);
 
if ( IsShiftKeyDown() ) then
MapNotes_SetPartyNote(adjustedX, adjustedY);
MapNotes_MapUpdate();
 
elseif ( IsAltKeyDown() ) then
local lNote = MapNotes_ShortCutNote(adjustedX, adjustedY);
MapNotes_MapUpdate();
if ( lNote ) then
lNote = getglobal( "MapNotesPOI" .. lNote );
if ( lNote ) then
lNote:SetFrameLevel( MapNotes_WorldMapButton:GetFrameLevel() + 1 );
end
end
 
else
MapNotes:InitialiseDropdown(button, adjustedX, adjustedY, MapNotes.base_dd_info, key);
ToggleDropDownMenu(1, nil, MapNotes.dd, "cursor", 0, 0);
end
end
 
 
-- %%% THE CORE %%%
function MapNotes_WorldMapButton_OnUpdate()
if ( ( MapNotesFU_Drawing ) or ( not MapNotes_Options.aFactor ) ) then
return;
end
-- if ( not WorldMapFrame:IsVisible() ) then
-- return;
-- end
 
MapNotesFU_Drawing = true;
 
local border = ( MapNotes_Options.iFactor / MAPNOTES_DFLT_ICONSIZE ) * MAPNOTES_BORDER;
local lBorder = ( MapNotes_Options.iFactor / MAPNOTES_DFLT_ICONSIZE ) * ( MAPNOTES_BORDER / 2 );
local width = WorldMapButton:GetWidth();
local height = WorldMapButton:GetHeight();
local key = MapNotes_GetMapKey();
local currentZone = MapNotes_Data_Notes[key];
local currentLineZone = MapNotes_Data_Lines[key];
local xOffset,yOffset = 0;
local POI, POITexture, POIHighlight, POIMininote, POILastnote, POIName;
local nNotes, nLines = 1, 1;
local findIn;
local scalingFactor = MN_ScaleMe(WorldMapButton);
 
if ( ( currentZone ) and ( MapNotes_Options.shownotes ) ) then
for i, value in ipairs(currentZone) do
 
-- Data Validity Checks : Set Defatults for missing mandatory data
if ( not currentZone[i].icon ) then
currentZone[i].icon = 0;
end
POI = MapNotes_AssignPOI(i);
POI.key = key;
POI.nid = i;
POIName = POI:GetName();
POI:SetScale( scalingFactor );
local xOffset = ( currentZone[i].xPos * width ) / scalingFactor;
local yOffset = ( -currentZone[i].yPos * height ) / scalingFactor;
POI:SetUserPlaced(false);
POI:ClearAllPoints();
POI:SetPoint("CENTER", "WorldMapDetailFrame", "TOPLEFT", xOffset, yOffset);
POITexture = getglobal(POIName.."Texture");
POIMininote = getglobal(POIName.."Mininote");
POILastnote = getglobal(POIName.."Lastnote");
POIHighlight = getglobal(POIName.."Highlight");
-- Custom
POITexture:SetTexture(nil);
if ( ( MNIL ) and ( currentZone[i].customIcon ) ) then
POITexture:SetTexture( currentZone[i].customIcon );
end
if ( not POITexture:GetTexture() ) then
POITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icon"..currentZone[i].icon);
end
 
findIn = string.lower(value.name);
if ( ( MapNotes_HighlightedNote ~= "" ) and ( string.find( findIn, MapNotes_HighlightedNote ) ) ) then
POIHighlight:Show();
-- Custom
if ( ( findIn == MapNotes_HighlightedNote ) and ( MapNotes_Options[13] ~= "off" ) ) then
POIMininote:Show();
end
-- Custom
elseif ( ( currentZone[i].mininote ) and ( MapNotes_Options[13] ~= "off" ) ) then
POIMininote:Show();
POIHighlight:Hide();
else
POIMininote:Hide();
POIHighlight:Hide();
end
 
if MapNotes_Options[currentZone[i].icon] ~= "off" then
if (MapNotes_Options[10] ~= "off" and currentZone[i].creator == UnitName("player")) or
(MapNotes_Options[11] ~= "off" and currentZone[i].creator ~= UnitName("player")) then
POI:SetWidth( MapNotes_Options.iFactor );
POIMininote:SetWidth( border );
POI:SetHeight( MapNotes_Options.iFactor );
POIMininote:SetHeight( border );
POI:SetAlpha( MapNotes_Options.aFactor );
POILastnote:Hide();
POI:Show();
end
else
POI:Hide();
end
nNotes = nNotes + 1;
end
 
if ( MapNotes_Options[12] ~= "off" ) then
if ( ( POI ) and ( POI:IsVisible() ) ) then
-- Custom
POILastnote:SetWidth( lBorder );
POILastnote:SetHeight( lBorder );
POILastnote:Show();
end
end
 
if ( currentLineZone ) then
for i, line in ipairs(currentLineZone) do
MapNotes_DrawLine(i, line.x1, line.y1, line.x2, line.y2);
nLines = nLines + 1;
end
end
end
 
local otherPOI = getglobal("MapNotesPOI"..nNotes);
while ( otherPOI ) do
otherPOI:Hide();
nNotes = nNotes + 1;
otherPOI = getglobal("MapNotesPOI"..nNotes);
end
 
local otherLines = getglobal("MapNotesLines_"..nLines);
while ( otherLines ) do
otherLines:Hide();
nLines = nLines + 1;
otherLines = getglobal("MapNotesLines_"..nLines);
end
 
if ( currentZone ) then
-- tloc button
if ( ( MapNotes_tloc_xPos ) and ( MapNotes_tloc_key == key ) ) then
MapNotesPOItlocTexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_TLOC_ICON ) ) then
MapNotesPOItlocTexture:SetTexture(MN_TLOC_ICON);
end
if ( not MapNotesPOItlocTexture:GetTexture() ) then
MapNotesPOItlocTexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
end
if MapNotes_Options[13] ~= "off" and MapNotes_MiniNote_Data.icon == "tloc" then
MapNotesPOItlocMininote:SetWidth( border );
MapNotesPOItlocMininote:SetHeight( border );
MapNotesPOItlocMininote:Show();
MapNotesPOItlocMininote.key = key;
MapNotesPOItlocMininote.nid = 0;
else
MapNotesPOItlocMininote:Hide();
end
MapNotesPOItloc:SetScale( scalingFactor );
xOffset = ( MapNotes_tloc_xPos * width ) / scalingFactor;
yOffset = ( -MapNotes_tloc_yPos * height ) / scalingFactor;
MapNotesPOItloc:SetPoint("CENTER", "WorldMapDetailFrame", "TOPLEFT", xOffset, yOffset);
MapNotesPOItloc:SetWidth( MapNotes_Options.iFactor );
MapNotesPOItloc:SetHeight( MapNotes_Options.iFactor );
MapNotesPOItloc:SetAlpha( MapNotes_Options.aFactor );
MapNotesPOItloc:Show();
MapNotesPOItloc.key = key;
MapNotesPOItloc.nid = 0;
else
MapNotesPOItloc:Hide();
end
 
-- party note
if ( ( MapNotes_PartyNoteData.xPos ) and ( key == MapNotes_PartyNoteData.key ) ) then
MapNotesPOIpartyTexture:SetTexture(nil);
if ( ( MNIL ) and ( MN_PARTY_ICON ) ) then
MapNotesPOIpartyTexture:SetTexture(MN_PARTY_ICON);
end
if ( not MapNotesPOIpartyTexture:GetTexture() ) then
MapNotesPOIpartyTexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
end
if MapNotes_Options[13] ~= "off" and MapNotes_MiniNote_Data.icon == "party" then
MapNotesPOIpartyMininote:SetWidth( border );
MapNotesPOIpartyMininote:SetHeight( border );
MapNotesPOIpartyMininote:Show();
MapNotesPOIpartyMininote.key = key;
MapNotesPOIpartyMininote.nid = -1;
else
MapNotesPOIpartyMininote:Hide();
end
MapNotesPOIparty:SetScale( scalingFactor );
xOffset = ( MapNotes_PartyNoteData.xPos * width ) / scalingFactor;
yOffset = ( -MapNotes_PartyNoteData.yPos * height ) / scalingFactor;
MapNotesPOIparty:SetPoint("CENTER", "WorldMapDetailFrame", "TOPLEFT", xOffset, yOffset);
MapNotesPOIparty:SetWidth( MapNotes_Options.iFactor );
MapNotesPOIparty:SetHeight( MapNotes_Options.iFactor );
MapNotesPOIparty:SetAlpha( MapNotes_Options.aFactor );
MapNotesPOIparty:Show();
MapNotesPOIparty.key = key;
MapNotesPOIparty.nid = -1;
else
MapNotesPOIparty:Hide();
end
 
else
MapNotesPOItloc:Hide();
MapNotesPOIparty:Hide();
end
 
for pluginName, Plugin in pairs(MAPNOTES_PLUGINS_LIST) do
if ( Plugin.wmflag ) then
local plugInFrame = getglobal( Plugin.frame );
if ( ( plugInFrame ) and ( plugInFrame:IsVisible() ) ) then
MapNotes_PlugInsDrawNotes(Plugin);
end
end
end
 
MapNotesFU_Drawing = nil;
end
 
 
 
function MapNotes_ToggleWorldMap(frame)
if ( frame == WorldMapFrame ) then
if ( not WorldMapFrame:IsVisible() ) then
SetMapToCurrentZone();
end
MapNotes_HideAll();
ColorPickerFrame:Hide();
end
end
 
 
 
function MapNotes_RememberPosition(n_id)
local Plugin = this.Plugin;
local key;
 
if ( Plugin ) then
key = MapNotes_PlugInsGetKey(Plugin);
else
key = MapNotes_GetMapKey();
end
 
this.lastXPos = MapNotes_Data_Notes[key][n_id].xPos;
this.lastYPos = MapNotes_Data_Notes[key][n_id].yPos;
end
 
function MapNotes_RepositionNote(n_id)
local pFrame = this:GetParent();
local Plugin = this.Plugin;
 
if ( MouseIsOver(pFrame) ) then
local x, y = MapNotes_GetMouseXY(pFrame);
local key;
 
if ( Plugin ) then
key = MapNotes_PlugInsGetKey(Plugin);
else
key = MapNotes_GetMapKey();
end
 
MapNotes_Data_Notes[key][n_id].xPos = x;
MapNotes_Data_Notes[key][n_id].yPos = y;
 
-- Update Lines using this Note as a Vertex
local lX = this.lastXPos;
local lY = this.lastYPos;
for i, line in ipairs(MapNotes_Data_Lines[key]) do
if ( ( line.x1 == lX ) and ( line.y1 == lY ) ) then
line.x1 = x;
line.y1 = y;
 
elseif ( ( line.x2 == lX ) and ( line.y2 == lY ) ) then
line.x2 = x;
line.y2 = y;
end
end
end
 
if ( Plugin ) then
MapNotes_PlugInsDrawNotes(Plugin);
else
MapNotes_MapUpdate();
end
end
 
 
-- MapNotes Global Search
function MapNotes_Search(fTxt)
if ( ( fTxt ) and ( fTxt ~= "" ) ) then
local foundArray = {};
 
fTxt = string.lower(fTxt);
for key, map in pairs(MapNotes_Data_Notes) do
for index, note in ipairs(map) do
local sTxt = string.lower( note.name .. note.inf1 .. note.inf2 .. note.creator );
if ( string.find(sTxt, fTxt) ) then
local name, lName, cat;
if ( string.sub(key, 1, 3) == "WM " ) then
name, lName, cat = MapNotes_GetMapDisplayName(key);
 
else
for index, Plugin in pairs(MAPNOTES_PLUGINS_LIST) do
if ( string.find(key, Plugin.name) ) then
name, lName, cat = MapNotes_GetMapDisplayName(key, Plugin);
break;
end
end
end
if ( not foundArray[cat] ) then
foundArray[cat] = {};
foundArray[cat].counter = 1;
end
if ( not foundArray[cat][lName] ) then
foundArray[cat][lName] = {};
foundArray[cat][lName].counter = 1;
else
foundArray[cat][lName].counter = foundArray[cat][lName].counter + 1;
end
end
end
end
 
local counter = 0;
MapNotes_StatusPrint(" ");
for type, noteTypes in pairs(foundArray) do
MapNotes_StatusPrint("----------");
MapNotes_StatusPrint(type);
for key, note in pairs(noteTypes) do
if ( key ~= "counter" ) then
MapNotes_StatusPrint(key .. " : " .. note.counter .. MAPNOTES_NOTESFOUND);
counter = counter + 1;
end
end
end
MapNotes_StatusPrint("----------");
MapNotes_StatusPrint(counter.. " " .. ZONE);
MapNotes_StatusPrint(" ");
end
end
 
 
 
function MapNotes_Highlight(hName)
if ( ( hName ) and ( hName ~= "" ) ) then
hName = string.lower(hName);
MapNotes_HighlightedNote = hName;
MapNotes_TrackHighlights(hName, true);
else
MapNotes_HighlightedNote = "";
MapNotes_TrackHighlights(hName);
end
MapNotes_PlugInsRefresh();
MapNotes_MapUpdate();
end
 
function MapNotes_TrackHighlights(hName, hlVal)
MapNotes_ClearTrackHighlights();
if ( hlVal ) then
highlightedNotes = {};
for dat, val in pairs(MapNotes_Data_Notes) do
for note, noteA in pairs(val) do
local dataName = string.lower(noteA.name);
if ( dataName == hName ) then
if ( ( hlVal ) and ( not noteA.mininote ) ) then
noteA.mininote = "HL";
if ( not highlightedNotes[dat] ) then
highlightedNotes[dat] = {};
end
if ( not highlightedNotes[dat][note] ) then
highlightedNotes[dat][note] = true;
end
end
end
end
end
end
end
 
function MapNotes_ClearTrackHighlights()
for dat, val in pairs(MapNotes_Data_Notes) do
if ( highlightedNotes[dat] ) then
for note, noteA in pairs(val) do
if ( highlightedNotes[dat][note] ) then
noteA.mininote = nil;
end
end
end
end
end
 
function MapNotes_ResetHighlightsOnLoad()
for dat, val in pairs(MapNotes_Data_Notes) do
for note, noteA in pairs(val) do
if ( ( noteA.mininote ) and ( noteA.mininote == "HL" ) ) then
noteA.mininote = nil;
end
end
end
end
 
function MapNotes_MiniCToggle()
if ( MN_MinimapCoordsFrame:IsVisible() ) then
MN_MinimapCoordsFrame:Hide();
MapNotesOptionsCheckboxMiniC:SetChecked(0);
MapNotes_Options.miniC = false;
else
MN_MinimapCoordsFrame:ClearAllPoints();
MN_MinimapCoordsFrame:SetUserPlaced(0);
MN_MinimapCoordsFrame:SetPoint("TOP", "MinimapCluster", "BOTTOM", 8, 16);
MN_MinimapCoordsFrame:Show();
MapNotesOptionsCheckboxMiniC:SetChecked(1);
MapNotes_Options.miniC = true;
end
end
 
function MapNotes_MapCToggle()
if ( MN_MapCoords:IsVisible() ) then
MapNotes_Options.mapC = nil;
MapNotesOptionsCheckboxMapC:SetChecked(0);
MN_SetCoordsPos();
else
MapNotes_Options.mapC = true;
MapNotesOptionsCheckboxMapC:SetChecked(1);
MN_SetCoordsPos();
end
end
 
function MN_SetCoordsPos()
local x, y = MapNotes_Options.coordsLocX, MapNotes_Options.coordsLocY;
 
MN_MapCoords:ClearAllPoints();
MN_MapCoords:SetUserPlaced(0);
MN_MapCoords:SetParent(WorldMapFrame);
MN_MapCoords:SetPoint("CENTER", "WorldMapButton", "BOTTOMLEFT", x, y);
MN_MapCoords:SetFrameLevel( WorldMapButton:GetFrameLevel() + 3);
MN_MapCoords:Show();
if ( not MapNotes_Options.mapC ) then
MN_MapCoords:Hide();
end
end
 
 
 
function MN_RememberCoordsPos()
if ( MN_MapCoords.isMoving ) then
if ( MouseIsOver(WorldMapFrame) ) then
MN_MapCoords.startingX, MN_MapCoords.startingY = MN_GetRelativeCoords(MN_MapCoords, WorldMapButton);
else
MN_MapCoords.startingX, MN_MapCoords.startingY = MN_DefaultCoordsX, MN_DefaultCoordsY;
end
return;
 
else
local x, y;
if ( MouseIsOver(WorldMapFrame) ) then
x, y = MN_GetRelativeCoords(MN_MapCoords, WorldMapButton);
else
x, y = MN_MapCoords.startingX, MN_MapCoords.startingY;
end
MapNotes_Options.coordsLocX, MapNotes_Options.coordsLocY = x, y;
MN_SetCoordsPos();
end
end
 
-- %%% Corrected positioning function ???
function MN_GetRelativeCoords(pFrame, rFrame)
local x, y = pFrame:GetCenter();
local centerX, centerY = rFrame:GetCenter();
local width = rFrame:GetWidth();
local height = rFrame:GetHeight();
x = (x - (centerX - (width/2)));
y = height - (centerY + (height/2) - y );
 
return x, y;
end
 
 
-- £££1
function MN_MinimapCoords_OnUpdate(self)
local x,y = GetPlayerMapPosition("player");
if ( ( x ) and ( y ) ) then
x = x*100;
y = y*100;
MN_MinimapCoordsFrameText:SetText( format(MN_COORD_FS[MN_COORD_F], x, y) );
MN_MinimapCoordsFrame:SetWidth(MN_MinimapCoordsFrameText:GetWidth() + 12);
end
end
 
function MN_MapCoords_OnUpdate(self, elapsed)
if ( IsControlKeyDown() ) then
if ( not MN_MapCoordsMovementFrame:IsVisible() ) then
MN_MapCoordsMovementFrame:Show();
end
else
if ( MN_MapCoordsMovementFrame:IsVisible() ) then
if ( MN_MapCoords.isMoving ) then
MN_MapCoords:StopMovingOrSizing();
MN_MapCoords.isMoving = false;
MN_RememberCoordsPos();
end
MN_MapCoordsMovementFrame:Hide();
end
end
 
MN_cUpdate = MN_cUpdate + elapsed;
if ( MN_cUpdate > MN_cUpdateLimit ) then
local pLoc, cLoc = "", nil;
local x,y = GetPlayerMapPosition("player");
local cX, cY = nil, nil;
 
if ( ( x ) and ( y ) ) then
x = x*100;
y = y*100;
pLoc = "|c0000FF00"..( format(MN_COORD_FS[MN_COORD_F], x, y) ).."|r";
end
 
if ( MouseIsOver(WorldMapButton) ) then
local centerX, centerY = WorldMapButton:GetCenter();
local width = WorldMapButton:GetWidth();
local height = WorldMapButton:GetHeight();
cX, cY = GetCursorPosition();
cX = cX / WorldMapButton:GetEffectiveScale();
cY = cY / WorldMapButton:GetEffectiveScale();
local adjustedY = (centerY + height/2 - cY) / height;
local adjustedX = (cX - (centerX - width/2)) / width;
cX = 100 * ( adjustedX + MN_MOFFSET_X );
cY = 100 * ( adjustedY + MN_MOFFSET_Y );
end
 
local h = 28;
if ( ( cX ) and ( cY ) ) then
cLoc = "\n|c00FFFF00"..( format(MN_COORD_FS[MN_COORD_F], cX, cY) ).."|r";
h = 48;
end
 
MN_MapCoordsText:SetText( pLoc .. ( cLoc or "" ) );
MN_cUpdate = 0;
 
local w = MN_MapCoordsText:GetWidth() + 4;
 
self:SetWidth(w);
self:SetHeight(h);
end
end
 
 
 
function MN_MinimapCoords_OnClick()
MapNotes:InitialiseDropdown(UIParent, nil, nil, MapNotes.coords_dd_info);
ToggleDropDownMenu(1, nil, MapNotes.dd, "cursor", 0, 0);
end
 
 
 
function MapNotes_TargetNote(inf2)
local t = UnitName("target");
 
if ( not t ) then
MapNotes_CreateQuickNote(inf2);
return;
end
 
if ( not MapNotes_TargetInfo_Proceed ) then
local x, y = GetPlayerMapPosition("player");
 
if ( ( ( x ) and ( x == 0 ) ) and ( ( y ) and ( y == 0 ) ) ) then
SetMapToCurrentZone();
x, y = GetPlayerMapPosition("player");
if ( ( ( x ) and ( x == 0 ) ) and ( ( y ) and ( y == 0 ) ) ) then
MapNotes_StatusPrint(MAPNOTES_QUICKNOTE_NOPOSITION);
return;
end
end
 
local tstIcon = string.sub(inf2, 1, 2);
if ( ( tstIcon ) and ( type(tstIcon) == "string" ) and ( tstIcon ~= "" ) and ( string.find(tstIcon, "%d%s") ) ) then
inf2 = string.sub(inf2, 3);
else
tstIcon = nil;
end
 
if ( not inf2 ) then
inf2 = "";
end
 
GameTooltip:Hide();
 
GameTooltip:SetOwner(UIParent, "ANCHOR_CURSOR");
GameTooltip:SetUnit("target");
GameTooltip:SetFrameStrata("TOOLTIP");
GameTooltip:Show();
 
MapNotes_TargetInfo_Proceed = {};
MapNotes_TargetInfo_Proceed.tstIcon = tstIcon;
MapNotes_TargetInfo_Proceed.inf2 = inf2;
MapNotes_TargetInfo_Proceed.func = MapNotes_TargetNote;
 
else
MapNotes_TargetInfo_Proceed.name, MapNotes_TargetInfo_Proceed.inf1 = MapNotes_TargetInfo();
if ( MapNotes_TargetInfo_Proceed.tstIcon ) then
MapNotes_TargetInfo_Proceed.name = MapNotes_TargetInfo_Proceed.tstIcon .. string.sub(MapNotes_TargetInfo_Proceed.name, 3);
end
MapNotes_CreateQuickNote(MapNotes_TargetInfo_Proceed.name, MapNotes_TargetInfo_Proceed.inf1, MapNotes_TargetInfo_Proceed.inf2);
MapNotes_TargetInfo_Proceed = nil;
GameTooltip:Hide();
end
end
 
function MapNotes_MergeNote(inf2)
if ( not MapNotes_TargetInfo_Proceed ) then
local x, y = GetPlayerMapPosition("player");
 
if ( ( ( x ) and ( x == 0 ) ) and ( ( y ) and ( y == 0 ) ) ) then
SetMapToCurrentZone();
x, y = GetPlayerMapPosition("player");
if ( ( ( x ) and ( x == 0 ) ) and ( ( y ) and ( y == 0 ) ) ) then
MapNotes_StatusPrint(MAPNOTES_QUICKNOTE_NOPOSITION);
return;
end
end
 
if ( not UnitExists("target") ) then
MapNotes_StatusPrint(MAPNOTES_MERGE_WARNING);
return;
end
 
local tstIcon = string.sub(inf2, 1, 2);
if ( ( tstIcon ) and ( type(tstIcon) == "string" ) and ( tstIcon ~= "" ) and ( string.find(tstIcon, "%d%s") ) ) then
inf2 = string.sub(inf2, 3);
else
tstIcon = nil;
end
 
if ( not inf2 ) then
inf2 = "";
end
 
GameTooltip:Hide();
 
GameTooltip:SetOwner(UIParent, "ANCHOR_CURSOR");
GameTooltip:SetUnit("target");
GameTooltip:SetFrameStrata("TOOLTIP");
GameTooltip:Show();
 
MapNotes_TargetInfo_Proceed = {};
MapNotes_TargetInfo_Proceed.tstIcon = tstIcon;
MapNotes_TargetInfo_Proceed.inf2 = inf2;
MapNotes_TargetInfo_Proceed.func = MapNotes_MergeNote;
 
else
MapNotes_TargetInfo_Proceed.name, MapNotes_TargetInfo_Proceed.inf1 = MapNotes_TargetInfo();
if ( MapNotes_TargetInfo_Proceed.tstIcon ) then
MapNotes_TargetInfo_Proceed.name = MapNotes_TargetInfo_Proceed.tstIcon .. string.sub(MapNotes_TargetInfo_Proceed.name, 3);
end
MapNotes_CreateQuickNote(MapNotes_TargetInfo_Proceed.name, MapNotes_TargetInfo_Proceed.inf1, MapNotes_TargetInfo_Proceed.inf2, "true");
MapNotes_TargetInfo_Proceed = nil;
GameTooltip:Hide();
end
end
 
function MapNotes_TargetInfo()
local icon = 8;
local text = UnitName("target");
local text2 = "";
 
if ( ( text ) and ( text ~= "" ) ) then
local unitReact = UnitReaction("player", "target");
if ( unitReact ) then
if (unitReact < 4) then
-- hostile, get level, classification, type, and class
text2 = text2.." "..MN_LEVEL.." "..UnitLevel("target");
icon = 6;
if (UnitClassification("target") ~= "normal") then
text2 = text2.." "..UnitClassification("target");
end
text2 = text2.." "..UnitCreatureType("target").." "..UnitClass("target");
elseif (unitReact == 4) then
-- neutral, assume critter, use yellow icon
icon = 5;
else
-- add profession
local profession = GameTooltipTextLeft2:GetText();
-- set profession to nil if it's the target's level or empty
if ( ( profession ) and ( ( string.find(profession, MN_LEVEL) ) or ( profession == "" ) ) ) then
profession = nil;
end
if ( profession ) then
text2 = text2.." <"..profession..">";
end
end
end
text = icon.." "..text;
else
text = "";
end
 
return text, text2;
end
 
function MapNotes_Merge(key, n_id, name, inf1, inf2)
name = string.sub(name, 3);
if ( ( name ) and ( name ~= "" ) ) then
local tstIcon = string.sub(name, 1, 2);
if ( string.find(tstIcon, "%d%s") ) then
name = string.sub(name, 3);
end
 
if ( not inf1 ) then
inf1 = "";
end
if ( not inf2 ) then
inf2 = "";
end
 
if ( string.find( MapNotes_Data_Notes[key][n_id].name, UnitName("target") ) ) then
MapNotes_StatusPrint( MAPNOTES_MERGE_DUP..UnitName("target") );
else
MapNotes_Data_Notes[key][n_id].name = MapNotes_Data_Notes[key][n_id].name .." \124\124 ".. name; -- " | "
MapNotes_Data_Notes[key][n_id].inf1 = MapNotes_Data_Notes[key][n_id].inf1 .." \124\124 ".. inf1; -- " | "
MapNotes_Data_Notes[key][n_id].inf2 = MapNotes_Data_Notes[key][n_id].inf2 .." \124\124 ".. inf2; -- " | "
MapNotes_StatusPrint( MAPNOTES_MERGED..UnitName("target") );
end
end
end
 
 
function MapNotes_CreateLandMarks()
if ( WorldMapFrame:IsVisible() ) then
ToggleWorldMap();
end
local continentNames = { GetMapContinents() };
 
for i in ipairs(continentNames) do
local zoneNames = { GetMapZones(i) };
for j in ipairs(zoneNames) do
SetMapZoom(i, j);
MapNotes_IterateLandMarks(true);
end
end
end
 
function MapNotes_IterateLandMarks(report)
local nCreated, nMerged, nSkipped = 0, 0, 0;
 
local map = GetMapInfo();
if ( ( not map ) or ( ( map ) and ( GetCurrentMapZone() == 0 ) ) ) then
return;
end
 
for k=1, GetNumMapLandmarks(), 1 do
name, desc, textureIndex, x, y = GetMapLandmarkInfo(k);
local created = MapNotes_CreateLandMarkNote(name, desc, textureIndex, x, y);
if ( created == "Created" ) then
nCreated = nCreated + 1;
elseif ( created == "Merged" ) then
nMerged = nMerged + 1;
else
nSkipped = nSkipped + 1;
end
end
 
local tot = nCreated + nMerged;
if ( ( report ) or ( tot > 0 ) ) then
local key = MapNotes_GetMapKey();
MapNotes_StatusPrint( tot.." "..MAPNOTES_LANDMARKS_NOTIFY..(MapNotes_GetMapDisplayName(key)) );
end
MapNotes_MapUpdate();
 
return;
end
 
function MapNotes_CreateLandMarkNote(name, desc, textureIndex, x, y)
local key = MapNotes_GetMapKey();
local currentZone = MapNotes_Data_Notes[key];
local checknote = MapNotes_CheckNearNotes(key, x, y);
 
if ( not desc ) then
desc = "";
end
 
if ( checknote ) then
if ( ( currentZone[checknote].name == name ) or ( string.find( currentZone[checknote].name, name ) ) ) then
return "Duplicate";
 
else
currentZone[checknote].name = currentZone[checknote].name .." \124\124 ".. name; -- " | "
currentZone[checknote].inf1 = currentZone[checknote].inf1 .." \124\124 ".. desc; -- " | "
return "Merged";
end
 
else
MapNotes_TempData_Id = MapNotes_GetZoneTableSize(currentZone) + 1;
currentZone[MapNotes_TempData_Id] = {};
currentZone[MapNotes_TempData_Id].name = name;
currentZone[MapNotes_TempData_Id].ncol = 7;
currentZone[MapNotes_TempData_Id].inf1 = "";
currentZone[MapNotes_TempData_Id].in1c = 6;
currentZone[MapNotes_TempData_Id].inf2 = "";
currentZone[MapNotes_TempData_Id].in2c = 0;
currentZone[MapNotes_TempData_Id].creator = "MapNotesLandMark";
currentZone[MapNotes_TempData_Id].icon = 7;
currentZone[MapNotes_TempData_Id].xPos = x;
currentZone[MapNotes_TempData_Id].yPos = y;
return "Created";
end
 
return nil;
end
 
function MapNotes_DeleteLandMarks()
local key = MapNotes_GetMapKey();
local currentZone = MapNotes_Data_Notes[key];
 
for i=MapNotes_GetZoneTableSize(currentZone), 1, -1 do
if ( currentZone[i].creator == "MapNotesLandMark" ) then
MapNotes_DeleteNote(i, key, nil);
end
end
MapNotes_MapUpdate();
end
 
 
 
function MapNotes_WFC(thisParms)
MapNotes_StatusPrint(MAPNOTES_MINIMAP_COORDS);
MapNotes_StatusPrint(MAPNOTES_WFC_WARN);
MapNotes_MiniCToggle();
end
 
 
 
function MapNotes_ClearIcons()
for area, areaNotes in pairs(MapNotes_Data_Notes) do
for note, noteData in pairs(areaNotes) do
noteData.customIcon = nil;
end
end
end
 
local totallyMini = nil;
function MapNotes_TotallyMini()
if ( totallyMini ) then
totallyMini = nil;
else
totallyMini = true;
end
for area, areaNotes in pairs(MapNotes_Data_Notes) do
for note, noteData in pairs(areaNotes) do
noteData.mininote = totallyMini;
end
end
end
 
 
 
function MapNotes_ImportDataSet(extData)
local areas, notes, clashes = 0, 0, 0;
MapNotes_StatusPrint(MN_STARTED_IMPORTING .. "...");
 
if ( type(extData) == "table" ) then
for extKey, extNotes in pairs(extData) do
if ( type(extNotes) == "table" ) then
if ( not MapNotes_Data_Notes[extKey] ) then
extKey = "WM " .. extKey;
end
if ( MapNotes_Data_Notes[extKey] ) then
local nextNote = MapNotes_GetZoneTableSize( MapNotes_Data_Notes[extKey] );
areas = areas + 1;
 
for extNote, extDetails in pairs(extNotes) do
local checkNearNote = MapNotes_CheckNearNotes(extKey, extDetails.xPos, extDetails.yPos);
if ( checkNearNote ) then
clashes = clashes + 1;
 
else
notes = notes + 1;
nextNote = nextNote + 1;
MapNotes_Data_Notes[extKey][nextNote] = extDetails;
end
end
 
else
MapNotes_StatusPrint(MN_INVALID_KEY .. extKey);
end
end
end
end
 
MapNotes_StatusPrint("..." .. MN_FINISHED_IMPORTING);
MapNotes_StatusPrint( format(MN_AREANOTES, areas, notes) );
MapNotes_StatusPrint(clashes .. " " .. MN_DUPS_IGNORED);
end
 
 
 
function MN_InitialiseTextColours(setTextures)
local textT, inf1T, inf2T;
local colours = {};
 
for i = 0, 9, 1 do
textT = getglobal("MN_TextColor"..i.."Texture");
inf1T = getglobal("MN_Info1Color"..i.."Texture");
inf2T = getglobal("MN_Info2Color"..i.."Texture");
 
if ( setTextures ) then
textT:SetTexture("Interface\\AddOns\\MapNotes\\POIIcons\\TextColourTemplate");
inf1T:SetTexture("Interface\\AddOns\\MapNotes\\POIIcons\\TextColourTemplate");
inf2T:SetTexture("Interface\\AddOns\\MapNotes\\POIIcons\\TextColourTemplate");
end
 
colours = MapNotes_Colors[i];
if ( MapNotes_Options.colourT[1][i] ) then
colours = MapNotes_Options.colourT[1][i];
end
textT:SetVertexColor(colours.r, colours.g, colours.b);
 
colours = MapNotes_Colors[i];
if ( MapNotes_Options.colourT[2][i] ) then
colours = MapNotes_Options.colourT[2][i];
end
inf1T:SetVertexColor(colours.r, colours.g, colours.b);
 
colours = MapNotes_Colors[i];
if ( MapNotes_Options.colourT[3][i] ) then
colours = MapNotes_Options.colourT[3][i];
end
inf2T:SetVertexColor(colours.r, colours.g, colours.b);
 
end
end
 
 
function MN_SetUpColourPicker(row, id)
local col;
 
ColorPickerFrame.row = row;
ColorPickerFrame.bttnId = id;
ColorPickerFrame.hasOpacity = false;
ColorPickerFrame.func = MN_AcceptColour;
ColorPickerFrame.cancelFunc = MN_CancelColourPicker;
if ( MapNotes_Options.colourT[row][id] ) then
col = MapNotes_Options.colourT[row][id];
else
col = MapNotes_Colors[id];
end
ColorPickerFrame.previousValues = {col.r, col.g, col.b};
ColorPickerFrame:SetFrameStrata("FULLSCREEN_DIALOG");
ColorPickerFrame.opacity = 1.0;
ColorPickerFrame:SetColorRGB(col.r, col.g, col.b);
ColorPickerFrame:Show();
end
 
function MN_AcceptColour()
local r, g, b = ColorPickerFrame:GetColorRGB();
MN_UpdateButtonColour(ColorPickerFrame.row, ColorPickerFrame.bttnId, r, g, b);
end
 
function MN_CancelColourPicker(cols)
MN_UpdateButtonColour(ColorPickerFrame.row, ColorPickerFrame.bttnId, cols[1], cols[2], cols[3]);
ColorPickerFrame.row = nil;
ColorPickerFrame.bttnId = nil;
end
 
function MN_UpdateButtonColour(row, id, r, g, b)
MapNotes_Options.colourT[row] = {};
MapNotes_Options.colourT[row][id] = {};
MapNotes_Options.colourT[row][id].r = r;
MapNotes_Options.colourT[row][id].g = g;
MapNotes_Options.colourT[row][id].b = b;
 
if ( row == 1 ) then
getglobal("MN_TextColor"..id.."Texture"):SetVertexColor(r, g, b);
elseif ( row == 2 ) then
getglobal("MN_Info1Color"..id.."Texture"):SetVertexColor(r, g, b);
elseif ( row == 3 ) then
getglobal("MN_Info2Color"..id.."Texture"):SetVertexColor(r, g, b);
end
end
 
 
local function EventProcessing(self, event, ...)
if ( event == "MINIMAP_UPDATE_ZOOM" ) then
MapNotes_MinimapUpdateZoom();
 
elseif ( event == "VARIABLES_LOADED" ) then
MapNotes_VariablesLoaded();
MapNotes_Started = true;
 
elseif ( event == "WORLD_MAP_UPDATE" ) then
if ( ( MapNotes_Options.landMarks ) and ( MapNotes_Started ) ) then
MapNotes_IterateLandMarks(false);
end
MapNotes_MapUpdate();
 
elseif ( event == "CHAT_MSG_ADDON" ) then
local arg1, arg2, arg3, arg4 = ...;
if ( arg1 == "MapNotes_FU" ) then
MapNotes_GetNoteFromChat(arg2, arg4);
end
end
end
 
 
local angleInc = 0.25;
-- %%% Fancy Mininote highlighting on the map... instead of the static blue circle background - a circling highlight would be good...
function MN_NoteUpdate(self, elapsed)
local miniNote = getglobal(self:GetName() .. "Mininote");
if ( miniNote:IsVisible() ) then
self.timer = self.timer + elapsed;
if ( self.timer > 0.05 ) then
self.hAngle = self.hAngle - angleInc;
self.s = sin(self.hAngle);
self.c = cos(self.hAngle);
miniNote:SetTexCoord( 0.5-self.s, 0.5+self.c,
0.5+self.c, 0.5+self.s,
0.5-self.c, 0.5-self.s,
0.5+self.s, 0.5-self.c);
self.timer = 0;
end
end
end
 
 
function MN_NoteOnEnter(note)
local key, id = note.key, note.nid;
local Plugin = MapNotes.pluginKeys[key];
local loc, lLoc = MapNotes_GetMapDisplayName(key, Plugin);
local tt = GameTooltip;
local pFrame = note:GetParent();
if ( pFrame == WorldMapButton ) then
tt = WorldMapTooltip;
end
 
local x, y = note:GetCenter();
local x2, y2 = pFrame:GetCenter();
local anchor = "";
if x > x2 then
anchor = "ANCHOR_LEFT";
else
anchor = "ANCHOR_RIGHT";
end
tt:SetOwner(note, anchor);
 
if ( id == 0 ) then
if ( MapNotes_tloc_name ) then
tt:AddLine( MapNotes_tloc_name );
else
tt:AddLine(MAPNOTES_THOTTBOTLOC);
end
 
if ( lLoc ) then
tt:AddLine(lLoc, 1, 1, 1);
end
 
local x, y = MapNotes_tloc_xPos * 100, MapNotes_tloc_yPos * 100;
local xy = string.format(MN_COORD_FS[MN_COORD_F], x, y);
tt:AddLine(xy, 0, 1, 0);
 
MN_TestTexture:SetTexture( MN_TLOC_ICON );
local t = MN_TestTexture:GetTexture();
if ( not t ) then
t = MN_POI_ICONS_PATH.."\\Icontloc";
end
tt:AddTexture( t );
tt:Show();
 
elseif ( id == -1 ) then
tt:AddLine(MAPNOTES_PARTYNOTE);
 
if ( lLoc ) then
tt:AddLine(lLoc, 1, 1, 1);
end
 
local x, y = MapNotes_PartyNoteData.xPos * 100, MapNotes_PartyNoteData.yPos * 100;
local xy = string.format(MN_COORD_FS[MN_COORD_F], x, y);
tt:AddLine(xy, 0, 1, 0);
 
MN_TestTexture:SetTexture( MN_PARTY_ICON );
local t = MN_TestTexture:GetTexture();
if ( not t ) then
t = MN_POI_ICONS_PATH.."\\Iconparty";
end
tt:AddTexture( t );
tt:Show();
 
else
local noteDetails = MapNotes_Data_Notes[key][id];
local cRef = noteDetails.ncol;
local colours = MapNotes_Colors[cRef];
if ( MapNotes_Options.colourT[1][cRef] ) then
colours = MapNotes_Options.colourT[1][cRef];
end
 
tt:AddLine(noteDetails.name, colours.r, colours.g, colours.b);
 
if ( ( noteDetails.inf1 ~= nil ) and ( noteDetails.inf1 ~= "" ) ) then
cRef = noteDetails.in1c;
colours = MapNotes_Colors[cRef];
if ( MapNotes_Options.colourT[2][cRef] ) then
colours = MapNotes_Options.colourT[2][cRef];
end
tt:AddLine(noteDetails.inf1, colours.r, colours.g, colours.b);
end
if ( ( noteDetails.inf2 ~= nil ) and ( noteDetails.inf2 ~= "" ) ) then
cRef = noteDetails.in2c;
colours = MapNotes_Colors[cRef];
if ( MapNotes_Options.colourT[3][cRef] ) then
colours = MapNotes_Options.colourT[3][cRef];
end
tt:AddLine(noteDetails.inf2, colours.r, colours.g, colours.b);
end
if ( ( noteDetails.creator ) and ( noteDetails.creator ~= "" ) ) then
tt:AddDoubleLine(MAPNOTES_CREATEDBY, noteDetails.creator, 0.79, 0.69, 0.0, 0.79, 0.69, 0.0)
end
 
if ( lLoc ) then
tt:AddLine(lLoc, 1, 1, 1);
end
 
local x, y = noteDetails.xPos * 100, noteDetails.yPos * 100;
local xy = string.format(MN_COORD_FS[MN_COORD_F], x, y);
tt:AddLine(xy, 0, 1, 0);
 
local t = noteDetails.customIcon;
MN_TestTexture:SetTexture(nil);
if ( ( MNIL ) and ( t ) ) then
MN_TestTexture:SetTexture( t );
end
if ( not MN_TestTexture:GetTexture() ) then
t = MN_POI_ICONS_PATH.."\\Icon"..noteDetails.icon;
end
tt:AddTexture( t );
 
tt:SetFrameStrata("TOOLTIP");
tt:SetFrameLevel( note:GetFrameLevel() + 2 );
tt:Show();
end
end
 
 
-- Dynamic frame creation
do
local frame = CreateFrame("Button", "MapNotes_WorldMapButton", WorldMapButton);
frame:SetAllPoints(WorldMapButton);
frame:RegisterForClicks("LeftButtonDown", "RightButtonDown");
frame:SetScript("OnShow", function()
local index = 1;
local note = getglobal( "MapNotesPOI" .. index );
local targetLevel = MapNotes_WorldMapButton:GetFrameLevel() + 1;
 
while ( note ) do
-- Should probably break out of here early if not Visible... -- 29/07/2007
note:SetFrameLevel( targetLevel );
index = index + 1;
note = getglobal( "MapNotesPOI" .. index );
end
 
MapNotesPOItloc:SetFrameLevel( targetLevel ); -- 29/07/2007
MapNotesPOIparty:SetFrameLevel( targetLevel ); -- 29/07/2007
end);
frame:SetScript("OnClick", function()
MapNotes_WorldMapButton_OnClick(WorldMapButton, arg1);
end);
frame:Hide();
 
frame = CreateFrame("Frame");
frame:CreateTexture("MN_TestTexture", "BACKGROUND");
frame:RegisterEvent("VARIABLES_LOADED");
frame:RegisterEvent("MINIMAP_UPDATE_ZOOM");
frame:RegisterEvent("WORLD_MAP_UPDATE");
frame:RegisterEvent("CHAT_MSG_ADDON");
frame:RegisterEvent("ADDON_LOADED");
frame:SetScript("OnEvent", EventProcessing);
frame:SetScript("OnUpdate", MapNotes_MiniNote_OnUpdate);
 
frame = CreateFrame("Frame", nil, WorldMapFrame);
frame:SetScript("OnUpdate", MapNotes_WorldMap_OnUpdate);
frame:SetScript("OnShow", function()
this.oTimer = 0;
end);
 
CreateFrame("Frame", "MapNotesLinesFrame", WorldMapDetailFrame);
end
 
MapNotes/MapNotesEditFrame.xml New file
0,0 → 1,1734
<!--
MapNotes: Adds a note system to the WorldMap and other AddOns that use the Plugins facility provided
 
See the README file for more Information.
-->
 
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/FrameXML/UI.xsd">
<Script file="MapNotes.lua"/>
 
<Frame name="MapNotesEditFrame" frameStrata="TOOLTIP" inherits="MapNotes_FrameTemplate">
<Size>
<AbsDimension x="450" y="350"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString inherits="GameFontGreenLarge" text="MAPNOTES_EDIT_MENU">
<Anchors>
<Anchor point="TOP" relativeTo="MapNotesEditFrame">
<Offset><AbsDimension x="0" y="-12"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Frames>
<Button name="MapNotesButtonSaveNote" inherits="MapNotes_ButtonTemplate" text="MAPNOTES_SAVE_NOTE">
<Anchors>
<Anchor point="CENTER" relativePoint="Bottom">
<Offset><AbsDimension x="-102.5" y="30"/></Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
PlaySound("igMainMenuOption");
MapNotes_WriteNote();
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
 
<Button name="$parentCancel" inherits="MapNotes_CancelButtonTemplate">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MapNotesButtonSaveNote">
<Offset><AbsDimension x="20" y="0"/></Offset>
</Anchor>
</Anchors>
</Button>
 
<Button name="MN_EditIcon0">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="50" y="-41"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_EditIcon0Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon0">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetIcon(0);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_EditIcon1">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_EditIcon0">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_EditIcon1Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon1">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetIcon(1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_EditIcon2">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_EditIcon1">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_EditIcon2Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon2">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetIcon(2);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_EditIcon3">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_EditIcon2">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_EditIcon3Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon3">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetIcon(3);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_EditIcon4">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_EditIcon3">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_EditIcon4Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon4">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetIcon(4);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_EditIcon5">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_EditIcon4">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_EditIcon5Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon5">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetIcon(5);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_EditIcon6">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_EditIcon5">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_EditIcon6Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon6">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetIcon(6);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_EditIcon7">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_EditIcon6">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_EditIcon7Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon7">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetIcon(7);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_EditIcon8">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_EditIcon7">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_EditIcon8Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon8">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetIcon(8);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_EditIcon9">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_EditIcon8">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_EditIcon9Texture" file="Interface\AddOns\MapNotes\POIIcons\Icon9">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetIcon(9);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Frame name="MN_IconOverlay" enableMouse="false">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativePoint="TOPLEFT" relativeTo="MN_EditIcon0">
<Offset><AbsDimension x="-3" y="3"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_IconOverlayTexture" file="Interface\AddOns\MapNotes\POIIcons\Overlay">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
</Frame>
<EditBox name="MapNotes_TitleWideEditBox" historyLines="0" letters="100">
<Size>
<AbsDimension x="400" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativePoint="TOPLEFT" relativeTo="MN_EditIcon0">
<Offset><AbsDimension x="-26" y="-36"/></Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
MapNotes_TitleWideEditBox:SetText("");
</OnLoad>
<OnTextChanged>
if (MapNotes_TitleWideEditBox:GetText() == "" or MapNotes_TitleWideEditBox:GetText() == nil) then
MapNotesButtonSaveNote:Disable();
else
MapNotesButtonSaveNote:Enable();
end
</OnTextChanged>
<OnEnterPressed>
PlaySound("igMainMenuOption");
MapNotes_WriteNote();
</OnEnterPressed>
<OnEscapePressed>
MapNotesEditFrame:Hide();
</OnEscapePressed>
<OnShow>
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 );
</OnShow>
<OnTabPressed>
MN_Info1WideEditBox:SetFocus();
</OnTabPressed>
</Scripts>
<FontString inherits="ChatFontNormal"/>
</EditBox>
<Frame>
<Size>
<AbsDimension x="420" y="28"/>
</Size>
<Anchors>
<Anchor point="CENTER" relativePoint="CENTER" relativeTo="MapNotes_TitleWideEditBox"/>
</Anchors>
<Backdrop bgFile="Interface\TutorialFrame\TutorialFrameBackground" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="0" right="0" top="0" bottom="0"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="12"/>
</TileSize>
<EdgeSize>
<AbsValue val="12"/>
</EdgeSize>
</Backdrop>
</Frame>
<EditBox name="MN_Info1WideEditBox" historyLines="0" letters="100">
<Size>
<AbsDimension x="400" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativePoint="TOPLEFT" relativeTo="MapNotes_TitleWideEditBox">
<Offset><AbsDimension x="0" y="-65"/></Offset>
</Anchor>
</Anchors>
<Scripts>
<OnEnterPressed>
PlaySound("igMainMenuOption");
MapNotes_WriteNote();
</OnEnterPressed>
<OnEscapePressed>
MapNotesEditFrame:Hide();
</OnEscapePressed>
<OnShow>
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 );
</OnShow>
<OnTabPressed>
MN_Info2WideEditBox:SetFocus();
</OnTabPressed>
</Scripts>
<FontString inherits="ChatFontNormal"/>
</EditBox>
<Frame>
<Size>
<AbsDimension x="420" y="28"/>
</Size>
<Anchors>
<Anchor point="CENTER" relativePoint="CENTER" relativeTo="MN_Info1WideEditBox"/>
</Anchors>
<Backdrop bgFile="Interface\TutorialFrame\TutorialFrameBackground" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="0" right="0" top="0" bottom="0"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="12"/>
</TileSize>
<EdgeSize>
<AbsValue val="12"/>
</EdgeSize>
</Backdrop>
</Frame>
<EditBox name="MN_Info2WideEditBox" historyLines="0" letters="100">
<Size>
<AbsDimension x="400" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativePoint="TOPLEFT" relativeTo="MN_Info1WideEditBox">
<Offset><AbsDimension x="0" y="-65"/></Offset>
</Anchor>
</Anchors>
<Scripts>
<OnEnterPressed>
PlaySound("igMainMenuOption");
MapNotes_WriteNote();
</OnEnterPressed>
<OnEscapePressed>
MapNotesEditFrame:Hide();
</OnEscapePressed>
<OnShow>
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 );
</OnShow>
<OnTabPressed>
MN_CreatorWideEditBox:SetFocus();
</OnTabPressed>
</Scripts>
<FontString inherits="ChatFontNormal"/>
</EditBox>
<Frame>
<Size>
<AbsDimension x="420" y="28"/>
</Size>
<Anchors>
<Anchor point="CENTER" relativePoint="CENTER" relativeTo="MN_Info2WideEditBox"/>
</Anchors>
<Backdrop bgFile="Interface\TutorialFrame\TutorialFrameBackground" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="0" right="0" top="0" bottom="0"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="12"/>
</TileSize>
<EdgeSize>
<AbsValue val="12"/>
</EdgeSize>
</Backdrop>
</Frame>
<EditBox name="MN_CreatorWideEditBox" historyLines="0" letters="100">
<Size>
<AbsDimension x="400" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativePoint="TOPLEFT" relativeTo="MN_Info2WideEditBox">
<Offset><AbsDimension x="0" y="-65"/></Offset>
</Anchor>
</Anchors>
<Scripts>
<OnEnterPressed>
PlaySound("igMainMenuOption");
MapNotes_WriteNote();
</OnEnterPressed>
<OnEscapePressed>
MapNotesEditFrame:Hide();
</OnEscapePressed>
<OnShow>
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 );
</OnShow>
<OnTabPressed>
MapNotes_TitleWideEditBox:SetFocus();
</OnTabPressed>
</Scripts>
<FontString inherits="ChatFontNormal"/>
</EditBox>
<Frame>
<Size>
<AbsDimension x="420" y="28"/>
</Size>
<Anchors>
<Anchor point="CENTER" relativePoint="CENTER" relativeTo="MN_CreatorWideEditBox"/>
</Anchors>
<Backdrop bgFile="Interface\TutorialFrame\TutorialFrameBackground" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="0" right="0" top="0" bottom="0"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="12"/>
</TileSize>
<EdgeSize>
<AbsValue val="12"/>
</EdgeSize>
</Backdrop>
</Frame>
<Button name="MN_TextColor0">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="50" y="-111"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_TextColor0Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetTextColor(0, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_TextColor1">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_TextColor0">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_TextColor1Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetTextColor(1, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_TextColor2">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_TextColor1">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_TextColor2Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetTextColor(2, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_TextColor3">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_TextColor2">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_TextColor3Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetTextColor(3, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_TextColor4">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_TextColor3">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_TextColor4Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetTextColor(4, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_TextColor5">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_TextColor4">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_TextColor5Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetTextColor(5, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_TextColor6">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_TextColor5">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_TextColor6Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetTextColor(6, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_TextColor7">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_TextColor6">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_TextColor7Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetTextColor(7, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_TextColor8">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_TextColor7">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_TextColor8Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetTextColor(8, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_TextColor9">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_TextColor8">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_TextColor9Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_SetTextColor(9, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Frame name="MN_TextColorOverlay" enableMouse="false">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativePoint="TOPLEFT" relativeTo="MN_TextColor0">
<Offset><AbsDimension x="-3" y="3"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_TextColorOverlayTexture" file="Interface\AddOns\MapNotes\POIIcons\Overlay">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
</Frame>
<Button name="MN_Info1Color0">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="50" y="-175"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info1Color0Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info1Color(0, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info1Color1">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info1Color0">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info1Color1Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info1Color(1, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info1Color2">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info1Color1">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info1Color2Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info1Color(2, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info1Color3">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info1Color2">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info1Color3Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info1Color(3, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info1Color4">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info1Color3">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info1Color4Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info1Color(4, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info1Color5">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info1Color4">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info1Color5Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info1Color(5, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info1Color6">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info1Color5">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info1Color6Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info1Color(6, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info1Color7">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info1Color6">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info1Color7Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info1Color(7, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info1Color8">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info1Color7">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info1Color8Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info1Color(8, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info1Color9">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info1Color8">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info1Color9Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info1Color(9, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Frame name="MN_Info1ColorOverlay" enableMouse="false">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativePoint="TOPLEFT" relativeTo="MN_Info1Color0">
<Offset><AbsDimension x="-3" y="3"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info1ColorOverlayTexture" file="Interface\AddOns\MapNotes\POIIcons\Overlay">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
</Frame>
<Button name="MN_Info2Color0">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="50" y="-241"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info2Color0Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info2Color(0, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info2Color1">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info2Color0">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info2Color1Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info2Color(1, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info2Color2">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info2Color1">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info2Color2Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info2Color(2, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info2Color3">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info2Color2">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info2Color3Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info2Color(3, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info2Color4">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info2Color3">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info2Color4Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info2Color(4, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info2Color5">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info2Color4">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info2Color5Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info2Color(5, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info2Color6">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info2Color5">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info2Color6Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info2Color(6, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info2Color7">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info2Color6">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info2Color7Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info2Color(7, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info2Color8">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info2Color7">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info2Color8Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info2Color(8, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Button name="MN_Info2Color9">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MN_Info2Color8">
<Offset><AbsDimension x="21" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info2Color9Texture" file="Interface\AddOns\MapNotes\POIIcons\TextColourTemplate">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MapNotes_Edit_Set_Info2Color(9, arg1);
</OnClick>
<OnShow> <!--Telic_2 -->
this:SetFrameLevel( this:GetParent():GetFrameLevel() + 1 ); <!--Telic_2 -->
</OnShow> <!--Telic_2 -->
</Scripts>
</Button>
<Frame name="MN_Info2ColorOverlay" enableMouse="false">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativePoint="TOPLEFT" relativeTo="MN_Info2Color0">
<Offset><AbsDimension x="-3" y="3"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MN_Info2ColorOverlayTexture" file="Interface\AddOns\MapNotes\POIIcons\Overlay">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
</Frame>
</Frames>
<Layers>
<Layer level="ARTWORK">
<FontString name="MapNotes_EditFrame_Title" inherits="GameFontNormalSmall" text="MAPNOTES_EDIT_TITLE" justifyH="LEFT">
<Size>
<AbsDimension x="222" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="22" y="-63"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MapNotes_EditFrame_MN_Info1" inherits="GameFontNormalSmall" text="MAPNOTES_EDIT_INFO1" justifyH="LEFT">
<Size>
<AbsDimension x="222" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="22" y="-129"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MapNotes_EditFrame_MN_Info2" inherits="GameFontNormalSmall" text="MAPNOTES_EDIT_INFO2" justifyH="LEFT">
<Size>
<AbsDimension x="222" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="22" y="-194"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MapNotes_EditFrame_Creator" inherits="GameFontNormalSmall" text="MAPNOTES_EDIT_CREATOR" justifyH="LEFT">
<Size>
<AbsDimension x="222" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset><AbsDimension x="22" y="-259"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnShow>
MN_InitialiseTextColours(true);
this:SetFrameStrata("TOOLTIP");
this:SetAlpha(1.0);
MapNotes_NormaliseScale(self);
</OnShow>
<OnLoad>
this:SetBackdropColor(0,0,0,1);
</OnLoad>
</Scripts>
</Frame>
 
<Frame parent="ColorPickerFrame" enableMouse="false" hidden="false"> <!-- Easy Hook ColorPickerFrame's OnHide function that will Never interfere with anyone elses... ;) -->
<Size>
<AbsDimension x="1" y="1"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Scripts>
<OnHide>
if ( ColorPickerFrame.strata ) then
ColorPickerFrame:SetFrameStrata(ColorPickerFrame.strata);
ColorPickerFrame.strata = nil;
end
ColorPickerFrame:SetParent(UIParent);
</OnHide>
<OnUpdate>
if ( ( ColorPickerFrame.forceHide ) and ( not WorldMapButton:IsVisible() ) ) then
ColorPickerFrame.forceHide = nil;
ColorPickerFrame:Hide();
end
</OnUpdate>
</Scripts>
</Frame>
 
</Ui>
MapNotesIconLib/MapNotesIconLib_Templates.xml New file
0,0 → 1,197
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\FrameXML\UI.xsd">
 
<Script file="MapNotesIconLib_Library.lua"/>
<Script file="MapNotesIconLib.en.lua"/>
<Script file="MapNotesIconLib.lua"/>
 
 
 
<!-- MNIL Fonts -->
 
<Font name="MNIL_NormalFont" inherits="GameFontNormalLarge" font="Fonts\ARIALN.TTF" virtual="true">
<FontHeight>
<AbsValue val="15"/>
</FontHeight>
<Shadow>
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
<Color r="0" g="0" b="0"/>
</Shadow>
<Color r="1.0" g="1.0" b="0.0"/>
</Font>
<Font name="MNIL_GreenFont" inherits="GameFontNormal" font="Fonts\ARIALN.TTF" virtual="true">
<FontHeight>
<AbsValue val="12"/>
</FontHeight>
<Shadow>
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
<Color r="0" g="0" b="0"/>
</Shadow>
<Color r="0.0" g="0.0" b="1"/>
</Font>
<Font name="MNIL_BlackFont" inherits="GameFontNormal" font="Fonts\ARIALN.TTF" virtual="true">
<FontHeight>
<AbsValue val="12"/>
</FontHeight>
<Shadow>
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
<Color r="0" g="0" b="0"/>
</Shadow>
<Color r="0.0" g="0.0" b="0.0"/>
</Font>
 
 
<!-- Master Templates -->
 
<Frame name="MNIL_ScriptTemplate" enableMouse="true" virtual="true">
<Scripts>
<OnMouseDown>
MNIL.Button_OnMouseDown(this); <!-- Button pressed animation -->
</OnMouseDown>
<OnMouseUp>
MNIL.Button_OnMouseUp(this, arg1); <!-- Button released animation -->
</OnMouseUp> <!-- Buttons based on this template can call their own secondary, customised OnClick func -->
<OnEnter>
MNIL.Button_OnMouseEnter(this); <!-- Buttons based on this template can provide their own Tooltip key -->
</OnEnter>
<OnLeave>
MNIL.Button_OnMouseLeave(this); <!-- Hide tooltip -->
</OnLeave>
</Scripts>
</Frame>
 
<Frame name="MNIL_IconButtonTemplate" inherits="MNIL_ScriptTemplate" enableMouse="true" virtual="true">
<Frames>
<Frame name="$parentArtWork">
<Size>
<AbsDimension x="18" y="18"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="$parentTexture" file="Interface\QuestFrame\UI-QuestTitleHighlight">
<Size>
<AbsDimension x="18" y="18"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
<Layer level="OVERLAY">
<Texture name="$parentHighlight" hidden="true" file="Interface\QuestFrame\UI-QuestTitleHighlight" alphaMode="ADD">
<Size>
<AbsDimension x="14" y="14"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
</Frame>
</Frames>
</Frame>
 
 
 
<!-- Specific Button Templates -->
 
<!-- IconLib Default Icons -->
<Frame name="MNIL_ILIconButtonTemplate" inherits="MNIL_IconButtonTemplate" virtual="true">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER" relativeTo="MNILSelectorFrame" relativePoint="CENTER"/>
</Anchors>
<Scripts>
<OnLoad>
this.onClickFunc = MNIL.IL_IconOnClick;
this.tooltipKey = "IL_ICONTOOLTIP";
this.overlayHighlight = true;
this.enabled = true;
</OnLoad>
</Scripts>
</Frame>
 
<!-- MapNotes Default Icons -->
<Frame name="MNIL_MNIconButtonTemplate" inherits="MNIL_IconButtonTemplate" virtual="true">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="CENTER" relativeTo="MNILOptionsFrame" relativePoint="CENTER"/>
</Anchors>
</Frame>
 
<!-- Navigation -->
<Frame name="MNIL_NavButtonTemplate" inherits="MNIL_ScriptTemplate" virtual="true">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
<Frames>
<Frame name="$parentArtWork">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="$parentTexture" file="Interface\AddOns\MapNotesIconLib\Graphics\Down">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
</Layers>
</Frame>
</Frames>
</Frame>
 
<!-- Generic -->
<Frame name="MNIL_GenButtonTemplate" inherits="MNIL_ScriptTemplate" virtual="true">
<Size>
<AbsDimension x="80" y="22"/>
</Size>
<Frames>
<Frame name="$parentArtWork">
<Size>
<AbsDimension x="128" y="128"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="$parentTexture" file="Interface\AddOns\MapNotesIconLib\Graphics\GenRaw">
<Size>
<AbsDimension x="128" y="128"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
<Layer level="ARTWORK">
<FontString name="$parentText" inherits="MNIL_NormalFont"/>
</Layer>
</Layers>
</Frame>
</Frames>
</Frame>
 
</Ui>
MapNotesIconLib/MapNotesIconLib.xml New file
0,0 → 1,455
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\FrameXML\UI.xsd">
 
<Include file="MapNotesIconLib_Templates.xml"/>
 
<Frame name="MNILSelectorFrame" hidden="true" topLevel="true" frameStrata="FULLSCREEN_DIALOG" enableMouse="true" movable="true">
<Size>
<AbsDimension x="512" y="512"/>
</Size>
<Anchors>
<Anchor point="CENTER" relativeTo="UIParent"/>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MNILSelectorFrameBackground" file="Interface\AddOns\MapNotesIconLib\Graphics\MNIL_BG"/>
</Layer>
<Layer level="ARTWORK">
<FontString name="MNILSelectorFrameStatus" inherits="GameFontGreen" justifyH="RIGHT" text="MNIL_LIBSLOADED">
<Anchors>
<Anchor point="TOPRIGHT" relativePoint="TOP" relativeTo="MNILSelectorFrame">
<Offset>
<AbsDimension x="60" y="-66"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MNILSelectorFrameStatus2" inherits="GameFontGreen" justifyH="LEFT" justifyV="TOP" text=""/>
<FontString name="MNILSelectorFrameMNLibAuthor" inherits="MNIL_GreenFont" justifyH="RIGHT" text="MNIL_LAUTHOR">
<Anchors>
<Anchor point="TOPRIGHT" relativePoint="TOP" relativeTo="MNILSelectorFrame">
<Offset>
<AbsDimension x="-40" y="-132"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MNILSelectorFrameMNLibAuthor2" inherits="MNIL_GreenFont" justifyH="LEFT" justifyV="TOP" text=""/>
<FontString name="MNILSelectorFrameMNLibDate" inherits="MNIL_GreenFont" justifyH="RIGHT" text="MNIL_LDATE">
<Anchors>
<Anchor point="TOPRIGHT" relativePoint="BOTTOMRIGHT" relativeTo="MNILSelectorFrameMNLibAuthor">
<Offset>
<AbsDimension x="0" y="-6"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MNILSelectorFrameMNLibDate2" inherits="MNIL_GreenFont" justifyH="LEFT" justifyV="TOP" text=""/>
<FontString name="MNILSelectorFrameMNLibInfo" inherits="MNIL_GreenFont" justifyH="RIGHT" text="MNIL_LINFO">
<Anchors>
<Anchor point="TOPRIGHT" relativePoint="BOTTOMRIGHT" relativeTo="MNILSelectorFrameMNLibDate">
<Offset>
<AbsDimension x="0" y="-6"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MNILSelectorFrameMNLibInfo2" inherits="MNIL_GreenFont" justifyH="LEFT" justifyV="TOP" text=""/>
<FontString name="MNILSelectorFrameMNLibIcons" inherits="MNIL_GreenFont" justifyH="LEFT" text="MNIL_LICONS">
<Anchors>
<Anchor point="CENTER">
<Offset>
<AbsDimension x="-160" y="50"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MNILSelectorFrameMNLibIcons2" inherits="MNIL_GreenFont" justifyH="LEFT" justifyV="TOP" text=""/>
<FontString name="MNILSelectorFrameMNVersion" inherits="MNIL_BlackFont" justifyH="CENTER" text="MNIL_MNVERSION">
<Anchors>
<Anchor point="BOTTOM">
<Offset>
<AbsDimension x="8" y="76"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MNILSelectorFrameMNILVersion" inherits="MNIL_BlackFont" justifyH="CENTER" text="MNIL_MNILVERSION">
<Anchors>
<Anchor point="TOPRIGHT" relativePoint="BOTTOMRIGHT" relativeTo="MNILSelectorFrameMNVersion">
<Offset>
<AbsDimension x="-12" y="-2"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
<Layer level="OVERLAY">
</Layer>
</Layers>
<Frames>
<Frame name="MNIL_LibsDropDown" inherits="UIDropDownMenuTemplate">
<Anchors>
<Anchor point="TOP" relativePoint="TOP" relativeTo="MNILSelectorFrame">
<Offset>
<AbsDimension x="14" y="-104"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnShow>
MNIL.MNIL_LibsDropDown_OnLoad();
</OnShow>
</Scripts>
</Frame>
<Frame name="MNIL_LibIcon1" inherits="MNIL_ILIconButtonTemplate" id="1" />
<Frame name="MNIL_LibIcon2" inherits="MNIL_ILIconButtonTemplate" id="2" />
<Frame name="MNIL_LibIcon3" inherits="MNIL_ILIconButtonTemplate" id="3" />
<Frame name="MNIL_LibIcon4" inherits="MNIL_ILIconButtonTemplate" id="4" />
<Frame name="MNIL_LibIcon5" inherits="MNIL_ILIconButtonTemplate" id="5" />
<Frame name="MNIL_LibIcon6" inherits="MNIL_ILIconButtonTemplate" id="6" />
<Frame name="MNIL_LibIcon7" inherits="MNIL_ILIconButtonTemplate" id="7" />
<Frame name="MNIL_LibIcon8" inherits="MNIL_ILIconButtonTemplate" id="8" />
<Frame name="MNIL_LibIcon9" inherits="MNIL_ILIconButtonTemplate" id="9" />
<Frame name="MNIL_LibIcon10" inherits="MNIL_ILIconButtonTemplate" id="10"/>
<Frame name="MNIL_LibIcon11" inherits="MNIL_ILIconButtonTemplate" id="11"/>
<Frame name="MNIL_LibIcon12" inherits="MNIL_ILIconButtonTemplate" id="12"/>
<Frame name="MNIL_LibIcon13" inherits="MNIL_ILIconButtonTemplate" id="13"/>
<Frame name="MNIL_LibIcon14" inherits="MNIL_ILIconButtonTemplate" id="14"/>
<Frame name="MNIL_LibIcon15" inherits="MNIL_ILIconButtonTemplate" id="15"/>
<Frame name="MNIL_LibIcon16" inherits="MNIL_ILIconButtonTemplate" id="16"/>
<Frame name="MNIL_LibIcon17" inherits="MNIL_ILIconButtonTemplate" id="17"/>
<Frame name="MNIL_LibIcon18" inherits="MNIL_ILIconButtonTemplate" id="18"/>
<Frame name="MNIL_LibIcon19" inherits="MNIL_ILIconButtonTemplate" id="19"/>
<Frame name="MNIL_LibIcon20" inherits="MNIL_ILIconButtonTemplate" id="20"/>
<Frame name="MNIL_LibIcon21" inherits="MNIL_ILIconButtonTemplate" id="21"/>
<Frame name="MNIL_LibIcon22" inherits="MNIL_ILIconButtonTemplate" id="22"/>
<Frame name="MNIL_LibIcon23" inherits="MNIL_ILIconButtonTemplate" id="23"/>
<Frame name="MNIL_LibIcon24" inherits="MNIL_ILIconButtonTemplate" id="24"/>
<Frame name="MNIL_LibIcon25" inherits="MNIL_ILIconButtonTemplate" id="52"/>
<Frame name="MNIL_LibIcon26" inherits="MNIL_ILIconButtonTemplate" id="26"/>
<Frame name="MNIL_LibIcon27" inherits="MNIL_ILIconButtonTemplate" id="27"/>
<Frame name="MNIL_LibIcon28" inherits="MNIL_ILIconButtonTemplate" id="28"/>
<Frame name="MNIL_LibIcon29" inherits="MNIL_ILIconButtonTemplate" id="29"/>
<Frame name="MNIL_LibIcon30" inherits="MNIL_ILIconButtonTemplate" id="30"/>
<Frame name="MNIL_LibIcon31" inherits="MNIL_ILIconButtonTemplate" id="31"/>
<Frame name="MNIL_LibIcon32" inherits="MNIL_ILIconButtonTemplate" id="32"/>
<Frame name="MNIL_LibIcon33" inherits="MNIL_ILIconButtonTemplate" id="33"/>
<Frame name="MNIL_LibIcon34" inherits="MNIL_ILIconButtonTemplate" id="34"/>
<Frame name="MNIL_LibIcon35" inherits="MNIL_ILIconButtonTemplate" id="35"/>
<Frame name="MNIL_LibIcon36" inherits="MNIL_ILIconButtonTemplate" id="36"/>
<Frame name="MNIL_LibIcon37" inherits="MNIL_ILIconButtonTemplate" id="37"/>
<Frame name="MNIL_LibIcon38" inherits="MNIL_ILIconButtonTemplate" id="38"/>
<Frame name="MNIL_LibIcon39" inherits="MNIL_ILIconButtonTemplate" id="39"/>
<Frame name="MNIL_LibIcon40" inherits="MNIL_ILIconButtonTemplate" id="40"/>
 
<Frame name="MNIL_LibPrev" inherits="MNIL_NavButtonTemplate">
<Anchors>
<Anchor point="RIGHT">
<Offset>
<AbsDimension x="-50" y="14"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
this.onClickFunc = MNIL.IL_PrevIcons;
this.tooltipKey = "NV_PREVTOOLTIP";
this.enabled = true;
this.enabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\Up";
this.disabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\UpDisabled";
this.highlightedTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\UpLit";
</OnLoad>
<OnShow>
MNIL_LibPrevArtWorkTexture:SetTexture("Interface\AddOns\MapNotesIconLib\Graphics\Up");
</OnShow>
</Scripts>
</Frame>
<Frame name="MNIL_LibNext" inherits="MNIL_NavButtonTemplate">
<Anchors>
<Anchor point="TOP" relativePoint="BOTTOM" relativeTo="MNIL_LibPrev">
<Offset>
<AbsDimension x="0" y="-40"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
this.onClickFunc = MNIL.IL_NextIcons;
this.tooltipKey = "NV_NEXTTOOLTIP";
this.enabled = true;
this.enabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\Down";
this.disabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\DownDisabled";
this.highlightedTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\DownLit";
</OnLoad>
<OnShow>
MNIL_LibNextArtWorkTexture:SetTexture("Interface\AddOns\MapNotesIconLib\Graphics\Down");
</OnShow>
</Scripts>
</Frame>
<Frame name="MNIL_LibOptions" inherits="MNIL_GenButtonTemplate">
<Anchors>
<Anchor point="BOTTOM">
<Offset>
<AbsDimension x="-48" y="125"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
this.onClickFunc = MNIL.IL_OptionsOnClick;
this.tooltipKey = "NV_OPTIONSTOOLTIP";
this.enabled = true;
this.enabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenRaw";
this.disabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenDisabled";
this.highlightedTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenLitRaw";
MNIL.Button_SetText(this, MNIL_OPTIONS);
</OnLoad>
</Scripts>
</Frame>
<Frame name="MNIL_LibCancel" inherits="MNIL_GenButtonTemplate">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MNIL_LibOptions">
<Offset>
<AbsDimension x="36" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
this.onClickFunc = MNIL.IL_CancelSelectorOnClick;
this.enabled = true;
this.enabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenRaw";
this.disabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenDisabled";
this.highlightedTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenLitRaw";
MNIL.Button_SetText(this, CANCEL);
</OnLoad>
</Scripts>
</Frame>
</Frames>
<Scripts>
<OnLoad>
MNIL.MNILSelectorFrame_OnLoad();
</OnLoad>
<OnEvent>
MNIL.OnEvent();
</OnEvent>
<OnShow>
MNIL.MNILSelectorFrame_OnShow();
</OnShow>
<OnHide>
MNIL.MNILSelectorFrame_OnHide();
</OnHide>
<OnMouseDown>
this:StartMoving();
this.isMoving = true;
</OnMouseDown>
<OnMouseUp>
this:StopMovingOrSizing();
this.isMoving = false;
</OnMouseUp>
</Scripts>
</Frame>
 
<Frame name="MNILOptionsFrame" hidden="true" topLevel="true" frameStrata="FULLSCREEN_DIALOG" enableMouse="true" movable="true">
<Size>
<AbsDimension x="256" y="256"/>
</Size>
<Anchors>
<Anchor point="CENTER" relativeTo="UIParent"/>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="MNILOptionsFrameBackground" file="Interface\AddOns\MapNotesIconLib\Graphics\MapNotesIconLib_Options"/>
</Layer>
<Layer level="ARTWORK">
<FontString name="MNILOptionsLabel" inherits="GameFontGreen" justifyH="CENTER" text="MNIL_OTITLE">
<Anchors>
<Anchor point="TOP">
<Offset>
<AbsDimension x="0" y="-26"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MNILOptionsPartyLabel" inherits="GameFontGreenSmall" justifyH="CENTER" text="MNIL_PARTYICON">
<Anchors>
<Anchor point="TOPLEFT" relativePoint="TOPLEFT" relativeTo="MNILOptionsFrame">
<Offset>
<AbsDimension x="52" y="-66"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MNILOptionstlocLabel" inherits="GameFontGreenSmall" justifyH="CENTER" text="MNIL_TLOCICON">
<Anchors>
<Anchor point="TOPLEFT" relativePoint="TOP" relativeTo="MNILOptionsFrame">
<Offset>
<AbsDimension x="36" y="-66"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Frames>
<Frame name="MNIL_OptionParty" inherits="MNIL_MNIconButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativePoint="TOPLEFT" relativeTo="MNILOptionsFrame">
<Offset>
<AbsDimension x="34" y="-64"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
this.onClickFunc = MNIL.PartyIcon_OnClick;
this.tooltipKey = "GN_OPTIONSPARTY";
this.overlayHighlight = true;
this.enabled = true;
this.GetTexture = MNIL.Button_GetTexture;
this.SetTexture = MNIL.Button_SetTexture;
</OnLoad>
<OnShow>
MNIL.PartyIcon_OnShow();
</OnShow>
</Scripts>
</Frame>
<Frame name="MNIL_Optiontloc" inherits="MNIL_MNIconButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativePoint="TOP" relativeTo="MNILOptionsFrame">
<Offset>
<AbsDimension x="18" y="-64"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
this.onClickFunc = MNIL.tlocIcon_OnClick;
this.tooltipKey = "GN_OPTIONSTLOC";
this.overlayHighlight = true;
this.enabled = true;
this.GetTexture = MNIL.Button_GetTexture;
this.SetTexture = MNIL.Button_SetTexture;
</OnLoad>
<OnShow>
MNIL.tlocIcon_OnShow();
</OnShow>
</Scripts>
</Frame>
 
<Frame name="MNIL_OptionsBrowse" inherits="MNIL_GenButtonTemplate">
<Anchors>
<Anchor point="BOTTOMLEFT" relativePoint="BOTTOMLEFT" relativeTo="MNILOptionsFrame">
<Offset>
<AbsDimension x="32" y="58"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
this.onClickFunc = MNIL.IL_BrowseOnClick;
this.enabled = true;
this.enabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenRaw";
this.disabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenDisabled";
this.highlightedTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenLitRaw";
MNIL.Button_SetText(this, MNIL_BROWSE);
</OnLoad>
</Scripts>
</Frame>
<Frame name="MNIL_OptionsClean" inherits="MNIL_GenButtonTemplate">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MNIL_OptionsBrowse">
<Offset>
<AbsDimension x="32" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
this.onClickFunc = MNIL.CleanOnClick;
this.tooltipKey = "IL_CLEANTOOLTIP";
this.enabled = true;
this.enabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenRaw";
this.disabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenDisabled";
this.highlightedTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenLitRaw";
MNIL.Button_SetText(this, MNIL_CLEAN);
</OnLoad>
</Scripts>
</Frame>
<Frame name="MNIL_OptionsReset" inherits="MNIL_GenButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT" relativeTo="MNIL_OptionsBrowse">
<Offset>
<AbsDimension x="0" y="-10"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
this.onClickFunc = MNIL.ResetOnClick;
this.enabled = true;
this.enabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenRaw";
this.disabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenDisabled";
this.highlightedTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenLitRaw";
MNIL.Button_SetText(this, MNIL_RESET);
</OnLoad>
</Scripts>
</Frame>
<Frame name="MNIL_OptionsCancel" inherits="MNIL_GenButtonTemplate">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="MNIL_OptionsReset">
<Offset>
<AbsDimension x="32" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
this.onClickFunc = MNIL.IL_CancelOptionsOnClick;
this.enabled = true;
this.enabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenRaw";
this.disabledTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenDisabled";
this.highlightedTexture = "Interface\\AddOns\\MapNotesIconLib\\Graphics\\GenLitRaw";
MNIL.Button_SetText(this, CANCEL);
</OnLoad>
</Scripts>
</Frame>
</Frames>
<Scripts>
<OnMouseDown>
this:StartMoving();
this.isMoving = true;
</OnMouseDown>
<OnMouseUp>
this:StopMovingOrSizing();
this.isMoving = false;
</OnMouseUp>
</Scripts>
</Frame>
 
<Frame name="MNIL_CustomIcon" parent="MapNotesEditFrame" topLevel="true" inherits="MNIL_IconButtonTemplate" enableMouse="true">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPRIGHT"/>
</Anchors>
<Scripts>
<OnLoad>
this.onClickFunc = MNIL.MNIL_CustomIcon_OnClick;
this.tooltipKey = "IL_CUSTOMICONTOOLTIP";
this.overlayHighlight = true;
this.enabled = true;
</OnLoad>
<OnShow>
MNIL_CustomIcon:SetFrameLevel( MapNotesEditFrame:GetFrameLevel() + 2 );
MNIL.MNIL_CustomIcon_OnShow();
</OnShow>
<OnHide>
MNIL.MNIL_CustomIcon_OnHide();
</OnHide>
</Scripts>
</Frame>
 
</Ui>
\ No newline at end of file
MapNotesIconLib/MapNotesIconLib.lua New file
0,0 → 1,1150
 
-- Saved Variables
MNIL_Data = {};
 
 
 
-- NameSpace
MNIL = {};
 
 
 
-- Global Constants not for localisation
MNIL_VERSION = "v1.04.20400";
MNIL_EDITION = 1;
 
MNIL_MNVERSION = "MapNotes (Fan's Update) " .. MNIL_VERSIONTXT .. " " .. MAPNOTES_VERSION;
MNIL_MNILVERSION = "MapNotesIconLib " .. MNIL_VERSIONTXT .. " " .. MNIL_VERSION;
 
 
 
-- Local Constants
 
local MNILLC = {};
MNILLC.NormalFontSize = 12;
MNILLC.HighlightFontSize = 14;
MNILLC.DisabledFontSize = 8;
MNILLC.ButtonsPerRow = 10;
MNILLC.LibButtons = 40;
 
 
 
-- Local Variables
 
local MNILV = {};
MNILV.AsyncData = {};
 
 
 
 
 
-------------------------
-- Local Functions --
-------------------------
 
local MNILF = {};
 
function MNILF.MNILSelectorFrame_Refresh()
local selectedLib = MNILSelectorFrame.selectedLib;
 
-- Set Labels
MNILSelectorFrameStatus2:SetText( getn(MNIL_Libs) );
MNILSelectorFrameStatus2:ClearAllPoints();
MNILSelectorFrameStatus2:SetPoint("LEFT", MNILSelectorFrameStatus, "RIGHT", 0, 0);
MNILSelectorFrameMNLibAuthor2:SetText( selectedLib.author );
MNILSelectorFrameMNLibAuthor2:ClearAllPoints();
MNILSelectorFrameMNLibAuthor2:SetPoint("LEFT", MNILSelectorFrameMNLibAuthor, "RIGHT", 0, 0);
MNILSelectorFrameMNLibDate2:SetText( selectedLib.date );
MNILSelectorFrameMNLibDate2:ClearAllPoints();
MNILSelectorFrameMNLibDate2:SetPoint("LEFT", MNILSelectorFrameMNLibDate, "RIGHT", 0, 0);
local localisedInfo = selectedLib.info[ MNILLC.loc ];
if ( not localisedInfo ) then
localisedInfo = selectedLib.info.enGB;
end
if ( not localisedInfo ) then
for loc, info in pairs(selectedLib.info) do
localisedInfo = info;
break;
end
end
if ( not localisedInfo ) then localisedInfo = "BUG ALERT : Please report code 432jk("..selectedLib.title..") to telic@hotmail.co.uk"; end
MNILSelectorFrameMNLibInfo2:SetText( localisedInfo );
MNILSelectorFrameMNLibInfo2:ClearAllPoints();
MNILSelectorFrameMNLibInfo2:SetPoint("TOPLEFT", MNILSelectorFrameMNLibInfo, "TOPRIGHT", 0, 0);
 
UIDropDownMenu_SetSelectedID(MNIL_LibsDropDown, MNIL_Data.lastLib);
UIDropDownMenu_SetText(MNIL_LibsDropDown, selectedLib.title);
MNIL_LibsDropDown:SetScale(0.9);
 
-- Set Buttons
MNILF.MNILSelectorFrame_RefreshButtons()
end
 
function MNILF.MNILSelectorFrame_RefreshButtons()
local selectedLib = MNILSelectorFrame.selectedLib;
 
if ( not MNIL_Data.lastRow ) then
MNIL_Data.lastRow = 1;
end
 
local startAt = ( ( MNIL_Data.lastRow - 1 ) * MNILLC.ButtonsPerRow ) + 1;
local numIcons = getn(selectedLib.icons);
 
if ( ( startAt > numIcons ) or ( startAt < 1 ) ) then
startAt = 1;
MNIL_Data.lastRow = 1;
end
 
-- set the label describing which icons are showing
local endAt = startAt+MNILLC.LibButtons-1;
if ( numIcons < endAt ) then
endAt = numIcons;
end
MNILSelectorFrameMNLibIcons2:SetText(startAt .. " - " .. endAt .. " (" .. numIcons .. ")");
MNILSelectorFrameMNLibIcons2:ClearAllPoints();
MNILSelectorFrameMNLibIcons2:SetPoint("LEFT", MNILSelectorFrameMNLibIcons, "RIGHT", 0, 0);
 
-- if starting at a row after the first, enable the scroll up button, else disable
if ( MNIL_Data.lastRow > 1 ) then
MNIL.Button_Enable(MNIL_LibPrev);
else
MNIL.Button_Disable(MNIL_LibPrev);
end
 
-- if enough icons to overflow the available buttons, then enable the scroll down button, else disable
if ( numIcons - startAt + 1 > MNILLC.LibButtons ) then
MNIL.Button_Enable(MNIL_LibNext);
else
MNIL.Button_Disable(MNIL_LibNext);
end
 
-- update the button icons, or hide the buttons if not enough icons
local icon, libIndex;
for i=1, MNILLC.LibButtons, 1 do
libIndex = startAt + i - 1;
icon = getglobal("MNIL_LibIcon"..i);
if ( ( selectedLib.icons[libIndex] ) and ( selectedLib.icons[libIndex].path ~= "Interface\\AddOns\\MapNotesIconLib\\Icons\\Empty" ) ) then
MNIL.Button_SetTexture(icon, selectedLib.icons[libIndex].path);
icon.text = selectedLib.icons[libIndex].path;
icon:Show();
else
icon:Hide();
end
end
end
 
function MNILF.CmdLine(switch, parm1, pList)
if ( ( not switch ) or ( switch == "" ) ) then
if ( MNILOptionsFrame:IsVisible() ) then
MNIL.IL_CancelOptionsOnClick();
else
MNILOptionsFrame:Show();
end
 
-- elseif (
 
else
 
end
end
 
function MNILF.Reset()
-- cancel any current selection
if ( MNILSelectorFrame:IsVisible() ) then
MNILSelectorFrame:Hide();
MNILSelectorFrame:SetUserPlaced(false);
end
 
-- now clean the MNIL stored changes
MNIL_Data.customDefaults = {};
MNIL_Data.partyIcon = nil;
MNIL_Data.tlocIcon = nil;
 
-- now clean the MapNotes Database of ALL customIcons
for _, map in pairs(MapNotes_Data_Notes) do
for _, note in pairs(map) do
if ( note.customIcon ) then
note.customIcon = nil;
end
end
end
 
-- reset the Party / tloc notes
MN_PARTY_ICON = nil;
MN_TLOC_ICON = nil;
MapNotesPOIpartyTexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
MNIL_OptionPartyArtWorkTexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
MapNotesPOItlocTexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
MNIL_OptiontlocArtWorkTexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
if ( MapNotes_MiniNote_Data.icon == "party" ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
elseif ( MapNotes_MiniNote_Data.icon == "tloc" ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
end
 
-- reset the Options / Edit menu icons
for i = 0, 9, 1 do
getglobal("MN_EditIcon"..i.."Texture"):SetTexture(MN_POI_ICONS_PATH.."\\Icon"..i);
getglobal("MapNotesOptionsIcon"..i.."Texture"):SetTexture(MN_POI_ICONS_PATH.."\\Icon"..i);
end
 
-- refresh the maps
MapNotes_MapUpdate();
MapNotes_PlugInsRefresh();
 
-- reset the Options frame
MNILOptionsFrame:Hide();
MNILOptionsFrame:SetUserPlaced(false);
MNILOptionsFrame:Show();
end
 
function MNILF.WashMe()
local washedIcons = {};
local washedCount = 0;
 
-- create local index of loaded Icons for ease of use
local tIndex = {};
for _, lib in pairs(MNIL_Libs) do
for _, txture in pairs(lib.icons) do
tIndex[txture.path] = true;
end
end
 
-- prepare the way
if ( MNILSelectorFrame:IsVisible() ) then
MNILSelectorFrame:Hide();
end
if ( MapNotesDropDownList:IsVisible() ) then
MapNotes_ToggleDropDownMenu();
end
 
DEFAULT_CHAT_FRAME:AddMessage(MNIL_CLEAN, 0, 0, 1);
 
for _, map in pairs(MapNotes_Data_Notes) do
for _, note in pairs(map) do
if ( note.customIcon ) then
if ( not tIndex[note.customIcon] ) then
if ( not washedIcons[note.customIcon] ) then
washedIcons[note.customIcon] = 0;
end
washedIcons[note.customIcon] = washedIcons[note.customIcon] + 1;
note.customIcon = nil;
end
end
end
end
 
-- also need to wash customDefaults, and the Party / tloc icons....
for i, txture in pairs(MNIL_Data.customDefaults) do
if ( not tIndex[txture] ) then
if ( not washedIcons[txture] ) then
washedIcons[txture] = 0;
end
washedIcons[txture] = washedIcons[txture] + 1;
MNIL_Data.customDefaults[i] = nil;
getglobal("MN_EditIcon"..i.."Texture"):SetTexture(MN_POI_ICONS_PATH.."\\Icon"..i);
getglobal("MapNotesOptionsIcon"..i.."Texture"):SetTexture(MN_POI_ICONS_PATH.."\\Icon"..i);
end
end
 
if ( MNIL_Data.partyIcon ) then
if ( not tIndex[MNIL_Data.partyIcon] ) then
if ( not washedIcons[MNIL_Data.partyIcon] ) then
washedIcons[MNIL_Data.partyIcon] = 0;
end
washedIcons[MNIL_Data.partyIcon] = washedIcons[MNIL_Data.partyIcon] + 1;
MNIL_Data.partyIcon = nil;
MN_PARTY_ICON = nil;
MapNotesPOIpartyTexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
MNIL_OptionPartyArtWorkTexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
if ( MapNotes_MiniNote_Data.icon == "party" ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
end
end
end
 
if ( MNIL_Data.tlocIcon ) then
if ( not tIndex[MNIL_Data.tlocIcon] ) then
if ( not washedIcons[MNIL_Data.tlocIcon] ) then
washedIcons[MNIL_Data.tlocIcon] = 0;
end
washedIcons[MNIL_Data.tlocIcon] = washedIcons[MNIL_Data.tlocIcon] + 1;
MNIL_Data.tlocIcon = nil;
MN_TLOC_ICON = nil;
MapNotesPOItlocTexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
MNIL_OptiontlocArtWorkTexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
if ( MapNotes_MiniNote_Data.icon == "tloc" ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
end
end
end
 
-- report on what was cleaned
for icon, count in pairs(washedIcons) do
washedCount = washedCount + count;
DEFAULT_CHAT_FRAME:AddMessage(icon .. " : " .. count, 0, 1, 0);
end
DEFAULT_CHAT_FRAME:AddMessage(MNIL_TOTAL .. " : " .. washedCount, 0, 0, 1);
 
 
-- refresh the maps
MapNotes_MapUpdate();
MapNotes_PlugInsRefresh();
end
 
 
 
-- Function Hooks
 
function MNILF.MNILNew_MapNotes_Edit_SetIcon(icon)
local update;
 
if ( MapNotesEditFrame:IsVisible() ) then
-- Control-Click to toggle the Choose a new Icon frame
if ( ( IsControlKeyDown() ) and ( not IsAltKeyDown() ) and ( not IsShiftKeyDown() ) ) then
if ( MNILSelectorFrame:IsVisible() ) then
MNILSelectorFrame:Hide();
else
MNIL.activeSelection = getglobal("MN_EditIcon"..icon.."Texture");
MNIL.specificIcon = nil;
MNIL.defaultIcon = icon;
MNILSelectorFrame:Show();
end
 
-- Alt-Click resets the Icon to the MapNotes default
elseif ( ( IsAltKeyDown() ) and ( not IsControlKeyDown() ) and ( not IsShiftKeyDown() ) ) then
if ( MNILSelectorFrame:IsVisible() ) then
MNILSelectorFrame:Hide();
end
if ( MNIL_Data.customDefaults[icon] ) then
MNILF.PropagateDefaultIcon(icon, MNIL_Data.customDefaults[icon], nil);
MNIL_Data.customDefaults[icon] = nil;
end
getglobal("MN_EditIcon"..icon.."Texture"):SetTexture(MN_POI_ICONS_PATH.."\\Icon"..icon);
getglobal("MapNotesOptionsIcon"..icon.."Texture"):SetTexture(MN_POI_ICONS_PATH.."\\Icon"..icon);
update = true;
 
elseif ( ( MapNotes_Data_Notes[MapNotesEditFrame.k] ) and ( MapNotes_Data_Notes[MapNotesEditFrame.k][MapNotesEditFrame.index] ) ) then
MapNotes_Data_Notes[MapNotesEditFrame.k][MapNotesEditFrame.index].icon = icon;
if ( MNIL_Data.customDefaults[icon] ) then -- v1.1
MapNotes_Data_Notes[MapNotesEditFrame.k][MapNotesEditFrame.index].customIcon = MNIL_Data.customDefaults[icon]; -- v1.1
else
MapNotes_Data_Notes[MapNotesEditFrame.k][MapNotesEditFrame.index].customIcon = nil;
end -- v1.1
update = true;
end
end
 
MNILOld_MapNotes_Edit_SetIcon(icon);
MNIL_CustomIconArtWorkTexture:SetTexture("Interface\\Buttons\\ButtonHilight-SquareQuickslot");
 
if ( update ) then
local Plugin = MapNotes.pluginKeys[MapNotesEditFrame.k];
if ( Plugin ) then
MapNotes_PlugInsDrawNotes(Plugin);
else
MapNotes_MapUpdate();
end
end
end
 
function MNILF.MNILNew_MapNotes_DropDownExpandArrowOnEnter(m_id)
MNILOld_MapNotes_DropDownExpandArrowOnEnter(m_id);
for i=0, 9, 1 do
if ( MNIL_Data.customDefaults[i] ) then
getglobal("MapNotesDropDownSubMenuIcon"..i.."Texture"):SetTexture(MNIL_Data.customDefaults[i]);
else
getglobal("MapNotesDropDownSubMenuIcon"..i.."Texture"):SetTexture(MN_POI_ICONS_PATH.."\\Icon"..i);
end
end
end
 
function MNILF.MNILNew_MapNotes_DropDownToggleSubMenu(m_id)
MNILOld_MapNotes_DropDownToggleSubMenu(m_id);
for i=0, 9, 1 do
if ( MNIL_Data.customDefaults[i] ) then
getglobal("MapNotesDropDownSubMenuIcon"..i.."Texture"):SetTexture(MNIL_Data.customDefaults[i]);
else
getglobal("MapNotesDropDownSubMenuIcon"..i.."Texture"):SetTexture(MN_POI_ICONS_PATH.."\\Icon"..i);
end
end
end
 
function MNILF.MNILNew_MapNotes_WriteNote()
local noteKey = MapNotesEditFrame.k;
local plugin = MapNotes.pluginKeys[noteKey];
local noteID = MapNotes_TempData_Id;
local noteIcon = MapNotes_TempData_Icon;
local customIcon;
 
if ( MNILV.AsyncData.txture ) then
MNILV.AsyncData.writing = true;
end
 
if ( ( MapNotes_Data_Notes[noteKey] ) and ( MapNotes_Data_Notes[noteKey][noteID] ) ) then
customIcon = MapNotes_Data_Notes[noteKey][noteID].customIcon;
end
 
MNILOld_MapNotes_WriteNote();
 
if ( ( MNILV.AsyncData.txture ) and ( MapNotes_Data_Notes[noteKey] ) and ( MapNotes_Data_Notes[noteKey][noteID] ) ) then
MapNotes_Data_Notes[noteKey][noteID].customIcon = MNILV.AsyncData.txture;
if ( MNILV.AsyncData.defaultCustomIcon ) then
MapNotes_Data_Notes[noteKey][noteID].icon = MNILV.AsyncData.defaultCustomIcon;
end
if ( plugin ) then
MapNotes_PlugInsDrawNotes(plugin);
else
MapNotes_MapUpdate();
end
 
-- v1.1 POSSIBLY REMOVE THIS WHOLE CLAUSE NOW ???
elseif ( MNIL_Data.customDefaults[noteIcon] ) and ( not MapNotes_Data_Notes[noteKey][noteID].customIcon ) then -- v1.1
MapNotes_Data_Notes[noteKey][noteID].customIcon = MNIL_Data.customDefaults[noteIcon];
if ( plugin ) then
MapNotes_PlugInsDrawNotes(plugin);
else
MapNotes_MapUpdate();
end
 
elseif ( customIcon ) then
MapNotes_Data_Notes[noteKey][noteID].customIcon = customIcon;
if ( plugin ) then
MapNotes_PlugInsDrawNotes(plugin);
else
MapNotes_MapUpdate();
end
end
 
MNILV.AsyncData = {};
end
 
function MNILF.MNILNew_MapNotes_WorldMapButton_OnUpdate()
if ( ( MapNotesFU_Drawing ) or ( not MapNotes_Options.aFactor ) or ( not MNIL_Data.customDefaults ) ) then
return;
end
 
local key = MapNotes_GetMapKey();
local currentZone = MapNotes_Data_Notes[key];
 
if ( ( currentZone ) and ( MapNotes_Options.shownotes ) ) then
for i, value in ipairs(currentZone) do
if ( ( not value.customIcon ) and ( MNIL_Data.customDefaults[ value.icon ] ) ) then
value.customIcon = MNIL_Data.customDefaults[ value.icon ];
end
end
end
 
-- Carry out the Update
MNILOld_MapNotes_WorldMapButton_OnUpdate();
end
 
function MNILF.MNILNew_MapNotes_PlugInsDrawNotes(Plugin)
if ( ( MapNotes_Plugin_Updating ) or ( not Plugin ) or ( not Plugin.name ) or ( not MapNotes_Options.aFactor ) ) then
return;
end
 
local key = MapNotes_PlugInsGetKey(Plugin);
if ( ( key ) and ( MapNotes_Data_Notes[key] ) ) then
for i, value in ipairs( MapNotes_Data_Notes[key] ) do
if ( ( not value.customIcon ) and ( MNIL_Data.customDefaults[ value.icon ] ) ) then
value.customIcon = MNIL_Data.customDefaults[ value.icon ];
end
end
end
 
-- Carry out the Update
MNILOld_MapNotes_PlugInsDrawNotes(Plugin);
end
 
function MNILF.PropagateDefaultIcon(index, oldTxture, newTxture)
-- Go through the database and make sure all notes have the same Icon that meet the following criteria
-- 1.) have an Icon value of index
-- 2.) either (a.) don't have a customIcon already
-- (b.) have a customIcon equal to the old default customIcon
for _, map in pairs(MapNotes_Data_Notes) do
for _, note in ipairs(map) do
if ( note.icon == index ) then
if ( ( not note.customIcon ) or ( note.customIcon == oldTxture ) ) then
note.customIcon = newTxture;
end
end
end
end
end
 
 
 
 
 
-------------------------
-- Dialogue Boxes --
-------------------------
 
-- MapNotes Version Warning
StaticPopupDialogs["MNIL_VERSION_WARNING_BOX"] = {
text = TEXT(MNIL_VERSION_WARNING_MSG),
button1 = TEXT(OKAY),
showAlert = 1,
timeout = 0,
hideOnEscape = 1,
};
 
-- Confirm Reset
StaticPopupDialogs["MNIL_CONFIRM_RESET"] = {
text = TEXT(MNIL_RESET),
button1 = TEXT(MNIL_RESET),
button2 = TEXT(CANCEL),
OnAccept = MNILF.Reset,
showAlert = 1,
timeout = 0,
hideOnEscape = 1,
};
 
-- Confirm Clean
StaticPopupDialogs["MNIL_CONFIRM_CLEAN"] = {
text = TEXT(MNIL_CLEAN),
button1 = TEXT(MNIL_CLEAN),
button2 = TEXT(CANCEL),
OnAccept = MNILF.WashMe,
showAlert = 1,
timeout = 0,
hideOnEscape = 1,
};
 
 
 
 
 
-------------------------
-- Main Functions --
-------------------------
 
function MNIL.MNILSelectorFrame_OnLoad()
 
MNILSelectorFrame:RegisterEvent("VARIABLES_LOADED");
 
-- Set up XML Anchors for library Icons
MNIL_LibIcon1:ClearAllPoints();
MNIL_LibIcon1:SetPoint("CENTER", MNILSelectorFrame, "CENTER", -152, 26);
local i = 2;
local icon = getglobal("MNIL_LibIcon"..i);
local leftAnchor, topAnchor = MNIL_LibIcon1, MNIL_LibIcon1;
while ( icon ) do
icon:ClearAllPoints();
if ( mod(i, 10) == 1 ) then
icon:SetPoint("CENTER", topAnchor, "CENTER", 0, -32);
topAnchor = icon;
leftAnchor = icon;
else
icon:SetPoint("CENTER", leftAnchor, "CENTER", 32, 0);
leftAnchor = icon;
end
i = i + 1;
icon = getglobal("MNIL_LibIcon"..i);
end
 
-- Hook some key MapNotes functions
MNILOld_MapNotes_Edit_SetIcon = MapNotes_Edit_SetIcon;
MapNotes_Edit_SetIcon = MNILF.MNILNew_MapNotes_Edit_SetIcon;
 
MNILOld_MapNotes_WriteNote = MapNotes_WriteNote;
MapNotes_WriteNote = MNILF.MNILNew_MapNotes_WriteNote;
 
MNILOld_MapNotes_DropDownExpandArrowOnEnter = MapNotes_DropDownExpandArrowOnEnter;
MapNotes_DropDownExpandArrowOnEnter = MNILF.MNILNew_MapNotes_DropDownExpandArrowOnEnter;
 
MNILOld_MapNotes_DropDownToggleSubMenu = MapNotes_DropDownToggleSubMenu;
MapNotes_DropDownToggleSubMenu = MNILF.MNILNew_MapNotes_DropDownToggleSubMenu;
 
MNILOld_MapNotes_WorldMapButton_OnUpdate = MapNotes_WorldMapButton_OnUpdate;
MapNotes_WorldMapButton_OnUpdate = MNILF.MNILNew_MapNotes_WorldMapButton_OnUpdate;
 
MNILOld_MapNotes_PlugInsDrawNotes = MapNotes_PlugInsDrawNotes;
MapNotes_PlugInsDrawNotes = MNILF.MNILNew_MapNotes_PlugInsDrawNotes;
 
-- Slash commands
local switch, parm1;
SlashCmdList["MNIL"] = function(pList)
local gap = string.find(pList, " ");
if ( gap ) then
switch = string.sub(pList, 1, (gap - 1));
parm1 = string.sub(pList, (gap + 1));
else
switch = pList;
parm1 = nil;
end
MNILF.CmdLine(switch, parm1, pList);
end
SLASH_MNIL1 = "/mnil";
end
 
function MNIL.OnEvent()
if ( event == "VARIABLES_LOADED" ) then
 
MNILLC.loc = GetLocale();
 
-- Check Saved Variable Integrity for mandatory values
if ( not MNIL_Data.lastLib ) then
MNIL_Data.lastLib = 1;
end
if ( not MNIL_Data.lastRow ) then
MNIL_Data.lastRow = 1;
end
if ( not MNIL_Data.customDefaults ) then
MNIL_Data.customDefaults = {};
end
 
-- Load new Party/tloc Icons
if ( MNIL_Data.partyIcon ) then
MN_PARTY_ICON = MNIL_Data.partyIcon;
MapNotesPOIpartyTexture:SetTexture(MN_PARTY_ICON);
end
if ( MNIL_Data.tlocIcon ) then
MN_TLOC_ICON = MNIL_Data.tlocIcon;
MapNotesPOItlocTexture:SetTexture(MN_TLOC_ICON);
end
 
-- Load new Default Icons if any
for i = 0, 9, 1 do
if ( MNIL_Data.customDefaults[i] ) then
getglobal("MN_EditIcon"..i.."Texture"):SetTexture(MNIL_Data.customDefaults[i]);
getglobal("MapNotesOptionsIcon"..i.."Texture"):SetTexture(MNIL_Data.customDefaults[i]);
end
end
 
-- Re-position the EditFrame Icons to allow room for a Custom choice
local lastBttn = MN_EditIcon0;
local thisBttn;
for i = 1, 9, 1 do
thisBttn = getglobal("MN_EditIcon"..i);
thisBttn:ClearAllPoints();
thisBttn:SetPoint("LEFT", lastBttn, "RIGHT", 16, 0);
lastBttn = thisBttn;
end
MNIL_CustomIcon:ClearAllPoints();
MNIL_CustomIcon:SetPoint("LEFT", lastBttn, "RIGHT", 50, -1);
 
MapNotesEditFrame:SetScript("OnHide", MNIL.MNILEditFrame_OnHide);
 
MNILSelectorFrame:SetScale(0.8);
MNILOptionsFrame:SetScale(0.8);
 
-- Check the MapNotes version
if ( MAPNOTES_VERSION < "4.12.20300" ) then
StaticPopup_Show("MNIL_VERSION_WARNING_BOX");
end
 
end
end
 
function MNIL.MNIL_LibsDropDown_OnLoad()
UIDropDownMenu_Initialize(MNIL_LibsDropDown, MNILF.MNIL_LibsDropDown_Initialise);
UIDropDownMenu_SetWidth(MNIL_LibsDropDown, 180);
end
 
function MNILF.MNIL_LibsDropDown_Initialise()
for i=1, getn(MNIL_Libs), 1 do
local info = {};
info.func = MNILF.MNIL_LibsDropDown_OnClick;
info.text = MNIL_Libs[i].title;
UIDropDownMenu_AddButton(info);
end
end
 
function MNILF.MNIL_LibsDropDown_OnClick()
UIDropDownMenu_SetSelectedID(MNIL_LibsDropDown, this:GetID());
MNIL_Data.lastLib = this:GetID();
MNILSelectorFrame.selectedLib = MNIL_Libs[ MNIL_Data.lastLib ];
MNILF.MNILSelectorFrame_Refresh();
end
 
function MNIL.MNILEditFrame_OnHide()
if ( not MNILV.AsyncData.writing ) then
MNILV.AsyncData = {};
end
end
 
function MNIL.MNILSelectorFrame_OnShow()
local selectedLib;
 
if ( MNIL_Libs[ MNIL_Data.lastLib ] ) then
selectedLib = MNIL_Libs[ MNIL_Data.lastLib ];
else
selectedLib = MNIL_Libs[1];
MNIL_Data.lastLib = 1;
end
 
MNILSelectorFrame.selectedLib = selectedLib;
MNILF.MNILSelectorFrame_Refresh();
end
 
function MNIL.MNILSelectorFrame_OnHide()
MNIL.activeSelection = nil;
MNIL.specificIcon = nil;
MNIL.defaultIcon = nil;
end
 
 
 
function MNIL.Button_OnMouseDown(bttn)
if ( bttn.enabled ) then
-- Mouse down animation
local artWork = getglobal(bttn:GetName() .. "ArtWork");
artWork:ClearAllPoints();
artWork:SetPoint("CENTER", bttn, "CENTER", 2, -2);
end
end
 
function MNIL.Button_OnMouseUp(bttn, mouseBttn)
if ( bttn.enabled ) then
-- Mouse up animation
local artWork = getglobal(bttn:GetName() .. "ArtWork");
artWork:ClearAllPoints();
artWork:SetPoint("CENTER", bttn, "CENTER", 0, 0);
 
-- Don't actually process a click if the user moved the Mouse away from the button
if ( not MouseIsOver(bttn) ) then
return;
end
 
-- Default processing for Button Click
 
 
-- Button specific OnClick function
local onClickFunc = bttn.onClickFunc;
if ( ( onClickFunc ) and ( type(onClickFunc) == "function" ) ) then
onClickFunc(bttn, mouseBttn);
end
end
end
 
function MNIL.Button_OnMouseEnter(bttn)
local ttKey = bttn.tooltipKey;
 
if ( ttKey ) then
local tt = GameTooltip;
if ( ( WorldMapFrame:IsVisible() ) and ( MouseIsOver(WorldMapFrame) ) ) then
tt = WorldMapTooltip;
end
 
local x, y = GetCursorPosition();
if ( x > 500 ) then
tt:SetOwner(this, "ANCHOR_TOPRIGHT");
else
tt:SetOwner(this, "ANCHOR_TOPLEFT");
end
 
tt:ClearLines();
ttKey = ttKey.."0";
tt:AddLine(MNIL_TT[ttKey], 1, 0.7, 0);
local i = 1;
ttKey = this.tooltipKey .. i;
while ( MNIL_TT[ttKey] ) do
tt:AddLine(MNIL_TT[ttKey], 0, 1, 0);
i = i + 1;
ttKey = this.tooltipKey .. i;
end
 
if ( bttn.text ) then
tt:AddDoubleLine(MNILC.ICON, bttn.text, 0, 1, 0, 0.8, 0.1, 0.8);
end
 
tt:Show();
MapNotesEditFrame:SetFrameLevel(1);
tt:SetFrameLevel( MapNotesEditFrame:GetFrameLevel() + 3 );
end
 
if ( bttn.enabled ) then
if ( bttn.overlayHighlight ) then
getglobal(bttn:GetName() .. "ArtWorkHighlight"):Show();
elseif ( bttn.highlightedTexture ) then
MNIL.Button_SetTexture(bttn, bttn.highlightedTexture);
end
 
local text = getglobal(bttn:GetName() .. "ArtWorkText");
if ( text ) then
-- text:SetFont("Fonts\\ARIALN.TTF", MNILLC.HighlightFontSize);
text:SetTextColor(1, 0, 0);
--text:SetText( text:GetText() );
end
end
end
 
function MNIL.Button_OnMouseLeave(bttn)
if ( bttn.enabled ) then
local button = bttn:GetName();
-- Mouse up animation
local artWork = getglobal(button .. "ArtWork");
artWork:ClearAllPoints();
artWork:SetPoint("CENTER", bttn, "CENTER", 0, 0);
 
if ( bttn.overlayHighlight ) then
getglobal(button .. "ArtWorkHighlight"):Hide();
elseif ( bttn.highlightedTexture ) then
MNIL.Button_SetTexture(bttn, bttn.enabledTexture);
end
 
local text = getglobal(button .. "ArtWorkText");
if ( text ) then
-- text:SetFont("Fonts\\ARIALN.TTF", 15);
text:SetTextColor(1, 1, 0);
end
end
GameTooltip:Hide();
WorldMapTooltip:Hide();
end
 
 
 
function MNIL.Button_Disable(bttn)
bttn.enabled = false;
local text = getglobal(bttn:GetName() .. "ArtWorkText");
if ( text ) then
text:SetFont("Fonts\\ARIALN.TTF", MNILLC.DisabledFontSize);
text:SetTextColor(0.2, 0.2, 0.2);
end
if ( bttn.disabledTexture ) then
MNIL.Button_SetTexture(bttn, bttn.disabledTexture)
end
end
 
function MNIL.Button_Enable(bttn)
bttn.enabled = true;
local text = getglobal(bttn:GetName() .. "ArtWorkText");
if ( text ) then
text:SetFont("MNIL_DisabledFont", MNILLC.NormalFontSize);
text:SetTextColor(1, 0.34, 0.05);
end
if ( bttn.enabledTexture ) then
MNIL.Button_SetTexture(bttn, bttn.enabledTexture)
end
end
 
function MNIL.Button_SetText(bttn, txt)
getglobal(bttn:GetName() .. "ArtWorkText"):SetText(txt);
end
 
function MNIL.Button_SetTexture(bttn, txture)
getglobal(bttn:GetName() .. "ArtWorkTexture"):SetTexture(txture);
end
 
function MNIL.Button_GetTexture(bttn)
return getglobal(bttn:GetName() .. "ArtWorkTexture"):GetTexture();
end
 
 
 
------------------------------------------------------------------------------------------------------------------------------------------
-- Chosen an Icon - might be considered the MAIN function where icons and defaults are actually changed
-- If called from an Icon selection frame, then return and set the icon
-- If just browsing, then don't do anything
-- NOTE : Changes are effected immediately and should be reflected on the map immediately
-- The only exception being New Notes where no note details exist to update yet
function MNIL.IL_IconOnClick(bttn, mouseBttn)
if ( MNIL.activeSelection ) then
local oldTxture = MNIL.activeSelection:GetTexture();
local txture = MNIL.Button_GetTexture(bttn);
local update = true;
 
if ( oldTxture == "Interface\\AddOns\\MapNotesIconLib\\Icons\\Empty" ) then
return;
end
 
-- Store details of the selected Icon in the appropriate place
if ( MNIL.specificIcon ) then
local key, id = MapNotesEditFrame.k, MapNotesEditFrame.index;
local defaultCustomIcon;
for i=0, 9, 1 do
if ( MNIL_Data.customDefaults[i] == txture ) then
defaultCustomIcon = i;
elseif ( ( i ~= MapNotes_TempData_Icon ) and ( txture == MN_POI_ICONS_PATH.."\\Icon"..i ) ) then
defaultCustomIcon = i;
end
end
 
if ( ( MapNotes_Data_Notes[key] ) and ( MapNotes_Data_Notes[key][id] ) ) then
MapNotes_Data_Notes[key][id].customIcon = txture;
 
else
update = nil;
end
 
MNILV.AsyncData = {};
MNILV.AsyncData.txture = txture;
MNILV.AsyncData.defaultCustomIcon = defaultCustomIcon;
-- Set the texture of the target
MNIL.activeSelection:SetTexture( txture );
 
elseif ( MNIL.defaultIcon == "Party" ) then
MN_PARTY_ICON = txture;
MNIL_Data.partyIcon = MN_PARTY_ICON;
MapNotesPOIpartyTexture:SetTexture(txture);
MNIL_OptionPartyArtWorkTexture:SetTexture(txture);
if ( MapNotes_MiniNote_Data.icon == "party" ) then
MN_MiniNotePOITexture:SetTexture(MN_PARTY_ICON);
end
 
elseif ( MNIL.defaultIcon == "tloc" ) then
MN_TLOC_ICON = txture;
MNIL_Data.tlocIcon = MN_TLOC_ICON;
MapNotesPOItlocTexture:SetTexture(txture);
MNIL_OptiontlocArtWorkTexture:SetTexture(txture);
if ( MapNotes_MiniNote_Data.icon == "tloc" ) then
MN_MiniNotePOITexture:SetTexture(MN_TLOC_ICON);
end
 
elseif ( MNIL.defaultIcon ) then
local defaultCustomIcon;
for i=0, 9, 1 do
if ( MNIL_Data.customDefaults[i] == txture ) then
defaultCustomIcon = i;
elseif ( ( i ~= MapNotes_TempData_Icon ) and ( txture == MN_POI_ICONS_PATH.."\\Icon"..i ) ) then
defaultCustomIcon = i;
end
end
if ( defaultCustomIcon ) then
DEFAULT_CHAT_FRAME:AddMessage(MNIL_DEFAULT_IN_USE, 1, 0.1, 0.1);
return;
else
MNIL_Data.customDefaults[ MNIL.defaultIcon ] = txture;
getglobal("MapNotesOptionsIcon"..MNIL.defaultIcon.."Texture"):SetTexture(txture);
getglobal("MN_EditIcon"..MNIL.defaultIcon.."Texture"):SetTexture(txture);
MNIL.activeSelection:SetTexture( txture );
MNILF.PropagateDefaultIcon(MapNotes_TempData_Icon, oldTxture, txture);
end
end
 
if ( update ) then
-- refresh the maps
MapNotes_MapUpdate();
MapNotes_PlugInsRefresh();
end
 
MNILSelectorFrame:Hide();
end
end
------------------------------------------------------------------------------------------------------------------------------------------
 
 
-- %%%
-- Choosing a custom Icon for a specific note, without changing the defaults
function MNIL.MNIL_CustomIcon_OnClick(bttn, mouseBttn)
if ( ( IsAltKeyDown() ) and ( not IsControlKeyDown() ) and ( not IsShiftKeyDown() ) ) then
if ( MNILSelectorFrame:IsVisible() ) then
MNILSelectorFrame:Hide();
end
 
MNIL_CustomIconArtWorkTexture:SetTexture("Interface\\Buttons\\ButtonHilight-SquareQuickslot");
MN_IconOverlay:SetPoint("TOPLEFT", "MN_EditIcon"..MapNotes_TempData_Icon, "TOPLEFT", -3, 3);
if ( ( MapNotes_Data_Notes[MapNotesEditFrame.k] )
and ( MapNotes_Data_Notes[MapNotesEditFrame.k][MapNotesEditFrame.index] ) ) then
MapNotes_Data_Notes[MapNotesEditFrame.k][MapNotesEditFrame.index].customIcon = nil;
if ( MapNotes.pluginKeys[MapNotesEditFrame.k] ) then
MapNotes_PlugInsDrawNotes(MapNotes.pluginKeys[MapNotesEditFrame.k]);
else
MapNotes_MapUpdate();
end
end
return;
 
else
MN_IconOverlay:SetPoint("TOPLEFT", MNIL_CustomIcon, "TOPLEFT", -3, 3);
if ( MNILSelectorFrame:IsVisible() ) then
MNILSelectorFrame:Hide();
else
MNIL.activeSelection = MNIL_CustomIconArtWorkTexture;
MNIL.specificIcon = {};
MNIL.specificIcon.key = MapNotesEditFrame.k;
MNIL.specificIcon.index = MapNotesEditFrame.index;
MNIL.defaultIcon = nil;
MNILSelectorFrame:Show();
end
end
MNIL.Button_OnMouseEnter(MNIL_CustomIcon);
end
 
 
 
-- Click on Library navigation buttons for scrolling through Icons
function MNIL.IL_PrevIcons()
if ( MNIL_Data.lastRow ) then
MNIL_Data.lastRow = MNIL_Data.lastRow - 1;
MNILF.MNILSelectorFrame_RefreshButtons();
end
end
 
function MNIL.IL_NextIcons()
if ( MNIL_Data.lastRow ) then
MNIL_Data.lastRow = MNIL_Data.lastRow + 1;
MNILF.MNILSelectorFrame_RefreshButtons();
end
end
 
function MNIL.IL_OptionsOnClick()
if ( MNILOptionsFrame:IsVisible() ) then
MNIL.IL_CancelOptionsOnClick();
else
MNILOptionsFrame:Show();
end
end
 
 
function MNIL.MNIL_CustomIcon_OnShow()
local key = MapNotesEditFrame.k;
local Plugin = MapNotes.pluginKeys[key];
local currentZone = MapNotes_Data_Notes[key];
local id = MapNotes_TempData_Id;
 
currentZone = MapNotes_Data_Notes[key];
 
MapNotesEditFrame.index = id;
 
MNIL_CustomIconArtWorkTexture:SetTexture("Interface\\Buttons\\ButtonHilight-SquareQuickslot");
if ( ( currentZone ) and ( id ) and ( currentZone[id] ) and ( currentZone[id].customIcon ) ) then
local defaultCustomIcon;
for i=0, 9, 1 do
if ( MNIL_Data.customDefaults[i] == currentZone[id].customIcon ) then
defaultCustomIcon = i;
end
end
if ( defaultCustomIcon ) then
MN_IconOverlay:SetPoint("TOPLEFT", "MN_EditIcon"..defaultCustomIcon, "TOPLEFT", -3, 3);
 
else
MN_IconOverlay:SetPoint("TOPLEFT", MNIL_CustomIcon, "TOPLEFT", -3, 3);
MNIL_CustomIconArtWorkTexture:SetTexture(currentZone[id].customIcon);
end
end
end
 
function MNIL.MNIL_CustomIcon_OnHide()
if ( MNIL.specificIcon ) or ( ( MNIL.defaultIcon ) and ( type(MNIL.defaultIcon) == "number" ) ) then
MNILSelectorFrame:Hide();
end
end
 
function MNIL.IL_CancelSelectorOnClick()
MNILSelectorFrame:Hide();
end
 
 
------------------------------------------------
-- OPTIONS FRAME FUNCTIONS --
------------------------------------------------
 
function MNIL.PartyIcon_OnClick(bttn, mouseBttn)
if ( MNILSelectorFrame:IsVisible() ) then
MNILSelectorFrame:Hide();
 
elseif ( ( IsAltKeyDown() ) and ( not IsControlKeyDown() ) and ( not IsShiftKeyDown() ) ) then
MNIL.activeSelection = nil;
MNIL.specificIcon = nil;
MNIL.defaultIcon = nil;
MNIL_Data.partyIcon = nil;
MN_PARTY_ICON = nil;
MapNotesPOIpartyTexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
MNIL_OptionPartyArtWorkTexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
if ( MapNotes_MiniNote_Data.icon == "party" ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
end
MapNotes_MapUpdate();
 
else
MNIL.activeSelection = bttn;
MNIL.specificIcon = nil;
MNIL.defaultIcon = "Party";
MNILSelectorFrame:Show();
end
end
 
function MNIL.tlocIcon_OnClick(bttn, mouseBttn)
if ( MNILSelectorFrame:IsVisible() ) then
MNILSelectorFrame:Hide();
 
elseif ( ( IsAltKeyDown() ) and ( not IsControlKeyDown() ) and ( not IsShiftKeyDown() ) ) then
MNIL.activeSelection = nil;
MNIL.specificIcon = nil;
MNIL.defaultIcon = nil;
MNIL_Data.tlocIcon = nil;
MN_TLOC_ICON = nil;
MapNotesPOItlocTexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
MNIL_OptiontlocArtWorkTexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
if ( MapNotes_MiniNote_Data.icon == "tloc" ) then
MN_MiniNotePOITexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
end
MapNotes_MapUpdate();
 
else
MNIL.activeSelection = bttn;
MNIL.specificIcon = nil;
MNIL.defaultIcon = "tloc";
MNILSelectorFrame:Show();
end
end
 
function MNIL.PartyIcon_OnShow()
if ( MNIL_Data.partyIcon ) then
MapNotesPOIpartyTexture:SetTexture(MNIL_Data.partyIcon);
MNIL_OptionPartyArtWorkTexture:SetTexture(MNIL_Data.partyIcon);
else
MapNotesPOIpartyTexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
MNIL_OptionPartyArtWorkTexture:SetTexture(MN_POI_ICONS_PATH.."\\Iconparty");
end
end
 
function MNIL.tlocIcon_OnShow()
if ( MNIL_Data.tlocIcon ) then
MapNotesPOItlocTexture:SetTexture(MNIL_Data.tlocIcon);
MNIL_OptiontlocArtWorkTexture:SetTexture(MNIL_Data.tlocIcon);
else
MapNotesPOItlocTexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
MNIL_OptiontlocArtWorkTexture:SetTexture(MN_POI_ICONS_PATH.."\\Icontloc");
end
end
 
function MNIL.IL_CancelOptionsOnClick()
if ( ( MNIL.defaultIcon ) and ( type(MNIL.defaultIcon) == "string" ) ) then
MNILSelectorFrame:Hide();
end
MNILOptionsFrame:Hide();
end
 
function MNIL.IL_BrowseOnClick()
if ( MNIL.activeSelection ) then
return;
 
elseif ( MNILSelectorFrame:IsVisible() ) then
MNILSelectorFrame:Hide();
 
else
MNIL.activeSelection = nil;
MNIL.specificIcon = nil;
MNIL.defaultIcon = nil;
MNILSelectorFrame:Show();
end
end
 
function MNIL.ResetOnClick()
StaticPopup_Show("MNIL_CONFIRM_RESET");
end
 
function MNIL.CleanOnClick()
StaticPopup_Show("MNIL_CONFIRM_CLEAN");
end
 
 
 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
--------------------------------------------------------------------
-- Function for other Plugins to register their Icons --
--------------------------------------------------------------------
 
function MNIL_RegisterLibrary(newLib)
for _, lib in pairs(newLib) do
table.insert(MNIL_Libs, lib);
end
end
 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
MapNotesIconLib/MapNotesIconLib.en.lua New file
0,0 → 1,48
 
MNIL_VERSIONTXT = "Version";
 
MNIL_LIBSLOADED = "Libraries Loaded : ";
MNIL_LIB = "Library : ";
MNIL_LTITLE = "Title : ";
MNIL_LAUTHOR = "Author : ";
MNIL_LDATE = "Date : ";
MNIL_LINFO = "Notes : ";
MNIL_LICONS = "Icons : ";
 
MNIL_PARTYICON = "Party Note";
MNIL_TLOCICON = "tloc Note";
 
MNIL_BROWSE = "Browse";
MNIL_RESET = "Reset";
MNIL_CLEAN = "Clean";
MNIL_TOTAL = "Total : ";
MNIL_OPTIONS = "Options";
MNIL_OTITLE = "MapNotes Icon Library " .. MNIL_OPTIONS;
 
MNIL_DEFAULT_IN_USE = "--- TEXTURE ALREADY IN USE BY ANOTHER DEFAULT ---";
MNIL_VERSION_WARNING_MSG = "Please Upgrade to MapNotes (Fan's Update) v4.12.20300 or later.\nMapNotesIconLibrary is NOT guaranteed to work with earlier versions.";
 
MNILC = {
ICON = "Icon",
ICONS = MNIL_LICONS;
};
 
MNIL_TT = {
["IL_ICONTOOLTIP0"] = "Choose a new Icon",
["IL_ICONTOOLTIP1"] = " Click to choose a new Icon from the",
["IL_ICONTOOLTIP2"] = " currently selected Icon Library.",
["NV_PREVTOOLTIP0"] = "Previous...",
["NV_NEXTTOOLTIP0"] = "More...",
["MN_ICONTOOLTIP0"] = "Original MapNotes Defaults",
["MN_ICONTOOLTIP1"] = " Click to reset to MapNotes Default",
["NV_OPTIONSTOOLTIP0"] = MNIL_OPTIONS,
["GN_OPTIONSBROWSE0"] = "Browse Library Icons",
["GN_OPTIONSRESET0"] = "Remove ALL Custom Icons",
["GN_OPTIONSPARTY0"] = "Choose a new Group / Party Icon",
["GN_OPTIONSTLOC0"] = "Choose a new tloc Icon",
["IL_CUSTOMICONTOOLTIP0"] = "Choose an Icon",
["IL_CUSTOMICONTOOLTIP1"] = " Select a unique Icon for this",
["IL_CUSTOMICONTOOLTIP2"] = " particular MapNote",
["IL_CLEANTOOLTIP0"] = "Clean MapNotes Data",
["IL_CLEANTOOLTIP1"] = "Delete Custom Icons where the Library\n to which they belong is not loaded",
};
MapNotesIconLib/MapNotesIconLib.toc New file
0,0 → 1,11
## Interface: 30000
## Title: MapNotesIconLib |c0000FF00(v1.04.30000)|r
## Author: Telic
## Version: 1.04.30000
## Notes: Provides a much larger selection of Icons for use with MapNotes (Fan's Update). Plus a framework for adding further Icon Libraries
## eMail: telic@hotmail.co.uk
## RequiredDeps: MapNotes
## DefaultState: Enabled
## LoadOnDemand: 0
## SavedVariables: MNIL_Data
MapNotesIconLib.xml
MapNotesIconLib/MapNotesIconLib_Library.lua New file
0,0 → 1,94
 
MNIL_Libs = {
[1] = {
["title"] = "MapNotesIconLibrary",
["author"] = "Telic",
["date"] = "20071218",
["info"] = {
["enGB"] = "Base Library including a variety of Icons\nincluding many of Blizzard's own",
},
["icons"] = {
{ ["path"] = "Interface\\AddOns\\MapNotes\\POIIcons\\Icon0", },
{ ["path"] = "Interface\\AddOns\\MapNotes\\POIIcons\\Icon1", },
{ ["path"] = "Interface\\AddOns\\MapNotes\\POIIcons\\Icon2", },
{ ["path"] = "Interface\\AddOns\\MapNotes\\POIIcons\\Icon3", },
{ ["path"] = "Interface\\AddOns\\MapNotes\\POIIcons\\Icon4", },
{ ["path"] = "Interface\\AddOns\\MapNotes\\POIIcons\\Icon5", },
{ ["path"] = "Interface\\AddOns\\MapNotes\\POIIcons\\Icon6", },
{ ["path"] = "Interface\\AddOns\\MapNotes\\POIIcons\\Icon7", },
{ ["path"] = "Interface\\AddOns\\MapNotes\\POIIcons\\Icon8", },
{ ["path"] = "Interface\\AddOns\\MapNotes\\POIIcons\\Icon9", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\Mail", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\MagGlass", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\Repair", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\Herb", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\Pick", },
{ ["path"] = "Interface\\Buttons\\UI-GuildButton-PublicNote-Up", },
{ ["path"] = "Interface\\Buttons\\UI-GuildButton-PublicNote-Disabled", },
{ ["path"] = "Interface\\Buttons\\UI-GuildButton-OfficerNote-Up", },
{ ["path"] = "Interface\\Buttons\\UI-GuildButton-OfficerNote-Disabled", },
{ ["path"] = "Interface\\Buttons\\UI-GroupLoot-Pass-Up", },
{ ["path"] = "Interface\\Buttons\\UI-GuildButton-MOTD-Up", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\PvPAlliance", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\PvPHorde", },
{ ["path"] = "Interface\\CharacterFrame\\UI-Player-PlayTimeTired", },
{ ["path"] = "Interface\\CharacterFrame\\UI-Player-PlayTimeUnhealthy", },
{ ["path"] = "Interface\\GLUES\\Login\\Glues-CheckBox-Check", },
{ ["path"] = "Interface\\GossipFrame\\ActiveQuestIcon", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\ActiveQuestIconRed", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\ActiveQuestIconBlue", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\ActiveQuestIconGreen", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\ActiveQuestIconCyan", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\ActiveQuestIconPurple", },
{ ["path"] = "Interface\\GossipFrame\\AvailableQuestIcon", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\AvailableQuestIconRed", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\AvailableQuestIconBlue", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\AvailableQuestIconGreen", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\AvailableQuestIconCyan", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\AvailableQuestIconPurple", },
{ ["path"] = "Interface\\GossipFrame\\BankerGossipIcon", },
{ ["path"] = "Interface\\GossipFrame\\BattleMasterGossipIcon", },
{ ["path"] = "Interface\\GossipFrame\\HealerGossipIcon", },
{ ["path"] = "Interface\\GossipFrame\\GossipGossipIcon", },
{ ["path"] = "Interface\\GossipFrame\\PetitionGossipIcon", },
{ ["path"] = "Interface\\GossipFrame\\TabardGossipIcon", },
{ ["path"] = "Interface\\GossipFrame\\TaxiGossipIcon", },
{ ["path"] = "Interface\\GossipFrame\\TrainerGossipIcon", },
{ ["path"] = "Interface\\GossipFrame\\VendorGossipIcon", },
{ ["path"] = "Interface\\GroupFrame\\UI-Group-LeaderIcon", },
{ ["path"] = "Interface\\GroupFrame\\UI-Group-MasterLooter", },
{ ["path"] = "Interface\\LootFrame\\LootPanel-Icon", },
{ ["path"] = "Interface\\MINIMAP\\UI-Minimap-ZoomInButton-Up", },
{ ["path"] = "Interface\\MINIMAP\\UI-Minimap-ZoomOutButton-Down", },
{ ["path"] = "Interface\\PVPFrame\\PVP-ArenaPoints-Icon", },
{ ["path"] = "Interface\\PvPRankBadges\\PvPRankAlliance", },
{ ["path"] = "Interface\\PvPRankBadges\\PvPRankHorde", },
{ ["path"] = "Interface\\TAXIFRAME\\UI-Taxi-Icon-Green", },
{ ["path"] = "Interface\\TAXIFRAME\\UI-Taxi-Icon-Red", },
{ ["path"] = "Interface\\TargetingFrame\\UI-TargetingFrame-Seal", },
{ ["path"] = "Interface\\TargetingFrame\\UI-TargetingFrame-Sheep", },
{ ["path"] = "Interface\\TargetingFrame\\UI-TargetingFrame-Skull", },
{ ["path"] = "Interface\\WorldStateFrame\\AllianceFlag", },
{ ["path"] = "Interface\\WorldStateFrame\\HordeFlag", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\AllianceTower", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\HordeTower", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\NeutralTower", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\DialogAlertIcon", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\ButtonBlue", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\ButtonGreen", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\ButtonRed", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\ButtonYellow", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidBlueSquared", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidCrescentMoon", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidGreenTriangle", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidOrangeCircle", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidPurpleDiamond", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidRedCross", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidSkull", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\RaidYellowStarDiamond", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\UI-PVP-FFA", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Blizzard\\MiniMap-TrackingBorder", },
{ ["path"] = "Interface\\WorldMap\\WorldMap-Icon", },
},
},
};
MapNotesIconLib/Icons/Empty.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/NeutralTower.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/ButtonGreen.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/RaidOrangeCircle.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/RaidCrescentMoon.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/RaidYellowStarDiamond.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/AvailableQuestIconRed.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/ButtonYellow.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/UI-PVP-FFA.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/RaidBlueSquared.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/ActiveQuestIconBlue.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/HordeTower.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/AvailableQuestIconBlue.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/RaidRedCross.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/Pick.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/RaidGreenTriangle.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/PvPHorde.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/RaidSkull.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/AvailableQuestIconGreen.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/MagGlass.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/PvPAlliance.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/ActiveQuestIconPurple.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/DialogAlertIcon.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/ActiveQuestIconRed.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/AvailableQuestIconPurple.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/RaidPurpleDiamond.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/ButtonRed.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/Herb.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/ActiveQuestIconCyan.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/Mail.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/Repair.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/ButtonBlue.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/AvailableQuestIconCyan.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/ActiveQuestIconGreen.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/MiniMap-TrackingBorder.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Icons/Blizzard/AllianceTower.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/README.txt New file
0,0 → 1,146
 
MapNotesIconLib
_______________
 
Provides a much larger set of Icons to use for MapNotes (Fan's Update).
 
MapNotesIconLib comes with 76 new core icons, mainly sourced from the Game itself.
 
Packaged with the library are 3 other Plugin libraries :
Fancy - some fancy icons modified from source graphics at from http://www.freebuttons.com
Numbered - a variety of numbered icons (again, some modified versions of http://www.freebuttons.com)
Neptunia - the Icons originally donated by Neptunia
 
With MapNotesIconLib installed, Icon choices are applied immediately when selected without having to save the Note.
 
 
 
Getting Started
_______________
 
Open up a Note Edit Frame via MapNotes menus, or <Ctrl><Alt>-Right clicking on a MapNote.
 
There is a new empty blue highlighted button to the right of the normal MapNote Icons.
Click on this square to open up the Icon Library Browser frame and choose a new Icon for this MapNote :)
<Alt>-Click on this square to delete the custom Icon choice, and MapNotes will revert to using the default Icon it was using originally.
 
The change will take effect immediately without having to save the note.
 
 
 
Advanced Use
____________
 
1.) You can change the original 10 default icons used by MapNotes
 
Open up a Note Edit Frame via MapNotes menus, or <Ctrl><Alt>-Right clicking on a MapNote.
<Ctrl>-Click on any of the default MapNote Icons to open up the Icon Library Browser frame and choose a new default icon :)
<Alt>-Click on any of the default MapNote Icons to reset it to the original MapNotes version.
 
The changes will take effect immediately, and will propagate thoughout the database and change all MapNotes that were using that default Icon.
 
 
2.) The Icon Library Options frame
 
Use the "/mnil" slash command to open the Icon Library Options frame
From the Options frame you can :
 
a.) Change the default Party / tloc Icons by clicking on them and choosing new ones from the Icon Library Browser frame
b.) Simply open the Icon Library Broswer frame just to look through the Icons available
c.) Reset ALL MapNotes to use the original MapNotes defaults, and remove ALL customised Icons
d.) This Option will "clean" the MapNotes database, by removing any references to icons that you no longer explicitly load.
[See Special Note for more details]
e.) Cancel and close the Options frame
 
NOTE that to "Reset" or "Clean" the Icons requires clicking Okay in a Confirmation dialogue box.
So if you don't see the confirmation box, then close the World Map and move frames around until it is visible ;)
 
 
 
Special Note on Database Cleaning
_________________________________
 
If you use icons from a certain library, but don't load that particular library - those Icons will still be displayed in game if the directory paths still exist.
In order to completely remove traces of library icons that you don't want to see, you should NOT load the library, and then manually use the "Clean" option, and/or physically remove the AddOn library from the AddOns folder.
The results of the "cleaning" will be reported in the chat frame, detailing the names of the textures that have been cleaned and the total number.
 
I have made the conscious decision not to automatically clean Icon data when a specific library is not loaded for a couple of reasons :
a.) it is more forgiving to people who don't load a library by mistake. Auto-cleaning would mean that people would have to manually select all the icons again when they logged in again with that library.
But with this set up, then the Icons will be remembered even when a library isn't loaded - unless you manually choose to clean the data.
b.) it also allows the user to specify special icons for very rare MapNotes, and then save memory by not loading the icon library.
i.e. the rare icon they selected will still show, but they won't be loading all the other Icon graphics.
 
 
 
How To Publish a Plugin Library of Icons
________________________________________
 
I'm not gonna describe the general process of AddOn publication, so you'll need some knowledge about how to make AddOns ;p
 
Basically you need to do 3 things :
1.) Provide the Icons as .tga or .blp
2.) Define a data array describing the library, and the paths to the Icons (See the _Fancy / _Neptunia / _Numbered libraries for examples)
3.) After the "VARIABLES_LOADED" event, register your library of Icons with MapNotesIconLib by calling the following function :
 
MNIL_RegisterLibrary(newLib);
 
... where newLib is the data array you have used to define your library in step 2 above.
 
Obviously, the best place to start is by looking at the other examples, so just look at how MapNotesIconLib_Fancy, etc. have been designed to load.
 
The Icons in the browser frame can be formatted, and blanks inserted by using the special Texture :
"Interface\\AddOns\\MapNotesIconLib\\Icons\\Empty"
See the _Fancy icon library for an example of how this is used to include a "blank" icon as a spacer between other ones :)
 
 
 
__________
 
Change Log
__________
 
Changes in v1.04.30000 from v1.03.30000
---------------------------------------
 
- fix to FrameXML.log font error
 
- fix to MapNotes plugin custom icon selection
 
 
 
 
 
Changes in v1.03.30000 from v1.02.30000
---------------------------------------
 
- small fix to allow selection of original default icons after having selected a custom icon
 
 
 
Changes in v1.02.30000 from v1.01.20400
---------------------------------------
 
- update for toc 3 and WotLK
 
- fix to prevent single error message for new installation
 
 
 
Changes in v1.01.20400 from v1.01.20300
---------------------------------------
 
- toc update
 
 
 
Changes in v1.01.20300 from v1.00.20300
---------------------------------------
 
- Added 5 NEW Icons to the base library for :
Mail, Herbalist, RepairNPC, MiningTrainer, Magnifying Glass
 
- Saving a note with a pre-existing custom icon selection, will no longer reset when using customised defaults
 
- choosing a default Icon that you have customised will now be applied immediatly without having to save the note
(As per the other functionality provided by this AddOn)
 
MapNotesIconLib/Graphics/Up.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Graphics/Down.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Graphics/MNIL_BG.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Graphics/GenLitRaw.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Graphics/UpDisabled.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Graphics/UpLit.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Graphics/DownDisabled.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Graphics/DownLit.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Graphics/GenDisabled.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
MapNotesIconLib/Graphics/MapNotesIconLib_Options.blp Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib/Graphics/GenRaw.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/MapNotesIconLib_Fancy.lua New file
0,0 → 1,66
 
-- Data that we need to register with MapNotesIconLib
local MapNotesIconLib_Fancy_Icons = {
[1] = {
["title"] = "Fancy Icons",
["author"] = "Telic",
["date"] = "20071227",
["info"] = {
["enGB"] = "Some fancy Icons courtesy of\nhttp://www.freebuttons.com",
},
["icons"] = {
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Hublo00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Hublo01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Hublo02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Hublo03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Hublo04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Hublo05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Hublo06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Hublo07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Hublo08", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Empty", }, -- use to pad the display of Icons with an empty space
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Alien00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Alien01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Alien02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Alien03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Alien04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Alien05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Alien06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Alien07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Alien08", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Empty", }, -- use to pad the display of Icons with an empty space
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Cosmic00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Cosmic01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Cosmic02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Cosmic03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Cosmic04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Cosmic05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Cosmic06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Cosmic07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Cosmic08", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib\\Icons\\Empty", }, -- use to pad the display of Icons with an empty space
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Mechano00", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Mechano01", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Mechano02", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Mechano03", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Mechano04", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Mechano05", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Mechano06", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Mechano07", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Fancy\\Icons\\Fancy\\Mechano08", },
 
},
},
};
 
 
 
local MNIL_Fancy_Frame = CreateFrame("Frame");
 
local function MNIL_Fancy_OnEvent()
MNIL_RegisterLibrary(MapNotesIconLib_Fancy_Icons); -- The function needed to register the above data with MapNotesIconLib
end
 
MNIL_Fancy_Frame:RegisterEvent("VARIABLES_LOADED");
MNIL_Fancy_Frame:SetScript("OnEvent", MNIL_Fancy_OnEvent);
 
MapNotesIconLib_Fancy/MapNotesIconLib_Fancy.toc New file
0,0 → 1,5
## Interface: 30000
## Title: MapNotesIconLib_Fancy
## Notes: A Variety of Numbered Icons for MapNotesIconLib
## Dependencies: MapNotesIconLib
MapNotesIconLib_Fancy.lua
MapNotesIconLib_Fancy/Icons/Fancy/Alien00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Alien01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Alien02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Alien03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Alien04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Alien05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Alien06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Alien07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Alien08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Hublo00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Mechano00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Hublo01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Mechano01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Hublo02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Hublo03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Mechano02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Cosmic00.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Hublo04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Mechano03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Cosmic01.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Hublo05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Mechano04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Mechano05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Cosmic02.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Hublo06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Mechano06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Cosmic03.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Hublo07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Cosmic04.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Hublo08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Mechano07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Cosmic05.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Mechano08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Cosmic06.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Cosmic07.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Fancy/Icons/Fancy/Cosmic08.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Neptunia/MapNotesIconLib_Neptunia.toc New file
0,0 → 1,5
## Interface: 30000
## Title: MapNotesIconLib_Neptunia
## Notes: Plugin of Neptunia's Icons for MapNotesIconLib
## Dependencies: MapNotesIconLib
MapNotesIconLib_Neptunia.lua
MapNotesIconLib_Neptunia/MapNotesIconLib_Neptunia.lua New file
0,0 → 1,36
 
-- Data that we need to register with MapNotesIconLib
local MapNotesIconLib_Neptunia_Icons = {
[1] = {
["title"] = "Neptunia's Icons",
["author"] = "Neptunia",
["date"] = "20070101",
["info"] = {
["enGB"] = "Custom Library Icons donated by Neptunia",
},
["icons"] = {
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Neptunia\\Icons\\Neptunia\\icon0", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Neptunia\\Icons\\Neptunia\\icon1", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Neptunia\\Icons\\Neptunia\\icon2", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Neptunia\\Icons\\Neptunia\\icon3", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Neptunia\\Icons\\Neptunia\\icon4", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Neptunia\\Icons\\Neptunia\\icon5", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Neptunia\\Icons\\Neptunia\\icon6", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Neptunia\\Icons\\Neptunia\\icon7", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Neptunia\\Icons\\Neptunia\\icon8", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Neptunia\\Icons\\Neptunia\\icon9", },
},
},
};
 
 
 
local MNIL_Neptunia_Frame = CreateFrame("Frame");
 
local function MNIL_Neptunia_OnEvent()
MNIL_RegisterLibrary(MapNotesIconLib_Neptunia_Icons); -- The function needed to register the above data with MapNotesIconLib
end
 
MNIL_Neptunia_Frame:RegisterEvent("VARIABLES_LOADED");
MNIL_Neptunia_Frame:SetScript("OnEvent", MNIL_Neptunia_OnEvent);
 
MapNotesIconLib_Neptunia/Icons/Neptunia/Icon0.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Neptunia/Icons/Neptunia/Icon1.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Neptunia/Icons/Neptunia/Icon2.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Neptunia/Icons/Neptunia/Icon3.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Neptunia/Icons/Neptunia/Icon4.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Neptunia/Icons/Neptunia/Icon5.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Neptunia/Icons/Neptunia/Icon6.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Neptunia/Icons/Neptunia/Icon7.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Neptunia/Icons/Neptunia/Icon8.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Neptunia/Icons/Neptunia/Icon9.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesBrowser/Graphics/PointyPointy.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesBrowser/Graphics/ScrollMark.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesBrowser/Localisation.en.lua New file
0,0 → 1,5
 
MNB_NAME = "MapNotes Browser";
 
MNB_ALLMAPS = "All Maps";
MNB_SEARCH = "Search";
MapNotesBrowser/Localisation.fr.lua New file
0,0 → 1,5
 
MNB_NAME = "MapNotes Chercher";
 
MNB_ALLMAPS = "Toutes les Cartes";
MNB_SEARCH = "Chercher";
MapNotesBrowser/Localisation.de.lua New file
0,0 → 1,5
 
MNB_NAME = "MapNotes Suche";
 
MNB_ALLMAPS = "Alle Karten";
MNB_SEARCH = "Suche";
MapNotesBrowser/MapNotesBrowser.xml New file
0,0 → 1,489
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/">
 
<Script file="Localisation.en.lua"/>
<Script file="MapNotesBrowser.lua"/>
 
<!-- TEMPLATE FOR SCROLL LIST BUTTONS -->
<Button name="MNB_ScrollButtonTemplate" virtual="true">
<Size>
<AbsDimension x="300" y="16"/>
</Size>
<Frames>
<Frame name="$parentNote" setAllPoints="true">
<Layers>
<Layer level="ARTWORK">
<Texture name="$parentMininote" file="Interface\Buttons\UI-CheckBox-Check">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="4" y="-1"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
<Texture name="$parentIcon" file="Interface\Addons\NotesUNeed\Artwork\tAlliance">
<Size>
<AbsDimension x="12" y="12"/>
</Size>
<Anchors>
<Anchor point="RIGHT">
<Offset>
<AbsDimension x="-12" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
<Texture name="$parentPointy" file="Interface\AddOns\MapNotesBrowser\Graphics\ScrollMark">
<Size>
<AbsDimension x="16" y="16"/>
</Size>
<Anchors>
<Anchor point="RIGHT">
<Offset>
<AbsDimension x="-26" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
<FontString name="$parentZone" inherits="GameFontNormal" text="Zone" hidden="true" justifyH="LEFT">
<Size>
<AbsDimension x="252" y="12"/>
</Size>
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="12" y="0"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="$parentName" inherits="GameFontNormal" text="Wibble" justifyH="LEFT">
<Size>
<AbsDimension x="252" y="12"/>
</Size>
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="32" y="0"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
</Frame>
</Frames>
<Scripts>
<OnLoad>
self:RegisterForClicks("LeftButtonDown", "RightButtonDown");
</OnLoad>
<OnClick>
MNB.ScrollButton_OnClick(self, arg1);
</OnClick>
<OnEnter>
MNB.ScrollButton_OnEnter(self);
</OnEnter>
<OnLeave>
if ( not MNB_PointyPointy.fixed ) then
MNB_PointyPointy:Hide();
end
GameTooltip:Hide();
WorldMapTooltip:Hide();
</OnLeave>
</Scripts>
<HighlightTexture file="Interface\QuestFrame\UI-QuestTitleHighlight" alphaMode="ADD"/>
</Button>
 
<!-- MAIN BROWSER FRAME -->
<Frame name="MNB_Browser" hidden="true" toplevel="true" enableMouse="true" movable="true" parent="WorldMapButton">
<Size>
<AbsDimension x="354" y="406"/>
</Size>
<Anchors>
<Anchor point="RIGHT">
<Offset>
<AbsDimension x="-80" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="MNB_Title" inherits="GameFontGreenLarge" text="MNB_NAME">
<Anchors>
<Anchor point="TOP" relativeTo="MNB_Browser">
<Offset><AbsDimension x="0" y="-12"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="MNB_ZoneName" inherits="GameFontNormal" text="Zone Info">
<Anchors>
<Anchor point="TOP" relativeTo="MNB_Title" relativePoint="BOTTOM">
<Offset><AbsDimension x="0" y="-10"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Frames>
<Button name="MNB_BrowserCloseButton" inherits="UIPanelCloseButton">
<Anchors>
<Anchor point="TOPRIGHT">
<Offset>
<AbsDimension x="4" y="4"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Frame name="MNB_FilterBorder">
<Size>
<AbsDimension x="230" y="24"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="16" y="-64"/>
</Offset>
</Anchor>
</Anchors>
<Backdrop bgFile="Interface\TutorialFrame\TutorialFrameBackground" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="0" right="0" top="0" bottom="0"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="12"/>
</TileSize>
<EdgeSize>
<AbsValue val="12"/>
</EdgeSize>
</Backdrop>
</Frame>
<Button name="MNB_MarkerButton" hidden="true">
<Size>
<AbsDimension x="24" y="24"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="20" y="-20"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<Texture name="$parentArrow" file="Interface\AddOns\MapNotesBrowser\Graphics\ScrollMark"/>
</Layer>
</Layers>
<Scripts>
<OnLoad>
self:RegisterForClicks("LeftButtonUp", "RightButtonUp");
</OnLoad>
<OnClick>
MNB.Marker_OnClick(self, arg1);
</OnClick>
<OnEnter>
MN_NoteOnEnter(self);
</OnEnter>
<OnLeave>
GameTooltip:Hide();
WorldMapTooltip:Hide();
</OnLeave>
</Scripts>
<HighlightTexture file="Interface\QuestFrame\UI-QuestTitleHighlight" alphaMode="ADD"/>
</Button>
<EditBox name="MNB_FilterEditBox" autofocus="false" letters="64">
<Size>
<AbsDimension x="216" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="22" y="-59"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnEnterPressed>
<!-- Allow global searches on Enter pressed -->
MNB.PopulateScroll(MNB_Browser.Plugin);
</OnEnterPressed>
<OnTextChanged>
<!-- Do NOT carry out global searches on every text changed event - too processor intensive -->
if ( MNB.mode ~= "searching" ) then
MNB.PopulateScroll(MNB_Browser.Plugin);
end
</OnTextChanged>
<OnEscapePressed>
MNB_Browser:Hide();
</OnEscapePressed>
</Scripts>
<FontString inherits="ChatFontNormal"/>
</EditBox>
<Button name="MNB_SearchButton" inherits="UIPanelButtonTemplate" text="MNB_ALLMAPS">
<Size>
<AbsDimension x="90" y="26"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="MNB_FilterEditBox" relativePoint="RIGHT">
<Offset>
<AbsDimension x="10" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
self:RegisterForClicks("LeftButtonUp", "RightButtonUp");
</OnLoad>
<OnClick>
MNB.Search_OnClick(self, arg1);
</OnClick>
</Scripts>
</Button>
<Frame name="MNB_ScrollBorder">
<Size>
<AbsDimension x="322" y="296"/>
</Size>
<Anchors>
<Anchor point="BOTTOMLEFT" relativeTo="MNB_Browser">
<Offset>
<AbsDimension x="16" y="12"/>
</Offset>
</Anchor>
</Anchors>
<Backdrop bgFile="Interface\TutorialFrame\TutorialFrameBackground" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="0" right="0" top="0" bottom="0"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="12"/>
</TileSize>
<EdgeSize>
<AbsValue val="12"/>
</EdgeSize>
</Backdrop>
</Frame>
<ScrollFrame name="MNB_BrowserScroll" inherits="FauxScrollFrameTemplate">
<Size>
<AbsDimension x="296" y="288"/>
</Size>
<Anchors>
<Anchor point="BOTTOMLEFT" relativeTo="MNB_Browser">
<Offset>
<AbsDimension x="16" y="14"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnVerticalScroll>
FauxScrollFrame_OnVerticalScroll(self, offset, 16, MNB.Refresh);
</OnVerticalScroll>
</Scripts>
</ScrollFrame>
<Button name="MNB_Scroll1" inherits="MNB_ScrollButtonTemplate" id="1">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_BrowserScroll">
<Offset>
<AbsDimension x="2" y="-6"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll2" inherits="MNB_ScrollButtonTemplate" id="2">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll1" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll3" inherits="MNB_ScrollButtonTemplate" id="3">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll2" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll4" inherits="MNB_ScrollButtonTemplate" id="4">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll3" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll5" inherits="MNB_ScrollButtonTemplate" id="5">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll4" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll6" inherits="MNB_ScrollButtonTemplate" id="6">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll5" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll7" inherits="MNB_ScrollButtonTemplate" id="7">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll6" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll8" inherits="MNB_ScrollButtonTemplate" id="8">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll7" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll9" inherits="MNB_ScrollButtonTemplate" id="9">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll8" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll10" inherits="MNB_ScrollButtonTemplate" id="10">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll9" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll11" inherits="MNB_ScrollButtonTemplate" id="11">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll10" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll12" inherits="MNB_ScrollButtonTemplate" id="12">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll11" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll13" inherits="MNB_ScrollButtonTemplate" id="13">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll12" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll14" inherits="MNB_ScrollButtonTemplate" id="14">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll13" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll15" inherits="MNB_ScrollButtonTemplate" id="15">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll14" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll16" inherits="MNB_ScrollButtonTemplate" id="16">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll15" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll17" inherits="MNB_ScrollButtonTemplate" id="17">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll16" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="MNB_Scroll18" inherits="MNB_ScrollButtonTemplate" id="18">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MNB_Scroll17" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</Button>
</Frames>
<Scripts>
<OnShow>
MapNotes_NormaliseScale(self);
</OnShow>
<OnMouseDown>
if ( arg1 == "LeftButton" ) then
self:StartMoving();
end
</OnMouseDown>
<OnMouseUp>
if ( arg1 == "LeftButton" ) then
self:StopMovingOrSizing();
end
</OnMouseUp>
</Scripts>
<Backdrop bgFile="Interface\TutorialFrame\TutorialFrameBackground" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="0" right="0" top="0" bottom="0"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="12"/>
</TileSize>
<EdgeSize>
<AbsValue val="12"/>
</EdgeSize>
</Backdrop>
</Frame>
 
<Frame name="MNB_PointyPointy" frameStrata="TOOLTIP" toplevel="true" hidden="true" parent="WorldMapButton">
<Size>
<AbsDimension x="192" y="192"/>
</Size>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<Texture name="MNB_PointyPointyT" setAllPoints="true" file="Interface\AddOns\MapNotesBrowser\Graphics\PointyPointy"/>
</Layer>
</Layers>
</Frame>
 
</Ui>
\ No newline at end of file
MapNotesBrowser/MapNotesBrowser.lua New file
0,0 → 1,557
 
MNB_VERSION = "v1.00.30000";
 
MNB = {};
MNB.mode = "WM"; -- default World Map mode
 
MNB_List = {};
 
local browserInsert = {
text = MNB_NAME,
func = function()
local pFrame = WorldMapButton;
MNB.mode = "WM";
pFrame = MapNotes.dd.pFrame;
local Plugin = MapNotes.pluginKeys[ MapNotes.dd.key ];
if ( ( Plugin ) and ( not Plugin.wmflag ) ) then
MNB.mode = Plugin.name;
end
MNB_Browser:SetParent( pFrame );
MNB_Browser:SetAlpha(1);
MNB_Browser:Show();
MapNotes_ScaleFrames();
MNB.PopulateScroll(Plugin);
end,
};
 
-- Main event processor
function MNB.ProcessEvents(self, event, ...)
if ( event == "VARIABLES_LOADED" ) then
local msg = "MapNotesBrowser |c0000FF00"..MNB_VERSION.."|r";
DEFAULT_CHAT_FRAME:AddMessage(msg, 0.64, 0.21, 0.93);
 
-- set hooks
MNB.Ori_MapNotes_WorldMapButton_OnUpdate = MapNotes_WorldMapButton_OnUpdate;
MapNotes_WorldMapButton_OnUpdate = MNB.New_MapNotes_WorldMapButton_OnUpdate;
MNB.Ori_MapNotes_PlugInsDrawNotes = MapNotes_PlugInsDrawNotes;
MapNotes_PlugInsDrawNotes = MNB.New_MapNotes_PlugInsDrawNotes;
MNB.Ori_MapNotes_WriteNote = MapNotes_WriteNote;
MapNotes_WriteNote = MNB.New_MapNotes_WriteNote;
 
-- insert the Browse option in to the MapNotes right click menu
table.insert(MapNotes.base_dd_info[1], #(MapNotes.base_dd_info[1]), browserInsert);
 
-- insert an entry in the MapNotes frames array to be scaled in line with other MapNotes frames
table.insert(MapNotes.scaleFrames, MNB_Browser);
 
-- initialise the PointyPointy
MNB_PointyPointy.timer = 0;
MNB_PointyPointy.hAngle = 0;
MNB_PointyPointy:SetScript("OnUpdate", MNB.PointyUpdate);
end
end
 
 
local function ShowPointy()
local frame = MNB_PointyPointy.frame;
local scalingFactor = MN_ScaleMe(frame);
MNB_PointyPointy:SetScale( scalingFactor );
local x = MNB_PointyPointy.x * frame:GetWidth() / scalingFactor;
local y = -MNB_PointyPointy.y * frame:GetHeight() / scalingFactor;
MNB_PointyPointy:ClearAllPoints();
MNB_PointyPointy:SetParent( frame );
MNB_PointyPointy:SetPoint("CENTER", frame:GetName(), "TOPLEFT", x, y);
MNB_PointyPointy.timer = 0;
MNB_PointyPointy:Show();
end
 
-- scroll button OnEnter
function MNB.ScrollButton_OnEnter(self)
MN_NoteOnEnter(self); -- trigger display of standard MapNotes tooltip
 
local frame = self.pluginFrame;
if ( not frame ) then
frame = MNB_Browser:GetParent();
end
local key = frame.key or MapNotes_GetMapKey();
 
if ( ( frame:IsVisible() ) and ( self.key == key ) ) then -- display special pointer on map
if ( not MNB_PointyPointy.fixed ) then
MNB_PointyPointy.frame = frame;
MNB_PointyPointy.x = self.xPos;
MNB_PointyPointy.y = self.yPos;
ShowPointy();
end
end
end
 
-- scroll button OnClick
function MNB.ScrollButton_OnClick(self, mouseButton)
HideDropDownMenu(1);
if ( self.heading ) then return; end
if ( mouseButton == "LeftButton" ) then
local key = self.key;
local nid = self.nid;
local frame = self.pluginFrame;
if ( not frame ) then
frame = MNB_Browser:GetParent();
end
local frameKey = frame.key or MapNotes_GetMapKey();
 
local fixPointy;
if ( not MNB_PointyPointy.fixed ) then
MNB_PointyPointy.fixed = {};
fixPointy = true;
 
elseif ( ( MNB_PointyPointy.fixed.key == key ) and ( MNB_PointyPointy.fixed.nid == nid ) ) then
MNB_PointyPointy.fixed = nil;
MNB_MarkerButton:Hide();
 
else
fixPointy = true;
end
 
if ( string.find(key, "^WM %a+") ) then
local note = MapNotes_Data_Notes[key];
if ( note ) then
note = note[nid];
if ( note ) then
local check = getglobal( self:GetName() .. "NoteMininote" );
if ( fixPointy ) then
note.mininote = true;
if ( MNB.mode == "searching" ) then
check:Show();
end
else
note.mininote = nil;
if ( MNB.mode == "searching" ) then
check:Hide();
end
end
end
MNB.New_MapNotes_WorldMapButton_OnUpdate(); -- new or old .... ?
end
end
 
if ( ( MapNotes_Keys[key] ) and ( MapNotes_Keys[key].c ~= nil ) and ( not MNB_Browser.Plugin ) ) then
SetMapZoom(MapNotes_Keys[key].c, MapNotes_Keys[key].z);
if ( MapNotes_Keys[key].f ) then
SetDungeonMapLevel(MapNotes_Keys[key].f);
end
frameKey = frame.key or MapNotes_GetMapKey(); -- update key if map changed
end
 
MNB_PointyPointy:Hide();
for n=1, 18 do getglobal("MNB_Scroll"..n.."NotePointy"):Hide(); end
 
if ( fixPointy ) then
MNB_PointyPointy.fixed.key = key;
MNB_PointyPointy.fixed.nid = nid;
MNB_PointyPointy.fixed.pluginFrame = self.pluginFrame;
MNB_PointyPointy.frame = frame;
MNB_PointyPointy.x = self.xPos;
MNB_PointyPointy.y = self.yPos;
getglobal( self:GetName() .. "NotePointy" ):Show();
ShowPointy();
if ( ( frame:IsVisible() ) and ( frameKey == key ) ) then
else
MNB_PointyPointy:Hide();
end
 
-- record marker information
MNB_MarkerButton.key = key;
MNB_MarkerButton.nid = nid;
MNB_MarkerButton:Show();
if ( ( MapNotes_Keys[key] ) and ( MapNotes_Keys[key].c ~= nil ) ) then
MNB_MarkerButton.c = MapNotes_Keys[key].c;
MNB_MarkerButton.z = MapNotes_Keys[key].z;
MNB_MarkerButton.f = MapNotes_Keys[key].f;
end
end
 
MNB.ScrollButton_OnEnter(self);
 
elseif ( mouseButton == "RightButton" ) then
MapNotes:InitialiseDropdown(MNB_Browser, self.xPos, self.yPos, MapNotes.mininote_dd_info, self.key, self.nid);
ToggleDropDownMenu(1, nil, MapNotes.dd, "cursor", 0, 0);
end
end
 
function MNB.Marker_OnClick(self, mouseButton)
if ( mouseButton == "LeftButton" ) then
if ( self.c ) then
SetMapZoom(self.c, self.z);
if ( self.f ) then
SetDungeonMapLevel(self.f);
end
end
else
MNB_PointyPointy.fixed = nil;
MNB_PointyPointy:Hide();
MNB_MarkerButton:Hide();
MNB.PopulateScroll(MapNotes.pluginKeys[self.key]);
end
end
 
-- search button OnClick
function MNB.Search_OnClick(self, mouseButton)
MNB.mode = "searching";
MNB.PopulateScroll();
end
 
-- function for generic call to refresh the scroll list
function MNB.PopulateScroll(Plugin)
if ( MNB.mode == "searching" ) then
-- MNB_Browser.Plugin = nil;
MNB.GlobalSearch();
 
elseif ( Plugin ) then
MNB_Browser.Plugin = Plugin;
MNB.New_MapNotes_PlugInsDrawNotes(Plugin);
 
else
MNB_Browser.Plugin = nil;
MNB.New_MapNotes_WorldMapButton_OnUpdate();
end
end
 
local function SortByName(note1, note2)
if ( strlower(note1.name) < strlower(note2.name) ) then
return true;
end
return false;
end
 
local function LoadMNBList(key, currentZone, Plugin)
local filter = MNB_FilterEditBox:GetText();
local search, include;
if ( string.len(filter) == 0 ) then filter = nil; end
local counter = 0;
 
MNB_List = {};
for i, note in ipairs(currentZone) do
include = true;
if ( filter ) then
filter = strlower(filter);
search = strlower( note.name .. note.inf1 .. note.inf2 .. note.creator );
if ( not string.find(search, filter) ) then
include = false;
end
end
if ( include ) then
counter = counter + 1;
MNB_List[counter] = {};
MNB_List[counter].key = key;
MNB_List[counter].nid = i;
MNB_List[counter].name = note.name;
MNB_List[counter].xPos = note.xPos;
MNB_List[counter].yPos = note.yPos;
MNB_List[counter].mininote = note.mininote;
MNB_List[counter].icon = note.icon;
MNB_List[counter].customIcon = note.customIcon;
if ( Plugin ) then
MNB_List[counter].pluginFrame = Plugin.frame;
else
MNB_List[counter].pluginFrame = nil;
end
end
end
local _, lName = MapNotes_GetMapDisplayName(key);
MNB_ZoneName:SetText( lName );
table.sort(MNB_List, SortByName);
MNB.Refresh();
end
 
-- Note Writing hook to refresh global searches only if necessary
function MNB.New_MapNotes_WriteNote()
MNB.Ori_MapNotes_WriteNote();
 
if ( ( MNB_Browser:IsVisible() ) and ( MNB.mode == "searching" ) and ( #MNB_List > 0 ) ) then
MNB_Browser.Plugin = nil;
MNB.GlobalSearch();
end
end
 
-- WorldMap note update
function MNB.New_MapNotes_WorldMapButton_OnUpdate()
MNB.Ori_MapNotes_WorldMapButton_OnUpdate();
 
local key = MapNotes_GetMapKey();
 
if ( ( MNB_Browser:IsVisible() ) and ( MNB.mode == "WM" ) ) then
local currentZone = MapNotes_Data_Notes[key];
LoadMNBList(key, currentZone, nil);
end
 
if ( ( MNB_PointyPointy.fixed ) and ( not MNB_PointyPointy.fixed.pluginFrame ) ) then
if ( MNB_PointyPointy.fixed.key == key ) then
MNB_PointyPointy:Show();
-- local p = MNB_PointyPointy:GetParent();
local p = WorldMapButton; -- default frame for non-plugins
-- if ( ( p:IsVisible() ) and ( not MNB_Browser:IsVisible() ) and ( MNB_Browser:IsShown() ) ) then
if ( ( p:IsVisible() ) and ( MNB_Browser:IsShown() ) ) then
MNB_Browser:SetParent( p );
MNB_Browser:Show();
MNB_Browser.Plugin = nil;
end
else
MNB_PointyPointy:Hide();
end
end
end
 
-- Plugin note update
function MNB.New_MapNotes_PlugInsDrawNotes(Plugin)
if ( Plugin.Plugin ) then
Plugin = Plugin.Plugin;
end
 
if ( MapNotes.MapNotes_Plugin_Updating[Plugin.name] ) then
return;
end
 
MNB.Ori_MapNotes_PlugInsDrawNotes(Plugin);
 
local key = MapNotes_PlugInsGetKey(Plugin);
 
if ( ( MNB_Browser:IsVisible() ) and ( MNB.mode == Plugin.name ) ) then
local currentZone = MapNotes_Data_Notes[key];
LoadMNBList(key, currentZone, Plugin);
end
 
if ( ( MNB_PointyPointy.fixed ) and ( MNB_PointyPointy.fixed.pluginFrame ) ) then
if ( MNB_PointyPointy.fixed.key == key ) then
MNB_PointyPointy:Show();
-- local p = MNB_PointyPointy:GetParent();
local p = MNB_PointyPointy.fixed.pluginFrame;
-- if ( ( p:IsVisible() ) and ( not MNB_Browser:IsVisible() ) and ( MNB_Browser:IsShown() ) ) then
if ( ( p:IsVisible() ) and ( MNB_Browser:IsShown() ) ) then
MNB_Browser:SetParent( p );
MNB_Browser:Show();
MNB_Browser.Plugin = Plugin;
end
else
MNB_PointyPointy:Hide();
end
end
end
 
function MNB.GlobalSearch()
local fTxt = MNB_FilterEditBox:GetText();
 
if ( ( fTxt ) and ( fTxt ~= "" ) ) then
local foundArray = {};
foundArray.w = {};
foundArray.p = {};
local workin, countin;
 
fTxt = string.lower(fTxt);
for key, map in pairs(MapNotes_Data_Notes) do
local heading;
if ( string.sub(key, 1, 3) == "WM " ) then
workin = foundArray.w;
_, heading, _ = MapNotes_GetMapDisplayName(key);
if ( heading ) then
table.insert(workin, {});
workin = workin[#workin];
countin = foundArray.w[#workin];
workin.name = heading;
workin.notes = {};
workin = workin.notes;
end
else
workin = foundArray.p;
for i, P in pairs(MAPNOTES_PLUGINS_LIST) do
if ( string.find(key, P.name) ) then
_, heading, _ = MapNotes_GetMapDisplayName(key, P);
if ( heading ) then
table.insert(workin, {});
workin = workin[#workin];
countin = foundArray.p[#workin];
workin.name = heading;
workin.Plugin = P;
workin.notes = {};
workin = workin.notes;
end
break;
end
end
end
 
-- Have set up the workin array, now copy relevant note details in to it
local cN = 0;
for index, note in ipairs(map) do
local sTxt = string.lower( note.name .. note.inf1 .. note.inf2 .. note.creator );
-- if ( ( fTxt == "" ) or ( string.find(sTxt, fTxt) ) ) then -- allow for empty strings i.e. allow ALL notes to be listed ??? %%%
if ( string.find(sTxt, fTxt) ) then
table.insert(workin, {});
workin[#workin].name = note.name;
workin[#workin].key = key;
workin[#workin].nid = index;
cN = cN + 1;
end
end
end
 
for i, data in ipairs(foundArray.p) do
table.sort(data.notes, SortByName);
end
table.sort(foundArray.p, SortByName);
 
for i, data in ipairs(foundArray.w) do
table.sort(data.notes, SortByName);
end
table.sort(foundArray.w, SortByName);
 
MNB_List = {};
local counter = 0;
local Plugin;
local aNote;
for i, data in ipairs(foundArray.p) do
if ( #(data.notes) > 0 ) then
counter = counter + 1;
MNB_List[counter] = {};
MNB_List[counter].heading = data.name;
Plugin = data.Plugin;
for n, details in ipairs(data.notes) do
counter = counter + 1;
aNote = MapNotes_Data_Notes[details.key][details.nid];
MNB_List[counter] = {};
MNB_List[counter].key = details.key;
MNB_List[counter].nid = details.nid;
MNB_List[counter].name = aNote.name;
MNB_List[counter].xPos = aNote.xPos;
MNB_List[counter].yPos = aNote.yPos;
MNB_List[counter].mininote = aNote.mininote;
MNB_List[counter].icon = aNote.icon;
MNB_List[counter].customIcon = aNote.customIcon;
if ( Plugin ) then
MNB_List[counter].pluginFrame = Plugin.frame;
end
end
end
end
for i, data in ipairs(foundArray.w) do
if ( #(data.notes) > 0 ) then
counter = counter + 1;
MNB_List[counter] = {};
MNB_List[counter].heading = data.name;
for n, details in ipairs(data.notes) do
counter = counter + 1;
aNote = MapNotes_Data_Notes[details.key][details.nid];
MNB_List[counter] = MapNotes_Data_Notes[details.key][details.nid];
MNB_List[counter].key = details.key;
MNB_List[counter].nid = details.nid;
MNB_List[counter].name = aNote.name;
MNB_List[counter].xPos = aNote.xPos;
MNB_List[counter].yPos = aNote.yPos;
MNB_List[counter].mininote = aNote.mininote;
MNB_List[counter].icon = aNote.icon;
MNB_List[counter].customIcon = aNote.customIcon;
MNB_List[counter].pluginFrame = nil;
end
end
end
 
MNB_ZoneName:SetText( MNB_ALLMAPS );
MNB.Refresh();
end
end
 
-- Actual refreshing of listed notes
function MNB.Refresh()
local note, noteT, noteIcon, noteZone, noteName, noteMininote;
local numNotes = #MNB_List;
local nOffset = 0;
local data, test;
 
FauxScrollFrame_Update(MNB_BrowserScroll, numNotes, 18, 16);
 
local fOffset = FauxScrollFrame_GetOffset(MNB_BrowserScroll);
for n=1, 18 do
nOffset = n + fOffset;
noteT = "MNB_Scroll"..n;
note = getglobal(noteT);
 
if ( nOffset > numNotes ) then
note:Hide();
else
data = MNB_List[nOffset];
noteMininote = getglobal(noteT.."NoteMininote");
noteIcon = getglobal(noteT.."NoteIcon");
noteZone = getglobal(noteT.."NoteZone");
noteName = getglobal(noteT.."NoteName");
notePointy = getglobal(noteT.."NotePointy");
if ( data.heading ) then
noteMininote:Hide();
noteIcon:Hide();
notePointy:Hide();
noteName:Hide();
noteZone:SetText( "|c0000ff00" .. data.heading .. "|r" );
noteZone:Show();
note:SetScript("OnEnter", nil);
note.heading = data.heading;
note.xPos, note.yPos, note.key, note.nid = nil, nil, nil, nil;
note.pluginFrame = nil;
else
noteZone:Hide();
if ( data.mininote ) then
noteMininote:Show();
else
noteMininote:Hide();
end
noteIcon:SetTexture( data.customIcon );
if ( not noteIcon:GetTexture() ) then
noteIcon:SetTexture(MN_POI_ICONS_PATH .. "\\Icon" .. data.icon);
end
if ( ( MNB_PointyPointy.fixed ) and
( MNB_PointyPointy.fixed.key == data.key ) and
( MNB_PointyPointy.fixed.nid == data.nid ) ) then
notePointy:Show();
else
notePointy:Hide();
end
noteIcon:Show();
noteName:SetText( data.name );
noteName:Show();
note:SetScript("OnEnter", MNB.ScrollButton_OnEnter);
note.heading = nil;
note.xPos = data.xPos;
note.yPos = data.yPos;
note.key = data.key;
note.nid = data.nid;
if ( data.pluginFrame ) then
note.pluginFrame = getglobal(data.pluginFrame);
else
note.pluginFrame = nil;
end
end
note:Show();
end
end
end
 
local angleInc = 5.00;
function MNB.PointyUpdate(self, elapsed)
if ( self:IsVisible() ) then
self.timer = self.timer + elapsed;
-- if ( self.timer > 0.05 ) then
self.hAngle = self.hAngle + angleInc;
local s = sin(self.hAngle);
local c = cos(self.hAngle);
MNB_PointyPointyT:SetTexCoord( 0.5-s, 0.5+c,
0.5+c, 0.5+s,
0.5-c, 0.5-s,
0.5+s, 0.5-c);
self.timer = 0;
-- end
end
end
 
 
-- Load me up
do
local frame = CreateFrame("Frame");
frame:RegisterEvent("VARIABLES_LOADED");
frame:SetScript("OnEvent", MNB.ProcessEvents);
end
MapNotesBrowser/Readme.txt New file
0,0 → 1,45
 
MapNotesBrowser v1.00.30000
---------------------------
 
 
Summary
-------
 
Companion AddOn to MapNotes (Fan's Update).
 
Open up the Note Browser frame by Control-Right-Clicking on a note frame like the World Map.
Then select the new menu item "MapNotes Browser"
 
A scroll list of notes within the current zone sorted alphabetically.
Filter listed notes via the provided text box.
Mouse over notes to highlight them on the map.
Right click to open the standard MapNotes right click menu to edit, delete, track notes via the Minimap.
Left click to bookmark a particular note, highlighting it on the map, and setting it as a Mininote.
 
When you have bookmarked a note, a red arrow in the top left of the frame will appear.
Mouse over the bookmark to see the note tooltip.
Left click the bookmark, and if made on a World Map, then the map will change to show the map with that note.
Right click to clear the bookmark.
 
Also allows you to carry out global searches for notes containing certain text, via the 'All Maps' button.
If you carry out an 'All Maps' global text search, then left clicking on World Map notes in different zones will open up that particular map.
This map changing feature only works with world map type notes, and not for custom-map AddOn notes.
 
 
 
 
 
Change History
--------------
 
v1.00.30000 Released
 
 
 
 
 
Contact
-------
 
telic@hotmail.co.uk
\ No newline at end of file
MapNotesBrowser/MapNotesBrowser.toc New file
0,0 → 1,9
## Interface: 30000
## Title: MapNotesBrowser |c0000FF00(v1.00.30000)|r
## Version: v1.00.30000
## Notes: Frame for listing a map's notes alphabetically, and searching for notes
## SavedVariables:
## OptionalDeps:
## Dependencies: MapNotes
 
MapNotesBrowser.xml
MapNotesIconLib_Legacy/MapNotesIconLib_Legacy.lua New file
0,0 → 1,38
 
-- Data that we need to register with MapNotesIconLib
local MapNotesIconLib_Legacy_Icons = {
[1] = {
["title"] = "Legacy Icons",
["author"] = "Telic",
["date"] = "20081012",
["info"] = {
["enGB"] = "The Original MapNotes Icons",
},
["icons"] = {
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Legacy\\Icons\\Legacy\\icon0", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Legacy\\Icons\\Legacy\\icon1", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Legacy\\Icons\\Legacy\\icon2", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Legacy\\Icons\\Legacy\\icon3", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Legacy\\Icons\\Legacy\\icon4", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Legacy\\Icons\\Legacy\\icon5", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Legacy\\Icons\\Legacy\\icon6", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Legacy\\Icons\\Legacy\\icon7", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Legacy\\Icons\\Legacy\\icon8", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Legacy\\Icons\\Legacy\\icon9", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Legacy\\Icons\\Legacy\\Iconparty", },
{ ["path"] = "Interface\\AddOns\\MapNotesIconLib_Legacy\\Icons\\Legacy\\Icontloc", },
},
},
};
 
 
 
local MNIL_Legacy_Frame = CreateFrame("Frame");
 
local function MNIL_Legacy_OnEvent()
MNIL_RegisterLibrary(MapNotesIconLib_Legacy_Icons); -- The function needed to register the above data with MapNotesIconLib
end
 
MNIL_Legacy_Frame:RegisterEvent("VARIABLES_LOADED");
MNIL_Legacy_Frame:SetScript("OnEvent", MNIL_Legacy_OnEvent);
 
MapNotesIconLib_Legacy/Icons/Legacy/Icon7.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Legacy/Icons/Legacy/Icon8.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Legacy/Icons/Legacy/Icon9.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Legacy/Icons/Legacy/Icon0.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Legacy/Icons/Legacy/Iconparty.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Legacy/Icons/Legacy/Icon1.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Legacy/Icons/Legacy/Icon2.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Legacy/Icons/Legacy/Icontloc.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Legacy/Icons/Legacy/Icon3.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Legacy/Icons/Legacy/Icon4.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Legacy/Icons/Legacy/Icon5.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Legacy/Icons/Legacy/Icon6.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
MapNotesIconLib_Legacy/MapNotesIconLib_Legacy.toc New file
0,0 → 1,5
## Interface: 30000
## Title: MapNotesIconLib_Legacy
## Notes: Original MapNotes Icons for MapNotesIconLib
## Dependencies: MapNotesIconLib
MapNotesIconLib_Legacy.lua