Ejemplo n.º 1
0
        /// <summary>
        /// コマンドツリーをセットアップします。
        /// これはプロジェクトが読み込まれた後に呼び出して下さい。
        /// </summary>
        public void Setup(CtrlComponent.Database.ctlDatabaseEditor dbCtl, CtrlComponent.Map.mgrMapObject mgrMap)
        {
            this.dbCtl  = dbCtl;
            this.mgrMap = mgrMap;
            var subNodes = new List <TreeNode>();

            //オートコンプリートのソースを更新

            //組み込みオブジェクトは 定数・列挙体・変数 ノード以下に絞る
            AutoCompleteSource.Clear();
            subNodes.AddRange(Common.GetNodeListToFlat(this.trvTree.Nodes[NodeNameCppObject].Nodes[NodeNameCppObjConst]));
            subNodes.AddRange(Common.GetNodeListToFlat(this.trvTree.Nodes[NodeNameCppObject].Nodes[NodeNameCppObjEnum]));
            subNodes.AddRange(Common.GetNodeListToFlat(this.trvTree.Nodes[NodeNameCppObject].Nodes[NodeNameCppObjValue]));
            AutoCompleteSource.AddRange(subNodes);
            foreach (var node1 in subNodes)
            {
                AutoCompleteSourceAll.Add(ctlCommandTree.GetCode(node1));
            }

            //プロジェクト関連のスクリプトからノード生成する
            this.trvTree.BeginUpdate();
            foreach (TreeNode node in this.trvTree.Nodes)
            {
                switch (node.Text)
                {
                case NodeSQConst:
                    //定数定義スクリプトを読み込む
                    SQ.SetSQConstantsTree(node, Resources.Path_Scripts_Constants);
                    break;

                case NodeSQFunc:
                    //関数定義スクリプトを読み込む
                    SQ.SetSQFunctionsTree(node, Resources.Path_Scripts_Functions);
                    break;
                }

                //オートコンプリートのソースに追加
                subNodes = Common.GetNodeListToFlat(node);
                AutoCompleteSource.AddRange(subNodes);
                foreach (var node2 in subNodes)
                {
                    AutoCompleteSourceAll.Add(ctlCommandTree.GetCode(node2));
                }
            }

            //コマンドツリーの並び替え実行
            this.trvTree.TreeViewNodeSorter = new CommandTreeSorter();
            this.trvTree.EndUpdate();

            ////オートコンプリートのノード情報リストの並び替え実行
            //AutoCompleteSource.Sort((x, y) => {
            //	//コードの文字列逆順にする
            //	var xcode = GetCode(x);
            //	var ycode = GetCode(y);
            //	return -string.Compare(xcode, ycode);
            //});
        }
Ejemplo n.º 2
0
        /// <summary>
        /// マップの指定したタイル座標が見えるところまでスクロールします。
        /// </summary>
        public static void MapEditor_ScrollToCursor(HScrollBar hsc, VScrollBar vsc, Control container, CtrlComponent.Map.mgrMapObject mgr)
        {
            var pos = new Point(mgr.Cursor.X * mgr.ScaledTileSize, mgr.Cursor.Y * mgr.ScaledTileSize);

            pos.Offset(-container.Width / 2, -container.Height / 2);

            if (pos.X < 0)
            {
                hsc.Value = 0;
            }
            else if (hsc.Maximum < pos.X)
            {
                hsc.Value = hsc.Maximum;
            }
            else
            {
                hsc.Value = pos.X;
            }

            if (pos.Y < 0)
            {
                vsc.Value = 0;
            }
            else if (vsc.Maximum < pos.Y)
            {
                vsc.Value = vsc.Maximum;
            }
            else
            {
                vsc.Value = pos.Y;
            }

            Map.MapEditor_Resize(hsc, vsc, container, mgr);
        }
Ejemplo n.º 3
0
        public const int WheelScroolValue  = 5;     //マウスホイールでの移動量

        /// <summary>
        /// マップ上でマウスホイールされたときの共通処理
        /// </summary>
        public static void MapEditor_MouseWheel(MouseEventArgs e, HScrollBar hsc, VScrollBar vsc, Control container, CtrlComponent.Map.mgrMapObject mgr, ToolStripComboBox tolScale)
        {
            var value = -e.Delta;

            if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
            {
                //Ctrlキーが押されていたらスケール変更する
                if (value < 0)
                {
                    tolScale.SelectedIndex = (tolScale.SelectedIndex == 0) ? 0 : tolScale.SelectedIndex - 1;
                }
                else
                {
                    tolScale.SelectedIndex = (tolScale.SelectedIndex == tolScale.Items.Count - 1) ? tolScale.SelectedIndex = tolScale.Items.Count - 1 : tolScale.SelectedIndex + 1;
                }
            }
            else
            {
                //スクロールを行う
                if (!Control.ModifierKeys.HasFlag(Keys.Shift))
                {
                    //縦スクロール
                    if (vsc.Value + value > vsc.Maximum)
                    {
                        vsc.Value = vsc.Maximum;
                    }
                    else if (vsc.Value + value < 0)
                    {
                        vsc.Value = 0;
                    }
                    else
                    {
                        vsc.Value = vsc.Value + value;
                    }
                }
                else
                {
                    //横スクロール (Shiftキー押下状態)
                    if (hsc.Value + value > hsc.Maximum)
                    {
                        hsc.Value = hsc.Maximum;
                    }
                    else if (hsc.Value + value < 0)
                    {
                        hsc.Value = 0;
                    }
                    else
                    {
                        hsc.Value = hsc.Value + value;
                    }
                }
                Map.MapEditor_Resize(hsc, vsc, container, mgr);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// マップ表示領域が変更されたときの共通処理
        /// </summary>
        public static void MapEditor_Resize(HScrollBar hsc, VScrollBar vsc, Control container, CtrlComponent.Map.mgrMapObject mgr)
        {
            if (mgr == null)
            {
                return;
            }

            if (!mgr.GetMapPreviewScrollSize(container.Size, out var x, out var y))
            {
                //処理できなかった場合は中断する
                return;
            }
Ejemplo n.º 5
0
 /// <summary>
 /// サブコントロールのセットアップを中継する
 /// </summary>
 public void SetupSubControls(CtrlComponent.Database.ctlDatabaseEditor dbCtl, CtrlComponent.Map.mgrMapObject mgrMap)
 {
     //データベースへの参照をサブコントロールに渡す
     this.uctlComTree.Setup(dbCtl, mgrMap);
     this.uctlOneText.Setup(dbCtl);
 }