|
09-28-2010, 12:21 PM
|
|
The Undying
|
|
Join Date: Sep 2010
Posts: 47
|
|
Prevent a window from being draggable.
I have been digging through the wiki and I can not find anything that will allow you to prevent a window from being draggable.
Anyone got any ideas?
|
09-28-2010, 01:43 PM
|
The Wary
|
|
Join Date: Sep 2010
Posts: 3
|
|
save the x and y position when the window is placed where you want it and then allow or disallow dragging in the PositionChanged event by setting the SetPosition to those saved x and y coords, self.movable is a flag you define yourself that you can set to allow positioning ( like in the constructor ), you can set that to false if you don't want it to be dragged anymore
Code:
function SomeClass:Constructor()
self.original_x = self:GetLeft();
self.original_y = self:GetTop();
self.PositionChanged = function ( sender, args )
if ( not self.movable ) then
self:SetPosition( self.original_x, self.original_y )
end
end
end
|
09-29-2010, 09:34 AM
|
|
The Undying
|
|
Join Date: Sep 2010
Posts: 47
|
|
I have tried this code a million different ways and I can not figure out how to append it to my settings window to get it to lock and unlock the window when a check block is selected.
SetupWindow.lua
Code:
import "Turbine";
import "Turbine.Gameplay";
import "Turbine.UI";
import "Turbine.UI.Extensions";
import "Turbine.UI.Lotro";
import "Turbine.Utils";
import "Olenn.Satchel"
import "Olenn.DUInterface";
import "Olenn.Utilsx";
---Big thanks to Digital_Utopia for use of his code!
SetupWindow = class(Olenn.DUInterface.Window );
function SetupWindow:Constructor()
Olenn.DUInterface.Window.Constructor( self,380,225 );
----ENABLE LOCKING OF WINDOW----
----PREVENT MULTIPLE COPIES OF THIS WINDOW----
if ( self.window ~= nil ) then
return;
end
self:SetPosition((Turbine.UI.Display.GetWidth() / 2) - (self:GetWidth() / 2), (Turbine.UI.Display.GetHeight() / 2 ) - (self:GetHeight()));
self.tbHolder:SetWidth(255);
self.tbRight:SetPosition(self.tbHolder:GetWidth()-35,0)
self.tbHolder:SetLeft((self:GetWidth() - self.tbHolder:GetWidth())/2);
self.tbCenter:SetSize(self.tbHolder:GetWidth()-70,42);
self.tbCenter:SetPosition(self.tbLeft:GetLeft()+35,0)
self.bg:SetSize(325, 180);
self.text:SetText("Satchel Options");
self.text:SetWidth(self.tbHolder:GetWidth());
self.text:SetHeight(20);
self.text:SetLeft(-35);
self.text:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleCenter);
self.clButton:SetPosition(self:GetWidth()-23,24)
self.tw=Turbine.UI.Window();
self.tw:SetParent(self);
self.tw:SetSize(400,534);
self.tw:SetPosition(0,0);
self.tw:SetMouseVisible(false);
self.sp=Turbine.UI.ListBox();
self.sp:SetParent(self.tw);
self.sp:SetPosition(12,65);
self.sp:SetSize(356,448);
self.sp:SetOrientation( Turbine.UI.Orientation.Horizontal );
self.sp:SetMaxItemsPerLine(1);
self.sp:SetBackColorBlendMode(0);
self.sp:SetBlendMode(4);
----BOTTOM BUTTONS----
self.defSettings=Turbine.UI.Lotro.Button();
self.defSettings:SetParent(self.tw);
self.defSettings:SetSize(128,20);
self.defSettings:SetText("Default Settings");
self.defSettings:SetPosition(41, 190);
self.accSettings=Turbine.UI.Lotro.Button();
self.accSettings:SetParent(self.tw);
self.accSettings:SetSize(128,20);
self.accSettings:SetText("Accept");
self.accSettings:SetPosition(215,190);
----SATCHEL LOCKED CHECK BOX----
self.sp:AddItem(self.hdr);
self.sicHolder=Turbine.UI.Control();
self.sicHolder:SetSize(280,30);
self.locked = Olenn.DUInterface.CheckBox();
self.locked:SetChecked(true);
self.locked:SetText("Satchel locked");
self.locked:SetParent(self.sicHolder);
self.locked:SetPosition(-112,0);
self.sp:AddItem(self.sicHolder);
----SETTINGS SCOPE----
self.acHolder=Turbine.UI.Control();
self.acHolder:SetSize(400,30);
self.ac = Olenn.DUInterface.DropDownBox({"Account","Character","Server"});
self.ac:SetParent(self.acHolder);
self.ac:SetPosition(160,0);
self.acPanel = Turbine.UI.Window();
self.acPanel:SetParent(self.sp);
self.acPanel:SetPosition(0,0);
self.acPanel:SetSize(480,448);
self.acPanel:SetZOrder(99);
self.acPanel:SetVisible(false);
self.acLb = self.ac.listBox;
self.acLb:SetParent(self.acPanel);
self.acLb:SetZOrder(99);
self.acLb:SetBlendMode(0);
self.acLb:SetBackColorBlendMode(0);
self.acLb:SetPosition(200,200);
self.acLabel=Turbine.UI.Label();
self.acLabel:SetParent(self.acHolder);
self.acLabel:SetPosition(-34,0);
self.acLabel:SetSize(200,20);
self.acLabel:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleCenter);
self.acLabel:SetFont(Turbine.UI.Lotro.Font.TrajanPro14);
self.acLabel:SetForeColor(Turbine.UI.Color(1,0.96,0.874,0.576));
self.acLabel:SetText("Settings Scope");
self.sp:AddItem(self.acHolder);
----OPACITY SLIDER----
self.voHolder = Turbine.UI.Control();
self.voHolder:SetSize(335,45);
self.voSld = Olenn.DUInterface.Slider();
self.voSld:SetParent(self.voHolder);
self.voSld:SetLeft(20);
self.voSld:SetText("Opacity");
self.sp:AddItem(self.voHolder);
self.bpHolder = Turbine.UI.Control();
self.bpHolder:SetSize(335,45);
self.txHolder = Turbine.UI.Control();
self.txHolder:SetSize(400,45);
self.acPanel.MouseClick=function(sender,args)
self.ac.Close();
self.acPanel:SetVisible(false);
end
self.ac.Opening =function()
self.acPanel:SetVisible(true);
tl,tt=self.acHolder:PointToScreen(self.acHolder:GetPosition());
self.acLb:SetPosition(246,self.acHolder:GetTop()+21);
end
self.showSetup = function()
end
self.closeSetup = function()
end
end
SatchelWindow.lua
Code:
import "Turbine";
import "Turbine.Gameplay";
import "Turbine.UI";
import "Turbine.UI.Extensions";
import "Turbine.UI.Lotro";
import "Turbine.Utils";
import "Olenn.Satchel"
SatchelWindow = class( Turbine.UI.Window );
function SatchelWindow:Constructor()
----CREATE THE WINDOW----
Turbine.UI.Lotro.Window.Constructor( self );
self:SetText("Satchel");
self:SetSize( 325, 300 );
----LOAD PRIOR POSITION----
self.Data = Turbine.PluginData.Load( Turbine.DataScope.Character, "SatchelData")
if (self.Data==nil)then
self.Data = { };
self.Data.x = 100;
self.Data.y = 100;
self:SetPosition(100 , 100);
else
self:SetPosition(self.Data.x,self.Data.y)
end
----SATCHEL CLOSES WHEN ESC IS PRESSED----
self:SetWantsKeyEvents( true );
self.KeyDown = function( sender, args )
if ( args.Action == Turbine.UI.Lotro.Action.Escape ) then
sender:SetVisible( false )
end
----MAKE BAG BUTTONS ON THE TOOLBAR OPEN SATCHEL----
if ( args.Action == Turbine.UI.Lotro.Action.ToggleBags or
args.Action == Turbine.UI.Lotro.Action.ToggleBag1 or
args.Action == Turbine.UI.Lotro.Action.ToggleBag2 or
args.Action == Turbine.UI.Lotro.Action.ToggleBag3 or
args.Action == Turbine.UI.Lotro.Action.ToggleBag4 or
args.Action == Turbine.UI.Lotro.Action.ToggleBag5 )
then
sender:SetVisible( not sender:IsVisible() )
end
end
local satchel = self;
local mainWindow = self;
self.itemListBoxScrollBar = Turbine.UI.Lotro.ScrollBar();
self.itemListBoxScrollBar:SetOrientation( Turbine.UI.Orientation.Vertical );
self.itemListBoxScrollBar:SetParent( self );
self.itemListBox = Turbine.UI.ListBox();
self.itemListBox:SetParent( self );
self.itemListBox:SetOrientation( Turbine.UI.Orientation.Horizontal );
self.itemListBox:SetVerticalScrollBar( self.itemListBoxScrollBar );
self.itemListBox:SetAllowDrop( true );
self.itemListBox.DragDrop = function( sender, args )
local shortcut = args.DragDropInfo:GetShortcut();
if ( shortcut ~= nil ) then
local destinationItemControl = self.itemListBox:GetItemAt( args.X, args.Y );
local destinationIndex = self.itemListBox:IndexOfItem( destinationItemControl );
self.backpack:PerformShortcutDrop( shortcut, destinationIndex, Turbine.UI.Control.IsShiftKeyDown() );
end
end
----MAKE WINDOW RESIZABLE----
self.resizeHandle = Turbine.UI.Control();
self.resizeHandle:SetParent( self );
self.resizeHandle:SetZOrder( 100 );
self.resizeHandle:SetSize( 20, 20 );
self.resizeHandle:SetPosition( self:GetWidth() - self.resizeHandle:GetWidth(), self:GetHeight() - self.resizeHandle:GetHeight() );
self.resizeHandle.MouseDown = function( sender, args )
sender.dragStartX = args.X;
sender.dragStartY = args.Y;
sender.dragging = true;
end
self.resizeHandle.MouseMove = function( sender, args )
local width, height = mainWindow:GetSize();
if ( sender.dragging ) then
mainWindow:SetSize( width + ( args.X - sender.dragStartX ), height + ( args.Y - sender.dragStartY ) );
sender:SetPosition( mainWindow:GetWidth() - sender:GetWidth(), mainWindow:GetHeight() - sender:GetHeight() )
satchel:PerformLayout()
end
end
self.resizeHandle.MouseUp = function( sender, args )
if (sender.dragging) then
self.Data.x, self.Data.y = self:GetPosition();
end
sender.dragging = false;
end
----CREATE CONAINER FOR ITEMS----
self.items = { };
local player = Turbine.Gameplay.LocalPlayer();
self.backpack = player:GetBackpack();
self.backpack.SizeChanged = function( sender, args )
satchel:Refresh();
end
self.backpack.ItemAdded = function( sender, args )
satchel.items[args.Index]:SetItem( satchel.backpack:GetItem( args.Index ) );
end
self.backpack.ItemRemoved = function( sender, args )
satchel.items[args.Index]:SetItem( satchel.backpack:GetItem( args.Index ) );
end
self.backpack.ItemMoved = function( sender, args )
satchel.items[args.OldIndex]:SetItem( satchel.backpack:GetItem( args.OldIndex ) );
satchel.items[args.NewIndex]:SetItem( satchel.backpack:GetItem( args.NewIndex ) );
end
self:Refresh();
----CREATE SETTINGS BUTTON----
self.settingsButton = Turbine.UI.Lotro.Button();
self.settingsButton:SetParent( self );
self.settingsButton:SetSize(70,30);
self.settingsButton:SetPosition(34, 37);
self.settingsButton:SetFont(Turbine.UI.Lotro.Font.Verdana14);
self.settingsButton:SetText("Settings");
self.settingsButton.Click = function(sender, args)
SetupWindow:SetVisible( not SetupWindow:IsVisible() );
end
end
----FUNCTION TO REFRESH BAG CONTENTS----
function SatchelWindow:Refresh()
local backpackSize = self.backpack:GetSize();
for i = 1, backpackSize, 1 do
if ( self.items[i] ) then
self.items[i]:SetParent( nil );
end
self.items[i] = Turbine.UI.Lotro.ItemControl( self.backpack:GetItem( i ) );
self.itemListBox:AddItem( self.items[i] );
end
self:PerformLayout();
end
function SatchelWindow:PerformLayout()
self:Layout( { } )
end
function SatchelWindow:Layout( args )
local width, height = self:GetSize();
local itemWidth = 40;
if ( self.items[1] ~= nil ) then
itemWidth = self.items[1]:GetWidth()
end
local listWidth = width - 40;
local listHeight = height - 75;
local itemsPerRow = listWidth / itemWidth;
self.itemListBox:SetPosition( 15, 60 );
self.itemListBox:SetSize( listWidth, listHeight );
self.itemListBox:SetMaxItemsPerLine( itemsPerRow );
self.itemListBoxScrollBar:SetPosition( width - 25, 55 );
self.itemListBoxScrollBar:SetSize( 10, listHeight );
end
Any help is greatly appreciated. A lot of the time I can figure out and work through the code, but this is really stumping me.
|
09-29-2010, 09:53 AM
|
|
The Undying
|
|
Join Date: Sep 2010
Posts: 207
|
|
This is a really dirty hack - but it's oh-so effective
Code:
myWindow = Turbine.UI.LotRO.Window()
---size/position code here
moveBlocker = Turbine.UI.Control()
moveBlocker:SetParent(myWindow);
moveBlocker:SetSize() -- size it so it's about the same size as the title bar
moveBlocker:SetPosition() -- position it above the title bar
moveBlocker:SetBackColor(Turbine.UI.Color(0,0,0)); -- keep temporarily to aid you in positioning
SetZOrder(10); -- just to make sure it's above everything else.
Now, you won't be able to drag it, or even get that 4-way cursor - because that control (moveBlocker) will intercept any mouse commands, and unlike the UI.Lotro window, a control won't auto-move on drag.
|
09-29-2010, 02:38 PM
|
|
The Undying
|
|
Join Date: Sep 2010
Posts: 47
|
|
Nice, that's pretty smart...I will try it tonight!
Last edited by Olenn : 09-29-2010 at 07:23 PM.
|
10-01-2010, 11:22 PM
|
|
The Undying
|
|
Join Date: Sep 2010
Posts: 47
|
|
@DU
Not sure why this isn't working... can you take a look at it when you get a sec?
The code in question is in the second block of code under ----LOCK WINDOW----
Code:
import "Turbine";
import "Turbine.Gameplay";
import "Turbine.UI";
import "Turbine.UI.Extensions";
import "Turbine.UI.Lotro";
import "Turbine.Utils";
import "Olenn.Satchel"
import "Olenn.DUInterface";
import "Olenn.Utilsx";
---Big thanks to Digital_Utopia for use of his code!
SetupWindow = class(Olenn.DUInterface.Window );
function SetupWindow:Constructor()
Olenn.DUInterface.Window.Constructor( self,380,225 );
----PREVENT MULTIPLE COPIES OF THIS WINDOW----
if ( self.window ~= nil ) then
return;
end
self:SetPosition((Turbine.UI.Display.GetWidth() / 2) - (self:GetWidth() / 2), (Turbine.UI.Display.GetHeight() / 2 ) - (self:GetHeight()));
self.tbHolder:SetWidth(255);
self.tbRight:SetPosition(self.tbHolder:GetWidth()-35,0)
self.tbHolder:SetLeft((self:GetWidth() - self.tbHolder:GetWidth())/2);
self.tbCenter:SetSize(self.tbHolder:GetWidth()-70,42);
self.tbCenter:SetPosition(self.tbLeft:GetLeft()+35,0)
self.bg:SetSize(325, 180);
self.text:SetText("Satchel Options");
self.text:SetWidth(self.tbHolder:GetWidth());
self.text:SetHeight(20);
self.text:SetLeft(-35);
self.text:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleCenter);
self.clButton:SetPosition(self:GetWidth()-23,24)
self.tw=Turbine.UI.Window();
self.tw:SetParent(self);
self.tw:SetSize(400,534);
self.tw:SetPosition(0,0);
self.tw:SetMouseVisible(false);
self.sp=Turbine.UI.ListBox();
self.sp:SetParent(self.tw);
self.sp:SetPosition(12,65);
self.sp:SetSize(356,448);
self.sp:SetOrientation( Turbine.UI.Orientation.Horizontal );
self.sp:SetMaxItemsPerLine(1);
self.sp:SetBackColorBlendMode(0);
self.sp:SetBlendMode(4);
----BOTTOM BUTTONS----
self.defSettings=Turbine.UI.Lotro.Button();
self.defSettings:SetParent(self.tw);
self.defSettings:SetSize(128,20);
self.defSettings:SetText("Default Settings");
self.defSettings:SetPosition(41, 190);
self.accSettings=Turbine.UI.Lotro.Button();
self.accSettings:SetParent(self.tw);
self.accSettings:SetSize(128,20);
self.accSettings:SetText("Accept");
self.accSettings:SetPosition(215,190);
----SATCHEL LOCKED CHECK BOX----
self.sp:AddItem(self.hdr);
self.sicHolder=Turbine.UI.Control();
self.sicHolder:SetSize(280,30);
self.locked = Olenn.DUInterface.CheckBox();
self.locked:SetChecked(false);
self.locked:SetText("Satchel locked");
self.locked:SetParent(self.sicHolder);
self.locked:SetPosition(-112,0);
self.sp:AddItem(self.sicHolder);
----SETTINGS SCOPE----
self.acHolder=Turbine.UI.Control();
self.acHolder:SetSize(400,30);
self.ac = Olenn.DUInterface.DropDownBox({"Account","Character","Server"});
self.ac:SetParent(self.acHolder);
self.ac:SetPosition(160,0);
self.acPanel = Turbine.UI.Window();
self.acPanel:SetParent(self.sp);
self.acPanel:SetPosition(0,0);
self.acPanel:SetSize(480,448);
self.acPanel:SetZOrder(99);
self.acPanel:SetVisible(false);
self.acLb = self.ac.listBox;
self.acLb:SetParent(self.acPanel);
self.acLb:SetZOrder(99);
self.acLb:SetBlendMode(0);
self.acLb:SetBackColorBlendMode(0);
self.acLb:SetPosition(200,200);
self.acLabel=Turbine.UI.Label();
self.acLabel:SetParent(self.acHolder);
self.acLabel:SetPosition(-34,0);
self.acLabel:SetSize(200,20);
self.acLabel:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleCenter);
self.acLabel:SetFont(Turbine.UI.Lotro.Font.TrajanPro14);
self.acLabel:SetForeColor(Turbine.UI.Color(1,0.96,0.874,0.576));
self.acLabel:SetText("Settings Scope");
self.sp:AddItem(self.acHolder);
----OPACITY SLIDER----
self.voHolder = Turbine.UI.Control();
self.voHolder:SetSize(335,45);
self.voSld = Olenn.DUInterface.Slider();
self.voSld:SetParent(self.voHolder);
self.voSld:SetLeft(20);
self.voSld:SetText("Opacity");
self.sp:AddItem(self.voHolder);
self.bpHolder = Turbine.UI.Control();
self.bpHolder:SetSize(335,45);
self.txHolder = Turbine.UI.Control();
self.txHolder:SetSize(400,45);
self.acPanel.MouseClick=function(sender,args)
self.ac.Close();
self.acPanel:SetVisible(false);
end
self.ac.Opening =function()
self.acPanel:SetVisible(true);
tl,tt=self.acHolder:PointToScreen(self.acHolder:GetPosition());
self.acLb:SetPosition(246,self.acHolder:GetTop()+21);
end
self.showSetup = function()
end
self.closeSetup = function()
end
end
Code:
import "Turbine";
import "Turbine.Gameplay";
import "Turbine.UI";
import "Turbine.UI.Extensions";
import "Turbine.UI.Lotro";
import "Turbine.Utils";
import "Olenn.Satchel"
SatchelWindow = class( Turbine.UI.Window );
SetupWindow = Olenn.Satchel.SetupWindow();
function SatchelWindow:Constructor()
----CREATE THE WINDOW----
Turbine.UI.Lotro.Window.Constructor( self );
self:SetText("Satchel");
self:SetSize( 325, 300 );
----LOAD PRIOR SIZE & POSITION----
self.Data = Turbine.PluginData.Load( Turbine.DataScope.Character, "Satchel")
if (self.Data==nil)then
self.Data = { };
self.Data.x = Turbine.UI.Display.GetWidth() - 400;
self.Data.y = Turbine.UI.Display.GetHeight() - 300;
self.Data.sx = 325;
self.Data.sy = 300;
self:SetPosition(self.Data.x,self.Data.y);
self:GetSize(self.Data.sx,self.Data.sy);
else
self:SetPosition(self.Data.x,self.Data.y)
self:SetSize(self.Data.sx,self.Data.sy)
end
----SATCHEL SAVES SIZE & POSITION IF MOVED----
self.PositionChanged=function(sender,args)
self.Data.x,self.Data.y=self:GetPosition()
self.Data.sx,self.Data.sy=self:GetSize()
Turbine.PluginData.Save( Turbine.DataScope.Character, "Satchel", self.Data );
end
----SATCHEL CLOSES WHEN ESC IS PRESSED----
self:SetWantsKeyEvents( true );
self.KeyDown = function( sender, args )
if ( args.Action == Turbine.UI.Lotro.Action.Escape ) then
sender:SetVisible( false )
end
----MAKE BAG BUTTONS ON THE TOOLBAR OPEN SATCHEL----
if ( args.Action == Turbine.UI.Lotro.Action.ToggleBags or
args.Action == Turbine.UI.Lotro.Action.ToggleBag1 or
args.Action == Turbine.UI.Lotro.Action.ToggleBag2 or
args.Action == Turbine.UI.Lotro.Action.ToggleBag3 or
args.Action == Turbine.UI.Lotro.Action.ToggleBag4 or
args.Action == Turbine.UI.Lotro.Action.ToggleBag5 )
then
sender:SetVisible( not sender:IsVisible() )
end
end
local satchel = self;
local mainWindow = self;
self.itemListBoxScrollBar = Turbine.UI.Lotro.ScrollBar();
self.itemListBoxScrollBar:SetOrientation( Turbine.UI.Orientation.Vertical );
self.itemListBoxScrollBar:SetParent( self );
self.itemListBox = Turbine.UI.ListBox();
self.itemListBox:SetParent( self );
self.itemListBox:SetOrientation( Turbine.UI.Orientation.Horizontal );
self.itemListBox:SetVerticalScrollBar( self.itemListBoxScrollBar );
self.itemListBox:SetAllowDrop( true );
self.itemListBox.DragDrop = function( sender, args )
local shortcut = args.DragDropInfo:GetShortcut();
if ( shortcut ~= nil ) then
local destinationItemControl = self.itemListBox:GetItemAt( args.X, args.Y );
local destinationIndex = self.itemListBox:IndexOfItem( destinationItemControl );
self.backpack:PerformShortcutDrop( shortcut, destinationIndex, Turbine.UI.Control.IsShiftKeyDown() );
end
end
----MAKE WINDOW RESIZABLE----
self.resizeHandle = Turbine.UI.Control();
self.resizeHandle:SetParent( self );
self.resizeHandle:SetZOrder( 100 );
self.resizeHandle:SetSize( 20, 20 );
self.resizeHandle:SetPosition( self:GetWidth() - self.resizeHandle:GetWidth(), self:GetHeight() - self.resizeHandle:GetHeight() );
self.resizeHandle.MouseDown = function( sender, args )
sender.dragStartX = args.X;
sender.dragStartY = args.Y;
sender.dragging = true;
end
self.resizeHandle.MouseMove = function( sender, args )
local width, height = mainWindow:GetSize();
if ( sender.dragging ) then
mainWindow:SetSize( width + ( args.X - sender.dragStartX ), height + ( args.Y - sender.dragStartY ) );
sender:SetPosition( mainWindow:GetWidth() - sender:GetWidth(), mainWindow:GetHeight() - sender:GetHeight() )
satchel:PerformLayout()
end
end
self.resizeHandle.MouseUp = function( sender, args )
if (sender.dragging) then
self.Data.x, self.Data.y = self:GetPosition();
end
sender.dragging = false;
end
----CREATE CONAINER FOR ITEMS----
self.items = { };
local player = Turbine.Gameplay.LocalPlayer();
self.backpack = player:GetBackpack();
self.backpack.SizeChanged = function( sender, args )
satchel:Refresh();
end
self.backpack.ItemAdded = function( sender, args )
satchel.items[args.Index]:SetItem( satchel.backpack:GetItem( args.Index ) );
end
self.backpack.ItemRemoved = function( sender, args )
satchel.items[args.Index]:SetItem( satchel.backpack:GetItem( args.Index ) );
end
self.backpack.ItemMoved = function( sender, args )
satchel.items[args.OldIndex]:SetItem( satchel.backpack:GetItem( args.OldIndex ) );
satchel.items[args.NewIndex]:SetItem( satchel.backpack:GetItem( args.NewIndex ) );
end
self:Refresh();
----CREATE SETTINGS BUTTON----
self.settingsButton = Turbine.UI.Lotro.Button();
self.settingsButton:SetParent( self );
self.settingsButton:SetSize(70,30);
self.settingsButton:SetPosition(34, 37);
self.settingsButton:SetFont(Turbine.UI.Lotro.Font.Verdana14);
self.settingsButton:SetText("Settings");
self.settingsButton.Click = function(sender, args)
SetupWindow:SetVisible( not SetupWindow:IsVisible() );
end
----LOCK WINDOW----
if ( SetupWindow.locked:IsChecked(true) ) then
moveBlocker = Turbine.UI.Control()
moveBlocker:SetParent(self);
moveBlocker:SetSize(329,40) -- size it so it's about the same size as the title bar
moveBlocker:SetPosition(-10,0) -- position it above the title bar
end
end
----FUNCTION TO REFRESH BAG CONTENTS----
function SatchelWindow:Refresh()
local backpackSize = self.backpack:GetSize();
for i = 1, backpackSize, 1 do
if ( self.items[i] ) then
self.items[i]:SetParent( nil );
end
self.items[i] = Turbine.UI.Lotro.ItemControl( self.backpack:GetItem( i ) );
self.itemListBox:AddItem( self.items[i] );
end
self:PerformLayout();
end
function SatchelWindow:PerformLayout()
self:Layout( { } )
end
function SatchelWindow:Layout( args )
local width, height = self:GetSize();
local itemWidth = 40;
if ( self.items[1] ~= nil ) then
itemWidth = self.items[1]:GetWidth()
end
local listWidth = width - 40;
local listHeight = height - 75;
local itemsPerRow = listWidth / itemWidth;
self.itemListBox:SetPosition( 15, 60 );
self.itemListBox:SetSize( listWidth, listHeight );
self.itemListBox:SetMaxItemsPerLine( itemsPerRow );
self.itemListBoxScrollBar:SetPosition( width - 25, 55 );
self.itemListBoxScrollBar:SetSize( 10, listHeight );
end
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -5. The time now is 09:52 AM.
|
|