public BattleScreen(SevenBattleState battleState, ScreenState state)
            : this()
        {
            StatusBarLeft = new Screens.StatusBarLeft(battleState, state);
            StatusBarRight = new Screens.StatusBarRight(battleState, state);
            InfoBar = new Screens.InfoBar(battleState, state);
            EventBar = new Screens.EventBar(battleState, state);
            ItemMenu = new Screens.ItemMenu(battleState, state);
            WItemMenu = new Screens.WItemMenu(battleState, state);

            MagicInfo = new Screens.Magic.Info(battleState, state);
            EnemySkillInfo = new Screens.EnemySkill.Info(battleState, state);
            SummonMenuInfo = new Screens.Summon.Info(battleState, state);

            SelfSelector = new Screens.Selector.SelfSelector(battleState);
            TargetSelector = new Screens.Selector.TargetSelector(battleState);
            GroupSelector = new Screens.Selector.GroupSelector(battleState);
            AreaSelector = new Screens.Selector.AreaSelector(battleState);

            PausedBar = new Screens.PausedBar(state);

            _controllerStack = new List<IController>();
            _controller = null;

            BattleState = battleState;
        }
        public BattleScreen(SevenBattleState battleState, ScreenState state)
            : this()
        {
            StatusBarLeft  = new Screens.StatusBarLeft(battleState, state);
            StatusBarRight = new Screens.StatusBarRight(battleState, state);
            InfoBar        = new Screens.InfoBar(battleState, state);
            EventBar       = new Screens.EventBar(battleState, state);
            ItemMenu       = new Screens.ItemMenu(battleState, state);
            WItemMenu      = new Screens.WItemMenu(battleState, state);

            MagicInfo      = new Screens.Magic.Info(battleState, state);
            EnemySkillInfo = new Screens.EnemySkill.Info(battleState, state);
            SummonMenuInfo = new Screens.Summon.Info(battleState, state);

            SelfSelector   = new Screens.Selector.SelfSelector(battleState);
            TargetSelector = new Screens.Selector.TargetSelector(battleState);
            GroupSelector  = new Screens.Selector.GroupSelector(battleState);
            AreaSelector   = new Screens.Selector.AreaSelector(battleState);

            PausedBar = new Screens.PausedBar(state);

            _controllerStack = new List <IController>();
            _controller      = null;

            BattleState = battleState;
        }
        public void Draw(Gdk.Drawable d, Cairo.Context g, int width, int height, bool screenChanged, bool stack = true)
        {
            StatusBarLeft.Draw(d, g, width, height, screenChanged);
            StatusBarRight.Draw(d, g, width, height, screenChanged);
            InfoBar.Draw(d, g, width, height, screenChanged);
            EventBar.Draw(d, g, width, height, screenChanged);

            if (BattleState.Paused)
            {
                PausedBar.Draw(d, g, width, height, screenChanged);
            }

            lock (_controllerStack)
            {
                if (stack)
                {
                    foreach (IController c in _controllerStack)
                    {
                        c.Draw(d, g, width, height, screenChanged);
                    }
                }
            }
        }