예제 #1
0
 public override void AllocResources()
 {
     base.AllocResources();
     _imageFocusRectangle.AllocResources();
     thumbImage.AllocResources();
     blackImage.AllocResources();
 }
예제 #2
0
        private void Update()
        {
            try
            {
                if (listExifProperties != null && !listExifProperties.IsVisible)
                {
                    listExifProperties.IsVisible = true;

                    if (!listExifProperties.IsEnabled)
                    {
                        GUIControl.EnableControl(GetID, listExifProperties.GetID);
                    }

                    GUIControl.SelectControl(GetID, listExifProperties.GetID);
                    GUIControl.FocusControl(GetID, listExifProperties.GetID);
                    GUIPropertyManager.SetProperty("#itemcount", Util.Utils.GetObjectCountLabel(listExifProperties.Count));
                    listExifProperties.SelectedListItemIndex = _currentSelectedItem;
                    SelectItem();
                }

                if (imgPicture != null)
                {
                    imgPicture.Rotation = PictureDatabase.GetRotation(_currentPicture);
                    imgPicture.Dispose();
                    imgPicture.AllocResources();
                }

                GUIPropertyManager.SetProperty("#pictures.exif.picture", _currentPicture);
            }
            catch (Exception ex)
            {
                Log.Error("GUIPictureExif Update controls Error: {1}", ex.Message);
            }
        }
예제 #3
0
        public override void AllocResources()
        {
            base.AllocResources();

            m_imgFocus = new GUIImage(GetID, GetID * 10, _positionX, _positionY, this.Width, this.Height,
                                      "icon_empty_focus.png",
                                      0xFFFFFFFF);
            m_imgFocus.AllocResources();
            m_imgNoFocus = new GUIImage(GetID, GetID * 100, _positionX, _positionY, this.Width, this.Height,
                                        "icon_empty_nofocus.png", 0xFFFFFFFF);
            m_imgNoFocus.AllocResources();
            for (int i = 0; i < 9; i++)
            {
                m_imgOverlay[i] = new GUIImage(GetID, GetID * 1000 + i, _positionX, _positionY, this.Width, this.Height,
                                               string.Format("icon_numberplace_overlay_{0}.png", i + 1), 0xFFFFFFFF);
                m_imgOverlay[i].AllocResources();
            }

            m_label = new GUILabelControl(GetID, GetID * 1000, _positionX, _positionY, this.Width, this.Height, this.FontName,
                                          string.Empty, 0xFFFFFFFF, Alignment.ALIGN_CENTER, VAlignment.ALIGN_MIDDLE, false,
                                          _shadowAngle, _shadowDistance, _shadowColor);
            _colorOverlay = new GUIImage(GetID, GetID * 10, _positionX, _positionY, this.Width, this.Height,
                                         "icon_numberplace_colouroverlay.png", 0xFFFFFFFF);
            _colorOverlay.AllocResources();
        }
예제 #4
0
        public PlaneScene(VMR9Util util)
        {
            //	Log.Info("PlaneScene: ctor()");

            _textureAddress = 0;
            _vmr9Util       = util;

            // Number of vertex buffers must be same as numer of segments in non-linear stretch
            _vertexBuffers = new VertexBuffer[nlsSourcePartitioning.Length];
            for (int i = 0; i < _vertexBuffers.Length; i++)
            {
                _vertexBuffers[i] = new VertexBuffer(typeof(CustomVertex.TransformedColoredTextured),
                                                     4,
                                                     GUIGraphicsContext.DX9Device,
                                                     0,
                                                     CustomVertex.TransformedColoredTextured.Format,
                                                     GUIGraphicsContext.GetTexturePoolType());
            }

            _blackImage = new GUIImage(0);
            _blackImage.SetFileName("black.png");
            _blackImage.AllocResources();

            _cropSettings = new CropSettings();
        }
        private void Update()
        {
            if (currentActor == null)
            {
                return;
            }

            //cast->image
            if (viewmode == ViewMode.Movies)
            {
                tbPlotArea.IsVisible  = false;
                tbTextArea.IsVisible  = true;
                imgCoverArt.IsVisible = true;
                btnBiography.Selected = false;
                btnMovies.Selected    = true;
            }
            //cast->plot
            if (viewmode == ViewMode.Biography)
            {
                tbPlotArea.IsVisible  = true;
                tbTextArea.IsVisible  = false;
                imgCoverArt.IsVisible = true;
                btnBiography.Selected = true;
                btnMovies.Selected    = false;
            }
            GUIPropertyManager.SetProperty("#Actor.Name", currentActor.Name);
            GUIPropertyManager.SetProperty("#Actor.DateOfBirth", currentActor.DateOfBirth);
            GUIPropertyManager.SetProperty("#Actor.PlaceOfBirth", currentActor.PlaceOfBirth);
            string biography = currentActor.Biography;

            if ((biography == string.Empty) || (biography == Strings.Unknown))
            {
                biography = currentActor.MiniBiography;
                if (biography == Strings.Unknown)
                {
                    biography = "";
                }
            }
            GUIPropertyManager.SetProperty("#Actor.Biography", biography);
            string movies = "";

            for (int i = 0; i < currentActor.Count; ++i)
            {
                string line = String.Format("{0}. {1} ({2})\n            {3}\n", i + 1, currentActor[i].MovieTitle,
                                            currentActor[i].Year, currentActor[i].Role);
                movies += line;
            }
            GUIPropertyManager.SetProperty("#Actor.Movies", movies);

            string largeCoverArtImage = Util.Utils.GetLargeCoverArtName(Thumbs.MovieActors, currentActor.Name);

            if (imgCoverArt != null)
            {
                imgCoverArt.Dispose();
                imgCoverArt.SetFileName(largeCoverArtImage);
                imgCoverArt.AllocResources();
            }
        }
        /// <summary>
        /// Allocates the control its DirectX resources.
        /// </summary>
        public override void AllocResources()
        {
            base.AllocResources();
            _imageBackground.AllocResources();
            _imageBottom.AllocResources();
            _imageTop.AllocResources();

            _imageBackground.DimColor = DimColor;
            _imageTop.DimColor        = DimColor;
            _imageBottom.DimColor     = DimColor;
        }
예제 #7
0
        // Just because of compatibility with old skins (not needed in the future)
        private void SetOldProperties()
        {
            string movies = string.Empty;

            for (int i = 0; i < _currentActor.Count; ++i)
            {
                string line = String.Format("{0}. {1} ({2})\n            {3}\n", i + 1, _currentActor[i].MovieTitle,
                                            _currentActor[i].Year, _currentActor[i].Role);
                movies += line;
            }
            GUIPropertyManager.SetProperty("#Actor.Movies", movies);

            string largeCoverArtImage = Util.Utils.GetLargeCoverArtName(Thumbs.MovieActors, _currentActor.ID.ToString());

            if (imgCoverArt != null)
            {
                imgCoverArt.Dispose();
                imgCoverArt.SetFileName(largeCoverArtImage);
                imgCoverArt.AllocResources();
            }
            Update();
        }
예제 #8
0
        protected void Update(bool selectCurrentShow)
        {
            lock (this)
            {
                if (GUIWindowManager.ActiveWindowEx != this.GetID)
                {
                    return;
                }

                // Skin settings may have changed via the MP GUI, reload them.
                LoadSkinSettings();

                // sets button visible state
                UpdateGroupButton();

                GUIButton3PartControl cntlChannelGroup = GetControl((int)Controls.CHANNEL_GROUP_BUTTON) as GUIButton3PartControl;
                cntlChannelGroup.RenderLeft           = false;
                cntlChannelGroup.RenderRight          = false;
                cntlChannelGroup.StretchIfNotRendered = true;
                if (_useColorsForButtons)
                {
                    cntlChannelGroup.ColourDiffuse = _guideColorGroupButton;
                }

                _updateTimer = DateTime.Now;
                GUISpinControl cntlDay = GetControl((int)Controls.SPINCONTROL_DAY) as GUISpinControl;

                // Find first day in TVGuide and set spincontrol position
                int iDay = CalcDays();
                for (; iDay < 0; ++iDay)
                {
                    _viewingTime = _viewingTime.AddDays(1.0);
                }
                for (; iDay >= MaxDaysInGuide; --iDay)
                {
                    _viewingTime = _viewingTime.AddDays(-1.0);
                }
                cntlDay.Value = iDay;

                int             xpos, ypos;
                GUIControl      cntlPanel           = GetControl((int)Controls.PANEL_BACKGROUND);
                GUIImage        cntlChannelImg      = (GUIImage)GetControl((int)Controls.CHANNEL_IMAGE_TEMPLATE);
                GUILabelControl cntlChannelLabel    = (GUILabelControl)GetControl((int)Controls.CHANNEL_LABEL_TEMPLATE);
                GUILabelControl labelTime           = (GUILabelControl)GetControl((int)Controls.LABEL_TIME1);
                GUIImage        cntlHeaderBkgImg    = (GUIImage)GetControl((int)Controls.IMG_TIME1);
                GUIImage        cntlChannelTemplate = (GUIImage)GetControl((int)Controls.CHANNEL_TEMPLATE);


                _titleDarkTemplate = GetControl((int)Controls.LABEL_TITLE_DARK_TEMPLATE) as GUILabelControl;
                _titleTemplate     = GetControl((int)Controls.LABEL_TITLE_TEMPLATE) as GUILabelControl;
                _genreDarkTemplate = GetControl((int)Controls.LABEL_GENRE_DARK_TEMPLATE) as GUILabelControl;
                _genreTemplate     = GetControl((int)Controls.LABEL_GENRE_TEMPLATE) as GUILabelControl;

                _programPartialRecordTemplate = GetControl((int)Controls.BUTTON_PROGRAM_PARTIAL_RECORD) as GUIButton3PartControl;
                _programRecordTemplate        = GetControl((int)Controls.BUTTON_PROGRAM_RECORD) as GUIButton3PartControl;
                _programNotifyTemplate        = GetControl((int)Controls.BUTTON_PROGRAM_NOTIFY) as GUIButton3PartControl;
                _programNotRunningTemplate    = GetControl((int)Controls.BUTTON_PROGRAM_NOT_RUNNING) as GUIButton3PartControl;
                _programRunningTemplate       = GetControl((int)Controls.BUTTON_PROGRAM_RUNNING) as GUIButton3PartControl;

                _showChannelLogos = cntlChannelImg != null;
                if (_showChannelLogos)
                {
                    cntlChannelImg.IsVisible = false;
                }
                cntlChannelLabel.IsVisible    = false;
                cntlHeaderBkgImg.IsVisible    = false;
                labelTime.IsVisible           = false;
                cntlChannelTemplate.IsVisible = false;
                int iLabelWidth = (cntlPanel.XPosition + cntlPanel.Width - labelTime.XPosition) / 4;

                // add labels for time blocks 1-4
                int iHour, iMin;
                iMin         = _viewingTime.Minute;
                _viewingTime = _viewingTime.AddMinutes(-iMin);
                iMin         = (iMin / _timePerBlock) * _timePerBlock;
                _viewingTime = _viewingTime.AddMinutes(iMin);

                DateTime dt = new DateTime();
                dt = _viewingTime;

                for (int iLabel = 0; iLabel < 4; iLabel++)
                {
                    xpos = iLabel * iLabelWidth + labelTime.XPosition;
                    ypos = labelTime.YPosition;

                    GUIImage img = GetControl((int)Controls.IMG_TIME1 + iLabel) as GUIImage;
                    if (img == null)
                    {
                        img = new GUIImage(GetID, (int)Controls.IMG_TIME1 + iLabel, xpos, ypos, iLabelWidth - 4,
                                           cntlHeaderBkgImg.RenderHeight, cntlHeaderBkgImg.FileName, 0x0);
                        img.AllocResources();
                        GUIControl cntl2 = (GUIControl)img;
                        Add(ref cntl2);
                    }

                    img.IsVisible = !_singleChannelView;
                    img.Width     = iLabelWidth - 4;
                    img.Height    = cntlHeaderBkgImg.RenderHeight;
                    img.SetFileName(cntlHeaderBkgImg.FileName);
                    img.SetPosition(xpos, ypos);
                    img.DoUpdate();

                    GUILabelControl label = GetControl((int)Controls.LABEL_TIME1 + iLabel) as GUILabelControl;
                    if (label == null)
                    {
                        label = new GUILabelControl(GetID, (int)Controls.LABEL_TIME1 + iLabel, xpos, ypos, iLabelWidth,
                                                    cntlHeaderBkgImg.RenderHeight, labelTime.FontName, String.Empty,
                                                    labelTime.TextColor, labelTime.TextAlignment, labelTime.TextVAlignment, false,
                                                    labelTime.ShadowAngle, labelTime.ShadowDistance, labelTime.ShadowColor);
                        label.AllocResources();
                        GUIControl cntl = (GUIControl)label;
                        this.Add(ref cntl);
                    }
                    iHour = dt.Hour;
                    iMin  = dt.Minute;
                    string strTime = dt.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat);
                    label.Label = " " + strTime;
                    dt          = dt.AddMinutes(_timePerBlock);

                    label.TextAlignment = GUIControl.Alignment.ALIGN_LEFT;
                    label.IsVisible     = !_singleChannelView;
                    label.Width         = iLabelWidth;
                    label.Height        = cntlHeaderBkgImg.RenderHeight;
                    label.FontName      = labelTime.FontName;
                    label.TextColor     = labelTime.TextColor;
                    label.SetPosition(xpos, ypos);
                }

                // add channels...
                int iHeight     = cntlPanel.Height + cntlPanel.YPosition - cntlChannelTemplate.YPosition;
                int iItemHeight = cntlChannelTemplate.Height;

                _channelCount = (int)(((float)iHeight) / ((float)iItemHeight));
                for (int iChan = 0; iChan < _channelCount; ++iChan)
                {
                    xpos = cntlChannelTemplate.XPosition;
                    ypos = cntlChannelTemplate.YPosition + iChan * iItemHeight;

                    //this.Remove((int)Controls.IMG_CHAN1+iChan);
                    GUIButton3PartControl imgBut = GetControl((int)Controls.IMG_CHAN1 + iChan) as GUIButton3PartControl;
                    if (imgBut == null)
                    {
                        string strChannelImageFileName = String.Empty;
                        if (_showChannelLogos)
                        {
                            strChannelImageFileName = cntlChannelImg.FileName;
                        }

                        // Use a template control if it exists, otherwise use default values.
                        GUIButton3PartControl buttonTemplate = GetControl((int)Controls.BUTTON_PROGRAM_NOT_RUNNING) as GUIButton3PartControl;
                        if (buttonTemplate != null)
                        {
                            buttonTemplate.IsVisible = false;
                            imgBut = new GUIButton3PartControl(GetID, (int)Controls.IMG_CHAN1 + iChan, xpos, ypos,
                                                               cntlChannelTemplate.Width - 2, cntlChannelTemplate.Height - 2,
                                                               buttonTemplate.TexutureFocusLeftName,
                                                               buttonTemplate.TexutureFocusMidName,
                                                               buttonTemplate.TexutureFocusRightName,
                                                               buttonTemplate.TexutureNoFocusLeftName,
                                                               buttonTemplate.TexutureNoFocusMidName,
                                                               buttonTemplate.TexutureNoFocusRightName,
                                                               strChannelImageFileName);

                            imgBut.TileFillTFL  = buttonTemplate.TileFillTFL;
                            imgBut.TileFillTNFL = buttonTemplate.TileFillTNFL;
                            imgBut.TileFillTFM  = buttonTemplate.TileFillTFM;
                            imgBut.TileFillTNFM = buttonTemplate.TileFillTNFM;
                            imgBut.TileFillTFR  = buttonTemplate.TileFillTFR;
                            imgBut.TileFillTNFR = buttonTemplate.TileFillTNFR;

                            imgBut.OverlayFileNameTFL  = buttonTemplate.OverlayFileNameTFL;
                            imgBut.OverlayFileNameTNFL = buttonTemplate.OverlayFileNameTNFL;
                            imgBut.OverlayFileNameTFM  = buttonTemplate.OverlayFileNameTFM;
                            imgBut.OverlayFileNameTNFM = buttonTemplate.OverlayFileNameTNFM;
                            imgBut.OverlayFileNameTFR  = buttonTemplate.OverlayFileNameTFR;
                            imgBut.OverlayFileNameTNFR = buttonTemplate.OverlayFileNameTNFR;
                        }
                        else
                        {
                            imgBut = new GUIButton3PartControl(GetID, (int)Controls.IMG_CHAN1 + iChan, xpos, ypos,
                                                               cntlChannelTemplate.Width - 2, cntlChannelTemplate.Height - 2,
                                                               "tvguide_button_selected_left.png",
                                                               "tvguide_button_selected_middle.png",
                                                               "tvguide_button_selected_right.png",
                                                               "tvguide_button_light_left.png",
                                                               "tvguide_button_light_middle.png",
                                                               "tvguide_button_light_right.png",
                                                               strChannelImageFileName);
                        }
                        imgBut.AllocResources();
                        GUIControl cntl = (GUIControl)imgBut;
                        Add(ref cntl);
                    }

                    imgBut.Width  = cntlChannelTemplate.Width - 2;  //labelTime.XPosition-cntlChannelImg.XPosition;
                    imgBut.Height = cntlChannelTemplate.Height - 2; //iItemHeight-2;
                    imgBut.SetPosition(xpos, ypos);
                    imgBut.FontName1            = cntlChannelLabel.FontName;
                    imgBut.TextColor1           = cntlChannelLabel.TextColor;
                    imgBut.Label1               = String.Empty;
                    imgBut.RenderLeft           = false;
                    imgBut.RenderRight          = false;
                    imgBut.StretchIfNotRendered = true;
                    imgBut.SetShadow1(cntlChannelLabel.ShadowAngle, cntlChannelLabel.ShadowDistance, cntlChannelLabel.ShadowColor);

                    if (_showChannelLogos)
                    {
                        imgBut.TexutureIcon        = cntlChannelImg.FileName;
                        imgBut.IconOffsetX         = cntlChannelImg.XPosition;
                        imgBut.IconOffsetY         = cntlChannelImg.YPosition;
                        imgBut.IconWidth           = cntlChannelImg.RenderWidth;
                        imgBut.IconHeight          = cntlChannelImg.RenderHeight;
                        imgBut.IconKeepAspectRatio = cntlChannelImg.KeepAspectRatio;
                        imgBut.IconCentered        = (cntlChannelImg.ImageAlignment == GUIControl.Alignment.ALIGN_CENTER);
                        imgBut.IconZoom            = cntlChannelImg.Zoom;
                    }
                    imgBut.TextOffsetX1 = cntlChannelLabel.XPosition;
                    imgBut.TextOffsetY1 = cntlChannelLabel.YPosition;
                    imgBut.DoUpdate();
                }

                UpdateHorizontalScrollbar();
                UpdateVerticalScrollbar();

                GetChannels(false);


                string day;
                switch (_viewingTime.DayOfWeek)
                {
                case DayOfWeek.Monday:
                    day = GUILocalizeStrings.Get(657);
                    break;

                case DayOfWeek.Tuesday:
                    day = GUILocalizeStrings.Get(658);
                    break;

                case DayOfWeek.Wednesday:
                    day = GUILocalizeStrings.Get(659);
                    break;

                case DayOfWeek.Thursday:
                    day = GUILocalizeStrings.Get(660);
                    break;

                case DayOfWeek.Friday:
                    day = GUILocalizeStrings.Get(661);
                    break;

                case DayOfWeek.Saturday:
                    day = GUILocalizeStrings.Get(662);
                    break;

                default:
                    day = GUILocalizeStrings.Get(663);
                    break;
                }
                GUIPropertyManager.SetProperty(SkinPropertyPrefix + ".Guide.View.SDOW", day);
                GUIPropertyManager.SetProperty(SkinPropertyPrefix + ".Guide.View.Month", _viewingTime.Month.ToString());
                GUIPropertyManager.SetProperty(SkinPropertyPrefix + ".Guide.View.Day", _viewingTime.Day.ToString());

                //day = String.Format("{0} {1}-{2}", day, _viewingTime.Day, _viewingTime.Month);
                day = Utils.GetShortDayString(_viewingTime);
                GUIPropertyManager.SetProperty(SkinPropertyPrefix + ".Guide.Day", day);

                //2004 03 31 22 20 00
                string strStart = String.Format("{0}{1:00}{2:00}{3:00}{4:00}{5:00}",
                                                _viewingTime.Year, _viewingTime.Month, _viewingTime.Day,
                                                _viewingTime.Hour, _viewingTime.Minute, 0);
                DateTime dtStop = new DateTime();
                dtStop = _viewingTime;
                dtStop = dtStop.AddMinutes(_numberOfBlocks * _timePerBlock - 1);
                iMin   = dtStop.Minute;
                string strEnd = String.Format("{0}{1:00}{2:00}{3:00}{4:00}{5:00}",
                                              dtStop.Year, dtStop.Month, dtStop.Day,
                                              dtStop.Hour, iMin, 0);

                long iStart = Int64.Parse(strStart);
                long iEnd   = Int64.Parse(strEnd);


                LoadSchedules(false);

                if (_channelOffset > _channelList.Count)
                {
                    _channelOffset = 0;
                    _cursorX       = 0;
                }

                for (int i = 0; i < controlList.Count; ++i)
                {
                    GUIControl cntl = (GUIControl)controlList[i];
                    if (cntl.GetID >= GUIDE_COMPONENTID_START)
                    {
                        cntl.IsVisible = false;
                    }
                }

                if (_singleChannelView)
                {
                    // show all buttons (could be less visible if channels < rows)
                    for (int iChannel = 0; iChannel < _channelCount; iChannel++)
                    {
                        GUIButton3PartControl imgBut = GetControl((int)Controls.IMG_CHAN1 + iChannel) as GUIButton3PartControl;
                        if (imgBut != null)
                        {
                            imgBut.IsVisible = true;
                        }
                    }

                    Channel channel = (Channel)_channelList[_singleChannelNumber].channel;
                    setGuideHeadingVisibility(false);
                    RenderSingleChannel(channel);
                }
                else
                {
                    TvBusinessLayer layer = new TvBusinessLayer();

                    List <Channel> visibleChannels = new List <Channel>();

                    int chan = _channelOffset;
                    for (int iChannel = 0; iChannel < _channelCount; iChannel++)
                    {
                        if (chan < _channelList.Count)
                        {
                            visibleChannels.Add(_channelList[chan].channel);
                        }
                        chan++;
                        if (chan >= _channelList.Count && visibleChannels.Count < _channelList.Count)
                        {
                            chan = 0;
                        }
                    }
                    Dictionary <int, List <Program> > programs = layer.GetProgramsForAllChannels(Utils.longtodate(iStart),
                                                                                                 Utils.longtodate(iEnd),
                                                                                                 visibleChannels);
                    // make sure the TV Guide heading is visiable and the single channel labels are not.
                    setGuideHeadingVisibility(true);
                    setSingleChannelLabelVisibility(false);
                    chan = _channelOffset;

                    int firstButtonYPos = 0;
                    int lastButtonYPos  = 0;

                    int channelCount = _channelCount;
                    if (_previousChannelCount > channelCount)
                    {
                        channelCount = _previousChannelCount;
                    }

                    for (int iChannel = 0; iChannel < channelCount; iChannel++)
                    {
                        if (chan < _channelList.Count)
                        {
                            GuideChannel tvGuideChannel = (GuideChannel)_channelList[chan];
                            RenderChannel(ref programs, iChannel, tvGuideChannel, iStart, iEnd, selectCurrentShow);
                            // remember bottom y position from last visible button
                            GUIButton3PartControl imgBut = GetControl((int)Controls.IMG_CHAN1 + iChannel) as GUIButton3PartControl;
                            if (imgBut != null)
                            {
                                if (iChannel == 0)
                                {
                                    firstButtonYPos = imgBut.YPosition;
                                }

                                lastButtonYPos = imgBut.YPosition + imgBut.Height;
                            }
                        }
                        chan++;
                        if (chan >= _channelList.Count && _channelList.Count > _channelCount)
                        {
                            chan = 0;
                        }
                        if (chan > _channelList.Count)
                        {
                            GUIButton3PartControl imgBut = GetControl((int)Controls.IMG_CHAN1 + iChannel) as GUIButton3PartControl;
                            if (imgBut != null)
                            {
                                imgBut.IsVisible = false;
                            }
                        }
                    }

                    GUIImage vertLine = GetControl((int)Controls.VERTICAL_LINE) as GUIImage;
                    if (vertLine != null)
                    {
                        // height taken from last button (bottom) minus the yposition of slider plus the offset of slider in relation to first button
                        vertLine.Height = lastButtonYPos - vertLine.YPosition + (firstButtonYPos - vertLine.YPosition);
                    }
                    // update selected channel
                    _singleChannelNumber = _cursorX + _channelOffset;
                    if (_singleChannelNumber >= _channelList.Count)
                    {
                        _singleChannelNumber -= _channelList.Count;
                    }

                    // instead of direct casting us "as"; else it fails for other controls!
                    GUIButton3PartControl img = GetControl(_cursorX + (int)Controls.IMG_CHAN1) as GUIButton3PartControl;
                    if (null != img)
                    {
                        _currentChannel = (Channel)img.Data;
                    }
                }
                UpdateVerticalScrollbar();

                if (_showGenreKey)
                {
                    RenderGenreKey();
                }
            }
        }
예제 #9
0
        protected void RenderGenreKey()
        {
            GUIImage     imgGenreColor  = (GUIImage)GetControl((int)Controls.GENRE_COLOR_KEY_PAIR);
            GUIFadeLabel labelGenreName = (GUIFadeLabel)GetControl((int)Controls.GENRE_COLOR_KEY_PAIR + 1);

            MpGenre genreObj = _mpGenres.Find(x => x.Enabled == true);

            // Do not render the key if the template controls are not present or there are no enabled mp genres.
            if (imgGenreColor == null || labelGenreName == null || genreObj == null)
            {
                return;
            }

            // Display the genre key.
            var genreKeys = _genreColorsOnLater.Keys.ToList();

            genreKeys.Sort();
            int xpos, i = 0;
            int xoffset = 0;

            foreach (var genreName in genreKeys)
            {
                // If the genre is not enabled then skip it.  This can occur if the user desires to have less than the maximum number of MP genres available.
                genreObj = ((List <MpGenre>)_mpGenres).Find(x => x.Name.Equals(genreName));
                if (!genreObj.Enabled)
                {
                    continue;
                }

                xpos = imgGenreColor.XPosition + xoffset;

                GUIImage img = GetControl((int)Controls.GENRE_COLOR_KEY_PAIR + (2 * i)) as GUIImage;
                if (img == null)
                {
                    img = new GUIImage(GetID, (int)Controls.GENRE_COLOR_KEY_PAIR + (2 * i), xpos, imgGenreColor.YPosition, imgGenreColor.Width,
                                       imgGenreColor.Height, imgGenreColor.FileName, 0x0);
                    img.AllocResources();
                    GUIControl cntl = (GUIControl)img;
                    Add(ref cntl);
                }
                img.IsVisible       = true;
                img.ColourDiffuse   = _genreColorsOnLater[genreName];
                img.OverlayFileName = imgGenreColor.OverlayFileName;
                img.SetPosition(xpos, imgGenreColor.YPosition);
                img.DoUpdate();

                GUIFadeLabel label = GetControl(((int)Controls.GENRE_COLOR_KEY_PAIR + 1) + (2 * i)) as GUIFadeLabel;
                if (label == null)
                {
                    label = new GUIFadeLabel(GetID, ((int)Controls.GENRE_COLOR_KEY_PAIR + 1) + (2 * i), 0, 0, labelGenreName.Width,
                                             labelGenreName.Height, labelGenreName.FontName,
                                             labelGenreName.TextColor, labelGenreName.TextAlignment, labelGenreName.TextVAlignment,
                                             labelGenreName.ShadowAngle, labelGenreName.ShadowDistance, labelGenreName.ShadowColor,
                                             string.Empty);

                    label.AllocResources();
                    GUIControl cntl = (GUIControl)label;
                    this.Add(ref cntl);
                }
                label.Label = genreName;
                label.SetPosition(xpos + imgGenreColor.Width + 10, labelGenreName.YPosition);
                label.ScrollStartDelay = labelGenreName.ScrollStartDelay;
                label.IsVisible        = true;

                // Compute position of the next key.
                int w = label.Width;
                if (label.TextWidth < label.Width)
                {
                    w = label.TextWidth;
                }

                xoffset += (int)(imgGenreColor.Width * 2.3 + w);
                i++;
            }
        }
 public void SetImage(string filename)
 {
     imgLogo.Dispose();
     imgLogo.SetFileName(filename);
     imgLogo.AllocResources();
 }
예제 #11
0
        private void Update()
        {
            if (currentMovie == null)
            {
                return;
            }

            // Cast
            if (viewmode == ViewMode.Cast)
            {
                if (tbPlotArea != null)
                {
                    tbPlotArea.IsVisible = false;
                }
                if (tbReviwArea != null)
                {
                    tbReviwArea.IsVisible = false;
                }
                if (tbTextArea != null)
                {
                    tbTextArea.IsVisible = true;
                }
                if (imgCoverArt != null)
                {
                    imgCoverArt.IsVisible = true;
                }
                if (lblDisc != null)
                {
                    lblDisc.IsVisible = false;
                }
                if (spinDisc != null)
                {
                    spinDisc.IsVisible = false;
                }
                if (btnPlot != null)
                {
                    btnPlot.Selected = false;
                }
                if (btnReview != null)
                {
                    btnReview.Selected = false;
                }
                if (btnCast != null)
                {
                    btnCast.Selected = true;
                }
            }
            // Plot
            if (viewmode == ViewMode.Plot)
            {
                if (tbPlotArea != null)
                {
                    tbPlotArea.IsVisible = true;
                }
                if (tbReviwArea != null)
                {
                    tbReviwArea.IsVisible = false;
                }
                if (tbTextArea != null)
                {
                    tbTextArea.IsVisible = false;
                }
                if (imgCoverArt != null)
                {
                    imgCoverArt.IsVisible = true;
                }
                if (lblDisc != null)
                {
                    lblDisc.IsVisible = true;
                }
                if (spinDisc != null)
                {
                    spinDisc.IsVisible = true;
                }
                if (btnPlot != null)
                {
                    btnPlot.Selected = true;
                }
                if (btnReview != null)
                {
                    btnReview.Selected = false;
                }
                if (btnCast != null)
                {
                    btnCast.Selected = false;
                }
            }
            // Review
            if (viewmode == ViewMode.Review)
            {
                if (tbPlotArea != null)
                {
                    tbPlotArea.IsVisible = false;
                }
                if (tbReviwArea != null)
                {
                    tbReviwArea.IsVisible = true;
                }
                if (tbTextArea != null)
                {
                    tbTextArea.IsVisible = false;
                }
                if (imgCoverArt != null)
                {
                    imgCoverArt.IsVisible = true;
                }
                if (lblDisc != null)
                {
                    lblDisc.IsVisible = true;
                }
                if (spinDisc != null)
                {
                    spinDisc.IsVisible = true;
                }
                if (btnPlot != null)
                {
                    btnPlot.Selected = false;
                }
                if (btnReview != null)
                {
                    btnReview.Selected = true;
                }
                if (btnCast != null)
                {
                    btnCast.Selected = false;
                }
            }

            btnWatched.Selected = (currentMovie.Watched != 0);
            currentMovie.SetProperties(false);

            if (imgCoverArt != null)
            {
                imgCoverArt.Dispose();
                imgCoverArt.AllocResources();
            }
        }
예제 #12
0
 public override void AllocResources()
 {
     base.AllocResources();
     _imageVolumeBar.SetFileName(_textureName);
     _imageVolumeBar.AllocResources();
 }