Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Azuron

Пользователь
  • Постов

    1
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Azuron

  1. Привет, пытаюсь создать интерфейс настроек для аддона, но не могу никак разобраться с виджетами.

    Я создаю mainform, в которой у меня дети: кнопка аддона и mainpanel, а в mainpanel: чекбокс, текст, и текстура backlayer. 

    local MainPanel = mainForm:GetChildChecked( "MainPanel", false )
    local text = MainPanel:GetChildChecked( "Text", false ):GetWidgetDesc() 
    local desc = mainForm:GetChildChecked( "MainPanel", false ):GetWidgetDesc()
    local check = MainPanel:GetChildChecked( "CheckBox", false ):GetWidgetDesc() 
    local Settings = nil
    MainPanel:Show( false )
    

    Вызываю функцию создания окошка из полученных виджетов(подсмотрел как это происходит в currencyinfo):

    function CreateSettings()
    	if not Settings then
    		Settings = mainForm:CreateWidgetByDesc( desc )
    		Settings:SetName("Settings")
    		Settings:SetPriority(200)
    		Settings:Show(false)
    		
    		local p = Settings:GetPlacementPlain()
    		p.alignX = WIDGET_ALIGN_LOW 
    		p.alignY = WIDGET_ALIGN_LOW
    		p.sizeX = 250
    		p.sizeY = 100
    		Settings:SetPlacementPlain(p)
    		
    		--Создаем чекбокс
    		local check1 = MainPanel:CreateWidgetByDesc( check )
    		check1:SetName("SettingsCheck1")
    		local pos = check1:GetPlacementPlain()
    		pos.posX = 15
    		pos.posY = 15
    		check1:SetPlacementPlain(pos)
    		check1:Show( true )
    		Settings:AddChild(check1)
    		
    		--Текст1
    		local Text1 = MainPanel:CreateWidgetByDesc( text )
    		local pos = Text1:GetPlacementPlain()
    		pos.sizeX = 150
    		pos.sizeY = 18
    		pos.posX = 40
    		pos.posY = 15
    		Text1:SetPlacementPlain(pos)
    		Text1:SetFormat( userMods.ToWString('<header alignx="left" fontsize="14" outline="1" shadow="0" color="0xFFFFFFFF"><rs class="class"><r name="value"/></rs></header>') )
    		Text1:SetVal("value", userMods.ToWString("Значение 1"))
    		Text1:Show( true )
    		Settings:AddChild(Text1)
    		
    		local check2 = MainPanel:CreateWidgetByDesc( check )
    		check2:SetName("SettingsCheck2")
    		local pos = check2:GetPlacementPlain()
    		pos.posX = 15
    		pos.posY = 40
    		check2:SetPlacementPlain(pos)
    		check2:Show( true )
    		Settings:AddChild(check2)
    		
    		--Текст2
    		local Text2 = MainPanel:CreateWidgetByDesc( text )
    		local pos = Text2:GetPlacementPlain()
    		pos.sizeX = 150
    		pos.sizeY = 18
    		pos.posX = 40
    		pos.posY = 40
    		Text2:SetPlacementPlain(pos)
    		Text2:SetFormat( userMods.ToWString('<header alignx="left" fontsize="14" outline="1" shadow="0" color="0xFFFFFFFF"><rs class="class"><r name="value"/></rs></header>') )
    		Text2:SetVal("value", userMods.ToWString("Значение 2"))
    		Text2:Show( true )
    		Settings:AddChild(Text2)
    				
    		DnD:Init(186, Settings, Settings, true)
    	end
    end

    И вызываю само окошко кнопкой:

    function ShowSettingsWindow()
    	if Settings:IsVisible() then	
    		Settings:Show(false)
    	else
    		Settings:Show(true)
    		end
    end 

    Однако появляется mainpanel без виджетов. Может быть есть какие-то аддоны, где можно понять простую реализацию нескольких кнопок на панельке? Или проще создать несколько вариантов одной кнопки и прописать им разные значения?

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования