Пример #1
0
        private Widget BuildTiles()
        {
            var vbox = new VBox()
            {
                Spacing = 12, BorderWidth = 4
            };

            var titleLabel = new Label("Menu:");

            vbox.PackStart(titleLabel, false, false, 0);

            this.presonal_recommendation_view = new SongKickViewInfo("Personal recommendations", recommendations_contents_box);
            this.search_by_artist_view        = new SongKickViewInfo("Find music events by artist", search_by_artist_contents_box)
            {
                ShouldBeSeparated = true
            };
            this.search_by_location_view = new SongKickViewInfo("Find music events by location", search_by_location_contents_box);
            this.search_locations        = new SongKickViewInfo("Find locations", search_location_contents_box)
            {
                ShouldBeSeparated = true
            };
            this.search_artists = new SongKickViewInfo("Find artists", search_artists_contents_box);

            var songkickViews = new SongKickViewInfo [] {
                presonal_recommendation_view,
                search_by_artist_view,
                search_by_location_view,
                search_locations,
                search_artists
            };

            // add buttons
            lock (propagate_change_view_events_lock) {
                propagate_change_view_events = false;
                foreach (var view in songkickViews)
                {
                    if (view.ShouldBeSeparated)
                    {
                        vbox.PackStart(new HSeparator(), false, false, 0);
                    }

                    var button = new Gtk.ToggleButton(view.Name);
                    view.Button = button;

                    button.Clicked += (o, a) => this.SetView(view);

                    vbox.PackStart(button, false, false, 0);
                }
                propagate_change_view_events = true;
            }

            // add clickable SongKick logo:
            vbox.PackEnd(new SongKickLogo(), false, false, 0);

            return(vbox);
        }
Пример #2
0
 private void SetView(SongKickViewInfo view)
 {
     if (propagate_change_view_events)
     {
         lock (propagate_change_view_events_lock) {
             if (propagate_change_view_events)
             {
                 propagate_change_view_events = false;
                 SetViewHelper(view);
                 propagate_change_view_events = true;
             }
         }
     }
 }
Пример #3
0
        private void SetViewHelper(SongKickViewInfo view)
        {
            foreach (Widget w in contents_box.AllChildren)
            {
                contents_box.Remove(w);
            }

            if (active_view != null)
            {
                ThreadAssist.ProxyToMain(() => active_view.Button.Active = false);
            }
            active_view = view;
            ThreadAssist.ProxyToMain(() => active_view.Button.Active = true);

            contents_box.PackStart(view.CorrespondingBox, true, true, 0);
            ShowAll();
        }
        private void SetViewHelper(SongKickViewInfo view)
        {
            foreach (Widget w in contents_box.AllChildren) {
                contents_box.Remove (w);
            }

            if (active_view != null) {
                ThreadAssist.ProxyToMain (() => active_view.Button.Active = false );
            }
            active_view = view;
            ThreadAssist.ProxyToMain (() => active_view.Button.Active = true );

            contents_box.PackStart(view.CorrespondingBox, true, true, 0);
            ShowAll ();
        }
 private void SetView(SongKickViewInfo view)
 {
     if (propagate_change_view_events) {
         lock (propagate_change_view_events_lock) {
             if (propagate_change_view_events) {
                 propagate_change_view_events = false;
                 SetViewHelper (view);
                 propagate_change_view_events = true;
             }
         }
     }
 }
        private Widget BuildTiles()
        {
            var vbox = new VBox () { Spacing = 12, BorderWidth = 4 };

            var titleLabel = new Label ("Menu:");

            vbox.PackStart (titleLabel, false, false, 0);

            this.presonal_recommendation_view = new SongKickViewInfo ("Personal recommendations", recommendations_contents_box);
            this.search_by_artist_view = new SongKickViewInfo("Find music events by artist", search_by_artist_contents_box) {
                ShouldBeSeparated = true
            };
            this.search_by_location_view = new SongKickViewInfo("Find music events by location", search_by_location_contents_box);
            this.search_locations = new SongKickViewInfo ("Find locations", search_location_contents_box) {
                ShouldBeSeparated = true
            };
            this.search_artists = new SongKickViewInfo ("Find artists", search_artists_contents_box);

            var songkickViews = new SongKickViewInfo [] {
                presonal_recommendation_view,
                search_by_artist_view,
                search_by_location_view,
                search_locations,
                search_artists
            };

            // add buttons
            lock (propagate_change_view_events_lock) {
                propagate_change_view_events = false;
                foreach (var view in songkickViews) {
                    if (view.ShouldBeSeparated) {
                        vbox.PackStart (new HSeparator(), false, false, 0);
                    }

                    var button = new Gtk.ToggleButton (view.Name);
                    view.Button = button;

                    button.Clicked += (o, a) => this.SetView (view);

                    vbox.PackStart (button, false, false, 0);
                }
                propagate_change_view_events = true;
            }

            // add clickable SongKick logo:
            vbox.PackEnd (new SongKickLogo(), false, false, 0);

            return vbox;
        }