protected virtual void OnTreeview1CursorChanged(object sender, System.EventArgs e) { Gtk.TreeModel mod; Gtk.TreeIter iter; if(this.treeview1.Selection.GetSelected(out mod,out iter)) { UUID id=(UUID)mod.GetValue(iter,5); this.current_image=id; if(getter!=null) getter.abort(); TryGetImage i = new TryGetImage(this.image_parcel,id,175,175,false); getter=i; } }
void Groups_GroupProfile(object sender, GroupProfileEventArgs e) { if(e.Group.ID!=this.groupkey) return; Gtk.Application.Invoke(delegate { this.entry_enrollmentfee.Text=e.Group.MembershipFee.ToString(); if(e.Group.MembershipFee>0) this.checkbutton_mature.Active=true; if(this.already_member==true) { foreach(AvatarGroup avgroup in MainClass.win.avatarGroups) { if(avgroup.GroupID==this.groupkey) { //this.checkbutton_group_notices.Active= avgroup.AcceptNotices; //this.checkbutton_showinpofile.Active = avgroup.ListInProfile; break; } } } this.checkbutton_openenrolement.Active=e.Group.OpenEnrollment; this.checkbutton_showinsearch.Active=e.Group.ShowInList; this.checkbutton_mature.Active=e.Group.MaturePublish; this.textview_group_charter.Buffer.Text=e.Group.Charter; if((e.Group.Powers & GroupPowers.SendNotices)==GroupPowers.SendNotices) this.button_send_notice.Sensitive=true; else this.button_send_notice.Sensitive=false; TryGetImage img=new TryGetImage(this.image_group_emblem,e.Group.InsigniaID,128,128,false); this.label_name.Text=e.Group.Name; AsyncNameUpdate ud=new AsyncNameUpdate(e.Group.FounderID,false); ud.onNameCallBack += delegate(string namex,object[] values){this.label_foundedby.Text="Founded by "+namex;}; ud.go(); this.entry_enrollmentfee.Text=e.Group.MembershipFee.ToString(); if(e.Group.MembershipFee>0) this.checkbutton_mature.Active=true; this.checkbutton_openenrolement.Active=e.Group.OpenEnrollment; this.checkbutton_showinsearch.Active=e.Group.ShowInList; this.checkbutton_mature.Active=e.Group.MaturePublish; this.textview_group_charter.Buffer.Text=e.Group.Charter; if(!this.already_member) { if(e.Group.OpenEnrollment==true) this.button_join.Sensitive=true; } this.checkbutton_group_notices.Sensitive=this.already_member; this.checkbutton_showinpofile.Sensitive=this.already_member; }); }
protected virtual void OnTreeviewParcelsCursorChanged(object sender, System.EventArgs e) { Gtk.TreeModel mod; Gtk.TreeIter iter; if(this.treeview_parcels.Selection.GetSelected(out mod,out iter)) { int id=(int)mod.GetValue(iter,6); selectedparcel=id; //this.image_parcel.Pixbuf=new Gdk.Pixbuf(parcel.Bitmap); parcels_access.Clear(); parcels_ban.Clear(); Parcel parcel; if(MainClass.client.Network.CurrentSim.Parcels.TryGetValue(id, out parcel)) { Logger.Log(parcel.Flags.ToString(),Helpers.LogLevel.Debug); this.checkbox_nopayment.Active = (OpenMetaverse.ParcelFlags.DenyAnonymous == (parcel.Flags & OpenMetaverse.ParcelFlags.DenyAnonymous)); this.checkbutton_noageverify.Active = (OpenMetaverse.ParcelFlags.DenyAgeUnverified == (parcel.Flags & OpenMetaverse.ParcelFlags.DenyAgeUnverified)); this.entry_time.Text = parcel.PassHours.ToString(); this.entry_price.Text = parcel.PassPrice.ToString(); this.checkbutton_publicaccess.Active = !(OpenMetaverse.ParcelFlags.UseAccessList == (parcel.Flags & OpenMetaverse.ParcelFlags.UseAccessList)); //this.checkbutton_sellpasses; this.checkbutton_groupaccess.Active = (OpenMetaverse.ParcelFlags.UseAccessGroup == (parcel.Flags & OpenMetaverse.ParcelFlags.UseAccessGroup)); this.entry_maxprims.Text = parcel.MaxPrims.ToString(); this.entry_primsgroup.Text = parcel.GroupPrims.ToString(); this.entry_bonus.Text = parcel.ParcelPrimBonus.ToString(); this.entry_primsowner.Text = parcel.OwnerPrims.ToString(); this.entry_primsother.Text = parcel.OtherPrims.ToString(); this.entry_totalprims.Text = parcel.TotalPrims.ToString(); this.parcel_image = parcel.SnapshotID; if (parcel.SnapshotID != UUID.Zero) { if (getter != null) getter.abort(); Logger.Log("** FETCHING A NEW IMAGE **" + parcel.SnapshotID.ToString(),Helpers.LogLevel.Debug); TryGetImage i = new TryGetImage(parcelsnapshot.baseimage, parcel.SnapshotID, 256, 256, true); i.OnDecodeComplete += delegate { parcelsnapshot.setimage(); }; i.OnUpdate += delegate { Gtk.Application.Invoke(delegate { parcelmap.forceupdate(); }); }; i.go(); getter = i; } else { //this.image_parcelsnap.Clear(); this.parcelsnapshot.clear(); } AsyncNameUpdate ud; this.label_parcelowner.Text = "Waiting..."; if (parcel.IsGroupOwned == false) { AsyncNameUpdate an; an = new AsyncNameUpdate(parcel.OwnerID, false); an.onNameCallBack += delegate(string namex, object[] values) { this.label_parcelowner.Text = namex; }; an.go(); } else { this.label_parcelowner.Text = "(group)"; } this.label_parcelgroup.Text = "Waiting..."; ud = new AsyncNameUpdate(parcel.GroupID, true); ud.onGroupNameCallBack += delegate(string namex, object[] values) { this.label_parcelgroup.Text = namex; }; ud.go(); foreach (OpenMetaverse.ParcelManager.ParcelAccessEntry entry in parcel.AccessWhiteList) { if(entry.AgentID==UUID.Zero) continue; Logger.Log(entry.AgentID.ToString()+" Flags = "+entry.Flags.ToString(),Helpers.LogLevel.Debug); Gtk.TreeIter iter2=this.parcels_access.AppendValues("Waiting..."); ud=new AsyncNameUpdate(entry.AgentID,false); ud.addparameters(iter2); ud.onNameCallBack += delegate(string namex,object[] values){ Gtk.TreeIter iterx=(Gtk.TreeIter)values[0]; this.parcels_access.SetValue(iterx,0,namex);}; ud.go(); } foreach(OpenMetaverse.ParcelManager.ParcelAccessEntry entry in parcel.AccessBlackList) { if(entry.AgentID==UUID.Zero) continue; Logger.Log(entry.AgentID.ToString()+" Flags = "+entry.Flags.ToString(),Helpers.LogLevel.Debug); Gtk.TreeIter iter2=this.parcels_ban.AppendValues("Waiting..."); AsyncNameUpdate ud2=new AsyncNameUpdate(entry.AgentID,false); ud2.addparameters(iter2); ud2.onNameCallBack += delegate(string namex,object[] values){ Gtk.TreeIter iterx=(Gtk.TreeIter)values[0]; this.parcels_ban.SetValue(iterx,0,namex);}; ud2.go(); } } bool allowed=false; if(parcel.OwnerID==MainClass.client.Self.AgentID) allowed=true; if (parcel.OwnerID == MainClass.client.Self.ActiveGroup) { // need to be parcel owner, or the land needs to be deeded to group // TODO if deeded to group we should also check we have approprate powers // within that group. allowed=true; } this.button1.Sensitive=allowed; if ((parcel.Flags & ParcelFlags.ForSale) == ParcelFlags.ForSale) { if (parcel.AuthBuyerID != UUID.Zero) { this.label_forsale.Text="Single AV"; AsyncNameUpdate ud=new AsyncNameUpdate(parcel.AuthBuyerID,false); ud.onNameCallBack += delegate(string namex,object[] values){ this.lable_forsaleto.Text=namex;}; ud.go(); this.label_price1.Text=parcel.SalePrice.ToString(); } else { this.label_forsale.Text="Yes"; this.label_price1.Text=parcel.SalePrice.ToString(); this.lable_forsaleto.Text="Anyone"; } } else { this.label_forsale.Text="No"; this.label_price1.Text=""; this.lable_forsaleto.Text=""; } } else { //Logger.Log("No parcel in dictionary for id "+id.ToString()+"\n",Helpers.LogLevel.Debug); } }
void Avatars_AvatarPropertiesReply(object sender, AvatarPropertiesReplyEventArgs e) { if(e.AvatarID!= resident) return; Gtk.Application.Invoke(delegate { this.label_born.Text=e.Properties.BornOn; partner_key=e.Properties.Partner; if(e.Properties.Online) this.label_status.Text="Online"; else this.label_status.Text="Offline"; if(e.Properties.Transacted) this.label_pay.Text="Pay info on file"; else this.label_pay.Text="No"; if(e.Properties.Identified) this.label_identified.Text="Yes"; else this.label_identified.Text="No"; this.textview2.Buffer.Text=e.Properties.AboutText; this.textview3.Buffer.Text=e.Properties.FirstLifeText; profile_pic=e.Properties.ProfileImage; firstlife_pic=e.Properties.FirstLifeImage; TryGetImage getter= new TryGetImage(this.image7,profile_pic,128,128,false); TryGetImage getter2= new TryGetImage(this.image3,firstlife_pic,128,128,false); if(MainClass.name_cache.av_names.ContainsKey(e.AvatarID)) { this.label_name.Text=MainClass.name_cache.av_names[e.AvatarID]; } else { MainClass.client.Avatars.RequestAvatarName(e.AvatarID); this.label_name.Text="Waiting...."; } if(e.Properties.Partner!=UUID.Zero) { if(MainClass.name_cache.av_names.ContainsKey(partner_key)) { this.label_partner.Text=MainClass.name_cache.av_names[partner_key]; } else { MainClass.client.Avatars.RequestAvatarName(partner_key); this.label_partner.Text="Waiting...."; } } }); }
void update_map_for_region(ulong regionID) { Logger.Log("Update map for region() handle " + regionID.ToString(),Helpers.LogLevel.Debug); if (regionID != this_maps_region_handle) return; GridRegion region; if (MainClass.win.grid_regions.TryGetValue(regionID, out region)) { current_region = region; this.objects_map_ID = region.MapImageID; Gdk.Pixbuf pb = MainClass.GetResource("trying.png"); objects_map = new Gtk.Image(pb); int size = height < width ? height : width; this.scalemap.Pixbuf = this.objects_map.Pixbuf.ScaleSimple(size, size, InterpType.Bilinear); this.image.Pixbuf = pb; TryGetImage tgi = new TryGetImage(this.objects_map, region.MapImageID, 350, 350, true); tgi.OnDecodeComplete += delegate { Gtk.Application.Invoke(delegate { this.scalemap = new Gtk.Image(); int size2 = height < width ? height : width; if (size2 < 25) size2 = 25; //meh! this.scalemap.Pixbuf = this.objects_map.Pixbuf.ScaleSimple(size2, size, InterpType.Bilinear); drawavs(); }); }; tgi.go(); } else { Logger.Log("Failed to find region in region cache", Helpers.LogLevel.Warning); } }