Example #1
0
 /// <summary>
 /// オートセーブ
 /// </summary>
 public void AutoSaveProject()
 {
     if (SystemManager.GetInstance().GetSystemInfo().mAutoSaveFlg)
     {
         SaveProject();
     }
 }
Example #2
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public LoadScene()
        {
            InitializeComponent();
            ContentBorder.IsEnabled = false;

            //前に読み込んだファイルが存在しない場合はクリック出来ない
            var get_Obj = DataManager.GetInstance().GetData(SystemUtility.GetSceneName(this));

            if (get_Obj == null)
            {
                RefPrevFileButton.IsEnabled = false;
            }
            else
            {
                var info = (SSerialData)get_Obj;
                if (System.IO.File.Exists(info.mLastRefFilePath))
                {
                    RefPrevFileButton.IsEnabled = true;
                }
            }

            //情報設定
            var version = Version.CurrentVersion;

            InfoTextBlock.Text = string.Format("FCあどみぃ! Ver{0} -{1}-", version, SystemManager.GetInstance().GetUserName());
        }
Example #3
0
        /************************************************************************/
        /* 内部処理                                                             */
        /************************************************************************/

        //============================================================================
        //! プロジェクトファイルのロード
        private bool _LoadProjectFile(string iFilePath)
        {
            try
            {
                //ファイルが無ければ無視
                if (!System.IO.File.Exists(iFilePath))
                {
                    return(false);
                }

                //必要なマネージャの初期化
                SaveManager.GetInstance().ProjectFilePath = iFilePath;
                DataManager.GetInstance().ReadData(iFilePath);
                MemberManager.GetInstance().LoadMemberData();
                BattleManager.GetInstance().LoadBattleData();
                PresetManager.GetInstance().LoadPreset();
                SystemManager.GetInstance().LoadSystemData();

                return(true);
            }
            catch (System.Exception)
            {
                return(false);
            }
        }
Example #4
0
        /// <summary>
        /// 指定シーンを作成して進む
        /// </summary>
        /// <param name="iScene">シーン番号</param>
        /// <returns>シーンインスタンス</returns>
        public SceneInterface AdvanceScene(EScene iScene)
        {
            //コールバック初期化
            SystemManager.GetInstance().SetCloseCheckCallback(null);
            SystemManager.GetInstance().SetInputKeyDelegate(null);

            //シーンの作成と追加
            var scene        = mCreateSceneDelegateList[(int)iScene]();
            var user_Control = (UserControl)scene;

            user_Control.TabIndex = (int)iScene;
            mSceneStack.Add(scene);

            //シーン変更演出の開始(ルートシーンの場合は開けるところから
            if (mSceneStack.Count == 1)
            {
                _WrapWindowFilter(null, null);
            }
            else
            {
                _BeginChangeScene();
            }

            return(scene);
        }
Example #5
0
        //============================================================================
        //! OKボタンが押された
        private void _ClickOKButton(object iSender, RoutedEventArgs iArgs)
        {
            //チェック
            var tweet = TweetTextBox.Text.Trim();

            if (tweet.Length == 0)
            {
                System.Media.SystemSounds.Hand.Play();
                MessageBox.Show("ツイートが入力されて居ません", "エラー", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            tweet += "\n\n#FCあどみぃ!";

            //ツイート
            try
            {
                var manager = SystemManager.GetInstance();
                var service = new TweetSharp.TwitterService(manager.GetTwitterAPICKey(), manager.GetTwitterAPICSecret());
                var info    = manager.GetSystemInfo();
                service.AuthenticateWith(info.mAccessToken.mToken, info.mAccessToken.mTokenSecret);
                var responce = service.SendTweet(new TweetSharp.SendTweetOptions {
                    Status = tweet
                });

                System.Media.SystemSounds.Asterisk.Play();
                MessageBox.Show("ツイートに成功しました!", "確認", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            catch (System.Exception iException)
            {
                SystemUtility.DisplayErrorDialog("ツイートに失敗しました\n\n" + iException.Message);
            }

            Close();
        }
Example #6
0
        /************************************************************************/
        /* 内部処理                                                             */
        /************************************************************************/

        //============================================================================
        //! 入力されている項目をマネージャに保存
        private void _UpdateInfo()
        {
            var info = SystemManager.GetInstance().GetSystemInfo();

            info.mAutoSaveFlg = (AutoSaveCheckBox.IsChecked == true);
            SystemManager.GetInstance().SetSystemInfo(info);
        }
Example #7
0
        //============================================================================
        //! デフォルトツイート設定ボタンが押された
        private void _ClickDefaultTweetButton(object iSender, RoutedEventArgs iArgs)
        {
            //ウィンドウを表示する
            var manager = SystemManager.GetInstance();
            var info    = manager.GetSystemInfo();
            var window  = new DefaultTweetInputWindow();

            if (info.mDefaultTweetStyle == null || info.mDefaultTweetStyle.Trim().Length == 0)
            {
                window.SetDefaultText();
            }
            else
            {
                window.SetText(info.mDefaultTweetStyle);
            }
            window.Closing += (iClosingSender, iClosingArgs) =>
            {
                //成功した時のみ
                if (window.IsSuccess())
                {
                    info.mDefaultTweetStyle = window.GetDefaultTweet();
                    manager.SetSystemInfo(info);
                    SaveManager.GetInstance().SaveProject();
                }
            };
            window.ShowDialog();
        }
Example #8
0
        //============================================================================
        //! ツイッター連携解除ボタンが押された
        private void _ClickRemoveTwitterAccountButton(object iSender, RoutedEventArgs iArgs)
        {
            var manager = SystemManager.GetInstance();
            var info    = manager.GetSystemInfo();

            info.mAccessToken = new SystemManager.STwitterAccessToken();
            manager.SetSystemInfo(info);
            _Refresh();
        }
 /// <summary>
 /// コンストラクタ
 /// </summary>
 public TournamentControl()
 {
     InitializeComponent();
     BackgroundImage.Source = PresetManager.GetInstance().GetBackGroundImage();
     SystemManager.GetInstance().SetCloseCheckCallback(_CheckClose);
     SystemManager.GetInstance().SetInputKeyDelegate(_InputKey);
     TeamDetailsControl.Visibility = Visibility.Hidden;
     MainControl.SetTeamDisplay(TeamDetailsControl);
 }
Example #10
0
        /************************************************************************/
        /* 公開処理                                                             */
        /************************************************************************/

        /// <summary>
        /// コンストラクタ
        /// </summary>
        public MemberSelectScene()
        {
            InitializeComponent();

            //初期設定
            SystemManager.GetInstance().SetInputKeyDelegate(_InputKey);
            SystemManager.GetInstance().SetCloseCheckCallback(_CheckClose);

            //更新
            _RefreshMemberList();
        }
Example #11
0
        /************************************************************************/
        /* 基本処理                                                             */
        /************************************************************************/

        /// <summary>
        /// コンストラクタ
        /// </summary>
        public TwitterSettingWindow()
        {
            InitializeComponent();

            //認証画面を出す
            var manager = SystemManager.GetInstance();

            mService      = new TwitterService(manager.GetTwitterAPICKey(), manager.GetTwitterAPICSecret());
            mRequestToken = mService.GetRequestToken();
            string authorize_Url = "https://api.twitter.com/oauth/authorize?" + "oauth_token=" + mRequestToken.Token + "&oauth_token_secret=" + mRequestToken.TokenSecret;

            //Uri uri = mService.GetAuthenticationUrl(mRequestToken);
            TwitterWebBrowser.Source = new Uri(authorize_Url);
        }
Example #12
0
        /************************************************************************/
        /* 内部処理                                                             */
        /************************************************************************/

        //============================================================================
        //! システム情報の初期化
        private void _InitializeSystem()
        {
            //ラムダ式で解決
            SourceInitialized += (iSender, iArgs) =>
            {
                //ウィンドウ位置の読み込み
                var get_obj = DataManager.GetInstance().GetData("MainWindow");
                if (get_obj != null)
                {
                    var point = (Point)get_obj;
                    Left = point.X;
                    Top  = point.Y;
                }
            };

            //閉じる直前
            Closing += (iSender, iArgs) =>
            {
                //閉じていいかチェック
                if (!SystemManager.GetInstance().IsWindowCheckClose())
                {
                    iArgs.Cancel = true;
                    return;
                }

                DataManager.GetInstance().SetData("MainWindow", new Point(Left, Top));
            };

            //キー入力があった
            KeyDown += (iSender, iArgs) =>
            {
                SystemManager.GetInstance().KeyInput(iArgs);
            };

            //閉じた後
            Closed += (iSender, iArgs) =>
            {
                //コンテンツ情報を保存して終了
                SaveManager.GetInstance().SaveContentData();
            };

            //コンテンツデータがある場合は読み込み
            string content_Path = SaveManager.GetInstance().ContentFilePath;

            if (System.IO.File.Exists(content_Path))
            {
                DataManager.GetInstance().ReadData(content_Path);
            }
        }
Example #13
0
        /// <summary>
        /// 一つ前のシーンに戻る
        /// </summary>
        public void ReturnBackScene()
        {
            //コールバック初期化
            SystemManager.GetInstance().SetCloseCheckCallback(null);
            SystemManager.GetInstance().SetInputKeyDelegate(null);

            //一つ削除
            mSceneStack.RemoveAt(mSceneStack.Count - 1);

            //初期化
            mSceneStack[mSceneStack.Count - 1].SceneBack();

            //演出
            _BeginChangeScene();
        }
Example #14
0
        /************************************************************************/
        /* コールバック処理                                                     */
        /************************************************************************/

        //============================================================================
        //! オートセーブの実行
        private void _AutoSave(object iSender, EventArgs iArgs)
        {
            mTimer.Stop();

            try
            {
                DataManager.GetInstance().SetData(mMemberInfoKey, MemberManager.GetInstance().GetMemberList().ToArray());
                DataManager.GetInstance().SetData(mBattleInfoKey, BattleManager.GetInstance().GetBattleList().ToArray());
                DataManager.GetInstance().SetData(mSystemInfoKey, SystemManager.GetInstance().GetSystemInfo());
                DataManager.GetInstance().WriteData(new string[] { mMemberInfoKey, mBattleInfoKey, mPresetInfoKey, mSystemInfoKey }, mProjectFilePath);
            }
            catch (System.Exception) {}

            mSaveWindow.Close();
            mSaveWindow = null;
        }
Example #15
0
        //============================================================================
        //! 新しいプロジェクトの作成ボタンが押された
        private void _ClickNewProject(object iSender, RoutedEventArgs iArgs)
        {
            //プリセットデータを選択させて一旦保存してから開始
            var window = new SelectPresetWindow();

            window.ShowDialog();
            string preset_name = window.GetPresetName();

            if (preset_name == null)
            {
                return;
            }

            //プロジェクトの保管先の設定
            SaveFileDialog dialog = new SaveFileDialog();

            dialog.Filter           = "FCあどみぃ!プロジェクトファイル(*.pjb)|*.pjb|すべてのファイル(*.*)|*.*";
            dialog.Title            = "プロジェクトファイルを選択してください";
            dialog.RestoreDirectory = true;
            dialog.InitialDirectory = SystemUtility.GetSystemPath();
            if (dialog.ShowDialog() == true)
            {
                //データの設定
                DataManager.GetInstance().SetData(SaveManager.GetInstance().PresetInfoKey, preset_name);

                //一旦状態保存
                var info = new SSerialData();
                info.mLastRefFilePath = dialog.FileName;
                DataManager.GetInstance().SetData(SystemUtility.GetSceneName(this), info);
                SaveManager.GetInstance().ProjectFilePath = dialog.FileName;
                SaveManager.GetInstance().SaveProject();
                SaveManager.GetInstance().SaveContentData();

                //必要なマネージャの初期化
                MemberManager.GetInstance().LoadMemberData();
                BattleManager.GetInstance().LoadBattleData();
                PresetManager.GetInstance().LoadPreset();
                SystemManager.GetInstance().LoadSystemData();

                _StartUpTool();
            }
        }
Example #16
0
        /// <summary>
        /// メンバーのスクリーンショットを生成
        /// </summary>
        /// <param name="iFilePath">ファイルパス</param>
        /// <param name="iControl">追加コントロール</param>
        public void CreateMemberScreenShot(string iFilePath, UserControl iControl)
        {
            BeginScreenShot();

            //追加コントロールを結合する
            var grid         = SystemManager.GetInstance().GetScreenShotGrid();
            var stock_Margin = iControl.Margin;
            var current_Size = new Size(grid.Width, grid.Height);

            if (grid.Width < grid.Height)
            {
                //サイズ調整
                grid.Width += iControl.Width;
                if (grid.Height < iControl.Height)
                {
                    grid.Height = iControl.Height;
                }

                //結合
                var margin = new Thickness(current_Size.Width, 0, 0, 0);
                iControl.Margin = margin;
            }
            else
            {
                //サイズ調整
                grid.Height += iControl.Height;
                if (grid.Width < iControl.Width)
                {
                    grid.Width = iControl.Width;
                }

                //結合
                var margin = new Thickness(0, current_Size.Height, 0, 0);
                iControl.Margin = margin;
            }

            grid.Children.Add(iControl);
            SystemUtility.OutputCaptureControl(iFilePath, grid);
            grid.Children.Remove(iControl);
            grid.Children.Clear();
            iControl.Margin = stock_Margin;
        }
Example #17
0
        //============================================================================
        //! ツイッター連携ボタンが押された
        private void _ClickRegistTwitterAccountButton(object iSender, RoutedEventArgs iArgs)
        {
            //ウィンドウを表示する
            var window = new TwitterSettingWindow();

            window.Closing += (iClosingSender, iClosingArgs) =>
            {
                //成功した時のみ
                if (window.IsAccess())
                {
                    var manager = SystemManager.GetInstance();
                    var info    = manager.GetSystemInfo();
                    info.mAccessToken = window.GetAccessToken();
                    manager.SetSystemInfo(info);

                    _Refresh();
                    SaveManager.GetInstance().SaveProject();
                }
            };
            window.ShowDialog();
        }
Example #18
0
        //============================================================================
        //! 画面更新
        private void _Refresh()
        {
            var info = SystemManager.GetInstance().GetSystemInfo();

            if (info.mAccessToken.mToken == null)
            {
                AccountRegistButton.IsEnabled       = true;
                AccountRemoveButton.IsEnabled       = false;
                TweetDefaultSettingButton.IsEnabled = false;
                IDTextBlock.Text   = "";
                NameTextBlock.Text = "";
            }
            else
            {
                AccountRegistButton.IsEnabled       = false;
                AccountRemoveButton.IsEnabled       = true;
                TweetDefaultSettingButton.IsEnabled = true;
                IDTextBlock.Text   = "TwitterID : " + info.mAccessToken.mUserId;
                NameTextBlock.Text = "TwitterName : " + info.mAccessToken.mScreenName;
            }
            AutoSaveCheckBox.IsChecked = info.mAutoSaveFlg;
        }
Example #19
0
        /************************************************************************/
        /* 基本処理	                                                            */
        /************************************************************************/

        /// <summary>
        /// コンストラクタ
        /// </summary>
        public MainWindow()
        {
            //ライセンスチェック
#if DL_DEBUG
            SystemManager.GetInstance().SetUserName("デバッグ起動");
#else
            //ライセンスチェック
            var path = SystemUtility.GetSystemPath() + "FCAdmy.lic";
            try
            {
                var user_Name = SystemUtility.GetLicenseUserName(path);
                SystemManager.GetInstance().SetUserName(user_Name);
            }
            catch (System.Exception)
            {
                Environment.Exit(1);
            }
#endif

            InitializeComponent();
            _InitializeSystem();
            SystemManager.GetInstance().SetScreenShotGrid(ScreenShotGrid);
        }
Example #20
0
        /// <summary>
        /// デフォルトで表示されるツイート情報を取得
        /// </summary>
        /// <param name="iImageFilePath">イメージファイルパス</param>
        /// <returns>ツイート</returns>
        public string GetDefaultTweet(string iImageFilePath)
        {
            //デフォルト設定から全て置換掛けていくよ
            string tweet = SystemManager.GetInstance().GetSystemInfo().mDefaultTweetStyle;

            //大会名
            tweet = tweet.Replace("{TournamentName}", mCurrentBattleInfo.mName);

            //開始日時(全部)
            tweet = tweet.Replace("{TournamentData}", mCurrentBattleInfo.mDate);

            //開始日時(日にちだけ)
            var sep_list = mCurrentBattleInfo.mDate.Split(' ');

            tweet = tweet.Replace("{TournamentDay}", sep_list[0]);

            //開始日時(時間だけ)
            tweet = tweet.Replace("{TournamentTime}", sep_list[1]);

            //画像
            tweet = tweet.Replace("{ImageUrl}", iImageFilePath);

            return(tweet);
        }
Example #21
0
        /************************************************************************/
        /* コールバック処理                                                     */
        /************************************************************************/

        //============================================================================
        //! ロード時の処理
        private void _Loaded(object iSender, RoutedEventArgs iArgs)
        {
            //シーンの初期化
            var scene_Manager = SceneManager.GetInstance();

            scene_Manager.SetControls(ContentControl, LeftFilterImage, RightFilterImage);
            LeftFilterImage.Margin = RightFilterImage.Margin = new Thickness();

            //ロードコンテンツを設定する
#if DL_DEBUG
            //ライセンス作成
            if (true)
            {
                SystemUtility.CreateLicenseFiles(1);
                return;
            }
            bool test = true;
            if (test)
            {
                //データの設定
                DataManager.GetInstance().SetData(SaveManager.GetInstance().PresetInfoKey, "BLAZBLUE CHRONOPHANTASMA");

                //プロジェクトデータ設定
                SaveManager.GetInstance().ProjectFilePath = @"C:\FCあどみぃ!\FCあどみぃ!\System\デバッグプロジェクト.pjb";
                DataManager.GetInstance().ReadData(SaveManager.GetInstance().ProjectFilePath);

                //必要なマネージャの初期化
                MemberManager.GetInstance().LoadMemberData();
                BattleManager.GetInstance().LoadBattleData();
                PresetManager.GetInstance().LoadPreset();
                SystemManager.GetInstance().LoadSystemData();

                //大会設定
                var btl_Op_Manager = BattleOperatorManager.GetInstance();
                btl_Op_Manager.BeginBattle(BattleManager.EBattleKind.BATTLE_SIMPLE_TOURNAMENT);
                btl_Op_Manager.SetBattleName("デバッグ大会!");
                btl_Op_Manager.SetBattleObject(new SimpleTournamentObject());

                //メンバー設定
                //scene_Manager.AdvanceScene(SceneManager.EScene.SCENE_MEMBER_SELECT);
                foreach (var iIndex in System.Linq.Enumerable.Range(0, 32))
                {
                    btl_Op_Manager.AddMember(iIndex);
                }
                btl_Op_Manager.SetLockJoinMember(true);

                //チーム設定
                var team_Val = 16;
                if (BattleOperatorManager.GetInstance().GetJoinMemberVal() % team_Val != 0)
                {
                    throw new System.Exception();
                }
                var in_Member_Val = BattleOperatorManager.GetInstance().GetJoinMemberVal() / team_Val;
                foreach (var iIndex in System.Linq.Enumerable.Range(0, team_Val))
                {
                    var info = new BattleManager.SBattleTeamInfo();
                    info.mTeamID     = iIndex;
                    info.mTeamName   = string.Format("Team{0}", iIndex);
                    info.mJoinIDList = new List <int>();
                    foreach (var iMemberIndex in System.Linq.Enumerable.Range(0, in_Member_Val))
                    {
                        info.mJoinIDList.Add((iIndex * in_Member_Val) + iMemberIndex);
                    }
                    btl_Op_Manager.AddTeam(info);
                }
                btl_Op_Manager.SetLockTeam(true);



                //scene_Manager.AdvanceScene(SceneManager.EScene.SCENE_TEAM_SELECT);
                scene_Manager.AdvanceScene(SceneManager.EScene.SCENE_BATTLE_SIMPLE_TOURNAMENT);

                /*紅白戦
                 * var team = (TeamSelectScene)scene_Manager.AdvanceScene(SceneManager.EScene.SCENE_TEAM_SELECT);
                 * team.AddTeam("紅組");
                 * team.AddTeam("白組");
                 * team.SetTeamOperateFlg(false);*/

                //scene_Manager.AdvanceScene(SceneManager.EScene.SCENE_MEMBER_SELECT);
            }
            else
#endif
            {
                var load_Scene = new LoadScene();
                LoadContent.Content = load_Scene;
            }
        }
        //============================================================================
        //! 画像のアップロードを行う
        private void _ClickUploadScreenShot(object iSender, RoutedEventArgs iArgs)
        {
            //まずは画像の生成
            var item      = iSender as MenuItem;
            var path      = "";
            var file_name = "";

            if (item != null)
            {
                var kind = (EScreenShotKind)item.TabIndex;
                path = mCreateScreenShotDelegate(kind);
                switch (kind)
                {
                case EScreenShotKind.SCREEN_SHOT_MEMBER:
                    file_name = "メンバー表";
                    break;

                case EScreenShotKind.SCREEN_SHOT_TOURNAMENT:
                    file_name = "トーナメント表";
                    break;

                case EScreenShotKind.SCREEN_SHOT_ALL:
                    file_name = "メンバー表+トーナメント表";
                    break;
                }
            }

            //生成に失敗
            if (path.Length == 0)
            {
                return;
            }

            try
            {
                System.Media.SystemSounds.Asterisk.Play();
                MessageBox.Show("画像のアップロード中画面が止まりますが\nそのままでお待ちください", "確認", MessageBoxButton.OK, MessageBoxImage.Information);

                //アップロードする
                string url = DL.UploaderUtility.Upload(path);

                //エラー
                if (url == null || url.Length == 0)
                {
                    throw new System.Exception("ファイルのアップロードに失敗しました");
                }

                //アップロード結果からメニューにアイテムを追加
                var index  = mUploadURLList.Count;
                var diplay = string.Format("{0}({1})", file_name, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
                mUploadURLList.Add(url);

                //初追加の場合はセパレータも追加
                if (index == 0)
                {
                    UploadItem.Items.Add(new Separator());
                }

                //アイテム作成
                var new_item = new MenuItem();
                new_item.Header   = diplay;
                new_item.TabIndex = index;
                UploadItem.Items.Add(new_item);

                //ツイッター認証してるかどうかでサブアイテム作るか決める
                var system_info = SystemManager.GetInstance().GetSystemInfo();
                if (system_info.mAccessToken.mScreenName == null || system_info.mAccessToken.mScreenName.Length == 0 ||
                    system_info.mAccessToken.mToken == null || system_info.mAccessToken.mToken.Length == 0 ||
                    system_info.mAccessToken.mTokenSecret == null || system_info.mAccessToken.mTokenSecret.Length == 0)
                {
                    //連携なし
                    new_item.Click += _OpenUploadPhotoPage;
                }
                else
                {
                    //連携有
                    var sub_item = new MenuItem();
                    sub_item.Header   = "表示";
                    sub_item.TabIndex = index;
                    sub_item.Click   += _OpenUploadPhotoPage;
                    new_item.Items.Add(sub_item);
                    sub_item          = new MenuItem();
                    sub_item.Header   = "ツイート";
                    sub_item.TabIndex = index;
                    sub_item.Click   += _ClickTweetButton;
                    new_item.Items.Add(sub_item);
                }

                System.Media.SystemSounds.Asterisk.Play();
                MessageBox.Show("画像のアップロードに成功しました\n\n" + url, "確認", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            catch (System.Exception iException)
            {
                System.Media.SystemSounds.Hand.Play();
                MessageBox.Show("画像のアップロードに失敗しました\n\n" + iException.Message, "エラー", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Example #23
0
        /// <summary>
        /// スクリーンショットを撮る準備(チーム画像をスクリーンショットグリッドに入れておく)
        /// </summary>
        public void BeginScreenShot()
        {
            //必要なコントロールを作成
            var control_List = new List <TeamDisplay>();
            var manager      = BattleOperatorManager.GetInstance();
            var team_Val     = manager.GetTeamVal();

            foreach (var iTeamIndex in System.Linq.Enumerable.Range(0, team_Val))
            {
                var team_Info = manager.GetTeamInfo(iTeamIndex);
                var list      = new List <BattleManager.SBattleJoinInfo>();
                foreach (var iJoinMemberID in team_Info.mJoinIDList)
                {
                    var info = new BattleManager.SBattleJoinInfo();
                    manager.GetJoinInfo(ref info, iJoinMemberID);
                    list.Add(info);
                }

                var control = new TeamDisplay();
                control.TeamNameTextBlock.Text = team_Info.mTeamName;
                control.SetJoinMemberList(list);
                control_List.Add(control);
            }

            //正方形にできるだけなるように敷き詰める数を取得
            var val = 1;

            while (true)
            {
                var check = Math.Pow(2, (double)val);
                if (team_Val < check)
                {
                    break;
                }
                ++val;
            }

            //グリッドに挿入
            var margin     = new Thickness();
            var grid       = SystemManager.GetInstance().GetScreenShotGrid();
            var sum_Height = 0.0;

            while (control_List.Count > 0)
            {
                //横方向への挿入
                margin.Left = 0;
                var max_Height = 0.0;
                var sum_Width  = 0.0;
                foreach (var iIndex in System.Linq.Enumerable.Range(0, val))
                {
                    var control = control_List[0];
                    control.Margin = margin;
                    grid.Children.Add(control);

                    //横へずらす
                    margin.Left += control.Width;
                    sum_Width   += control.Width;

                    //縦の最大サイズ取得
                    if (max_Height < control.Height)
                    {
                        max_Height = control.Height;
                    }

                    //先頭を削除して無くなったら終わり
                    control_List.RemoveAt(0);
                    if (control_List.Count == 0)
                    {
                        break;
                    }
                }

                //横方向へサイズ変更チェック
                if (grid.Width < sum_Width)
                {
                    grid.Width = sum_Width;
                }

                //縦移動
                margin.Top += max_Height;
                sum_Height += max_Height;
            }

            //縦方向へサイズ変更チェック
            if (grid.Height < sum_Height)
            {
                grid.Height = sum_Height;
            }
        }
Example #24
0
 /// <summary>
 /// メンバーのスクリーンショットを生成
 /// </summary>
 /// <param name="iFilePath">ファイルパス</param>
 public void CreateMemberScreenShot(string iFilePath)
 {
     BeginScreenShot();
     SystemUtility.OutputCaptureControl(iFilePath, SystemManager.GetInstance().GetScreenShotGrid());
     SystemManager.GetInstance().GetScreenShotGrid().Children.Clear();
 }