Add pressed states for the all apps button and the home button.

We'll need another asset for the selected state, when we do that.
This also updates the all apps icon to be a grid.
This commit is contained in:
Joe Onorato
2009-10-15 21:19:09 -07:00
parent 1d8e7bbe09
commit d63458b34c
11 changed files with 51 additions and 11 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/all_apps_button_pressed" />
<item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/all_apps_button_pressed" />
<item android:state_focused="true" android:state_window_focused="false" android:drawable="@drawable/all_apps_button_normal" />
<item android:drawable="@drawable/all_apps_button_normal" />
</selector>

View File

@@ -301,7 +301,7 @@ void
draw_home_button()
{
color(1.0f, 1.0f, 1.0f, 1.0f);
bindTexture(NAMED_PFTexLinear, 0, params->homeButtonId);
bindTexture(NAMED_PFTexLinear, 0, state->homeButtonId);
float scale = 2.0f / SCREEN_WIDTH_PX;

View File

@@ -246,7 +246,7 @@ void
draw_home_button()
{
color(1.0f, 1.0f, 1.0f, 1.0f);
bindTexture(NAMED_PFTexLinear, 0, params->homeButtonId);
bindTexture(NAMED_PFTexLinear, 0, state->homeButtonId);
float scale = 2.0f / SCREEN_WIDTH_PX;

View File

@@ -233,7 +233,7 @@ void
draw_home_button()
{
setColor(1.0f, 1.0f, 1.0f, 1.0f);
bindTexture(NAMED_PFTexLinear, 0, params->homeButtonId);
bindTexture(NAMED_PFTexLinear, 0, state->homeButtonId);
float scale = 2.0f / SCREEN_WIDTH_PX;

View File

@@ -301,7 +301,7 @@ void
draw_home_button()
{
color(1.0f, 1.0f, 1.0f, 1.0f);
bindTexture(NAMED_PFTexLinear, 0, params->homeButtonId);
bindTexture(NAMED_PFTexLinear, 0, state->homeButtonId);
float scale = 2.0f / SCREEN_WIDTH_PX;

View File

@@ -225,6 +225,8 @@ public class AllAppsView extends RSSurfaceView
if (y > mRollo.mTouchYBorders[mRollo.mTouchYBorders.length-1]) {
mTouchTracking = TRACKING_HOME;
mRollo.setHomeSelected(true);
mRollo.mState.save();
} else {
mTouchTracking = TRACKING_FLING;
@@ -258,7 +260,8 @@ public class AllAppsView extends RSSurfaceView
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_OUTSIDE:
if (mTouchTracking == TRACKING_HOME) {
// TODO: highlight?
mRollo.setHomeSelected(y > mRollo.mTouchYBorders[mRollo.mTouchYBorders.length-1]);
mRollo.mState.save();
} else if (mTouchTracking == TRACKING_FLING) {
int rawX = (int)ev.getRawX();
int rawY = (int)ev.getRawY();
@@ -306,6 +309,8 @@ public class AllAppsView extends RSSurfaceView
if (y > mRollo.mTouchYBorders[mRollo.mTouchYBorders.length-1]) {
mLauncher.closeAllApps(true);
}
mRollo.setHomeSelected(false);
mRollo.mState.save();
}
} else if (mTouchTracking == TRACKING_FLING) {
mRollo.mState.newTouchDown = 0;
@@ -533,7 +538,8 @@ public class AllAppsView extends RSSurfaceView
private SimpleMesh mMesh;
private SimpleMesh mMesh2;
private Allocation mHomeButton;
private Allocation mHomeButtonNormal;
private Allocation mHomeButtonPressed;
private Allocation[] mIcons;
private int[] mIconIds;
@@ -595,7 +601,6 @@ public class AllAppsView extends RSSurfaceView
public int bubbleBitmapWidth;
public int bubbleBitmapHeight;
public int homeButtonId;
public int homeButtonWidth;
public int homeButtonHeight;
public int homeButtonTextureWidth;
@@ -610,6 +615,7 @@ public class AllAppsView extends RSSurfaceView
public int selectedIconIndex = -1;
public int selectedIconTexture;
public float zoomTarget;
public int homeButtonId;
State() {
mType = Type.createFromClass(mRS, State.class, 1, "StateClass");
@@ -814,15 +820,19 @@ public class AllAppsView extends RSSurfaceView
mParams.bubbleBitmapWidth = bubble.getBitmapWidth();
mParams.bubbleBitmapHeight = bubble.getBitmapHeight();
mHomeButton = Allocation.createFromBitmapResource(mRS, mRes,
R.drawable.home_button, Element.RGBA_8888(mRS), false);
mHomeButton.uploadToTexture(0);
mParams.homeButtonId = mHomeButton.getID();
mHomeButtonNormal = Allocation.createFromBitmapResource(mRS, mRes,
R.drawable.home_button_normal, Element.RGBA_8888(mRS), false);
mHomeButtonNormal.uploadToTexture(0);
mHomeButtonPressed = Allocation.createFromBitmapResource(mRS, mRes,
R.drawable.home_button_pressed, Element.RGBA_8888(mRS), false);
mHomeButtonPressed.uploadToTexture(0);
mParams.homeButtonWidth = 76;
mParams.homeButtonHeight = 68;
mParams.homeButtonTextureWidth = 128;
mParams.homeButtonTextureHeight = 128;
mState.homeButtonId = mHomeButtonNormal.getID();
mParams.save();
mState.save();
@@ -1131,6 +1141,13 @@ public class AllAppsView extends RSSurfaceView
mState.selectedIconIndex = -1;
}
void setHomeSelected(boolean pressed) {
if (pressed) {
mState.homeButtonId = mHomeButtonPressed.getID();
} else {
mState.homeButtonId = mHomeButtonNormal.getID();
}
}
}
}