private void CustomDragAccept(EditorControl c, bool isCtrl)
    {
        object       dragObject = null;
        ListViewCtrl list       = c as ListViewCtrl;

        if (null == list)
        {
            return;
        }

        DragAndDrop.AcceptDrag();

        dragObject   = DragAndDrop.GetGenericData(c.DragAcceptType);
        c.DragObject = dragObject;
        if (isCtrl)
        {
            c.frameTriggerInfo.isCustomDragAcceptCtrl = true;
        }
        else
        {
            c.frameTriggerInfo.isCustomDragAccept = true;
        }

        m_IsCusDragStart = false;

        DragAndDrop.PrepareStartDrag();
    }
    void OnSetBtn(EditorControl c)
    {
        if (null == Selection.activeGameObject)
        {
            EditorUtility.DisplayDialog("操作失败", "\n未指定任何UISprite", "确认");
            return;
        }

        if (
            (m_SearchResultInfo == null) ||
            (m_SearchResultInfo.SearchSpriteInfo == null)
            )
        {
            EditorUtility.DisplayDialog("操作失败", "\n未指定有效Sprite", "确认");
            return;
        }

        ListViewCtrl searchList = _GetControl <ListViewCtrl>(m_SearchResultListName);

        if (null == searchList)
        {
            return;
        }


        int index = searchList.LastSelectItem;

        if (
            (index < 0) ||
            (index > m_SearchResultInfo.SearchSpriteInfo.Count)
            )
        {
            EditorUtility.DisplayDialog("操作失败", "\n未指定有效Sprite", "确认");
            return;
        }

        SEARCHSPRITE_ERROR_TYPE errorType = SearchSpriteEidtorModel.GetInstance().SetUISprite(Selection.activeGameObject, m_SearchResultInfo.SearchSpriteInfo[index].SpriteName, m_SearchResultInfo.SearchSpriteInfo[index].AtlasPath);

        switch (errorType)
        {
        //设定成功
        case SEARCHSPRITE_ERROR_TYPE.SEARCHSPRITE_NONE_ERROR:
            string atlasName = Path.GetFileNameWithoutExtension(m_SearchResultInfo.SearchSpriteInfo[index].AtlasPath);
            EditorUtility.DisplayDialog("设置完成", "\n已设置" + atlasName + "的" + m_SearchResultInfo.SearchSpriteInfo[index].SpriteName, "确认");

            break;

        //设定对象不是UISpirte
        case SEARCHSPRITE_ERROR_TYPE.SEARCHSPRITE_SET_IS_NOT_UISPRITE:
            string goName = Selection.activeGameObject.name;
            EditorUtility.DisplayDialog("设置失败", "\n" + goName + "不是UISprite", "确认");

            break;

        default:
            break;
        }

        RequestRepaint();
    }
    static void RebuildUnUsedResourcesListView()
    {
        ListViewCtrl unUsedResListView = s_root.FindControl("_UnUsedResList") as ListViewCtrl;

        if (unUsedResListView == null)
        {
            return;
        }

        unUsedResListView.ClearItems();

        List <U3DAssetInfo> unUsedAssets = ResourceManageToolModel.GetInstance().UnUsedAssetList;

        foreach (var asset in unUsedAssets)
        {
            ListCtrlItem newItem = new ListCtrlItem();
            newItem.name          = Path.GetFileName(asset.path);
            newItem.image         = asset.icon;
            newItem.userObj       = asset.guid;
            newItem.color         = Color.white;
            newItem.onSelectColor = Color.red;
            unUsedResListView.AddItem(newItem);
        }

        RequestRepaint();
    }
 public void LogInFromUc(object sender, EventArgs e)
 {
     this.mainListView = new ListViewCtrl(cMgr);
     mainListView.OnUpdateStatusBarMsg += new EventHandler <StatusEventArg>(StatusBar_OnUpdate);
     this.MainContentCtrl.Content       = mainListView;
     this.Title = "Cred Manager";
 }
Exemple #5
0
    static void OnSelectListItemRU(EditorControl c, int index)
    {//右键抬起处理函数
        ListViewCtrl spriteList = c as ListViewCtrl;

        if (null == spriteList)
        {
            return;
        }

        string viewStr = string.Empty;

        if (spriteList.IsTextureView)
        {
            viewStr = "至List视图";
        }
        else
        {
            viewStr = "至纹理视图";
        }

        GenericMenu menu = new GenericMenu();

        //弹出删除小图下拉菜单
        menu.AddItem(new GUIContent("删除图片"), false, DeleteSpriteImage, "item 1");
        menu.AddItem(new GUIContent("切换" + viewStr), false, ChangeListView, spriteList);

        menu.ShowAsContext();

        RequestRepaint();
    }
Exemple #6
0
    static void RefreshListViewAndTimeLineViewSelectItem()
    {
        ListViewCtrl     listView     = GetListViewCtrl();
        TimeLineViewCtrl timeLineView = GetTimeLineViewCtrl();
        int sel = SpecialEffectAnimClipEditorModel.GetInstance().CurrentSelect;

        listView.SelectItems.Clear();
        listView.SelectItems.Add(sel);
        timeLineView.LastSelectedItem = sel;
    }
Exemple #7
0
        public static ActionResult PrereqCheckUI(Session session)
        {
            var ListView = new ListViewCtrl(session, "REQCHECKLIST");

            AddCheck(ListView, session, Prop.REQ_OS);
            AddCheck(ListView, session, Prop.REQ_IIS);
            AddCheck(ListView, session, Prop.REQ_ASPNET);
            AddCheck(ListView, session, Prop.REQ_SERVER);
            AddCheck(ListView, session, Prop.REQ_ESERVER);
            AddCheck(ListView, session, Prop.REQ_PORTAL);
            AddCheck(ListView, session, Prop.REQ_WDPORTAL);
            return(ActionResult.Success);
        }
Exemple #8
0
    static void ChangeListView(object command)
    {
        ListViewCtrl list = command as ListViewCtrl;

        if (null == list)
        {
            return;
        }

        list.IsTextureView = !list.IsTextureView;

        RequestRepaint();
    }
 private void UpdateLastSelectItemAfterRemove(ListViewCtrl list, int removeIndex)
 {
     if (list.SelectItems.Count > 0)
     {
         list.LastSelectItem = list.SelectItems[0];
         list.frameTriggerInfo.lastSelectItem = list.SelectItems[0];
     }
     else
     {
         list.LastSelectItem = -1;
         list.frameTriggerInfo.lastSelectItem = -1;
     }
 }
    private void PrepareDrag(EditorControl list)
    {
        ListViewCtrl list2 = list as ListViewCtrl;

        if (null == list)
        {
            return;
        }

        DragAndDrop.PrepareStartDrag();
        DragAndDrop.objectReferences = new Object[] { null };   // 必须在这里初始化objectReferences,否则会遇到Unity drag & drop的bug
        DragAndDrop.SetGenericData("CustomDragFromList", list2.SelectItems);
    }
    private void CustomDragUpdated(EditorControl c)
    {
        object       dragObject = null;
        ListViewCtrl list       = c as ListViewCtrl;

        if (null == list)
        {
            return;
        }

        if (
            (m_DragBegionCtrl != null) &&
            (m_DragBegionCtrl.Name == list.Name)
            )
        {
            DragAndDrop.visualMode = DragAndDropVisualMode.Rejected;
        }
        else
        {
            dragObject = DragAndDrop.GetGenericData(list.DragAcceptType);

            if (list.onTryAcceptCustomDrag != null)
            {
                if (list.onTryAcceptCustomDrag(list, dragObject))
                {
                    if (Event.current.control)
                    {
                        DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
                    }
                    else
                    {
                        DragAndDrop.visualMode = DragAndDropVisualMode.Move;
                    }
                }
                else
                {
                    DragAndDrop.visualMode = DragAndDropVisualMode.Rejected;
                }
            }
            else
            {
                DragAndDrop.visualMode = DragAndDropVisualMode.Rejected;
            }
        }
    }
    /*
     * 未引用资源列表相关函数
     */
    static void OnUnUsedResourcesListViewSelectChanged(EditorControl c, int i)
    {
        ListViewCtrl unUsedListView = c as ListViewCtrl;

        if (unUsedListView == null)
        {
            return;
        }

        if (unUsedListView.LastSelectItem != -1)
        {
            Guid selResID =
                (Guid)unUsedListView.GetItemAt(unUsedListView.LastSelectItem).userObj;
            RebuildResourceRefTreeView(selResID);
            RebuildReferencedTreeView(selResID);
            RequestRepaint();
        }
    }
    private void CustomDragStart(EditorControl c)
    {
        ListViewCtrl list = c as ListViewCtrl;

        if (null == list)
        {
            return;
        }

        if (m_IsCusDragPrepare)
        {
            DragAndDrop.StartDrag(list.DragStartType);
            DragAndDrop.visualMode = DragAndDropVisualMode.Rejected;

            m_DragBegionCtrl = list;

            m_IsCusDragStart = true;

            m_IsCusDragPrepare = false;
        }
    }
    void FixSearchResultAndList(string searchName, List <AtlasInfoForSearchSprite> atlasInfoTbl)
    {
        if (null == atlasInfoTbl)
        {
            return;
        }

        ListViewCtrl searchList = _GetControl <ListViewCtrl>(m_SearchResultListName);

        if (null == searchList)
        {
            return;
        }

        searchList.ClearItems();

        m_SearchResultInfo                  = new SearchResultInfo();
        m_SearchResultInfo.SearchName       = searchName;
        m_SearchResultInfo.SearchSpriteInfo = new List <SearchSpriteInfo>();

        for (int index = 0; index < atlasInfoTbl.Count; index++)
        {
            foreach (var item in atlasInfoTbl[index].SpriteInfo)
            {
                SearchSpriteInfo newInfo = new SearchSpriteInfo();
                newInfo.AtlasPath    = atlasInfoTbl[index].AtlasPath;
                newInfo.AtlasTexture = atlasInfoTbl[index].AtlasTexture;
                newInfo.SpriteName   = item.Key;
                newInfo.SpriteRect   = item.Value;

                m_SearchResultInfo.SearchSpriteInfo.Add(newInfo);

                ListCtrlItem newItem = new ListCtrlItem();
                newItem.name          = item.Key + "  " + newInfo.AtlasPath;
                newItem.color         = Color.white;
                newItem.onSelectColor = Color.blue;
                searchList.AddItem(newItem);
            }
        }
    }
    public override void Visit(EditorControl c)
    {
        ListViewCtrl list = c as ListViewCtrl;

        if (
            (null == list) ||
            (!list.Visiable)
            )
        {
            return;
        }

        //Modify by liteng for MoveAtlas At 2014/1/4 Start
        if (!list.IsTextureView)
        {
            VisitByListView(c);
        }
        else
        {
            VisitByTextureView(c);
        }
        //Modify by liteng for MoveAtlas End
    }
    private void CustomDragPrepare(EditorControl c)
    {
        object       dragObject = null;
        ListViewCtrl list       = c as ListViewCtrl;

        if (null == list)
        {
            return;
        }

        if (list.onPrepareCustomDrag != null)
        {
            dragObject = list.onPrepareCustomDrag(list);

            if (dragObject != null)
            {
                DragAndDrop.PrepareStartDrag();
                DragAndDrop.objectReferences = new Object[] { null };   // 必须在这里初始化objectReferences,否则会遇到Unity drag & drop的bug
                DragAndDrop.SetGenericData(list.DragStartType, dragObject);
                m_IsCusDragPrepare = true;
            }
        }
    }
 public static ActionResult PrereqCheckUI(Session session)
 {
     var ListView = new ListViewCtrl(session, "REQCHECKLIST");
     AddCheck(ListView, session, Prop.REQ_NETFRAMEWORK20);
     AddCheck(ListView, session, Prop.REQ_NETFRAMEWORK35);
     AddCheck(ListView, session, Prop.REQ_NETFRAMEWORK40FULL);
     AddCheck(ListView, session, Prop.REQ_OS);
     AddCheck(ListView, session, Prop.REQ_IIS);
     AddCheck(ListView, session, Prop.REQ_ASPNET);
     return ActionResult.Success;
 }
    //这个方法就是利用EditorManager回调回来的一个EditorRoot实例;
    //构建了一个树形结构;
    public static void InitControls(EditorRoot editorRoot)
    {
        //将之前实例化的那个EditorWindow赋值给s_root
        s_root = editorRoot;

        //s_root.position = new Rect(100f, 100f, 1024, 768f);

        {//对编辑器全局消息响应;
            EditorApplication.projectWindowItemOnGUI += OnProjectWindowItem;
            EditorApplication.projectWindowChanged   += OnProjectWindowChanged;
        }

        {//协程回调
            s_root.onCoroutineMessage      = OnCoroutineMessage;
            s_root.onCoroutineTaskFinished = OnCoroutineTaskFinished;
            s_root.onDestroy = OnDestroy;
            s_root.onEnable  = OnEnable;
        }

        {//注册数据库变化回调
            ResourceManageToolModel.GetInstance().onResourceDBUpdate      = OnAssetDatabaseUpdate;
            ResourceManageToolModel.GetInstance().onResrouceDBStateChange = OnAssetDatabaseStateChange;
        }

        HSpliterCtrl hspliter = new HSpliterCtrl();

        s_root.RootCtrl           = hspliter;
        hspliter.layoutConstraint = LayoutConstraint.GetSpliterConstraint(30f);

        //用来放置上方菜单
        HBoxCtrl     hb0      = new HBoxCtrl();
        VSpliterCtrl vspliter = new VSpliterCtrl();

        vspliter.layoutConstraint = LayoutConstraint.GetSpliterConstraint(300f);
        vspliter.Dragable         = true;

        hspliter.Add(hb0);
        hspliter.Add(vspliter);

        //用来存放 资源列表、无引用资源列表
        VBoxCtrl vb0 = new VBoxCtrl();
        //用来存放 资源依赖项、反向引用
        VBoxCtrl vb1 = new VBoxCtrl();

        vspliter.Add(vb0);
        vspliter.Add(vb1);

        //左侧TabView
        TabViewCtrl leftTabView = new TabViewCtrl();
        //右侧TabView
        TabViewCtrl rightTabView = new TabViewCtrl();

        vb0.Add(leftTabView);
        vb1.Add(rightTabView);

        //资源列表
        TreeViewCtrl resTreeList = new TreeViewCtrl();

        resTreeList.Caption        = "资源列表";
        resTreeList.Name           = "_ResTreeList";
        resTreeList.onItemSelected = OnResourcesTreeViewSelectChanged;

        //无引用资源列表
        ListViewCtrl unUsedList = new ListViewCtrl();

        unUsedList.Caption        = "无引用资源";
        unUsedList.Name           = "_UnUsedResList";
        unUsedList.onItemSelected = OnUnUsedResourcesListViewSelectChanged;

        leftTabView.Add(resTreeList);
        leftTabView.Add(unUsedList);

        //资源依赖项
        TreeViewCtrl resRefTreeView = new TreeViewCtrl();

        resRefTreeView.Caption = "资源依赖项";
        resRefTreeView.Name    = "_ResRefTreeView";


        //反向引用
        TreeViewCtrl resReverseRefTreeView = new TreeViewCtrl();

        resReverseRefTreeView.Caption = "反向引用";
        resReverseRefTreeView.Name    = "_ResReverseRefTreeView";

        rightTabView.Add(resRefTreeView);
        rightTabView.Add(resReverseRefTreeView);


        Rect       btnRect   = new Rect(0, 0, 120, 20);
        ButtonCtrl searchBtn = new ButtonCtrl();

        searchBtn.Name     = "_SearchAllResources";
        searchBtn.Caption  = "扫描资源!";
        searchBtn.Size     = btnRect;
        searchBtn.onClick += OnSearchAllAssets;
        searchBtn.BtnColor = Color.green;
        searchBtn.Visiable = true;

        Rect comboBoxRect = new Rect(0, 0, 100, 20);
        ComboBoxCtrl <int> assetTypeCombo = new ComboBoxCtrl <int>(0);

        assetTypeCombo.Size          = comboBoxRect;
        assetTypeCombo.Name          = "_AssetTypeCombo";
        assetTypeCombo.onValueChange = OnFilterComboSelectChanged;

        List <IAssetFilter> assetFilters = ResourceManageToolModel.GetInstance().AssetFilterList;

        foreach (var filter in assetFilters)
        {
            AssetTypeFilter f = filter as AssetTypeFilter;
            assetTypeCombo.AddItem(new ComboItem(f.DisplayTypeName, f.TypeIndex));
        }

        assetTypeCombo.CurrValue = 0;

        TextBoxCtrl searchTextBox = new TextBoxCtrl();

        searchTextBox.Size          = comboBoxRect;
        searchTextBox.Icon          = UnityInternalIconCache.GetInstance().GetCacheIcon("d_ViewToolZoom");
        searchTextBox.Name          = "_SearchBox";
        searchTextBox.Caption       = "搜索";
        searchTextBox.Visiable      = true;
        searchTextBox.onValueChange = OnSearchTextBoxChange;

        ButtonCtrl helpBtn = new ButtonCtrl();

        helpBtn.Name     = "_HelpButton";
        helpBtn.Caption  = "帮助文档";
        helpBtn.onClick  = OnHelp;
        helpBtn.Size     = btnRect;
        helpBtn.Visiable = true;

        LabelCtrl stateLabel = new LabelCtrl();

        stateLabel.Name             = "_StateLabel";
        stateLabel.textColor        = Color.red;
        stateLabel.Caption          = "数据库没有更新,无法查看无用资源列表与反向引用!";
        stateLabel.layoutConstraint = LayoutConstraint.GetExtensibleViewConstraint();

        hb0.Add(searchBtn);
        hb0.Add(assetTypeCombo);
        hb0.Add(searchTextBox);
        hb0.Add(helpBtn);
        hb0.Add(stateLabel);
    }
Exemple #19
0
    public static void InitControls(EditorRoot editorRoot)
    {//初始化窗口
        if (editorRoot == null)
        {
            //提示程序错误Message
            EditorUtility.DisplayDialog("运行错误",
                                        "窗口初始化失败",
                                        "确认");
            return;
        }

        s_root = editorRoot;
        //s_root.position = new Rect(100f, 100f, 1280, 768f);

        {
            s_root.onEnable  = OnEnable;
            s_root.onDisable = OnDisable;
        }

        #region 创建布置窗口元素

        #region 第一级分割
        Rect btnRect   = new Rect(0, 0, 80, 20);
        Rect labelRect = new Rect(0, 0, 80, 5);
        Rect hboxRect  = new Rect(0, 0, 300, 5);

        HSpliterCtrl hs1 = new HSpliterCtrl();
        hs1.layoutConstraint = LayoutConstraint.GetSpliterConstraint(30f);
        HSpliterCtrl hs2 = new HSpliterCtrl();
        hs2.layoutConstraint = LayoutConstraint.GetSpliterConstraint(30f, true);

        HBoxCtrl hb1 = new HBoxCtrl();      //布置上方菜单条
        HBoxCtrl hb2 = new HBoxCtrl();      //布置主窗口
        HBoxCtrl hb3 = new HBoxCtrl();      //布置下方状态栏
        #endregion

        #region 第二级分割
        VSpliterCtrl vs2_1 = new VSpliterCtrl();
        vs2_1.layoutConstraint = LayoutConstraint.GetSpliterConstraint(300f);
        vs2_1.Dragable         = true;
        VSpliterCtrl vs2_2 = new VSpliterCtrl();
        vs2_2.layoutConstraint = LayoutConstraint.GetSpliterConstraint(300f, true);
        vs2_2.Dragable         = true;

        VBoxCtrl vb2_1 = new VBoxCtrl();               //布置工程目录/小图列表
        VBoxCtrl vb2_2 = new VBoxCtrl();               //布置预览窗口
        VBoxCtrl vb2_3 = new VBoxCtrl();               //布置Inspector窗口
        #endregion

        #region 第三级分割
        HSpliterCtrl hs2_1_1 = new HSpliterCtrl();
        hs2_1_1.layoutConstraint = LayoutConstraint.GetSpliterConstraint(260f, true);

        VBoxCtrl vb2_1_1 = new VBoxCtrl();                    //布置小图列表
        VBoxCtrl vb2_1_2 = new VBoxCtrl();                    //布置工程目录
        #endregion

        #region  第四级分割
        HSpliterCtrl hs2_1_2_1 = new HSpliterCtrl();
        hs2_1_2_1.layoutConstraint = LayoutConstraint.GetSpliterConstraint(240, true);

        VBoxCtrl vb2_1_2_1 = new VBoxCtrl();                    //布置小图列表
        VBoxCtrl vb2_1_2_2 = new VBoxCtrl();                    //布置工程目录
        #endregion
        #endregion

        #region 布置窗口(由高至低布置)

        #region 第四级分割

        #region Project View
        HBoxCtrl projectBtnBox = new HBoxCtrl();
        projectBtnBox.Size = hboxRect;

        LabelCtrl procLabel = new LabelCtrl();
        procLabel.Size    = labelRect;
        procLabel.Caption = "Project View";

        ButtonCtrl newProjBtn = new ButtonCtrl();
        newProjBtn.Caption = "新建工程";
        newProjBtn.Name    = "_NewProjBtn";
        newProjBtn.Size    = btnRect;
        newProjBtn.onClick = OnNewProjBtn;

        ButtonCtrl openProjBtn = new ButtonCtrl();
        openProjBtn.Caption = "打开工程";
        openProjBtn.Name    = "_OpenProjBtn";
        openProjBtn.Size    = btnRect;
        openProjBtn.onClick = OnOpenProjBtn;

        ButtonCtrl saveProjBtn = new ButtonCtrl();
        saveProjBtn.Caption = "保存工程";
        saveProjBtn.Name    = "_SaveProjBtn";
        saveProjBtn.Size    = btnRect;
        saveProjBtn.onClick = OnSaveProjBtn;
        projectBtnBox.Add(newProjBtn);
        projectBtnBox.Add(saveProjBtn);
        projectBtnBox.Add(openProjBtn);

        // vb2_1_2_1.Add(procLabel);
        vb2_1_2_1.Add(projectBtnBox);
        #endregion

        m_projTreeView                = new ListViewCtrl(); //工程目录
        m_projTreeView.Caption        = "Project";
        m_projTreeView.Name           = "Project";
        m_projTreeView.onItemSelected = OnSelectProjectListItem;
        m_projTreeView.IsTextureView  = false;


        vb2_1_2_2.Add(m_projTreeView);

        hs2_1_2_1.Add(vb2_1_2_1);
        hs2_1_2_1.Add(vb2_1_2_2);
        #endregion

        #region 第三级分割
        m_spriteListView = new ListViewCtrl();        //小图列表
        m_spriteListView.IsTextureView = false;
        m_spriteListView.Caption       = "小图";
        m_spriteListView.Name          = "spriteTreeView";

        m_spriteListView.onItemSelected     = OnSelectListItem;
        m_spriteListView.onItemCtrlSelected = OnSelectListItem;
        m_spriteListView.onItemSelectedR    = OnSelectListItemR;
        m_spriteListView.onItemSelectedRU   = OnSelectListItemRU;
        vb2_1_1.Add(m_spriteListView);
        vb2_1_2.Add(hs2_1_2_1);

        hs2_1_1.Add(vb2_1_1);
        hs2_1_1.Add(vb2_1_2);
        #endregion

        #region 第二级分割
        m_preview          = new MainViewCtrl();     //预览窗口
        m_preview.Name     = "_Preview";
        m_preview.bkColor  = Color.grey;
        m_preview.Is2DView = true;

        m_inspector             = new InspectorViewCtrl(); //属性窗口
        m_inspector.Name        = "_Inspector";
        m_inspector.onInspector = null;

        vb2_1.Add(hs2_1_1);
        vb2_2.Add(m_preview);
        vb2_3.Add(m_inspector);

        vs2_1.Add(vb2_1);
        vs2_1.Add(vs2_2);

        vs2_2.Add(m_preview);
        vs2_2.Add(vb2_3);
        #endregion

        #region 第一级分割
        #region  方菜单条
        ButtonCtrl addImageBtn = new ButtonCtrl();
        addImageBtn.Caption = "添加小图";
        addImageBtn.Name    = "_AddImageBtn";
        addImageBtn.Size    = btnRect;
        addImageBtn.onClick = OnAddImageBtn;

        ButtonCtrl previewBtn = new ButtonCtrl();
        previewBtn.Caption = "生成预览";
        previewBtn.Name    = "_PreviewBtn";
        previewBtn.Size    = btnRect;
        previewBtn.onClick = OnPreviewBtn;

        ButtonCtrl makeAtlasBtn = new ButtonCtrl();
        makeAtlasBtn.Caption = "生成图集";
        makeAtlasBtn.Name    = "_MakeAtlasBtn";
        makeAtlasBtn.Size    = btnRect;
        makeAtlasBtn.onClick = OnMakeAtlasBtn;

        ButtonCtrl configImageBaseBtn = new ButtonCtrl();
        configImageBaseBtn.Caption = "配置图库路径";
        configImageBaseBtn.Name    = "_ConfigImageBaseBtn";
        configImageBaseBtn.Size    = btnRect;
        configImageBaseBtn.onClick = OnConfigImageBaseBtn;

        ButtonCtrl helpBtn = new ButtonCtrl();
        helpBtn.Caption  = "帮助";
        helpBtn.Size     = btnRect;
        helpBtn.onClick += OnHelp;

        hb1.Add(addImageBtn);
        hb1.Add(previewBtn);
        hb1.Add(makeAtlasBtn);
        hb1.Add(configImageBaseBtn);
        hb1.Add(helpBtn);
        #endregion

        hb2.Add(vs2_1);

        hs1.Add(hb1);
        hs1.Add(hs2);

        hs2.Add(hb2);
        hs2.Add(hb3);
        #endregion

        #endregion

        //设置窗口根控件
        s_root.RootCtrl = hs1;

        //注册UIAtlasEditorModel回调函数
        UIAtlasEditorModel.GetInstance().onNewProject          = OnNewProject;
        UIAtlasEditorModel.GetInstance().onSpriteImageLoad     = OnSpriteImageLoad;
        UIAtlasEditorModel.GetInstance().onClearCurrentProject = OnClearCurrentProject;

        UIAtlasEditorModel.GetInstance().onAddSpriteImageCommand    = OnAddSpriteImageCommand;
        UIAtlasEditorModel.GetInstance().onDeleteSpriteImageCommand = OnDeleteSpriteImageCommand;
        UIAtlasEditorModel.GetInstance().onMakeAtlasCommand         = OnMakeAtlasCommand;
        UIAtlasEditorModel.GetInstance().onSpriteZoomChangedCommand = OnSpriteImageZoomChangedCommand;

        //注册编辑器窗口OnGui回调函数
        s_root.onGUI        = OnEditorGUI;
        m_Counter           = new GameObject();
        m_Counter.name      = "AtlasCmdCounter";
        m_Counter.hideFlags = HideFlags.HideAndDontSave;
        m_Counter.AddComponent <UIAtlasCommandCounter>();
        m_CommandCounter = m_Counter.GetComponent <UIAtlasCommandCounter>();
    }
    private void HandleDragAction(ListViewCtrl list)
    {
        if (
            (null == list) ||
            !list.IsCurrentCtrlEnable()
            )
        {
            return;
        }

        if (
            (list.LastRect.Contains(FrameInputInfo.GetInstance().currPos) &&
             FrameInputInfo.GetInstance().dragingObjs&& !m_IsCusDragStart)
            )
        {
            bool accept = false;

            if (list.onAcceptDragObjs != null)
            {
                accept = list.onAcceptDragObjs(
                    list,
                    FrameInputInfo.GetInstance().dragObjs,
                    FrameInputInfo.GetInstance().dragObjsPaths);

                if (accept)
                {
                    DragAndDrop.visualMode = DragAndDropVisualMode.Link;

                    if (!FrameInputInfo.GetInstance().dragObjsPerform)
                    {
                        list.frameTriggerInfo.isDraggingObjs = true;
                    }
                    else
                    {
                        list.frameTriggerInfo.isDropObjs = true;
                    }
                }
                else
                {
                    DragAndDrop.visualMode = DragAndDropVisualMode.Rejected;
                }
            }
            else
            {
                DragAndDrop.visualMode = DragAndDropVisualMode.Rejected;
            }
        }
        //DragUpdated
        else if (
            (list.LastRect.Contains(FrameInputInfo.GetInstance().currPos)) &&
            (FrameInputInfo.GetInstance().customDragUpdated)
            )
        {
            CustomDragUpdated(list);

            list.RequestRepaint();
        }
        //DragAccept ctrl
        else if (
            FrameInputInfo.GetInstance().dragObjsPerform&& Event.current.control &&
            list.LastRect.Contains(FrameInputInfo.GetInstance().currPos)
            )
        {
            CustomDragAccept(list, true);

            list.RequestRepaint();
        }
        else if (
            FrameInputInfo.GetInstance().dragObjsPerform&&
            list.LastRect.Contains(FrameInputInfo.GetInstance().currPos)
            )
        {
            CustomDragAccept(list, false);

            list.RequestRepaint();
        }
    }
    //Add by liteng for MoveAtlas At 2014/1/4 Start
    private void VisitByListView(EditorControl c)
    {
        ListViewCtrl list = c as ListViewCtrl;

        if (list == null)
        {
            return;
        }


        EditorGUI.BeginDisabledGroup(!list.Enable);

        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.BeginVertical(c.GetStyle(), c.GetOptions());
        Vector2 newScrollPos = EditorGUILayout.BeginScrollView(list.ScrollPos, false, true, GUIStyle.none, GUI.skin.verticalScrollbar, GUIStyle.none);

        if (!newScrollPos.Equals(list.ScrollPos))
        {
            c.frameTriggerInfo.isScroll  = true;
            c.frameTriggerInfo.scrollPos = newScrollPos;
        }
        list.ScrollPos = newScrollPos;

        int count = 0;

        foreach (var item in list.Items)
        {
            foreach (var index in list.SelectItems)
            {
                if (index == count)
                {
                    GUI.color = item.onSelectColor;
                    GUI.Box(list.Items[index].lastRect, GUIContent.none);
                    GUI.color = Color.white;
                    break;
                }
            }
            //Modify by liteng for MoveAtlas End
            GUIContent itemContent = new GUIContent();
            itemContent.text = item.name;
            if (item.image != null)
            {
                itemContent.image = item.image;
            }
            //add by liteng for atlas begin
            if (!string.IsNullOrEmpty(item.tooltip))
            {
                itemContent.tooltip = item.tooltip;
            }

            //add by liteng end
            EditorGUILayout.BeginHorizontal();

            EditorGUILayout.LabelField(itemContent, itemStyle, new GUILayoutOption[] { GUILayout.MaxWidth(list.LastRect.width - scrollBarWidth) });

            SpecialEffectEditorUtility.GetLastRect(ref item.lastRect);

            EditorGUILayout.EndHorizontal();

            //Modify by liteng for MoveAtlas At 2015/1/4
            HandleMouseAction(list, count);

            count++;
        }
        HandleDragAction(list);
        EditorGUILayout.EndScrollView();
        EditorGUILayout.EndVertical();

        //为了顶住右侧边框,使ScrollView显示完全
        //GUILayout.Space(10f);

        EditorGUILayout.EndHorizontal();

        EditorGUI.EndDisabledGroup();

        c.UpdateLastRect();

        CheckInputEvent(c);
    }
    private void HandleMouseAction(ListViewCtrl list, int curIndex)
    {
        if (
            (null == list) ||
            (!list.IsCurrentCtrlEnable())
            )
        {
            return;
        }

        if (!list.LastRect.Contains(CalcLocalPos(list, FrameInputInfo.GetInstance().currPos)))
        {
            return;
        }

        bool    bIsFind       = false;
        Vector2 localMousePos = list.CalcLocalPos(FrameInputInfo.GetInstance().currPos);

        localMousePos += list.ScrollPos;

        //Ctrl + LButtonPress
        if (
            FrameInputInfo.GetInstance().leftBtnPress&& Event.current.control &&
            list.Items[curIndex].lastRect.Contains(localMousePos)
            )
        {
            foreach (var index in list.SelectItems)
            {
                if (curIndex == index)
                {
                    bIsFind = true;
                    break;
                }
            }

            if (!bIsFind)
            {
                list.SelectItems.Add(curIndex);
                list.LastSelectItem = curIndex;
                list.frameTriggerInfo.isCtrlSelectItem   = true;
                list.frameTriggerInfo.lastCtrlSelectItem = list.LastSelectItem;
            }
            else
            {
                m_TargetCtrl   = list;
                m_IsNeedRemove = true;
            }

            CustomDragPrepare(list);

            list.RequestRepaint();
        }
        //Ctrl + LButtonPressUp
        else if (
            FrameInputInfo.GetInstance().leftBtnPressUp&& Event.current.control &&
            list.Items[curIndex].lastRect.Contains(localMousePos)
            )
        {
            foreach (var index in list.SelectItems)
            {
                if (curIndex == index)
                {
                    bIsFind = true;
                    break;
                }
            }

            if (m_IsNeedRemove && (list.Name == m_TargetCtrl.Name))
            {
                list.SelectItems.Remove(curIndex);
                UpdateLastSelectItemAfterRemove(list, curIndex);
                list.frameTriggerInfo.isCtrlSelectItem   = true;
                list.frameTriggerInfo.lastCtrlSelectItem = list.LastSelectItem;
                m_IsNeedRemove = false;
                m_TargetCtrl   = null;
            }

            list.RequestRepaint();
        }
        //LButtonPress
        else if (
            FrameInputInfo.GetInstance().leftBtnPress&&
            list.Items[curIndex].lastRect.Contains(localMousePos)
            )
        {
            foreach (var index in list.SelectItems)
            {
                if (curIndex == index)
                {
                    bIsFind = true;
                    break;
                }
            }

            if (!bIsFind)
            {
                list.SelectItems.Clear();
                list.SelectItems.Add(curIndex);
                list.LastSelectItem = curIndex;
                list.frameTriggerInfo.lastSelectItem = curIndex;
            }
            else
            {
                m_TargetCtrl   = list;
                m_IsNeedRemove = true;
            }

            CustomDragPrepare(list);

            list.RequestRepaint();
        }
        //LButtonPressUp
        else if (
            FrameInputInfo.GetInstance().leftBtnPressUp&&
            list.Items[curIndex].lastRect.Contains(localMousePos)
            )
        {
            if (m_IsNeedRemove && (list.Name == m_TargetCtrl.Name))
            {
                list.SelectItems.Clear();
                list.SelectItems.Add(curIndex);
                list.LastSelectItem = curIndex;
                list.frameTriggerInfo.lastSelectItem = curIndex;

                m_IsNeedRemove = false;
                m_TargetCtrl   = null;
            }

            list.RequestRepaint();
        }
        //LButtonDoubleClick
        else if (
            FrameInputInfo.GetInstance().leftBtnDoubleClick&&
            list.Items[curIndex].lastRect.Contains(localMousePos)
            )
        {
            list.SelectItems.Clear();
            list.SelectItems.Add(curIndex);
            list.LastSelectItem = curIndex;
            list.frameTriggerInfo.lastSelectItem = curIndex;
            list.frameTriggerInfo.isDoubleClick  = true;
            list.ClickObject = curIndex;

            list.RequestRepaint();
        }
        //LButtonOnPress
        else if (
            FrameInputInfo.GetInstance().leftBtnOnPress&&
            list.Items[curIndex].lastRect.Contains(localMousePos)
            )
        {
            list.frameTriggerInfo.isOnPress = true;
            list.ClickObject = curIndex;

            list.RequestRepaint();
        }
        //RButtonDown
        else if (
            FrameInputInfo.GetInstance().rightBtnPress&&
            list.Items[curIndex].lastRect.Contains(localMousePos)
            )
        {
            foreach (var index in list.SelectItems)
            {
                if (curIndex == index)
                {
                    bIsFind = true;

                    break;
                }
            }

            if (!bIsFind)
            {
                list.SelectItems.Clear();
                list.SelectItems.Add(curIndex);
            }
            list.LastSelectItem = curIndex;
            list.frameTriggerInfo.lastSelectItemR = curIndex;

            list.RequestRepaint();
        }
        //RButtonUP
        else if (
            FrameInputInfo.GetInstance().rightBtnPressUp&&
            list.Items[curIndex].lastRect.Contains(localMousePos)
            )
        {
            list.frameTriggerInfo.lastSelectItemRU = curIndex;

            list.RequestRepaint();
        }
        //Drag
        else if (
            FrameInputInfo.GetInstance().drag&&
            list.Items[curIndex].lastRect.Contains(localMousePos)
            )
        {
            CustomDragStart(list);

            list.RequestRepaint();
        }
        else
        {
            //do nothing
        }
    }
    private void VisitByTextureView(EditorControl c)
    {
        ListViewCtrl list      = c as ListViewCtrl;
        Rect         tempRect  = new Rect();
        int          listIndex = 0;

        if (list == null)
        {
            return;
        }

        if (0 == list.TextureSizeLevel)
        {
            list.TextureSizeLevel = 1;
        }

        EditorGUILayout.BeginVertical(c.GetStyle(), c.GetOptions());

        Vector2 newScrollPos = EditorGUILayout.BeginScrollView(list.ScrollPos, false, true, GUI.skin.horizontalScrollbar, GUI.skin.verticalScrollbar, GUIStyle.none);

        if (!newScrollPos.Equals(list.ScrollPos))
        {
            c.frameTriggerInfo.isScroll  = true;
            c.frameTriggerInfo.scrollPos = newScrollPos;
        }
        list.ScrollPos = newScrollPos;

        int curColumn = 0;

        int columns = Mathf.FloorToInt((float)c.LastRect.width / (float)(list.TextureSizeLevel * m_Padding + 20f));

        if (columns < 1)
        {
            columns = 1;
        }

        while (listIndex < list.Items.Count)
        {
            EditorGUILayout.BeginHorizontal();

            for (; listIndex < list.Items.Count; listIndex++)
            {
                if (curColumn >= columns)
                {
                    curColumn = 0;
                    break;
                }

                foreach (var index in list.SelectItems)
                {
                    if (index == listIndex)
                    {
                        GUI.color = list.Items[index].onSelectTexColor;
                        GUI.Box(list.Items[index].lastRect, GUIContent.none);
                        break;
                    }
                }
                GUIContent itemContent = new GUIContent();
                if (!string.IsNullOrEmpty(list.Items[listIndex].tooltip))
                {
                    itemContent.tooltip = list.Items[listIndex].tooltip;
                }
                if (list.Items[listIndex].image != null)
                {
                    itemContent.image = list.Items[listIndex].image;
                }

                EditorGUILayout.BeginVertical();
                GUILayout.Box(itemContent, new GUILayoutOption[] { GUILayout.Width(list.TextureSizeLevel * m_Padding), GUILayout.Height(list.TextureSizeLevel * m_Padding) });
                SpecialEffectEditorUtility.GetLastRect(ref list.Items[listIndex].lastRect);

                EditorGUILayout.LabelField(list.Items[listIndex].name, itemStyle, GUILayout.MaxWidth(list.TextureSizeLevel * m_Padding));
                SpecialEffectEditorUtility.GetLastRect(ref tempRect);
                list.Items[listIndex].lastRect.height += tempRect.height;

                GUI.color = Color.white;
                EditorGUILayout.EndVertical();

                HandleMouseAction(list, listIndex);
                curColumn++;
            }
            EditorGUILayout.EndHorizontal();
        }

        HandleDragAction(list);

        EditorGUILayout.EndScrollView();
        EditorGUILayout.EndVertical();
        c.UpdateLastRect();
        CheckInputEvent(c);
    }
Exemple #24
0
 private static void AddCheck(ListViewCtrl view, Session session, string PropertyID)
 {
     view.AddItem(session[PropertyID] == YesNo.Yes, session[PropertyID + "_TITLE"]);
 }
    public static void InitControls(EditorRoot editorRoot)
    {
        SearchSpriteEditor searchSpriteEditor = editorRoot as SearchSpriteEditor;

        if (editorRoot == null)
        {
            //提示程序错误Message
            EditorUtility.DisplayDialog("运行错误",
                                        "窗口初始化失败",
                                        "确认");
            return;
        }

        m_EditorRoot = searchSpriteEditor;

        m_EditorRoot.position = new Rect(100f, 100f, m_RootWidth, 768f);


        #region 创建窗口布局元素
        Rect searchTextRect = new Rect(0, 0, 300, 20);

        #region 第一级分割
        HSpliterCtrl hs1 = new HSpliterCtrl();
        hs1.layoutConstraint = LayoutConstraint.GetSpliterConstraint(30f);

        HSpliterCtrl hs2 = new HSpliterCtrl();
        hs2.MinOffset        = 100f;
        hs2.layoutConstraint = LayoutConstraint.GetSpliterConstraint(30f, true);
        hs2.Dragable         = true;

        HBoxCtrl hb1 = new HBoxCtrl();      //搜索栏 HB
        HBoxCtrl hb2 = new HBoxCtrl();      //预览区 HB
        VBoxCtrl vb3 = new VBoxCtrl();      //结果List HB
        #endregion

        #region 第二级分割
        VSpliterCtrl vs2_1 = new VSpliterCtrl();
        vs2_1.layoutConstraint = LayoutConstraint.GetSpliterConstraint(m_RootWidth / 2);
        vs2_1.Dragable         = true;

        VBoxCtrl vb2_1 = new VBoxCtrl();
        VBoxCtrl vb2_2 = new VBoxCtrl();
        #endregion

        #region 第三级分割
        HSpliterCtrl hs2_1_1 = new HSpliterCtrl();
        hs2_1_1.layoutConstraint = LayoutConstraint.GetSpliterConstraint(10f, true);

        HSpliterCtrl hs2_2_1 = new HSpliterCtrl();
        hs2_2_1.layoutConstraint = LayoutConstraint.GetSpliterConstraint(10f, true);

        HBoxCtrl hb2_1_1 = new HBoxCtrl();
        HBoxCtrl hb2_1_2 = new HBoxCtrl();

        HBoxCtrl hb2_2_1 = new HBoxCtrl();
        HBoxCtrl hb2_2_2 = new HBoxCtrl();
        #endregion
        #endregion

        #region 布置窗口
        TextBoxCtrl searchTextBox = new TextBoxCtrl();
        searchTextBox.Size    = searchTextRect;
        searchTextBox.Icon    = UnityInternalIconCache.GetInstance().GetCacheIcon("d_ViewToolZoom");
        searchTextBox.Name    = m_SearchTextBoxName;
        searchTextBox.Caption = "搜索";

        ButtonCtrl vagueSearchBtn = new ButtonCtrl();
        vagueSearchBtn.Name    = m_VagueSearchBtnName;
        vagueSearchBtn.Caption = "模糊搜索";
        vagueSearchBtn.onClick = searchSpriteEditor.OnSearchBtn;

        ButtonCtrl searchBtn = new ButtonCtrl();
        searchBtn.Name    = m_SearchBtnName;
        searchBtn.Caption = "精确搜索";
        searchBtn.onClick = searchSpriteEditor.OnSearchBtn;

        ButtonCtrl setBtn = new ButtonCtrl();
        setBtn.Name    = m_SetBtnName;
        setBtn.Caption = "设置";
        setBtn.onClick = searchSpriteEditor.OnSetBtn;

        ButtonCtrl helpBtn = new ButtonCtrl();
        helpBtn.Name    = m_HelpBtnName;
        helpBtn.Caption = "帮助";
        helpBtn.onClick = searchSpriteEditor.OnHelpBtnClick;

        hb1.Add(searchTextBox);
        hb1.Add(vagueSearchBtn);
        hb1.Add(searchBtn);
        hb1.Add(setBtn);
        hb1.Add(helpBtn);

        MainViewCtrl spriteView = new MainViewCtrl();
        spriteView.Name     = m_SpriteViewName;
        spriteView.bkColor  = Color.gray;
        spriteView.Is2DView = true;

        LabelCtrl spriteInfoLabel = new LabelCtrl();
        spriteInfoLabel.Name    = m_SpriteInfoLabel;
        spriteInfoLabel.Caption = "";

        MainViewCtrl atlasView = new MainViewCtrl();
        atlasView.Name     = m_AtlasViewName;
        atlasView.bkColor  = Color.gray;
        atlasView.Is2DView = true;

        LabelCtrl atlasInfoLabel = new LabelCtrl();
        atlasInfoLabel.Name    = m_AtlasInfoLabel;
        atlasInfoLabel.Caption = "";

        hb2_1_1.Add(spriteView);
        hb2_1_2.Add(spriteInfoLabel);

        hb2_2_1.Add(atlasView);
        hb2_2_2.Add(atlasInfoLabel);

        hs2_1_1.Add(hb2_1_1);
        hs2_1_1.Add(hb2_1_2);

        hs2_2_1.Add(hb2_2_1);
        hs2_2_1.Add(hb2_2_2);

        vb2_1.Add(hs2_1_1);
        vb2_2.Add(hs2_2_1);

        vs2_1.Add(vb2_1);
        vs2_1.Add(vb2_2);

        hb2.Add(vs2_1);

        ListViewCtrl searchResultList = new ListViewCtrl();
        searchResultList.Name            = m_SearchResultListName;
        searchResultList.onItemSelected  = searchSpriteEditor.OnSelectListItem;
        searchResultList.onItemSelectedR = searchSpriteEditor.OnSelectListItem;

        SpaceCtrl spaceCtrl = new SpaceCtrl();
        spaceCtrl.CurrValue = 30f;

        vb3.Add(searchResultList);
        vb3.Add(spaceCtrl);

        hs1.Add(hb1);
        hs1.Add(hs2);

        hs2.Add(hb2);
        hs2.Add(vb3);

        m_EditorRoot.RootCtrl = hs1;
        #endregion

        m_EditorRoot.onGUI = searchSpriteEditor.OnEditorGUI;
    }
    public static void InitControls(EditorRoot root)
    {
        /*将编辑器分为上下两个区域*/
        HSpliterCtrl Upanddown = new HSpliterCtrl();

        root.RootCtrl = Upanddown;
        Upanddown.layoutConstraint = LayoutConstraint.GetSpliterConstraint(30f);

        #region 编辑器事件回调
        /*编辑器初始化事件*/
        root.onEnable += EditorWindowOnEnable;
        /*编辑器关闭事件*/
        root.onDestroy += EditorWindowOnDestroy;
        #endregion

        #region 编辑器的上边
        /*存放上方资源的容器*/
        HBoxCtrl upspliter = new HBoxCtrl();
        Upanddown.Add(upspliter);

        /*扫描资源按钮*/
        Rect       SearchBtnRect = new Rect(0, 0, 160, 20);
        ButtonCtrl SearchBtn     = new ButtonCtrl();
        SearchBtn.onClick  = SearchBtnClickEvent;
        SearchBtn.Size     = SearchBtnRect;
        SearchBtn.Visiable = true;
        SearchBtn.Caption  = "扫描资源";
        SearchBtn.Name     = "_SearchButton";

        /*下拉菜单,过滤器*/
        Rect ComboxFliterRect         = new Rect(0, 0, 120, 20);
        ComboBoxCtrl <int> TypeFliter = new ComboBoxCtrl <int>(0);
        TypeFliter.Size           = ComboxFliterRect;
        TypeFliter.Name           = "_TypeFliter";
        TypeFliter.onValueChange += FilterOnchange;

        for (int i = 0; i <= 3; i++)
        {
            TypeFliter.AddItem(new ComboItem("选项0", 0));
            TypeFliter.AddItem(new ComboItem("选项1", 1));
            TypeFliter.AddItem(new ComboItem("选项2", 2));
            TypeFliter.AddItem(new ComboItem("选项3", 3));
        }

        TypeFliter.CurrValue = 0;

        /*数据库状态显示*/
        LabelCtrl StateLabel = new LabelCtrl();
        StateLabel.Caption = "数据库没有更新,请点击刷新资源数据库";
        StateLabel.Name    = "_StateLabel";

        /*将控件放入上方资源*/
        upspliter.Add(SearchBtn);
        upspliter.Add(TypeFliter);
        upspliter.Add(StateLabel);
        #endregion

        #region 编辑器的下边
        /*将下放资源分为左右两个区域*/
        VSpliterCtrl downspliter = new VSpliterCtrl();
        Upanddown.Add(downspliter);
        downspliter.layoutConstraint = LayoutConstraint.GetSpliterConstraint(300f);
        downspliter.Dragable         = true;

        /*存放左侧资源列表和无引用资源的容器*/
        VBoxCtrl LeftAssetContainer = new VBoxCtrl();
        downspliter.Add(LeftAssetContainer);

        /*左侧两枚选项卡*/
        TabViewCtrl leftTabView = new TabViewCtrl();
        LeftAssetContainer.Add(leftTabView);

        /*资源列表*/
        TreeViewCtrl AssetsTreeView = new TreeViewCtrl();
        AssetsTreeView.Caption = "资源列表";
        AssetsTreeView.Name    = "_AssetList";
        leftTabView.Add(AssetsTreeView);

        /*无用资源列表*/
        ListViewCtrl UseLessAssetsList = new ListViewCtrl();
        UseLessAssetsList.Caption = "无用资源";
        UseLessAssetsList.Name    = "_UseLessAssetsList";
        leftTabView.Add(UseLessAssetsList);

        /*存放正向反向资源依赖关系的容器*/
        VBoxCtrl RightAssetDependceContainer = new VBoxCtrl();
        downspliter.Add(RightAssetDependceContainer);

        /*右侧两枚选项卡*/
        TabViewCtrl rightTabView = new TabViewCtrl();
        RightAssetDependceContainer.Add(rightTabView);

        /*资源正向依赖关系列表*/
        ListViewCtrl DependcyAssetsList = new ListViewCtrl();
        DependcyAssetsList.Caption = "正向依赖关系";
        DependcyAssetsList.Name    = "_DependAssetsList";
        rightTabView.Add(DependcyAssetsList);

        /*资源反向依赖关系列表*/
        ListViewCtrl DedependcyAssetsList = new ListViewCtrl();
        DedependcyAssetsList.Caption = "反向依赖关系";
        DedependcyAssetsList.Name    = "_DedependcyAssetsList";
        rightTabView.Add(DedependcyAssetsList);
        #endregion
    }
Exemple #27
0
    //构建控件
    public static void InitControls(EditorRoot editorRoot)
    {
        s_root = editorRoot;

        editorRoot.RootCtrl = new HSpliterCtrl();
        (editorRoot.RootCtrl as SpliterCtrl).Dragable = false;
        editorRoot.RootCtrl.layoutConstraint          = LayoutConstraint.GetSpliterConstraint(30);

        HBoxCtrl menuArea = new HBoxCtrl();

        editorRoot.RootCtrl.Add(menuArea);

        _BuildMenuButtons(menuArea);

        HSpliterCtrl h1 = new HSpliterCtrl();

        h1.layoutConstraint = LayoutConstraint.GetSpliterConstraint(30);
        editorRoot.RootCtrl.Add(h1);

        HBoxCtrl playCtrlArea = new HBoxCtrl();

        h1.Add(playCtrlArea);

        //播放控件
        PlayCtrl playCtrl = new PlayCtrl();

        playCtrl.Name          = s_playCtrlName;
        playCtrl.onValueChange = OnPlayCtrlValueChange;
        playCtrl.onStop        = OnPlayCtrlStop;
        playCtrlArea.Add(playCtrl);

        VSpliterCtrl v1 = new VSpliterCtrl();

        v1.layoutConstraint = LayoutConstraint.GetSpliterConstraint(200);
        v1.Dragable         = false;
        VBoxCtrl speListArea = new VBoxCtrl();

        v1.Add(speListArea);
        h1.Add(v1);

        //特效动画子项列表
        ListViewCtrl speListView = new ListViewCtrl();

        speListView.Name             = s_speListCtrlName;
        speListView.onAcceptDragObjs = OnSpeListAcceptDragObjs;
        speListView.onDropObjs       = OnSpeListDropObjs;
        speListView.onItemSelected   = OnSpeListItemSelect;
        speListView.onDoubleClick    = OnSpeListItemDoubleClick;
        speListView.onScroll         = OnSpeListScroll;
        //speListView.onItemSelectedR = OnSpeListItemRightBtnUp;
        speListView.onItemSelectedRU = OnSpeListItemRightBtnUp;
        speListArea.Add(speListView);

        VSpliterCtrl v2 = new VSpliterCtrl();

        v2.layoutConstraint = LayoutConstraint.GetSpliterConstraint(400, true);
        v2.Dragable         = true;
        v1.Add(v2);

        VBoxCtrl timeLineViewArea = new VBoxCtrl();

        v2.Add(timeLineViewArea);

        //时间线控件
        TimeLineViewCtrl timeLineView = new TimeLineViewCtrl();

        timeLineView.Name           = s_speTimeLineCtrlName;
        timeLineView.onItemSelected = OnTimeLineItemSelect;
        timeLineViewArea.Add(timeLineView);

        VBoxCtrl tabViewArea = new VBoxCtrl();

        v2.Add(tabViewArea);

        TabViewCtrl tabView = new TabViewCtrl();

        tabView.Name = s_tabViewCtrlName;
        tabViewArea.Add(tabView);
        tabView.onItemSelected = OnTabViewSelect;

        _BuildPropertyTabView(tabView);

        {//注册窗体回调
            editorRoot.onEnable  = OnEditorEnable;
            editorRoot.onDisable = OnEditorDisable;
            editorRoot.onUpdate  = OnEditorUpdate;
            editorRoot.onDestroy = OnEditorDestroy;
            editorRoot.onGUI     = OnEditorGUI;
            editorRoot.onMessage = OnEditorMessage;
        }
    }
    void OnSelectListItem(EditorControl c, int index)
    {
        if (
            (m_SearchResultInfo == null) ||
            (m_SearchResultInfo.SearchSpriteInfo == null)
            )
        {
            return;
        }

        ListViewCtrl searchList = c as ListViewCtrl;

        if (null == searchList)
        {
            return;
        }

        MainViewCtrl spriteView = _GetControl <MainViewCtrl>(m_SpriteViewName);

        if (null == spriteView)
        {
            return;
        }

        MainViewCtrl atlasView = _GetControl <MainViewCtrl>(m_AtlasViewName);

        if (null == atlasView)
        {
            return;
        }

        LabelCtrl spriteInfo = _GetControl <LabelCtrl>(m_SpriteInfoLabel);

        if (null == spriteInfo)
        {
            return;
        }

        LabelCtrl atlasInfo = _GetControl <LabelCtrl>(m_AtlasInfoLabel);

        if (null == atlasInfo)
        {
            return;
        }

        SearchSpriteInfo info = m_SearchResultInfo.SearchSpriteInfo[index];

        Texture atlasTex = info.AtlasTexture;

        //获取Sprite在Atlas中的位置
        Rect spriteUVRect = info.SpriteRect;
        //m_SearchResultInfo.GetSpirteUVRect(index);
        Rect spriteUVRectReal = UtilityForNGUI.ConvertToTexCoords(spriteUVRect, atlasTex.width, atlasTex.height);

        float aspect = (float)atlasTex.width / (float)atlasTex.height;
        float w1     = 10.0f;
        float h1     = w1 / aspect;

        float aspect2 = (float)spriteUVRect.width / (float)spriteUVRect.height;
        float w2      = 3.0f;
        float h2      = w2 / aspect2;

        //创建预览Object
        GameObject spritePreviewObj = _GenTexturePreviewObject(w2, h2, atlasTex, spriteUVRectReal);
        GameObject atlasPreviewObj  = _GenTexturePreviewObject(w1, h1, atlasTex, new Rect(0, 0, 1, 1));

        //将预览Object绑定至MainView的主相机之下
        UniversalEditorUtility.DestoryChildren(spriteView.GetBindingTarget());
        spritePreviewObj.transform.parent        = spriteView.GetBindingTarget().transform;
        spritePreviewObj.transform.localPosition = Vector3.zero;

        UniversalEditorUtility.DestoryChildren(atlasView.GetBindingTarget());
        atlasPreviewObj.transform.parent        = atlasView.GetBindingTarget().transform;
        atlasPreviewObj.transform.localPosition = Vector3.zero;

        //更新预览信息
        string atlasName = Path.GetFileNameWithoutExtension(info.AtlasPath);

        spriteInfo.Caption = "Sprite: " + info.SpriteName + " , " + spriteUVRect.width + " * " + spriteUVRect.height;
        atlasInfo.Caption  = "Atlas: " + atlasName + " , " + info.AtlasTexture.width + " * " + info.AtlasTexture.height;
        //spriteView.mainViewUVRect = spriteUVRect;

        RequestRepaint();
    }
 private static void AddCheck(ListViewCtrl view, Session session, string PropertyID)
 {
     view.AddItem(YesNo.Get(session[PropertyID]) != YesNo.No, session[PropertyID + "_TITLE"]);
 }
Exemple #30
0
    static void RebuildListViewAndTimeLineView()
    {
        var clip = SpecialEffectAnimClipEditorModel.GetInstance().CurrentClip;

        //更新ListView
        ListViewCtrl listView = GetListViewCtrl();

        listView.ClearItems();

        var previewAnimClip = clip.PreviewAnimClip;

        {
            ListCtrlItem item = new ListCtrlItem();
            if (previewAnimClip != null)
            {
                item.name = previewAnimClip.name;
            }
            else
            {
                item.name = "空动作";
            }
            item.image = UnityInternalIconCache.GetInstance().GetCacheIcon("UnityEditor.AnimationWindow");
            listView.AddItem(item);
        }


        foreach (var item in clip.Clip.itemList)
        {
            ListCtrlItem listItem = new ListCtrlItem();
            listItem.name = item.obj.name;
            if (item as SpecialEffectAnimClipAudioItem != null)
            {
                listItem.image = UnityInternalIconCache.GetInstance().GetCacheIcon("SceneViewAudio");
            }
            else if (item as SpecialEffectAnimClipEffectItem != null)
            {
                listItem.image = UnityInternalIconCache.GetInstance().GetCacheIcon("AvatarPivot");
            }
            listView.AddItem(listItem);
        }


        //更新TimeLineView
        TimeLineViewCtrl timeLineView = GetTimeLineViewCtrl();

        timeLineView.Items.Clear();

        {
            TimeLineItem item = new TimeLineItem();
            item.startTime = 0.0f;
            if (previewAnimClip != null)
            {
                item.length = previewAnimClip.length;
            }
            else
            {
                item.length = 0.0f;
            }
            timeLineView.Items.Add(item);
        }

        foreach (var item in clip.Clip.itemList)
        {
            TimeLineItem timeLineItem = new TimeLineItem();
            timeLineItem.startTime = item.StartTime;
            timeLineItem.length    = item.Length;
            timeLineView.Items.Add(timeLineItem);
        }

        UpdatePreviewLength();
    }