Ejemplo n.º 1
0
        /// <summary>
        /// Retrieves an array of controls that reference a particular texture.
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        private Reference[] GetReferences(UI.Resources.TextureInfo info)
        {
            List <Reference> list = new List <Reference>();

            if (info != null)
            {
                foreach (UI.GUIView view in mScene.Views)
                {
                    Reference reference = null;
                    foreach (UI.GUIControl control in view.Controls)
                    {
                        if (control.TextureIDs.Contains(info.ID))
                        {
                            if (reference == null)
                            {
                                reference      = new Reference();
                                reference.View = view;
                            }

                            reference.Controls.Add(control);
                        }
                    }

                    if (reference != null)
                    {
                        list.Add(reference);
                    }
                }
            }

            return(list.ToArray());
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Notifies that the selected texture has changed
 /// </summary>
 /// <param name="info"></param>
 private void NotifySelectedTextureChanged(UI.Resources.TextureInfo info)
 {
     if (SelectedTextureChanged != null)
     {
         SelectedTextureChanged(this, info);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Refreshes the selected texture
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void mRefreshButton_Click(object sender, EventArgs e)
        {
            UI.Resources.TextureInfo texToRefresh = mTextureList.SelectedTexture;

            if (texToRefresh == null)
            {
                return;
            }

            mTextureList.UpdateTexture(texToRefresh);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Retrieves the ListViewItem associated with a texture info
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        private ListViewItem GetTextureListViewItem(UI.Resources.TextureInfo info)
        {
            foreach (ListViewItem item in mTexturesListView.Items)
            {
                if (item.Tag == info)
                {
                    return(item);
                }
            }

            return(null);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Scrolls to a particular texture
        /// </summary>
        /// <param name="info"></param>
        private void ScrollToTexture(UI.Resources.TextureInfo info)
        {
            if (info == null)
            {
                return;
            }

            ListViewItem item = GetTextureListViewItem(info);

            if (item == null)
            {
                return;
            }

            item.EnsureVisible();
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Removes a texture from the scene's texture list
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void mRemoveButton_Click(object sender, EventArgs e)
        {
            UI.Resources.TextureInfo texToRemove = mTextureList.SelectedTexture;

            if (texToRemove == null)
            {
                return;
            }

            Reference[] references = GetReferences(texToRemove);
            if (references.Length > 0)
            {
                return;
            }

            mTextureList.SelectedTexture = null;

            mScene.Textures.Remove(texToRemove);
            mTextureList.Textures = mScene.Textures.ToArray();
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Updates the texture in the texture list
        /// </summary>
        /// <param name="info"></param>
        public void UpdateTexture(UI.Resources.TextureInfo info)
        {
            ListViewItem item = GetTextureListViewItem(info);

            if (item == null)
            {
                return;
            }

            info.Unload();
            info.Load();

            Bitmap   bmp = new Bitmap(100, 100);
            Graphics g   = Graphics.FromImage(bmp);

            g.Clear(Color.Red);
            g.Dispose();

            mTexturesListView.LargeImageList.Images.Add(info.Thumbnail);
            item.ImageIndex = mTexturesListView.LargeImageList.Images.Count - 1;
            mTexturesListView.Invalidate(true);
        }