Show/hide scrollbar depending on whether needed or not

This commit is contained in:
David Rowe 2015-03-25 18:35:51 -07:00
parent 567375368e
commit ba1a7c6761

View file

@ -65,6 +65,8 @@ var usersWindow = (function () {
isMirrorDisplay = false, isMirrorDisplay = false,
isFullscreenMirror = false, isFullscreenMirror = false,
isUsingScrollbars = false,
HIFI_PUBLIC_BUCKET = "http://s3.amazonaws.com/hifi-public/", HIFI_PUBLIC_BUCKET = "http://s3.amazonaws.com/hifi-public/",
RADIO_BUTTON_SVG = HIFI_PUBLIC_BUCKET + "images/radio-button.svg", RADIO_BUTTON_SVG = HIFI_PUBLIC_BUCKET + "images/radio-button.svg",
RADIO_BUTTON_SVG_DIAMETER = 14, RADIO_BUTTON_SVG_DIAMETER = 14,
@ -91,6 +93,7 @@ var usersWindow = (function () {
// Corresponding number of users to actually display // Corresponding number of users to actually display
numUsersToDisplay = Math.round((windowHeight - nonUsersHeight) / windowLineHeight); numUsersToDisplay = Math.round((windowHeight - nonUsersHeight) / windowLineHeight);
isUsingScrollbars = numUsersToDisplay < linesOfUsers.length;
} }
function updateOverlayPositions() { function updateOverlayPositions() {
@ -143,14 +146,13 @@ var usersWindow = (function () {
reducedTextWidth, reducedTextWidth,
i; i;
maxTextWidth = WINDOW_WIDTH_2D - SCROLLBAR_BACKGROUND_WIDTH_2D - 2 * WINDOW_MARGIN_2D; maxTextWidth = WINDOW_WIDTH_2D - (isUsingScrollbars ? SCROLLBAR_BACKGROUND_WIDTH_2D : 0) - 2 * WINDOW_MARGIN_2D;
ellipsisWidth = Overlays.textSize(windowPane2D, "...").width; ellipsisWidth = Overlays.textSize(windowPane2D, "...").width;
reducedTextWidth = maxTextWidth - ellipsisWidth; reducedTextWidth = maxTextWidth - ellipsisWidth;
for (i = 0; i < numUsersToDisplay; i += 1) { for (i = 0; i < numUsersToDisplay; i += 1) {
user = usersOnline[linesOfUsers[i]]; user = usersOnline[linesOfUsers[i]];
userText = user.text; userText = user.text;
print(userText);
textWidth = user.textWidth; textWidth = user.textWidth;
if (textWidth > maxTextWidth) { if (textWidth > maxTextWidth) {
@ -181,11 +183,13 @@ var usersWindow = (function () {
Overlays.editOverlay(scrollbarBackground2D, { Overlays.editOverlay(scrollbarBackground2D, {
y: viewportHeight - windowHeight + WINDOW_MARGIN_2D + windowTextHeight, y: viewportHeight - windowHeight + WINDOW_MARGIN_2D + windowTextHeight,
height: numUsersToDisplay * windowLineHeight - windowLineSpacing / 2 height: numUsersToDisplay * windowLineHeight - windowLineSpacing / 2,
visible: isUsingScrollbars
}); });
Overlays.editOverlay(scrollbarBar2D, { Overlays.editOverlay(scrollbarBar2D, {
y: viewportHeight - windowHeight + WINDOW_MARGIN_2D + windowTextHeight + 1, y: viewportHeight - windowHeight + WINDOW_MARGIN_2D + windowTextHeight + 1,
height: numUsersToDisplay * windowLineHeight / 3 // TODO height: numUsersToDisplay * windowLineHeight / 3, // TODO
visible: isUsingScrollbars
}); });
updateOverlayPositions(); updateOverlayPositions();
@ -282,8 +286,8 @@ var usersWindow = (function () {
Overlays.editOverlay(windowPane2D, { visible: isVisible }); Overlays.editOverlay(windowPane2D, { visible: isVisible });
Overlays.editOverlay(windowHeading2D, { visible: isVisible }); Overlays.editOverlay(windowHeading2D, { visible: isVisible });
Overlays.editOverlay(scrollbarBackground2D, { visible: isVisible }); Overlays.editOverlay(scrollbarBackground2D, { visible: isVisible && isUsingScrollbars });
Overlays.editOverlay(scrollbarBar2D, { visible: isVisible }); Overlays.editOverlay(scrollbarBar2D, { visible: isVisible && isUsingScrollbars });
Overlays.editOverlay(visibilityHeading2D, { visible: isVisible }); Overlays.editOverlay(visibilityHeading2D, { visible: isVisible });
for (i = 0; i < visibilityControls2D.length; i += 1) { for (i = 0; i < visibilityControls2D.length; i += 1) {
Overlays.editOverlay(visibilityControls2D[i].radioOverlay, { visible: isVisible }); Overlays.editOverlay(visibilityControls2D[i].radioOverlay, { visible: isVisible });
@ -426,7 +430,7 @@ var usersWindow = (function () {
backgroundColor: SCROLLBAR_BACKGROUND_COLOR_2D, backgroundColor: SCROLLBAR_BACKGROUND_COLOR_2D,
backgroundAlpha: SCROLLBAR_BACKGROUND_ALPHA_2D, backgroundAlpha: SCROLLBAR_BACKGROUND_ALPHA_2D,
text: "", text: "",
visible: isVisible visible: isVisible && isUsingScrollbars
}); });
scrollbarBar2D = Overlays.addOverlay("text", { scrollbarBar2D = Overlays.addOverlay("text", {
@ -437,7 +441,7 @@ var usersWindow = (function () {
backgroundColor: SCROLLBAR_BAR_COLOR_2D, backgroundColor: SCROLLBAR_BAR_COLOR_2D,
backgroundAlpha: SCROLLBAR_BAR_ALPHA_2D, backgroundAlpha: SCROLLBAR_BAR_ALPHA_2D,
text: "", text: "",
visible: isVisible visible: isVisible && isUsingScrollbars
}); });
visibilityHeading2D = Overlays.addOverlay("text", { visibilityHeading2D = Overlays.addOverlay("text", {