[sldev] Voice with old style gui

Matthew Dowd matthew.dowd at hotmail.co.uk
Fri Aug 3 10:15:18 PDT 2007


Ah, I've already been working on this along the lines outlined here: http://jira.secondlife.com/browse/VWR-1917

i.e. making the menu options for Groups and Friends open new windows rather than the chatterbox.

An initial diff of this is attached.

Matthew


----------------------------------------
> Date: Fri, 3 Aug 2007 17:16:55 +0200
> From: nicholaz at blueflash.cc
> To: sldev at lists.secondlife.com
> Subject: [sldev] Voice with old style gui
> 
> 
> If anyone is working on this already or plans
> to, you might want to hold off a bit.  I just
> spent a bit of time on this and it looks quite
> good already ... shouldn't be too messy.
> 
> 
> Nick
> -- 
> Second Life from the inside out:
> http://nicholaz-beresford.blogspot.com/
> _______________________________________________
> Click here to unsubscribe or manage your list subscription:
> /index.html

_________________________________________________________________
Try Live.com - your fast, personalised homepage with all the things you care about in one place.
http://www.live.com/?mkt=en-gb  
-------------- next part --------------
--- base\linden\indra\newview\llviewermenu.cpp	2007-08-02 14:16:00.000000000 +0100
+++ mod\linden\indra\newview\llviewermenu.cpp	2007-08-03 15:39:43.390774800 +0100
@@ -5378,7 +5378,11 @@
 		}
 		else if (floater_name == "friends")
 		{
-			LLFloaterMyFriends::toggleInstance(0);
+			LLFloaterFriendsOnly::toggleInstance(0);
+		}
+		else if (floater_name == "groups")
+		{
+			LLFloaterGroupsOnly::toggleInstance(0);
 		}
 		else if (floater_name == "preferences")
 		{
@@ -5520,7 +5524,11 @@
 		bool new_value = false;
 		if (floater_name == "friends")
 		{
-			new_value = LLFloaterMyFriends::instanceVisible(0);
+			new_value = LLFloaterFriendsOnly::instanceVisible(0);
+		}
+		if (floater_name == "groups")
+		{
+			new_value = LLFloaterGroupsOnly::instanceVisible(0);
 		}
 		else if (floater_name == "toolbar")
 		{
@@ -5670,7 +5678,7 @@
 {
 	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
 	{
-		LLFloaterMyFriends::toggleInstance(1);
+		LLFloaterMyFriends::showInstance(LLSD(gAgent.getID()));
 		return true;
 	}
 };
--- base\linden\indra\newview\llfloaterchatterbox.h	2007-08-02 14:16:00.000000000 +0100
+++ mod\linden\indra\newview\llfloaterchatterbox.h	2007-08-03 17:29:51.712554100 +0100
@@ -58,6 +58,29 @@
 	LLTabContainerCommon* mTabs;
 };
 
+class LLFloaterFriendsOnly : public LLFloater, public LLUISingleton<LLFloaterFriendsOnly>
+{
+public:
+	LLFloaterFriendsOnly(const LLSD& seed);
+	virtual ~LLFloaterFriendsOnly();
+	static BOOL instanceVisible(const LLSD& id);
+	void onClose(bool app_quitting);
+
+	static void* createFriendsPanel(void* data);
+};
+
+class LLFloaterGroupsOnly : public LLFloater, public LLUISingleton<LLFloaterGroupsOnly>
+{
+public:
+	LLFloaterGroupsOnly(const LLSD& seed);
+	virtual ~LLFloaterGroupsOnly();
+	static BOOL instanceVisible(const LLSD& id);
+	void onClose(bool app_quitting);
+
+	static void* createGroupsPanel(void* data);
+};
+
+
 class LLFloaterChatterBox : public LLMultiFloater, public LLUISingleton<LLFloaterChatterBox>
 {
 public:
--- base\linden\indra\newview\llfloaterchatterbox.cpp	2007-08-02 14:16:00.000000000 +0100
+++ mod\linden\indra\newview\llfloaterchatterbox.cpp	2007-08-03 18:03:48.421331300 +0100
@@ -112,6 +112,76 @@
 	return new LLPanelGroups();
 }
 
+// LLFloaterFriendsOnly
+//
+LLFloaterFriendsOnly::LLFloaterFriendsOnly(const LLSD& seed)
+{
+	mFactoryMap["friends_panel"] = LLCallbackMap(LLFloaterFriendsOnly::createFriendsPanel, NULL);
+	BOOL no_open = FALSE;
+	gUICtrlFactory->buildFloater(this, "floater_friends.xml", &getFactoryMap(), no_open);
+}
+
+//static
+void* LLFloaterFriendsOnly::createFriendsPanel(void* data)
+{
+	return new LLPanelFriends();
+}
+
+LLFloaterFriendsOnly::~LLFloaterFriendsOnly()
+{
+}
+
+// is the specified panel currently visible
+//static
+BOOL LLFloaterFriendsOnly::instanceVisible(const LLSD& id)
+{
+	// if singleton not created yet, trivially return false
+	if (!findInstance(id)) return FALSE;
+
+	LLFloaterFriendsOnly* floaterp = getInstance(id);
+	return floaterp->isInVisibleChain();
+}
+
+void LLFloaterFriendsOnly::onClose(bool app_quitting)
+{
+	setVisible(FALSE);
+}
+
+// LLFloaterGroupsOnly
+//
+LLFloaterGroupsOnly::LLFloaterGroupsOnly(const LLSD& seed)
+{
+	mFactoryMap["groups_panel"] = LLCallbackMap(LLFloaterGroupsOnly::createGroupsPanel, NULL);
+	BOOL no_open = FALSE;
+	gUICtrlFactory->buildFloater(this, "floater_groups.xml", &getFactoryMap(), no_open);
+}
+
+LLFloaterGroupsOnly::~LLFloaterGroupsOnly()
+{
+}
+
+//static
+void* LLFloaterGroupsOnly::createGroupsPanel(void* data)
+{
+	return new LLPanelGroups();
+}
+
+// is the specified panel currently visible
+//static
+BOOL LLFloaterGroupsOnly::instanceVisible(const LLSD& id)
+{
+	// if singleton not created yet, trivially return false
+	if (!findInstance(id)) return FALSE;
+
+	LLFloaterGroupsOnly* floaterp = getInstance(id);
+	return floaterp->isInVisibleChain();
+}
+
+void LLFloaterGroupsOnly::onClose(bool app_quitting)
+{
+	setVisible(FALSE);
+}
+
 //
 // LLFloaterChatterBox
 //
--- base\linden\indra\newview\skins\xui\en-us\menu_viewer.xml	2007-08-02 14:16:00.000000000 +0100
+++ mod\linden\indra\newview\skins\xui\en-us\menu_viewer.xml	2007-08-03 15:39:43.562724600 +0100
@@ -258,8 +258,9 @@
 			<on_check function="FloaterVisible" userdata="friends" />
 		</menu_item_check>
 		<menu_item_call bottom="-408" enabled="true" height="19" hidden="false" label="Groups..."
-		     left="0" mouse_opaque="true" name="Groups..." width="153">
-			<on_click function="ShowAgentGroups" userdata="agent" />
+		     left="0" mouse_opaque="true" name="Groups..." shortcut="control|shift|G" width="153">
+			 <on_click function="ShowFloater" userdata="groups" />
+			 <on_check function="FloaterVisible" userdata="groups" />
 		</menu_item_call>
 		<menu_item_separator bottom="-416" enabled="true" height="8" hidden="false" label="-----------"
 		     left="0" mouse_opaque="true" name="separator8" width="153" />
--- base\linden\indra\newview\skins\xui\en-us\floater_groups.xml	2007-08-02 14:16:00.000000000 +0100
+++ mod\linden\indra\newview\skins\xui\en-us\floater_groups.xml	2007-08-03 18:05:52.549508900 +0100
@@ -1,45 +1,7 @@
-<floater bottom="-371" can_close="true" can_drag_on_left="false" can_minimize="true"
-     can_resize="true" can_tear_off="false" enabled="true" follows="left|top"
-     height="300" hidden="false" left="280" min_height="250" min_width="350"
-     mouse_opaque="true" name="groups" title="Groups" width="350">
-	<scroll_list background_visible="true" bottom="45" column_padding="5" draw_border="true"
-	     draw_heading="false" draw_stripes="true" enabled="true"
-	     follows="left|top|right|bottom" hidden="false" left="10"
-	     mouse_opaque="true" multi_select="false" name="group list" tab_stop="true"
-	     top="-20" width="240">
-		<column label="" name="name" width="248" />
-	</scroll_list>
-	<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
-	     bottom="22" drop_shadow_visible="true" enabled="true" follows="left|bottom"
-	     font="SansSerifSmall" h_pad="0" halign="left" height="16" hidden="false"
-	     left="12" mouse_opaque="false" name="groupdesc" v_pad="0"
-	     width="248">
-		Your currently active group is displayed in bold.
-	</text>
-	<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
-	     bottom="5" drop_shadow_visible="true" enabled="true" follows="left|bottom"
-	     font="SansSerifSmall" h_pad="0" halign="left" height="16" hidden="false"
-	     left="12" mouse_opaque="false" name="groupcount" v_pad="0"
-	     width="248">
-		You belong to [COUNT] groups (of [MAX] maximum).
-	</text>
-	<pad bottom="-17" height="0" left="-90" width="1" />
-	<button border_height="16" border_width="16" bottom_delta="-25" follows="top|right"
-	     font="SansSerif" height="22" hidden="false" label="Info" name="Info"
-	     width="80" />
-	<button bottom_delta="-25" follows="top|right" font="SansSerif" height="22"
-	     label="IM/Call" left_delta="0" name="IM"
-	     tool_tip="Open Instant Message session" width="80" />
-	<button border_height="16" border_width="16" bottom_delta="-25" follows="top|right"
-	     font="SansSerif" height="22" hidden="false" label="Activate"
-	     name="Activate" width="80" />
-	<button border_height="16" border_width="16" bottom_delta="-25" follows="top|right"
-	     font="SansSerif" height="22" hidden="false" label="Leave" name="Leave"
-	     width="80" />
-	<button border_height="16" border_width="16" bottom_delta="-35" follows="top|right"
-	     font="SansSerif" height="22" hidden="false" label="Create..." name="Create"
-	     width="80" />
-	<button border_height="16" border_width="16" bottom_delta="-25" follows="top|right"
-	     font="SansSerif" height="22" hidden="false" label="Search..."
-	     name="Search..." width="80" />
+<floater can_close="true" can_minimize="false" can_drag_on_left="false" can_tear_off="false" can_resize="true" height="390" min_height="240" min_width="365" name="floater_my_friends"
+     title="Contacts"
+     width="395">
+	<tab_container bottom="10" height="360" tab_width="80" follows="left|right|top|bottom" left="0" name="friends_and_groups" tab_position="top" width="388">
+		<panel label="Groups" filename="panel_groups.xml" bottom="0" left="0" width="370" name="groups_panel"/>
+	</tab_container>
 </floater>
--- base\linden\indra\newview\skins\xui\en-us\floater_friends.xml	2007-08-02 14:16:00.000000000 +0100
+++ mod\linden\indra\newview\skins\xui\en-us\floater_friends.xml	2007-08-03 18:05:54.752690300 +0100
@@ -1,64 +1,7 @@
-<floater can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true"
-     min_height="300" min_width="350" name="friends"
-     rect_control="FloaterFriendsRect" title="Friends">
-	<scroll_list bottom="90" can_resize="true" column_padding="0" draw_heading="true"
-	     follows="left|top|bottom|right" left="10" multi_select="true"
-	     name="friend_list" right="-100" search_column="1"
-	     tool_tip="Hold shift or control while clicking to select multiple friends"
-	     top="-20">
-		<column image="ff_online_status_button.tga" name="icon_online_status" width="20" />
-		<column dynamicwidth="true" label="Name" name="friend_name" />
-		<column image="ff_visible_online_button.tga" name="icon_visible_online" width="20" />
-		<column image="ff_visible_map_button.tga" name="icon_visible_map" width="20" />
-		<column image="ff_edit_mine_button.tga" name="icon_edit_mine" width="20" />
-		<column image="ff_edit_theirs_button.tga" name="icon_edit_theirs" width="20" />
-	</scroll_list>
-	<panel background_opaque="true" background_visible="true" bevel_style="in"
-	     bg_alpha_color="blue" bg_opaque_color="0,0,0,0.3" border="true" bottom="10"
-	     can_resize="false" follows="left|right|bottom" height="70" left="10"
-	     mouse_opaque="true" name="rights_container" right="-100">
-		<text bottom_delta="-11" follows="top|left" font="SansSerifSmall" left="10"
-		     name="friend_name_label">
-			Select friend(s) to change rights...
-		</text>
-		<check_box bottom_delta="-21" enabled="false" follows="bottom|left" font="SansSerifSmall"
-		     height="16" hidden="false" initial_value="false"
-		     label="Can see my online status" left="10" mouse_opaque="true"
-		     name="online_status_cb" radio_style="false"
-		     tool_tip="Set whether this friend see my online status in their friends list or calling cards"
-		     width="200" />
-		<check_box bottom_delta="-18" enabled="false" follows="bottom|left" font="SansSerifSmall"
-		     height="16" hidden="false" initial_value="false"
-		     label="Can see me on the map" left="25" mouse_opaque="true"
-		     name="map_status_cb" radio_style="false"
-		     tool_tip="Set whether this friend see my location on their map" width="200" />
-		<check_box bottom_delta="-18" enabled="false" follows="bottom|left" font="SansSerifSmall"
-		     height="16" hidden="false" initial_value="false"
-		     label="Can modify my objects" left="10" mouse_opaque="true"
-		     name="modify_status_cb" radio_style="false"
-		     tool_tip="Set whether this friend can modify my objects" width="200" />
-		<text bottom_delta="25" follows="top|left" font="SansSerif" left="10"
-		     name="process_rights_label">
-			Processing rights change...
-		</text>
-	</panel>
-	<pad bottom="-17" height="0" left="-90" width="1" />
-	<button bottom_delta="-25" follows="top|right" font="SansSerif" height="22"
-	     label="Profile" left_delta="0" name="profile_btn"
-	     tool_tip="Show picture, groups, and other information" width="80" />
-	<button bottom_delta="-25" follows="top|right" font="SansSerif" height="22"
-	     label="IM/Call" left_delta="0" name="im_btn"
-	     tool_tip="Open Instant Message session" width="80" />
-	<button bottom_delta="-25" follows="top|right" font="SansSerif" height="22"
-	     label="Teleport..." left_delta="0" name="offer_teleport_btn"
-	     tool_tip="Offer this friend a teleport to your current location" width="80" />
-	<button bottom_delta="-25" follows="top|right" font="SansSerif" height="22"
-	     label="Pay..." left_delta="0" name="pay_btn"
-	     tool_tip="Give Linden dollars (L$) to this friend" width="80" />
-	<button bottom_delta="-25" follows="top|right" font="SansSerif" height="22"
-	     label="Remove..." left_delta="0" name="remove_btn"
-	     tool_tip="Remove this person from your friends list" width="80" />
-	<button bottom_delta="-35" follows="top|right" font="SansSerif" height="22"
-	     label="Add..." left_delta="0" name="add_btn"
-	     tool_tip="Offer friendship to a resident" width="80" />
+<floater can_close="true" can_minimize="false" can_drag_on_left="false" can_tear_off="false" can_resize="true" height="390" min_height="240" min_width="365" name="floater_my_friends"
+     title="Contacts"
+     width="395">
+	<tab_container bottom="10" height="360" tab_width="80" follows="left|right|top|bottom" left="0" name="friends_and_groups" tab_position="top" width="388">
+		<panel label="Friends" filename="panel_friends.xml" bottom="0" left="0" width="370" name="friends_panel"/>
+	</tab_container>
 </floater>


More information about the SLDev mailing list