Mercurial > wow > wowdb-profiler
comparison Comments.lua @ 259:eac4dc8f462e
Added support for opening a page link in a dialog so users can copy/paste the URL for comments on their comment subject.
author | James D. Callahan III <jcallahan@curse.com> |
---|---|
date | Mon, 18 Mar 2013 15:12:05 -0500 |
parents | 88d2c426f876 |
children | 3558ba83eacd |
comparison
equal
deleted
inserted
replaced
258:88d2c426f876 | 259:eac4dc8f462e |
---|---|
8 | 8 |
9 local ADDON_NAME, private = ... | 9 local ADDON_NAME, private = ... |
10 | 10 |
11 local LibStub = _G.LibStub | 11 local LibStub = _G.LibStub |
12 local WDP = LibStub("AceAddon-3.0"):GetAddon(ADDON_NAME) | 12 local WDP = LibStub("AceAddon-3.0"):GetAddon(ADDON_NAME) |
13 local Dialog = LibStub("LibDialog-1.0") | |
13 | 14 |
14 local ParseGUID = private.ParseGUID | 15 local ParseGUID = private.ParseGUID |
15 | 16 |
16 -- CONSTANTS ---------------------------------------------------------- | 17 -- CONSTANTS ---------------------------------------------------------- |
17 | 18 |
18 local EDIT_MAXCHARS = 3000 | 19 local EDIT_MAXCHARS = 3000 |
19 local EDIT_DESCRIPTION_FORMAT = [[Enter your comment below, being as descriptive as possible. Comments are limited to %s characters, including newlines and spaces.]] | 20 local EDIT_DESCRIPTION_FORMAT = "Enter your comment below, being as descriptive as possible. Comments are limited to %s characters, including newlines and spaces." |
21 local LINK_COMMENT_TOOLTIP = "Click here to create a link to the comment page on WoWDB." | |
22 local LINK_EDITBOX_DESC_FORMAT = "Copy the highlighted text and paste it into your browser to visit the comments for %s." | |
23 | |
24 local URL_BASE = "http://www.wowdb.com/" | |
25 | |
26 local URL_TYPE_MAP = { | |
27 ITEM = "items", | |
28 OBJECT = "objects", | |
29 NPC = "npcs", | |
30 VEHICLE = "npcs", | |
31 } | |
32 | |
33 Dialog:Register("WDP_CommentLink", { | |
34 text = "", | |
35 editboxes = { | |
36 { | |
37 text = _G.UNKNOWN, | |
38 on_escape_pressed = function(self) | |
39 self:ClearFocus() | |
40 end, | |
41 }, | |
42 }, | |
43 buttons = { | |
44 { | |
45 text = _G.OKAY, | |
46 } | |
47 }, | |
48 show_while_dead = true, | |
49 hide_on_escape = true, | |
50 is_exclusive = true, | |
51 on_show = function(self, data) | |
52 local editbox = self.editboxes[1] | |
53 editbox:SetWidth(self:GetWidth() - 20) | |
54 editbox:SetText(("%s%s/%d#related:comments"):format(URL_BASE, URL_TYPE_MAP[data.type_name], data.id)) | |
55 editbox:HighlightText() | |
56 editbox:SetFocus() | |
57 | |
58 self.text:SetFormattedText(LINK_EDITBOX_DESC_FORMAT:format(data.label)) | |
59 end, | |
60 }) | |
61 | |
62 local comment_subject = {} | |
20 | 63 |
21 -- HELPERS ------------------------------------------------------------ | 64 -- HELPERS ------------------------------------------------------------ |
22 | 65 |
23 local comment_frame | 66 local comment_frame |
24 do | 67 do |
114 }) | 157 }) |
115 | 158 |
116 edit_container:SetBackdropBorderColor(_G.TOOLTIP_DEFAULT_COLOR.r, _G.TOOLTIP_DEFAULT_COLOR.g, _G.TOOLTIP_DEFAULT_COLOR.b) | 159 edit_container:SetBackdropBorderColor(_G.TOOLTIP_DEFAULT_COLOR.r, _G.TOOLTIP_DEFAULT_COLOR.g, _G.TOOLTIP_DEFAULT_COLOR.b) |
117 edit_container:SetBackdropColor(0, 0, 0) | 160 edit_container:SetBackdropColor(0, 0, 0) |
118 | 161 |
162 local link_button = _G.CreateFrame("Button", "$parentLinkButton", panel) | |
163 link_button:SetSize(32, 16) | |
164 link_button:SetPoint("TOPRIGHT", edit_container, "BOTTOMRIGHT", 5, 0) | |
165 | |
166 link_button:SetNormalTexture([[Interface\TradeSkillFrame\UI-TradeSkill-LinkButton]]) | |
167 link_button:GetNormalTexture():SetTexCoord(0, 1, 0, 0.5) | |
168 | |
169 link_button:SetHighlightTexture([[Interface\TradeSkillFrame\UI-TradeSkill-LinkButton]]) | |
170 link_button:GetHighlightTexture():SetTexCoord(0, 1, 0.5, 1) | |
171 | |
172 link_button:SetScript("OnClick", function(self) | |
173 Dialog:Spawn("WDP_CommentLink", { type_name = comment_subject.type_name, id = comment_subject.id, label = comment_subject.label }) | |
174 end) | |
175 | |
176 link_button:SetScript("OnEnter", function(self) | |
177 _G.GameTooltip:SetOwner(self, "ANCHOR_TOPLEFT") | |
178 _G.GameTooltip:SetText(LINK_COMMENT_TOOLTIP, nil, nil, nil, nil, 1) | |
179 _G.GameTooltip:Show() | |
180 end) | |
181 | |
182 link_button:SetScript("OnLeave", _G.GameTooltip_Hide) | |
183 | |
119 local edit_description = edit_container:CreateFontString("MUFASA", "ARTWORK", "GameFontHighlight") | 184 local edit_description = edit_container:CreateFontString("MUFASA", "ARTWORK", "GameFontHighlight") |
120 edit_description:SetHeight(36) | 185 edit_description:SetHeight(36) |
121 edit_description:SetPoint("BOTTOMLEFT", edit_container, "TOPLEFT", 5, 3) | 186 edit_description:SetPoint("BOTTOMLEFT", edit_container, "TOPLEFT", 5, 3) |
122 edit_description:SetPoint("BOTTOMRIGHT", edit_container, "TOPRIGHT", 5, 3) | 187 edit_description:SetPoint("BOTTOMRIGHT", edit_container, "TOPRIGHT", 5, 3) |
123 edit_description:SetFormattedText(EDIT_DESCRIPTION_FORMAT, _G.BreakUpLargeNumbers(EDIT_MAXCHARS)) | 188 edit_description:SetFormattedText(EDIT_DESCRIPTION_FORMAT, _G.BreakUpLargeNumbers(EDIT_MAXCHARS)) |
194 end) | 259 end) |
195 panel.submitButton = submit | 260 panel.submitButton = submit |
196 end | 261 end |
197 | 262 |
198 local function CreateUnitComment(unit_id, unit_type, unit_idnum) | 263 local function CreateUnitComment(unit_id, unit_type, unit_idnum) |
199 comment_frame.subject_name:SetText(_G.UnitName(unit_id)) | 264 local type_name = private.UNIT_TYPE_NAMES[unit_type + 1] |
200 comment_frame.subject_data:SetFormattedText("(%s #%d)", private.UNIT_TYPE_NAMES[unit_type + 1], unit_idnum) | 265 local unit_name = _G.UnitName(unit_id) |
266 | |
267 comment_subject.type_name = type_name | |
268 comment_subject.id = unit_idnum | |
269 comment_subject.label = unit_name | |
270 | |
271 comment_frame.subject_name:SetText(unit_name) | |
272 comment_frame.subject_data:SetFormattedText("(%s #%d)", type_name, unit_idnum) | |
201 comment_frame.scroll_frame.edit_box:SetText("") | 273 comment_frame.scroll_frame.edit_box:SetText("") |
202 comment_frame:Show() | 274 comment_frame:Show() |
203 end | 275 end |
204 | 276 |
205 local function CreateCursorComment() | 277 local function CreateCursorComment() |