comparison Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua @ 17:3000eccbf1a0 v7.3.0.017

- ToC Update.
author Tercio
date Sat, 02 Sep 2017 14:10:48 -0300
parents 371e14cd2feb
children 9ad7f3c634f1
comparison
equal deleted inserted replaced
16:6c64dd7f16a2 17:3000eccbf1a0
1 --- AceConfigDialog-3.0 generates AceGUI-3.0 based windows based on option tables. 1 --- AceConfigDialog-3.0 generates AceGUI-3.0 based windows based on option tables.
2 -- @class file 2 -- @class file
3 -- @name AceConfigDialog-3.0 3 -- @name AceConfigDialog-3.0
4 -- @release $Id: AceConfigDialog-3.0.lua 1139 2016-07-03 07:43:51Z nevcairiel $ 4 -- @release $Id: AceConfigDialog-3.0.lua 1167 2017-08-29 22:08:48Z funkydude $
5 5
6 local LibStub = LibStub 6 local LibStub = LibStub
7 local MAJOR, MINOR = "AceConfigDialog-3.0", 61 7 local gui = LibStub("AceGUI-3.0")
8 local reg = LibStub("AceConfigRegistry-3.0")
9
10 local MAJOR, MINOR = "AceConfigDialog-3.0", 64
8 local AceConfigDialog, oldminor = LibStub:NewLibrary(MAJOR, MINOR) 11 local AceConfigDialog, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
9 12
10 if not AceConfigDialog then return end 13 if not AceConfigDialog then return end
11 14
12 AceConfigDialog.OpenFrames = AceConfigDialog.OpenFrames or {} 15 AceConfigDialog.OpenFrames = AceConfigDialog.OpenFrames or {}
14 AceConfigDialog.frame = AceConfigDialog.frame or CreateFrame("Frame") 17 AceConfigDialog.frame = AceConfigDialog.frame or CreateFrame("Frame")
15 18
16 AceConfigDialog.frame.apps = AceConfigDialog.frame.apps or {} 19 AceConfigDialog.frame.apps = AceConfigDialog.frame.apps or {}
17 AceConfigDialog.frame.closing = AceConfigDialog.frame.closing or {} 20 AceConfigDialog.frame.closing = AceConfigDialog.frame.closing or {}
18 AceConfigDialog.frame.closeAllOverride = AceConfigDialog.frame.closeAllOverride or {} 21 AceConfigDialog.frame.closeAllOverride = AceConfigDialog.frame.closeAllOverride or {}
19
20 local gui = LibStub("AceGUI-3.0")
21 local reg = LibStub("AceConfigRegistry-3.0")
22 22
23 -- Lua APIs 23 -- Lua APIs
24 local tconcat, tinsert, tsort, tremove, tsort = table.concat, table.insert, table.sort, table.remove, table.sort 24 local tconcat, tinsert, tsort, tremove, tsort = table.concat, table.insert, table.sort, table.remove, table.sort
25 local strmatch, format = string.match, string.format 25 local strmatch, format = string.match, string.format
26 local assert, loadstring, error = assert, loadstring, error 26 local assert, loadstring, error = assert, loadstring, error
609 oldstrata = dialog:GetFrameStrata() 609 oldstrata = dialog:GetFrameStrata()
610 dialog:SetFrameStrata("TOOLTIP") 610 dialog:SetFrameStrata("TOOLTIP")
611 end 611 end
612 end 612 end
613 613
614 local function validationErrorPopup(message)
615 if not StaticPopupDialogs["ACECONFIGDIALOG30_VALIDATION_ERROR_DIALOG"] then
616 StaticPopupDialogs["ACECONFIGDIALOG30_VALIDATION_ERROR_DIALOG"] = {}
617 end
618 local t = StaticPopupDialogs["ACECONFIGDIALOG30_VALIDATION_ERROR_DIALOG"]
619 t.text = message
620 t.button1 = OKAY
621 t.preferredIndex = STATICPOPUP_NUMDIALOGS
622 local dialog, oldstrata
623 t.OnAccept = function()
624 if dialog and oldstrata then
625 dialog:SetFrameStrata(oldstrata)
626 end
627 end
628 t.timeout = 0
629 t.whileDead = 1
630 t.hideOnEscape = 1
631
632 dialog = StaticPopup_Show("ACECONFIGDIALOG30_VALIDATION_ERROR_DIALOG")
633 if dialog then
634 oldstrata = dialog:GetFrameStrata()
635 dialog:SetFrameStrata("TOOLTIP")
636 end
637 end
638
614 local function ActivateControl(widget, event, ...) 639 local function ActivateControl(widget, event, ...)
615 --This function will call the set / execute handler for the widget 640 --This function will call the set / execute handler for the widget
616 --widget:GetUserDataTable() contains the needed info 641 --widget:GetUserDataTable() contains the needed info
617 local user = widget:GetUserDataTable() 642 local user = widget:GetUserDataTable()
618 local option = user.option 643 local option = user.option
694 if not success then validated = false end 719 if not success then validated = false end
695 end 720 end
696 end 721 end
697 722
698 local rootframe = user.rootframe 723 local rootframe = user.rootframe
699 if type(validated) == "string" then 724 if not validated or type(validated) == "string" then
700 --validate function returned a message to display 725 if not validated then
726 if usage then
727 validated = name..": "..usage
728 else
729 if pattern then
730 validated = name..": Expected "..pattern
731 else
732 validated = name..": Invalid Value"
733 end
734 end
735 end
736
737 -- show validate message
701 if rootframe.SetStatusText then 738 if rootframe.SetStatusText then
702 rootframe:SetStatusText(validated) 739 rootframe:SetStatusText(validated)
703 else 740 else
704 -- TODO: do something else. 741 validationErrorPopup(validated)
705 end 742 end
706 PlaySound("igPlayerInviteDecline") 743 PlaySound(882) -- SOUNDKIT.IG_PLAYER_INVITE_DECLINE || _DECLINE is actually missing from the table
707 del(info)
708 return true
709 elseif not validated then
710 --validate returned false
711 if rootframe.SetStatusText then
712 if usage then
713 rootframe:SetStatusText(name..": "..usage)
714 else
715 if pattern then
716 rootframe:SetStatusText(name..": Expected "..pattern)
717 else
718 rootframe:SetStatusText(name..": Invalid Value")
719 end
720 end
721 else
722 -- TODO: do something else
723 end
724 PlaySound("igPlayerInviteDecline")
725 del(info) 744 del(info)
726 return true 745 return true
727 else 746 else
728 747
729 local confirmText = option.confirmText 748 local confirmText = option.confirmText