private void RenderDynamicRemoteGear()
        {
            try
            {

                if(DynamicGearRemoteView != null)
                {
                    DisposeDynamicRemote();
                }

                AssembleDGRControls();

                int DGRViewHeight = 35 + 35 * DGRControlsList.Count + 35 + 10;

                DynamicGearRemoteView = new HudView("", 35, DGRViewHeight, GearGraphics.RemoteGearIcon, false, "RemoteGear");
                DynamicGearRemoteView.ShowInBar = false;
                DynamicGearRemoteView.UserAlphaChangeable = false;
                DynamicGearRemoteView.Visible = true;
                DynamicGearRemoteView.UserClickThroughable = false;
                DynamicGearRemoteView.UserGhostable = true;
                DynamicGearRemoteView.UserMinimizable = false;
                DynamicGearRemoteView.UserResizeable = false;
                DynamicGearRemoteView.LoadUserSettings();

                DynamicGearRemoteTabView = new HudTabView();
                DynamicGearRemoteView.Controls.HeadControl = DynamicGearRemoteTabView;

                DynamicGearRemoteLayout = new HudFixedLayout();
                DynamicGearRemoteTabView.AddTab(DynamicGearRemoteLayout, "");

                DynamicGearRemoteClock = new HudStaticText();
                DynamicGearRemoteLayout.AddControl(DynamicGearRemoteClock, new Rectangle(0,4,30,16));
                DynamicGearRemoteClock.FontHeight = 8;

                SecondsTimer.Tick += DynamicGearClock;

                for(int i = 0; i < DGRControlsList.Count; i++)
                {
                    DynamicGearRemoteLayout.AddControl(DGRControlsList[i].ControlPictureBox, new Rectangle(2, 35 + 35 * i, 25,25));
                    VirindiViewService.TooltipSystem.AssociateTooltip(DGRControlsList[i].ControlPictureBox, DGRControlsList[i].ToolTipName);
                }

                DynamicRemoteFoundryButton = new HudImageButton();
                DynamicRemoteFoundryButton.CanSticky = true;
                DynamicRemoteFoundryButton.Image_Down = CreateIconFromResource("FoundryOn.gif");
                DynamicRemoteFoundryButton.Image_Up = CreateIconFromResource("FoundryOff.gif");
                DynamicRemoteFoundryButton.Image_Background = GearGraphics.GB_BACKGROUND;
                DynamicGearRemoteLayout.AddControl(DynamicRemoteFoundryButton, new Rectangle(2,35 + 35 * DGRControlsList.Count, 25, 25));
                if(mGeneralSettings.FoundrySettings.FoundyEnabled)  {DynamicRemoteFoundryButton.StickyDown = true;}
                DynamicRemoteFoundryButton.StickyDownStateChanged += DynamicRemoteFoundryButton_Hit;

            }catch(Exception ex){LogError(ex);}
        }
Exemple #2
0
 public void AddButton(HudImageButton button, System.Drawing.Rectangle rect)
 {
     popoutTempLayout.AddControl(button, rect);
 }
        public void RenderButlerHud()
        {
            try
            {
                if(ButlerHudView != null)
                {
                    DisposeButlerHud();
                }

                ButlerHudView = new HudView("GearButler", mGeneralSettings.GearWindowSettings.ButlerHudWidth, mGeneralSettings.GearWindowSettings.ButlerHudHeight, new ACImage(0x6AA3));
                ButlerHudView.UserAlphaChangeable = false;
                ButlerHudView.ShowInBar = false;
                ButlerHudView.Visible = true;
                ButlerHudView.UserClickThroughable = false;
                ButlerHudView.UserMinimizable = true;
                ButlerHudView.UserResizeable = true;
                ButlerHudView.LoadUserSettings();

                ButlerHudTabView = new HudTabView();
                ButlerHudView.Controls.HeadControl = ButlerHudTabView;

                //ButlerTab
                ButlerHudTabLayout = new HudFixedLayout();
                ButlerHudTabView.AddTab(ButlerHudTabLayout, "Butler");

                ButlerHudCurrentSelectionLabel = new HudStaticText();
                ButlerHudCurrentSelectionLabel.Text = "Current Selection";
                ButlerHudCurrentSelectionLabel.TextAlignment = VirindiViewService.WriteTextFormats.Center;
                ButlerHudTabLayout.AddControl(ButlerHudCurrentSelectionLabel, new Rectangle(75, 0, 150, 16));

                ButlerHudUseCurrentSelection = new HudButton();
                ButlerHudUseCurrentSelection.Text = "Use";
                ButlerHudTabLayout.AddControl(ButlerHudUseCurrentSelection, new Rectangle(5,5,50,20));

                ButlerHudDestoryCurrentSelection = new HudButton();
                ButlerHudDestoryCurrentSelection.Text = "Destroy";
                ButlerHudTabLayout.AddControl(ButlerHudDestoryCurrentSelection, new Rectangle(245,5,50,20));

                ButlerHudSalvageCurrentSelection = new HudButton();
                ButlerHudSalvageCurrentSelection.Text = "Salvage";
                ButlerHudTabLayout.AddControl(ButlerHudSalvageCurrentSelection, new Rectangle(245,30,50,20));

                if(AetherCharacter.IsSkillTrainedOrSpec(ASkillKeyValues.Lockpick))
                {
                    ButlerHudPickCurrentSelection = new HudButton();
                    ButlerHudPickCurrentSelection.Text = "Pick";
                    ButlerHudTabLayout.AddControl(ButlerHudPickCurrentSelection, new Rectangle(5,30,50,20));
                }

                ButlerHudCurrentSelectionIcon = new HudImageStack();
                ButlerHudTabLayout.AddControl(ButlerHudCurrentSelectionIcon, new Rectangle(135,20,30,30));

                ButlerHudCurrentSelectionText = new HudStaticText();
                ButlerHudCurrentSelectionText.Text = null;
                ButlerHudCurrentSelectionText.TextAlignment = VirindiViewService.WriteTextFormats.Center;
                ButlerHudTabLayout.AddControl(ButlerHudCurrentSelectionText, new Rectangle(0,50,300,16));

                ButlerHudSearchBox = new HudTextBox();
                ButlerHudSearchBox.Text = String.Empty;
                ButlerHudTabLayout.AddControl(ButlerHudSearchBox, new Rectangle(0,80,200,20));

                ButlerHudSearchButton = new HudButton();
                ButlerHudSearchButton.Text = "Search";
                ButlerHudTabLayout.AddControl(ButlerHudSearchButton, new Rectangle(205,80,40,20));

                ButlerHudClearSearchButton = new HudButton();
                ButlerHudClearSearchButton.Text = "Reset";
                ButlerHudTabLayout.AddControl(ButlerHudClearSearchButton, new Rectangle(250,80,40,20));

                ButlerQuickSortLabel = new HudStaticText();
                ButlerQuickSortLabel.FontHeight = 8;
                ButlerQuickSortLabel.Text = "QSort:";
                ButlerHudTabLayout.AddControl(ButlerQuickSortLabel, new Rectangle(0,110,30,16));

                ButlerQuickSortEquipped = new HudImageButton();
                ButlerQuickSortEquipped.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortEquipped.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortEquipped.Image_Up = GearGraphics.GB_EQUIPPED_ICON;
                ButlerQuickSortEquipped.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortEquipped, new Rectangle(40,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortEquipped, "Equipped");

                ButlerQuickSortUnequipped = new HudImageButton();
                ButlerQuickSortUnequipped.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortUnequipped.Image_Up = GearGraphics.GB_MAIN_PACK_ICON;
                ButlerQuickSortUnequipped.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortUnequipped.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortUnequipped, new Rectangle(60,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortUnequipped, "Unequipped");

                ButlerQuickSortStorage = new HudImageButton();
                ButlerQuickSortStorage.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortStorage.Image_Up = GearGraphics.GB_STORE_ICON;
                ButlerQuickSortStorage.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortStorage.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortStorage, new Rectangle(80,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortStorage, "Open Storage");

                ButlerQuickSortMelee = new HudImageButton();
                ButlerQuickSortMelee.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortMelee.Image_Up = GearGraphics.GB_MELEE_ICON;
                ButlerQuickSortMelee.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortMelee.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortMelee, new Rectangle(100,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortMelee, "Melee Weapons");

                ButlerQuickSortMissile = new HudImageButton();
                ButlerQuickSortMissile.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortMissile.Image_Up = GearGraphics.GB_MISSILE_ICON;
                ButlerQuickSortMissile.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortMissile.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortMissile, new Rectangle(120,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortMissile, "Missile Weapons");

                ButlerQuickSortCaster = new HudImageButton();
                ButlerQuickSortCaster.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortCaster.Image_Up = GearGraphics.GB_CASTER_ICON;
                ButlerQuickSortCaster.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortCaster.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortCaster, new Rectangle(140,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortCaster, "Magical Casters");

                ButlerQuickSortArmor = new HudImageButton();
                ButlerQuickSortArmor.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortArmor.Image_Up = GearGraphics.GB_ARMOR_ICON;
                ButlerQuickSortArmor.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortArmor.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortArmor, new Rectangle(160,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortArmor, "Armor");

                ButlerQuickSortKeys = new HudImageButton();
                ButlerQuickSortKeys.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortKeys.Image_Up = GearGraphics.GB_KEY_ICON;
                ButlerQuickSortKeys.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortKeys.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortKeys, new Rectangle(180,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortKeys, "Keys");

                ButlerQuickSortKeyrings = new HudImageButton();
                ButlerQuickSortKeyrings.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortKeyrings.Image_Up = GearGraphics.GB_KEYRING_ICON;
                ButlerQuickSortKeyrings.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortKeyrings.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortKeyrings, new Rectangle(200,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortKeyrings, "Keyrings");

                ButlerQuickSortLockpicks = new HudImageButton();
                ButlerQuickSortLockpicks.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortLockpicks.Image_Up = GearGraphics.GB_LOCKPICK_ICON;
                ButlerQuickSortLockpicks.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortLockpicks.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortLockpicks, new Rectangle(220,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortLockpicks, "Lockpicks");

                ButlerQuickSortManastones = new HudImageButton();
                ButlerQuickSortManastones.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortManastones.Image_Up = GearGraphics.GB_MANASTONE_ICON;
                ButlerQuickSortManastones.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortManastones.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortManastones, new Rectangle(240,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortManastones, "Mana Stones");

                ButlerQuickSortHealKit = new HudImageButton();
                ButlerQuickSortHealKit.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortHealKit.Image_Up = GearGraphics.GB_HEALKIT_ICON;
                ButlerQuickSortHealKit.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortHealKit.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortHealKit, new Rectangle(260,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortHealKit, "Healing Kits");

                ButlerQuickSortPotion = new HudImageButton();
                ButlerQuickSortPotion.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortPotion.Image_Up = GearGraphics.GB_POTION_ICON;
                ButlerQuickSortPotion.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortPotion.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortPotion, new Rectangle(280,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortPotion, "Potions");

                ButlerHudList = new HudList();
                ButlerHudList.ControlHeight = 16;
                ButlerHudList.AddColumn(typeof(HudPictureBox), 15, null);
                ButlerHudList.AddColumn(typeof(HudStaticText), 175, null);
                ButlerHudList.AddColumn(typeof(HudPictureBox), 15, null);
                ButlerHudList.AddColumn(typeof(HudPictureBox), 15, null);
                ButlerHudList.AddColumn(typeof(HudPictureBox), 15, null);
                ButlerHudList.AddColumn(typeof(HudPictureBox), 15, null);
                ButlerHudList.AddColumn(typeof(HudStaticText), 1, null);
                ButlerHudTabLayout.AddControl(ButlerHudList, new Rectangle(0, 150, 300, mGeneralSettings.GearWindowSettings.ButlerHudHeight - 220));

                ButlerHudSelectedLabel = new HudStaticText();
                ButlerHudSelectedLabel.Text = "Items Selected: ";
                ButlerHudSelectedCount = new HudStaticText();
                ButlerHudTabLayout.AddControl(ButlerHudSelectedLabel, new Rectangle(0,mGeneralSettings.GearWindowSettings.ButlerHudHeight - 70,100,16));
                ButlerHudTabLayout.AddControl(ButlerHudSelectedCount, new Rectangle(110,mGeneralSettings.GearWindowSettings.ButlerHudHeight - 70,150,16));

                ButlerPackSpacesAvailable = new HudStaticText();
                ButlerPackSpaceAvailableLabel = new HudStaticText();
                ButlerPackSpaceAvailableLabel.Text = "Inventory status: ";
                ButlerHudTabLayout.AddControl(ButlerPackSpaceAvailableLabel, new Rectangle(0,mGeneralSettings.GearWindowSettings.ButlerHudHeight - 50 ,100,16));
                ButlerHudTabLayout.AddControl(ButlerPackSpacesAvailable, new Rectangle(110, mGeneralSettings.GearWindowSettings.ButlerHudHeight - 50 ,150,16));

                ButlerBurdenLabel = new HudStaticText();
                ButlerBurdenLabel.Text = "Current Burden: ";
                ButlerBurden = new HudStaticText();
                ButlerHudTabLayout.AddControl(ButlerBurdenLabel, new Rectangle(0, mGeneralSettings.GearWindowSettings.ButlerHudHeight - 30, 100, 16));
                ButlerHudTabLayout.AddControl(ButlerBurden, new Rectangle(110, mGeneralSettings.GearWindowSettings.ButlerHudHeight - 30, 150, 16));

                if(ButlerHudPickCurrentSelection != null) {ButlerHudPickCurrentSelection.Hit += ButlerHudPickCurrentSelection_Hit;}
                ButlerHudUseCurrentSelection.Hit += ButlerHudUseCurrentSelection_Hit;
                ButlerHudDestoryCurrentSelection.Hit += ButlerHudDestoryCurrenSelection_Hit;
                ButlerHudSalvageCurrentSelection.Hit += ButlerHudSalvageCurrentSelection_Hit;

                ButlerQuickSortEquipped.StickyDownStateChanged += ButlerQuickSortEquipped_Hit;
                ButlerQuickSortUnequipped.StickyDownStateChanged += ButlerQuickSortUnequipped_Hit;
                ButlerQuickSortStorage.StickyDownStateChanged += ButlerQuickSortStorage_Hit;
                ButlerQuickSortMelee.StickyDownStateChanged += ButlerQuickSortMelee_Hit;
                ButlerQuickSortMissile.StickyDownStateChanged += ButlerQuickSortMissile_Hit;
                ButlerQuickSortCaster.StickyDownStateChanged += ButlerQuickSortCaster_Hit;
                ButlerQuickSortArmor.StickyDownStateChanged += ButlerQuickSortArmor_Hit;
                ButlerQuickSortKeys.StickyDownStateChanged += ButlerQuickSortKeys_Hit;
                ButlerQuickSortKeyrings.StickyDownStateChanged += ButlerQuickSortKeyrings_Hit;
                ButlerQuickSortLockpicks.StickyDownStateChanged += ButlerQuickSortLockpicks_Hit;
                ButlerQuickSortManastones.StickyDownStateChanged += ButlerQuickSortManastones_Hit;
                ButlerQuickSortHealKit.StickyDownStateChanged += ButlerQuickSortHealKit_Hit;
                ButlerQuickSortPotion.StickyDownStateChanged += ButlerQuickSortPotion_Hit;

                ButlerHudList.Click += ButlerHudList_Click;
                ButlerHudSearchButton.Hit += ButlerHudSearchButton_Click;
                ButlerHudClearSearchButton.Hit += ButlerHudClearSearchButton_Click;

                //ValetTab
                ValetTabLayout = new HudFixedLayout();
                ButlerHudTabView.AddTab(ValetTabLayout, "Valet");

                int Half = Convert.ToInt32((double)mGeneralSettings.GearWindowSettings.ButlerHudWidth/(double)2);
                int HalfButton = Convert.ToInt32((double)mGeneralSettings.GearWindowSettings.ButlerHudWidth/(double)2) - 20;

                ValetEquipSuit = new HudButton();
                ValetEquipSuit.Text = "Equip";
                ValetTabLayout.AddControl(ValetEquipSuit, new Rectangle(5,5,HalfButton,20));

                ValetCreateSuit = new HudButton();
                ValetCreateSuit.Text = "Create";
                ValetTabLayout.AddControl(ValetCreateSuit, new Rectangle(Half + 5, 5, HalfButton,20));

                ValetTextBoxLabel = new HudStaticText();
                ValetTextBoxLabel.Text = "Suit Label:";
                ValetTabLayout.AddControl(ValetTextBoxLabel, new Rectangle(0,30,50,16));

                ValetNameBox = new HudTextBox();
                ValetNameBox.Text = String.Empty;
                ValetTabLayout.AddControl(ValetNameBox, new Rectangle(10,55,mGeneralSettings.GearWindowSettings.ButlerHudWidth -20, 20));

                ValetSlotsLabel = new HudStaticText();
                ValetSlotsLabel.Text = "Slots in rotation:";
                ValetTabLayout.AddControl(ValetSlotsLabel, new Rectangle(5,80,150,16));

                ValetSlotsList = new HudList();
                ValetSlotsList.AddColumn(typeof(HudCheckBox), 15, null);
                ValetSlotsList.AddColumn(typeof(HudStaticText), 150, null);
                ValetSlotsList.AddColumn(typeof(HudStaticText), 1, null);
                ValetTabLayout.AddControl(ValetSlotsList, new Rectangle(5,100,mGeneralSettings.GearWindowSettings.ButlerHudWidth - 20, 100));

                ValetSuitListLabel = new HudStaticText();
                ValetSuitListLabel.Text = "Suits:";
                ValetTabLayout.AddControl(ValetSuitListLabel, new Rectangle(0,210,50,16));

                ValetSuitList = new HudList();
                ValetSuitList.AddColumn(typeof(HudPictureBox), 15, null);
                ValetSuitList.AddColumn(typeof(HudStaticText), mGeneralSettings.GearWindowSettings.ButlerHudWidth - 80, null);
                ValetSuitList.AddColumn(typeof(HudPictureBox), 15, null);
                ValetSuitList.AddColumn(typeof(HudStaticText), 1, null);
                ValetTabLayout.AddControl(ValetSuitList, new Rectangle(0,230,mGeneralSettings.GearWindowSettings.ButlerHudWidth - 20,100));

                ValetSuitPiecesListLabel = new HudStaticText();
                ValetSuitPiecesListLabel.Text = "Pieces:";
                ValetTabLayout.AddControl(ValetSuitPiecesListLabel, new Rectangle(0,340,50,16));

                ValetSuitPiecesList = new HudList();
                ValetSuitPiecesList.AddColumn(typeof(HudPictureBox), 15, null);
                ValetSuitPiecesList.AddColumn(typeof(HudStaticText), 15, null);
                ValetSuitPiecesList.AddColumn(typeof(HudStaticText), mGeneralSettings.GearWindowSettings.ButlerHudWidth - 104, null);
                ValetSuitPiecesList.AddColumn(typeof(HudPictureBox), 15, null);
                ValetSuitPiecesList.AddColumn(typeof(HudStaticText), 1, null);
                ValetTabLayout.AddControl(ValetSuitPiecesList, new Rectangle(0, 360 ,mGeneralSettings.GearWindowSettings.ButlerHudWidth - 20,100));

                ValetSlotsList.Click += ValetSlotsList_Click;
                ValetEquipSuit.Hit += ValetEquipSuit_Hit;
                ValetCreateSuit.Hit += ValetCreateSuit_Hit;
                ValetSuitList.Click += ValetSuitList_Click;
                ValetSuitPiecesList.Click += ValetSuitPiecesList_Click;

                AugvisorTabLayout = new HudFixedLayout();
                ButlerHudTabView.AddTab(AugvisorTabLayout, "Augvisor");

                AugvisorHudList = new HudList();
                AugvisorHudList.ControlHeight = 16;
                AugvisorHudList.AddColumn(typeof(HudStaticText), 50, null);
                AugvisorHudList.AddColumn(typeof(HudStaticText), 200, null);
                AugvisorTabLayout.AddControl(AugvisorHudList, new Rectangle(0, 0, 300, mGeneralSettings.GearWindowSettings.ButlerHudHeight));

                ButlerHudView.Resize += ButlerHudView_Resize;
                ButlerHudView.VisibleChanged += ButlerHudView_VisibleChanged;

                UpdateButlerHudList();
                UpdateValetHud();
                UpdateAugvisor();

            }catch(Exception ex) {LogError(ex);}
            return;
        }
Exemple #4
0
        public void RenderButlerHud()
        {
            try
            {
                if(ButlerHudView != null)
                {
                    DisposeButlerHud();
                }

                ButlerHudView = new HudView("GearButler", GearButlerSettings.ButlerHudWidth, GearButlerSettings.ButlerHudHeight, new ACImage(0x6AA3));
                ButlerHudView.UserAlphaChangeable = false;
                ButlerHudView.ShowInBar = false;
                ButlerHudView.Visible = true;
                ButlerHudView.UserClickThroughable = false;
                ButlerHudView.UserMinimizable = true;
                ButlerHudView.UserResizeable = true;
                ButlerHudView.LoadUserSettings();

                ButlerHudTabView = new HudTabView();
                ButlerHudView.Controls.HeadControl = ButlerHudTabView;

                //ButlerTab
                ButlerHudTabLayout = new HudFixedLayout();
                ButlerHudTabView.AddTab(ButlerHudTabLayout, "Butler");

                ButlerHudCurrentSelectionLabel = new HudStaticText();
                ButlerHudCurrentSelectionLabel.FontHeight = nmenuFontHeight;
                ButlerHudCurrentSelectionLabel.Text = "Current Selection";
                ButlerHudCurrentSelectionLabel.TextAlignment = VirindiViewService.WriteTextFormats.Center;
                ButlerHudTabLayout.AddControl(ButlerHudCurrentSelectionLabel, new Rectangle(75, 0, 150, 16));

                ButlerHudUseCurrentSelection = new HudButton();
                ButlerHudUseCurrentSelection.Text = "Use";
                ButlerHudTabLayout.AddControl(ButlerHudUseCurrentSelection, new Rectangle(5,5,50,20));

                ButlerHudDestoryCurrentSelection = new HudButton();
                ButlerHudDestoryCurrentSelection.Text = "Destroy";
                ButlerHudTabLayout.AddControl(ButlerHudDestoryCurrentSelection, new Rectangle(245,5,50,20));

                ButlerHudSalvageCurrentSelection = new HudButton();
                ButlerHudSalvageCurrentSelection.Text = "Salvage";
                ButlerHudTabLayout.AddControl(ButlerHudSalvageCurrentSelection, new Rectangle(245,30,50,20));

                try
                {
                    Decal.Interop.Filters.SkillInfo lockpickinfo = Core.CharacterFilter.Underlying.get_Skill((Decal.Interop.Filters.eSkillID)0x17);

                    if(lockpickinfo.Training.ToString() == "eTrainSpecialized" || lockpickinfo.Training.ToString() == "eTrainTrained")
                    {
                        ButlerHudPickCurrentSelection = new HudButton();
                        ButlerHudPickCurrentSelection.Text = "Pick";
                        ButlerHudTabLayout.AddControl(ButlerHudPickCurrentSelection, new Rectangle(5,30,50,20));
                    }
                }catch(Exception ex){LogError(ex);}

                ButlerHudCurrentSelectionIcon = new HudImageStack();
                ButlerHudTabLayout.AddControl(ButlerHudCurrentSelectionIcon, new Rectangle(135,20,30,30));

                ButlerHudCurrentSelectionText = new HudStaticText();
                ButlerHudCurrentSelectionText.FontHeight = nmenuFontHeight;
                ButlerHudCurrentSelectionText.Text = null;
                ButlerHudCurrentSelectionText.TextAlignment = VirindiViewService.WriteTextFormats.Center;
                ButlerHudTabLayout.AddControl(ButlerHudCurrentSelectionText, new Rectangle(0,50,300,16));

                ButlerHudSearchBox = new HudTextBox();
                ButlerHudSearchBox.Text = String.Empty;
                ButlerHudTabLayout.AddControl(ButlerHudSearchBox, new Rectangle(0,80,200,20));

                ButlerHudSearchButton = new HudButton();
                ButlerHudSearchButton.Text = "Search";
                ButlerHudTabLayout.AddControl(ButlerHudSearchButton, new Rectangle(205,80,40,20));

                ButlerHudClearSearchButton = new HudButton();
                ButlerHudClearSearchButton.Text = "Reset";
                ButlerHudTabLayout.AddControl(ButlerHudClearSearchButton, new Rectangle(250,80,40,20));

                ButlerQuickSortLabel = new HudStaticText();
                ButlerQuickSortLabel.FontHeight = 8;
                ButlerQuickSortLabel.Text = "QSort:";
                ButlerHudTabLayout.AddControl(ButlerQuickSortLabel, new Rectangle(0,110,30,16));

                ButlerQuickSortEquipped = new HudImageButton();
                ButlerQuickSortEquipped.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortEquipped.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortEquipped.Image_Up = GearGraphics.GB_EQUIPPED_ICON;
                ButlerQuickSortEquipped.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortEquipped, new Rectangle(40,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortEquipped, "Equipped");

                ButlerQuickSortUnequipped = new HudImageButton();
                ButlerQuickSortUnequipped.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortUnequipped.Image_Up = GearGraphics.GB_UNEQUIPPED_ICON;
                ButlerQuickSortUnequipped.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortUnequipped.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortUnequipped, new Rectangle(60,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortUnequipped, "Unequipped");

                ButlerQuickSortMelee = new HudImageButton();
                ButlerQuickSortMelee.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortMelee.Image_Up = GearGraphics.GB_MELEE_ICON;
                ButlerQuickSortMelee.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortMelee.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortMelee, new Rectangle(100,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortMelee, "Melee Weapons");

                ButlerQuickSortMissile = new HudImageButton();
                ButlerQuickSortMissile.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortMissile.Image_Up = GearGraphics.GB_MISSILE_ICON;
                ButlerQuickSortMissile.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortMissile.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortMissile, new Rectangle(120,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortMissile, "Missile Weapons");

                ButlerQuickSortCaster = new HudImageButton();
                ButlerQuickSortCaster.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortCaster.Image_Up = GearGraphics.GB_CASTER_ICON;
                ButlerQuickSortCaster.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortCaster.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortCaster, new Rectangle(140,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortCaster, "Magical Casters");

                ButlerQuickSortArmor = new HudImageButton();
                ButlerQuickSortArmor.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortArmor.Image_Up = GearGraphics.GB_ARMOR_ICON;
                ButlerQuickSortArmor.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortArmor.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortArmor, new Rectangle(160,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortArmor, "Armor");

                ButlerQuickSortKeys = new HudImageButton();
                ButlerQuickSortKeys.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortKeys.Image_Up = GearGraphics.GB_KEY_ICON;
                ButlerQuickSortKeys.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortKeys.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortKeys, new Rectangle(180,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortKeys, "Keys");

                ButlerQuickSortKeyrings = new HudImageButton();
                ButlerQuickSortKeyrings.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortKeyrings.Image_Up = GearGraphics.GB_KEYRING_ICON;
                ButlerQuickSortKeyrings.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortKeyrings.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortKeyrings, new Rectangle(200,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortKeyrings, "Keyrings");

                ButlerQuickSortLockpicks = new HudImageButton();
                ButlerQuickSortLockpicks.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortLockpicks.Image_Up = GearGraphics.GB_LOCKPICK_ICON;
                ButlerQuickSortLockpicks.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortLockpicks.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortLockpicks, new Rectangle(220,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortLockpicks, "Lockpicks");

                ButlerQuickSortManastones = new HudImageButton();
                ButlerQuickSortManastones.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortManastones.Image_Up = GearGraphics.GB_MANASTONE_ICON;
                ButlerQuickSortManastones.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortManastones.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortManastones, new Rectangle(240,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortManastones, "Mana Stones");

                ButlerQuickSortHealKit = new HudImageButton();
                ButlerQuickSortHealKit.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortHealKit.Image_Up = GearGraphics.GB_HEALKIT_ICON;
                ButlerQuickSortHealKit.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortHealKit.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortHealKit, new Rectangle(260,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortHealKit, "Healing Kits");

                ButlerQuickSortPotion = new HudImageButton();
                ButlerQuickSortPotion.Image_Down = GearGraphics.GB_SELECT;
                ButlerQuickSortPotion.Image_Up = GearGraphics.GB_POTION_ICON;
                ButlerQuickSortPotion.Image_Background = GearGraphics.GB_BACKGROUND;
                ButlerQuickSortPotion.CanSticky = true;
                ButlerHudTabLayout.AddControl(ButlerQuickSortPotion, new Rectangle(280,110,16,16));
                VirindiViewService.TooltipSystem.AssociateTooltip(ButlerQuickSortPotion, "Potions");

                ButlerHudList = new HudList();
                ButlerHudList.ControlHeight = 16;
                ButlerHudList.AddColumn(typeof(HudPictureBox), 15, null);
                ButlerHudList.AddColumn(typeof(HudStaticText), 175, null);
                ButlerHudList.AddColumn(typeof(HudPictureBox), 15, null);
                ButlerHudList.AddColumn(typeof(HudPictureBox), 15, null);
                ButlerHudList.AddColumn(typeof(HudPictureBox), 15, null);
                ButlerHudList.AddColumn(typeof(HudPictureBox), 15, null);
                ButlerHudList.AddColumn(typeof(HudStaticText), 1, null);
                ButlerHudTabLayout.AddControl(ButlerHudList, new Rectangle(0, 150, 300, 375));

                ButlerHudSelectedLabel = new HudStaticText();
                ButlerHudSelectedLabel.FontHeight = nmenuFontHeight;
                ButlerHudSelectedLabel.Text = "Items Selected: ";
                ButlerHudSelectedCount = new HudStaticText();
                ButlerHudSelectedCount.FontHeight = nmenuFontHeight;
                ButlerHudTabLayout.AddControl(ButlerHudSelectedLabel, new Rectangle(0,520,100,16));
                ButlerHudTabLayout.AddControl(ButlerHudSelectedCount, new Rectangle(110,520,150,16));

                ButlerPackSpacesAvailable = new HudStaticText();
                ButlerPackSpacesAvailable.FontHeight = nmenuFontHeight;
                ButlerPackSpaceAvailableLabel = new HudStaticText();
                ButlerPackSpaceAvailableLabel.FontHeight = nmenuFontHeight;
                ButlerPackSpaceAvailableLabel.Text = "Inventory status: ";
                ButlerHudTabLayout.AddControl(ButlerPackSpaceAvailableLabel, new Rectangle(0,540,100,16));
                ButlerHudTabLayout.AddControl(ButlerPackSpacesAvailable, new Rectangle(110,540,150,16));

                ButlerBurdenLabel = new HudStaticText();
                ButlerBurdenLabel.FontHeight = nmenuFontHeight;
                ButlerBurdenLabel.Text = "Current Burden: ";
                ButlerBurden = new HudStaticText();
                ButlerBurden.FontHeight = nmenuFontHeight;
                ButlerHudTabLayout.AddControl(ButlerBurdenLabel, new Rectangle(0, 560, 100, 16));
                ButlerHudTabLayout.AddControl(ButlerBurden, new Rectangle(110,560, 150, 16));

                if(ButlerHudPickCurrentSelection != null) {ButlerHudPickCurrentSelection.Hit += ButlerHudPickCurrentSelection_Hit;}
                ButlerHudUseCurrentSelection.Hit += ButlerHudUseCurrentSelection_Hit;
                ButlerHudDestoryCurrentSelection.Hit += ButlerHudDestoryCurrenSelection_Hit;
                ButlerHudSalvageCurrentSelection.Hit += ButlerHudSalvageCurrentSelection_Hit;

                ButlerQuickSortEquipped.StickyDownStateChanged += ButlerQuickSortEquipped_Hit;
                ButlerQuickSortUnequipped.StickyDownStateChanged += ButlerQuickSortUnequipped_Hit;
                ButlerQuickSortMelee.StickyDownStateChanged += ButlerQuickSortMelee_Hit;
                ButlerQuickSortMissile.StickyDownStateChanged += ButlerQuickSortMissile_Hit;
                ButlerQuickSortCaster.StickyDownStateChanged += ButlerQuickSortCaster_Hit;
                ButlerQuickSortArmor.StickyDownStateChanged += ButlerQuickSortArmor_Hit;
                ButlerQuickSortKeys.StickyDownStateChanged += ButlerQuickSortKeys_Hit;
                ButlerQuickSortKeyrings.StickyDownStateChanged += ButlerQuickSortKeyrings_Hit;
                ButlerQuickSortLockpicks.StickyDownStateChanged += ButlerQuickSortLockpicks_Hit;
                ButlerQuickSortManastones.StickyDownStateChanged += ButlerQuickSortManastones_Hit;
                ButlerQuickSortHealKit.StickyDownStateChanged += ButlerQuickSortHealKit_Hit;
                ButlerQuickSortPotion.StickyDownStateChanged += ButlerQuickSortPotion_Hit;

                ButlerHudList.Click += (sender, row, col) => ButlerHudList_Click(sender, row, col);
                ButlerHudSearchButton.Hit += ButlerHudSearchButton_Click;
                ButlerHudClearSearchButton.Hit += ButlerHudClearSearchButton_Click;

                //MaidTab
                MaidTabLayout = new HudFixedLayout();
                ButlerHudTabView.AddTab(MaidTabLayout, "Maid");

                MaidStackInventory = new HudButton();
                MaidStackInventory.Text = "Stack Inventory";
                MaidTabLayout.AddControl(MaidStackInventory, new Rectangle(0,0,150,20));

                MaidRingKeys = new HudButton();
                MaidRingKeys.Text = "Ring Keys";
                MaidTabLayout.AddControl(MaidRingKeys, new Rectangle(0,30,150,20));

                MaidTradeAllSalvage = new HudButton();
                MaidTradeAllSalvage.Text = "Window All Salvage";
                MaidTabLayout.AddControl(MaidTradeAllSalvage, new Rectangle(0,60,150,20));

                MaidTradeFilledSalvage = new HudButton();
                MaidTradeFilledSalvage.Text = "Window Filled Salvage";
                MaidTabLayout.AddControl(MaidTradeFilledSalvage, new Rectangle(0,90,150,20));

                MaidTradeParialSalvage = new HudButton();
                MaidTradeParialSalvage.Text = "Window Partial Salvage";
                MaidTabLayout.AddControl(MaidTradeParialSalvage, new Rectangle(0,120,150,20));

                MaidSalvageCombine = new HudButton();
                MaidSalvageCombine.Text = "Combine Salvage Bags";
                MaidTabLayout.AddControl(MaidSalvageCombine, new Rectangle(0,150,150,20));

                MaidTradeAllEightComps = new HudButton();
                MaidTradeAllEightComps.Text = "Window L8 Components";
                MaidTabLayout.AddControl(MaidTradeAllEightComps, new Rectangle(0, 180, 150,20));

                MaidCannibalizeEnable = new HudCheckBox();
                MaidCannibalizeEnable.Text = "Enable Cannibalize Button";
                MaidTabLayout.AddControl(MaidCannibalizeEnable, new Rectangle(0,210,150,20));

                MaidStackInventory.Hit += MaidStackInventory_Hit;
                MaidRingKeys.Hit += MaidRingKeys_Hit;
                MaidTradeAllSalvage.Hit += MaidTradeAllSalvage_Hit;
                MaidTradeFilledSalvage.Hit += MaidTradeFilledSalvage_Hit;
                MaidTradeParialSalvage.Hit += MaidTradeParialSalvage_Hit;
                MaidSalvageCombine.Hit += MaidSalvageCombine_Hit;
                MaidCannibalizeEnable.Hit += MaidCannibalizeEnable_Hit;
                MaidTradeAllEightComps.Hit += MaidTradeAllEightComps_Hit;

                //ValetTab
                ValetTabLayout = new HudFixedLayout();
                ButlerHudTabView.AddTab(ValetTabLayout, "Valet");

                                int split3horizontal = Convert.ToInt32((double)GearButlerSettings.ButlerHudWidth /(double)3);
                int splithalf = Convert.ToInt32((double)GearButlerSettings.ButlerHudWidth/(double)2);
                int halfsplit3horizontal = Convert.ToInt32((double)split3horizontal/(double)2);
                int splitbottomvertical = Convert.ToInt32(((double)100 - GearButlerSettings.ButlerHudHeight) /2);

                ValetDisrobe = new HudButton();
                ValetDisrobe.Text = "Disrobe";
                ValetTabLayout.AddControl(ValetDisrobe, new Rectangle(10,5,split3horizontal-20,20));

                ValetEquipSuit = new HudButton();
                ValetEquipSuit.Text = "Equip";
                ValetTabLayout.AddControl(ValetEquipSuit, new Rectangle(splithalf - halfsplit3horizontal ,5,split3horizontal-20,20));

                ValetCreateSuit = new HudButton();
                ValetCreateSuit.Text = "Create";
                ValetTabLayout.AddControl(ValetCreateSuit, new Rectangle(splithalf + halfsplit3horizontal,5,split3horizontal-20,20));

                ValetTextBoxLabel = new HudStaticText();
                ValetTextBoxLabel.Text = "Suit Label:";
                ValetTabLayout.AddControl(ValetTextBoxLabel, new Rectangle(0,30,50,16));

                ValetNameBox = new HudTextBox();
                ValetNameBox.Text = String.Empty;
                ValetTabLayout.AddControl(ValetNameBox, new Rectangle(10,55,GearButlerSettings.ButlerHudWidth -20, 20));

                ValetSuitListLabel = new HudStaticText();
                ValetSuitListLabel.Text = "Suits:";
                ValetTabLayout.AddControl(ValetSuitListLabel, new Rectangle(0,80,50,16));

                ValetSuitList = new HudList();
                ValetSuitList.AddColumn(typeof(HudPictureBox), 16, null);
                ValetSuitList.AddColumn(typeof(HudStaticText), GearButlerSettings.ButlerHudWidth - 80, null);
                ValetSuitList.AddColumn(typeof(HudPictureBox), 16, null);
                ValetSuitList.AddColumn(typeof(HudStaticText), 1, null);
                ValetTabLayout.AddControl(ValetSuitList, new Rectangle(0,100,GearButlerSettings.ButlerHudWidth - 20,100));

                ValetSuitPiecesListLabel = new HudStaticText();
                ValetSuitPiecesListLabel.Text = "Pieces:";
                ValetTabLayout.AddControl(ValetSuitPiecesListLabel, new Rectangle(0,210,50,16));

                ValetSuitPiecesList = new HudList();
                ValetSuitPiecesList.AddColumn(typeof(HudPictureBox), 16, null);
                ValetSuitPiecesList.AddColumn(typeof(HudStaticText), GearButlerSettings.ButlerHudWidth - 80, null);
                ValetSuitPiecesList.AddColumn(typeof(HudPictureBox), 16, null);
                ValetSuitPiecesList.AddColumn(typeof(HudStaticText), 1, null);
                ValetTabLayout.AddControl(ValetSuitPiecesList, new Rectangle(0, 230 ,GearButlerSettings.ButlerHudWidth - 20,100));

                ValetDisrobe.Hit += ValetDisrobe_Hit;
                ValetEquipSuit.Hit += ValetEquipSuit_Hit;
                ValetCreateSuit.Hit += ValetCreateSuit_Hit;
                ValetSuitList.Click += ValetSuitList_Click;
                ValetSuitPiecesList.Click += ValetSuitPiecesList_Click;

                ButlerHudView.Resize += ButlerHudView_Resize;
                ButlerHudView.VisibleChanged += ButlerHudView_VisibleChanged;

                UpdateButlerHudList();
                UpdateValetHud();

            }catch(Exception ex) {LogError(ex);}
            return;
        }