- Joined
- May 12, 2018
- Messages
- 145
I've had some success in creating container boxes, buttons, and clicking button triggering. However, I don't know how to make the tooltip text and tooltip text display near the mouse cursor's position when cursor is over the icon.
here's my code.
here's my code.
JASS:
library UniqueArmoryButtons requires UniqueArmory
globals
private constant string ICON_HERO_ANUBARAK = "ReplaceableTextures\\CommandButtons\\BTNAnubarak.blp"
private constant string ICON_HERO_DARKRANGER = "ReplaceableTextures\\CommandButtons\\BTNBansheeRanger.blp"
private constant real hero00iconX = 0.023
private constant real hero00iconY = 0.138
endglobals
public function UniqueArmoryButtonsSetup takes nothing returns nothing
//local framehandle prevButton
local framehandle prevIcon
local framehandle prevFrame
local framehandle prevText
set prevIcon = BlzCreateFrameByType("BACKDROP", "", heroestalentscontainer, "", 0)
call BlzFrameSetSize(prevIcon, 0.04, 0.04)
call BlzFrameSetPoint(prevIcon, FRAMEPOINT_LEFT, heroestalentscontainer, FRAMEPOINT_LEFT, hero00iconX, hero00iconY)
call BlzFrameSetTexture(prevIcon, ICON_HERO_ANUBARAK, 0, false)
set prevFrame = prevIcon
endfunction
endlibrary
JASS:
library UniqueArmory
globals
framehandle windowcontainer
framehandle box
real boxWidth = 0.72
real boxHeight = 0.54
framehandle startmission
real startmissionWidth = 0.08
real startmissionHeight = 0.04
real startmissionX = -0.02
real startmissionY = 0.02
string startmissionText = "Start\nMission"
framehandle resetheroespoints
real resetheroespointsWidth = 0.11
real resetheroespointsHeight = 0.04
real resetheroespointsX = -0.10
real resetheroespointsY = 0.02
string resetheroespointsText = "Reset Heroes\nTalent Points"
framehandle heroespointstext
real heroespointstextscale = 1.15
real heroespointstextX = 0.24
real heroespointstextY = 0.06
framehandle resetcultpoints
real resetcultpointsWidth = 0.11
real resetcultpointsHeight = 0.04
real resetcultpointsX = -0.21
real resetcultpointsY = 0.02
string resetcultpointsText = "Reset Cult\nArmory Points"
framehandle cultpointstext
real cultpointstextscale = 1.15
real cultpointstextX = 0.24
real cultpointstextY = 0.07
framehandle resetscourgepoints
real resetscourgeWidth = 0.11
real resetscourgeHeight = 0.04
real resetscourgeX = -0.32
real resetscourgeY = 0.02
string resetscourgeText = "Reset Scourge\nArmory Points"
framehandle scourgepointstext
real scourgepointstextscale = 1.15
real scourgepointstextX = 0.24
real scourgepointstextY = 0.08
framehandle factionscourge
real factionscourgeWidth = 0.08
real factionscourgeHeight = 0.04
real factionscourgeX = 0.02
real factionscourgeY = -0.02
string factionscourgeText = "Undead\nScourge"
framehandle factioncult
real factioncultWidth = 0.08
real factioncultHeight = 0.04
real factioncultX = 0.02
real factioncultY = -0.055
string factioncultText = "Cult of the\nDamned"
framehandle heroestalents
real heroestalentsWidth = 0.08
real heroestalentsHeight = 0.04
real heroestalentsX = 0.02
real heroestalentsY = -0.09
string heroestalentsText = "Heroes\nTalents"
framehandle scourgebase
real scourgebaseWidth = 0.08
real scourgebaseHeight = 0.04
real scourgebaseX = 0.10
real scourgebaseY = -0.02
string scourgebaseText = "Scourge\nBase"
framehandle scourgeunits
real scourgeunitsWidth = 0.08
real scourgeunitsHeight = 0.04
real scourgeunitsX = 0.10
real scourgeunitsY = -0.055
string scourgeunitsText = "Scourge\nUnits"
framehandle cultbase
real cultbaseWidth = 0.08
real cultbaseHeight = 0.04
real cultbaseX = 0.10
real cultbaseY = -0.02
string cultbaseText = "Cult\nBase"
framehandle cultunits
real cultunitsWidth = 0.08
real cultunitsHeight = 0.04
real cultunitsX = 0.10
real cultunitsY = -0.055
string cultunitsText = "Cult\nUnits"
framehandle heroestalentscontainer
real heroestalentscontainerWidth = 0.72
real heroestalentscontainerHeight = 0.36
real heroestalentscontainerX = 0
real heroestalentscontainerY = 0.059
endglobals
public function UniqueArmoryPageTrg takes nothing returns nothing
local framehandle clickedButton = BlzGetTriggerFrame()
if GetLocalPlayer() == GetTriggerPlayer() then
call BlzFrameSetVisible(scourgebase, false)
call BlzFrameSetVisible(scourgeunits, false)
call BlzFrameSetVisible(cultbase, false)
call BlzFrameSetVisible(cultunits, false)
call BlzFrameSetVisible(heroestalentscontainer, false)
if clickedButton == factionscourge then
call BlzFrameSetVisible(scourgebase, true)
call BlzFrameSetVisible(scourgeunits, true)
elseif clickedButton == factioncult then
call BlzFrameSetVisible(cultbase, true)
call BlzFrameSetVisible(cultunits, true)
elseif clickedButton == heroestalents then
call BlzFrameSetVisible(heroestalentscontainer, true)
endif
endif
endfunction
public function UniqueArmoryGetScourgePointsRemainText takes nothing returns string
return "Scourge Armory Points remain: " + I2S(udg_UA_ScourgePoints)
endfunction
public function UniqueArmoryGetCultPointsRemainText takes nothing returns string
return "Cult Armory Points remain: " + I2S(udg_UA_CultPoints)
endfunction
public function UniqueArmoryGetHeroesPointsRemainText takes nothing returns string
return "Heroes Talent Points remain: " + I2S(udg_UA_HeroesPoints)
endfunction
public function UniqueArmoryUpdatePointsAndTexts takes nothing returns nothing
call BlzFrameSetText(heroespointstext, UniqueArmory_UniqueArmoryGetHeroesPointsRemainText())
call BlzFrameSetText(cultpointstext, UniqueArmory_UniqueArmoryGetCultPointsRemainText())
call BlzFrameSetText(scourgepointstext, UniqueArmory_UniqueArmoryGetScourgePointsRemainText())
endfunction
public function UniqueArmoryResetScourgePoints takes nothing returns nothing
if GetLocalPlayer() == GetTriggerPlayer() then
set udg_UA_ScourgePoints = udg_UA_ScourgePointsMax
call UniqueArmory_UniqueArmoryUpdatePointsAndTexts()
endif
endfunction
public function UniqueArmoryResetCultPoints takes nothing returns nothing
if GetLocalPlayer() == GetTriggerPlayer() then
set udg_UA_CultPoints = udg_UA_CultPointsMax
call UniqueArmory_UniqueArmoryUpdatePointsAndTexts()
endif
endfunction
public function UniqueArmoryResetHeroesPoints takes nothing returns nothing
if GetLocalPlayer() == GetTriggerPlayer() then
set udg_UA_HeroesPoints = udg_UA_HeroesPointsMax
call UniqueArmory_UniqueArmoryUpdatePointsAndTexts()
endif
endfunction
public function UniqueArmoryStartMission takes nothing returns nothing
if GetLocalPlayer() == GetTriggerPlayer() then
call BlzFrameSetVisible(windowcontainer, false)
endif
endfunction
public function UniqueArmorySetup takes player p returns nothing
local trigger startmissionTrg = CreateTrigger()
local trigger resetheroespointsTrg = CreateTrigger()
local trigger resetcultpointsTrg = CreateTrigger()
local trigger resetscourgepointsTrg = CreateTrigger()
local trigger pageTrg = CreateTrigger()
local framehandle iconbutton
local framehandle prevFrame
set windowcontainer = BlzCreateFrameByType("FRAME", "", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "", 0)
set box = BlzCreateFrameByType("BACKDROP", "", windowcontainer, "EscMenuBackdrop", 0)
call BlzFrameClearAllPoints(box)
call BlzFrameSetAbsPoint(box, FRAMEPOINT_CENTER, 0.4, 0.3) // 0.35, 0.34
call BlzFrameSetSize(box, boxWidth, boxHeight)
set startmission = BlzCreateFrame("ScriptDialogButton", box, 0, 0)
call BlzFrameClearAllPoints(startmission)
call BlzFrameSetPoint(startmission, FRAMEPOINT_BOTTOMRIGHT, box, FRAMEPOINT_BOTTOMRIGHT, startmissionX, startmissionY)
call BlzFrameSetSize(startmission, startmissionWidth, startmissionHeight)
call BlzFrameSetText(startmission, startmissionText)
call BlzTriggerRegisterFrameEvent(startmissionTrg, startmission, FRAMEEVENT_CONTROL_CLICK)
call TriggerAddAction(startmissionTrg, function UniqueArmoryStartMission )
set resetheroespoints = BlzCreateFrame("ScriptDialogButton", box, 0, 0)
call BlzFrameClearAllPoints(resetheroespoints)
call BlzFrameSetPoint(resetheroespoints, FRAMEPOINT_BOTTOMRIGHT, box, FRAMEPOINT_BOTTOMRIGHT, resetheroespointsX, resetheroespointsY)
call BlzFrameSetSize(resetheroespoints, resetheroespointsWidth, resetheroespointsHeight)
call BlzFrameSetText(resetheroespoints, resetheroespointsText)
call BlzTriggerRegisterFrameEvent(resetheroespointsTrg, resetheroespoints, FRAMEEVENT_CONTROL_CLICK)
call TriggerAddAction(resetheroespointsTrg, function UniqueArmoryResetHeroesPoints )
set heroespointstext = BlzCreateFrameByType("TEXT", "name", box, "", 0)
call BlzFrameSetAbsPoint(heroespointstext, FRAMEPOINT_BOTTOMRIGHT, heroespointstextX, heroespointstextY)
call BlzFrameSetEnable(heroespointstext, false)
call BlzFrameSetScale(heroespointstext, heroespointstextscale)
call BlzFrameSetTextAlignment(heroespointstext, TEXT_JUSTIFY_BOTTOM, TEXT_JUSTIFY_LEFT)
set resetcultpoints = BlzCreateFrame("ScriptDialogButton", box, 0, 0)
call BlzFrameClearAllPoints(resetcultpoints)
call BlzFrameSetPoint(resetcultpoints, FRAMEPOINT_BOTTOMRIGHT, box, FRAMEPOINT_BOTTOMRIGHT, resetcultpointsX, resetcultpointsY)
call BlzFrameSetSize(resetcultpoints, resetcultpointsWidth, resetcultpointsHeight)
call BlzFrameSetText(resetcultpoints, resetcultpointsText)
set cultpointstext = BlzCreateFrameByType("TEXT", "name", box, "", 0)
call BlzFrameSetAbsPoint(cultpointstext, FRAMEPOINT_BOTTOMRIGHT, cultpointstextX, cultpointstextY)
call BlzFrameSetEnable(cultpointstext, false)
call BlzFrameSetScale(cultpointstext, cultpointstextscale)
call BlzFrameSetTextAlignment(cultpointstext, TEXT_JUSTIFY_BOTTOM, TEXT_JUSTIFY_LEFT)
call BlzTriggerRegisterFrameEvent(resetcultpointsTrg, resetcultpoints, FRAMEEVENT_CONTROL_CLICK)
call TriggerAddAction(resetcultpointsTrg, function UniqueArmoryResetCultPoints )
set resetscourgepoints = BlzCreateFrame("ScriptDialogButton", box, 0, 0)
call BlzFrameClearAllPoints(resetscourgepoints)
call BlzFrameSetPoint(resetscourgepoints, FRAMEPOINT_BOTTOMRIGHT, box, FRAMEPOINT_BOTTOMRIGHT, resetscourgeX, resetscourgeY)
call BlzFrameSetSize(resetscourgepoints, resetscourgeWidth, resetscourgeHeight)
call BlzFrameSetText(resetscourgepoints, resetscourgeText)
set scourgepointstext = BlzCreateFrameByType("TEXT", "name", box, "", 0)
call BlzFrameSetAbsPoint(scourgepointstext, FRAMEPOINT_BOTTOMRIGHT, scourgepointstextX, scourgepointstextY)
call BlzFrameSetEnable(scourgepointstext, false)
call BlzFrameSetScale(scourgepointstext, scourgepointstextscale)
call BlzFrameSetTextAlignment(scourgepointstext, TEXT_JUSTIFY_BOTTOM, TEXT_JUSTIFY_LEFT)
call BlzTriggerRegisterFrameEvent(resetscourgepointsTrg, resetscourgepoints, FRAMEEVENT_CONTROL_CLICK)
call TriggerAddAction(resetscourgepointsTrg, function UniqueArmoryResetScourgePoints )
set factionscourge = BlzCreateFrame("ScriptDialogButton", box, 0, 0)
call BlzFrameClearAllPoints(factionscourge)
call BlzFrameSetPoint(factionscourge, FRAMEPOINT_TOPLEFT, box, FRAMEPOINT_TOPLEFT, factionscourgeX, factionscourgeY)
call BlzFrameSetSize(factionscourge, factionscourgeWidth, factionscourgeHeight)
call BlzFrameSetText(factionscourge, factionscourgeText)
set factioncult = BlzCreateFrame("ScriptDialogButton", box, 0, 0)
call BlzFrameClearAllPoints(factioncult)
call BlzFrameSetPoint(factioncult, FRAMEPOINT_TOPLEFT, box, FRAMEPOINT_TOPLEFT, factioncultX, factioncultY)
call BlzFrameSetSize(factioncult, factioncultWidth, factioncultHeight)
call BlzFrameSetText(factioncult, factioncultText)
set heroestalents = BlzCreateFrame("ScriptDialogButton", box, 0, 0)
call BlzFrameClearAllPoints(heroestalents)
call BlzFrameSetPoint(heroestalents, FRAMEPOINT_TOPLEFT, box, FRAMEPOINT_TOPLEFT, heroestalentsX, heroestalentsY)
call BlzFrameSetSize(heroestalents, heroestalentsWidth, heroestalentsHeight)
call BlzFrameSetText(heroestalents, heroestalentsText)
set heroestalentscontainer = BlzCreateFrameByType("BACKDROP", "", box, "EscMenuBackdrop", 0) // set BACKDROP to FRAME, EscMenuBackdrop to null after works complete
call BlzFrameClearAllPoints(heroestalentscontainer)
call BlzFrameSetSize(heroestalentscontainer, heroestalentscontainerWidth, heroestalentscontainerHeight)
call BlzFrameSetPoint(heroestalentscontainer, FRAMEPOINT_BOTTOM, box, FRAMEPOINT_BOTTOM, heroestalentscontainerX, heroestalentscontainerY)
set scourgebase = BlzCreateFrame("ScriptDialogButton", box, 0, 0)
call BlzFrameClearAllPoints(scourgebase)
call BlzFrameSetPoint(scourgebase, FRAMEPOINT_TOPLEFT, box, FRAMEPOINT_TOPLEFT, scourgebaseX, scourgebaseY)
call BlzFrameSetSize(scourgebase, scourgebaseWidth, scourgebaseHeight)
call BlzFrameSetText(scourgebase, scourgebaseText)
set scourgeunits = BlzCreateFrame("ScriptDialogButton", box, 0, 0)
call BlzFrameClearAllPoints(scourgeunits)
call BlzFrameSetPoint(scourgeunits, FRAMEPOINT_TOPLEFT, box, FRAMEPOINT_TOPLEFT, scourgeunitsX, scourgeunitsY)
call BlzFrameSetSize(scourgeunits, scourgeunitsWidth, scourgeunitsHeight)
call BlzFrameSetText(scourgeunits, scourgeunitsText)
set cultbase = BlzCreateFrame("ScriptDialogButton", box, 0, 0)
call BlzFrameClearAllPoints(cultbase)
call BlzFrameSetPoint(cultbase, FRAMEPOINT_TOPLEFT, box, FRAMEPOINT_TOPLEFT, cultbaseX, cultbaseY)
call BlzFrameSetSize(cultbase, cultbaseWidth, cultbaseHeight)
call BlzFrameSetText(cultbase, cultbaseText)
set cultunits = BlzCreateFrame("ScriptDialogButton", box, 0, 0)
call BlzFrameClearAllPoints(cultunits)
call BlzFrameSetPoint(cultunits, FRAMEPOINT_TOPLEFT, box, FRAMEPOINT_TOPLEFT, cultunitsX, cultunitsY)
call BlzFrameSetSize(cultunits, cultunitsWidth, cultunitsHeight)
call BlzFrameSetText(cultunits, cultunitsText)
call BlzTriggerRegisterFrameEvent(pageTrg, factionscourge, FRAMEEVENT_CONTROL_CLICK)
call BlzTriggerRegisterFrameEvent(pageTrg, factioncult, FRAMEEVENT_CONTROL_CLICK)
call BlzTriggerRegisterFrameEvent(pageTrg, heroestalents, FRAMEEVENT_CONTROL_CLICK)
call TriggerAddAction(pageTrg, function UniqueArmoryPageTrg )
//set iconbutton = BlzCreateFrameByType("BUTTON", "", heroestalents, "IconButtonTemplate", 0)
//call BlzFrameSetEnable(iconbutton, false)
call UniqueArmory_UniqueArmoryUpdatePointsAndTexts()
call BlzFrameSetVisible(box, true)
call BlzFrameSetVisible(scourgebase, false)
call BlzFrameSetVisible(scourgeunits, false)
call BlzFrameSetVisible(cultbase, false)
call BlzFrameSetVisible(cultunits, false)
call BlzFrameSetVisible(heroestalentscontainer, false)
set startmissionTrg = null
set resetheroespointsTrg = null
set resetcultpointsTrg = null
set resetscourgepointsTrg = null
set pageTrg = null
endfunction
endlibrary