----------------
-- Map Marker --
----------------
local AddOnName, nsVars = ...
local ss = nsVars.SS

local setmetatable = setmetatable

local mtMapMarker = {
}

function mtMapMarker:Initialize()
  -- Create map button
  self.MapButton = ss.MapMarkerButton:New()

  -- Add the icon
  self.MapButton.icon = ss.MapMarkerIcon:New(self.MapButton)

  -- Add the trackingBorder
  self.MapButton.trackingBorder = ss.MapMarkerTrackingBorder:New(self.MapButton)

  -- Add the dragingFrame
  self.MapButton.dragingFrame = ss.MapMarkerDraggingFrame:New(self.MapButton)

  -- Add the tooltip
  self.MapButton.tooltip = ss.MapMarkerTooltip:New()

  -- Set the map marker position
  self.MapButton:Reposition(ss.global.general.MapMarker.locationAngle)
end

function mtMapMarker:Show(show)
  if self.MapButton and (show == true) then
    self.MapButton:Show()
  elseif show == true then
    self:Initialize()
  elseif self.MapButton then
    self.MapButton:Hide()
  end
end


ss["MapMarker"] = setmetatable({}, { __index = mtMapMarker });
