DroidFish: Added a third configurable button.

This commit is contained in:
Peter Osterlund 2012-06-10 08:28:34 +00:00
parent 6540f2f49a
commit 4932e44a92
6 changed files with 102 additions and 15 deletions

View File

@ -19,6 +19,12 @@
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageButton
android:id="@+id/custom3Button"
android:contentDescription="@string/buttonDesc_custom3"
android:layout_width="36dp"
android:layout_height="32dp">
</ImageButton>
<ImageButton
android:id="@+id/custom2Button"
android:contentDescription="@string/buttonDesc_custom2"
@ -37,13 +43,13 @@
android:layout_width="36dp"
android:layout_height="32dp">
</ImageButton>
<ImageButton
<ImageButton
android:id="@+id/undoButton"
android:contentDescription="@string/buttonDesc_back"
android:layout_width="36dp"
android:layout_height="32dp">
</ImageButton>
<ImageButton
<ImageButton
android:id="@+id/redoButton"
android:contentDescription="@string/buttonDesc_forward"
android:layout_width="36dp"

View File

@ -21,6 +21,12 @@
android:includeFontPadding="true"
android:typeface="monospace"
android:textSize="10dip"/>
<ImageButton
android:id="@+id/custom3Button"
android:contentDescription="@string/buttonDesc_custom3"
android:layout_width="36dp"
android:layout_height="32dp">
</ImageButton>
<ImageButton
android:id="@+id/custom2Button"
android:contentDescription="@string/buttonDesc_custom2"

View File

@ -14,6 +14,12 @@
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageButton
android:id="@+id/custom3Button"
android:contentDescription="@string/buttonDesc_custom3"
android:layout_width="36dp"
android:layout_height="32dp">
</ImageButton>
<ImageButton
android:id="@+id/custom2Button"
android:contentDescription="@string/buttonDesc_custom2"

View File

@ -269,6 +269,7 @@ you are not actively using the program.\
<string name="prefs_button_action_6_title">Menu Action 6</string>
<string name="prefs_custom_button_1">Custom Button 1</string>
<string name="prefs_custom_button_2">Custom Button 2</string>
<string name="prefs_custom_button_3">Custom Button 3</string>
<string name="prefs_colors_title">Color Settings</string>
<string name="prefs_colors_summary">Change individual colors</string>
<string name="prefs_chess_board">Chess Board</string>
@ -343,6 +344,7 @@ you are not actively using the program.\
<string name="prefs_gtbPath_summary">Directory where Gaviota tablebases are installed. Leave blank to use default directory</string>
<string name="buttonDesc_custom1">@string/prefs_custom_button_1</string>
<string name="buttonDesc_custom2">@string/prefs_custom_button_2</string>
<string name="buttonDesc_custom3">@string/prefs_custom_button_3</string>
<string name="buttonDesc_mode">Mode button</string>
<string name="buttonDesc_back">Backward button</string>
<string name="buttonDesc_forward">Forward button</string>

View File

@ -286,7 +286,59 @@
android:defaultValue="">
</ListPreference>
</PreferenceCategory>
</PreferenceScreen>
<PreferenceCategory
android:title="@string/prefs_custom_button_3">
<ListPreference
android:key="button_action_custom3_0"
android:title="@string/prefs_button_action_0_title"
android:entryValues="@array/button_action_values"
android:entries="@array/button_action_texts"
android:defaultValue="">
</ListPreference>
<ListPreference
android:key="button_action_custom3_1"
android:title="@string/prefs_button_action_1_title"
android:entryValues="@array/button_action_values"
android:entries="@array/button_action_texts"
android:defaultValue="">
</ListPreference>
<ListPreference
android:key="button_action_custom3_2"
android:title="@string/prefs_button_action_2_title"
android:entryValues="@array/button_action_values"
android:entries="@array/button_action_texts"
android:defaultValue="">
</ListPreference>
<ListPreference
android:key="button_action_custom3_3"
android:title="@string/prefs_button_action_3_title"
android:entryValues="@array/button_action_values"
android:entries="@array/button_action_texts"
android:defaultValue="">
</ListPreference>
<ListPreference
android:key="button_action_custom3_4"
android:title="@string/prefs_button_action_4_title"
android:entryValues="@array/button_action_values"
android:entries="@array/button_action_texts"
android:defaultValue="">
</ListPreference>
<ListPreference
android:key="button_action_custom3_5"
android:title="@string/prefs_button_action_5_title"
android:entryValues="@array/button_action_values"
android:entries="@array/button_action_texts"
android:defaultValue="">
</ListPreference>
<ListPreference
android:key="button_action_custom3_6"
android:title="@string/prefs_button_action_6_title"
android:entryValues="@array/button_action_values"
android:entries="@array/button_action_texts"
android:defaultValue="">
</ListPreference>
</PreferenceCategory>
</PreferenceScreen>
<PreferenceScreen
android:key="colors"
android:title="@string/prefs_colors_title"

View File

@ -104,6 +104,7 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
@ -113,7 +114,6 @@ import android.view.View.OnTouchListener;
import android.webkit.WebView;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
@ -148,7 +148,6 @@ public class DroidFish extends Activity implements GUIInterface {
// FIXME!!! Handle PGN intents with more than one game.
// FIXME!!! File load/save of FEN data
// FIXME!!! Make engine hash size configurable.
// FIXME!!! Nicer looking icons.
private ChessBoard cb;
private static DroidChessController ctrl = null;
@ -169,9 +168,9 @@ public class DroidFish extends Activity implements GUIInterface {
private ScrollView moveListScroll;
private TextView moveList;
private TextView thinking;
private ImageButton custom1Button, custom2Button;
private ImageButton custom1Button, custom2Button, custom3Button;
private ImageButton modeButton, undoButton, redoButton;
private ButtonActions custom1ButtonActions, custom2ButtonActions;
private ButtonActions custom1ButtonActions, custom2ButtonActions, custom3ButtonActions;
private TextView whiteClock, blackClock, titleText;
SharedPreferences settings;
@ -336,6 +335,8 @@ public class DroidFish extends Activity implements GUIInterface {
R.string.select_action);
custom2ButtonActions = new ButtonActions("custom2", CUSTOM2_BUTTON_DIALOG,
R.string.select_action);
custom3ButtonActions = new ButtonActions("custom3", CUSTOM3_BUTTON_DIALOG,
R.string.select_action);
initUI(true);
@ -600,9 +601,10 @@ public class DroidFish extends Activity implements GUIInterface {
custom1Button = (ImageButton)findViewById(R.id.custom1Button);
custom1ButtonActions.setImageButton(custom1Button, this);
custom2Button = (ImageButton)findViewById(R.id.custom2Button);
custom2ButtonActions.setImageButton(custom2Button, this);
custom3Button = (ImageButton)findViewById(R.id.custom3Button);
custom3ButtonActions.setImageButton(custom3Button, this);
modeButton = (ImageButton)findViewById(R.id.modeButton);
modeButton.setOnClickListener(new OnClickListener() {
@ -745,7 +747,7 @@ public class DroidFish extends Activity implements GUIInterface {
custom1ButtonActions.readPrefs(settings, actionFactory);
custom2ButtonActions.readPrefs(settings, actionFactory);
custom3ButtonActions.readPrefs(settings, actionFactory);
updateButtons();
bookOptions.filename = settings.getString("bookFile", "");
@ -804,10 +806,12 @@ public class DroidFish extends Activity implements GUIInterface {
SVG svg = SVGParser.getSVGFromResource(getResources(),
custom1ButtonActions.getIcon());
custom1Button.setBackgroundDrawable(new SVGPictureDrawable(svg));
svg = SVGParser.getSVGFromResource(getResources(),
custom2ButtonActions.getIcon());
custom2Button.setBackgroundDrawable(new SVGPictureDrawable(svg));
svg = SVGParser.getSVGFromResource(getResources(),
custom3ButtonActions.getIcon());
custom3Button.setBackgroundDrawable(new SVGPictureDrawable(svg));
svg = SVGParser.getSVGFromResource(getResources(), R.raw.right);
redoButton.setBackgroundDrawable(new SVGPictureDrawable(svg));
@ -818,11 +822,19 @@ public class DroidFish extends Activity implements GUIInterface {
svg = SVGParser.getSVGFromResource(getResources(), R.raw.mode);
modeButton.setBackgroundDrawable(new SVGPictureDrawable(svg));
custom1Button.setLayoutParams(new LinearLayout.LayoutParams(bWidth, bHeight));
custom2Button.setLayoutParams(new LinearLayout.LayoutParams(bWidth, bHeight));
modeButton.setLayoutParams(new LinearLayout.LayoutParams(bWidth, bHeight));
undoButton.setLayoutParams(new LinearLayout.LayoutParams(bWidth, bHeight));
redoButton.setLayoutParams(new LinearLayout.LayoutParams(bWidth, bHeight));
setButtonSize(custom1Button, bWidth, bHeight);
setButtonSize(custom2Button, bWidth, bHeight);
setButtonSize(custom3Button, bWidth, bHeight);
setButtonSize(modeButton, bWidth, bHeight);
setButtonSize(undoButton, bWidth, bHeight);
setButtonSize(redoButton, bWidth, bHeight);
}
private static void setButtonSize(ImageButton button, int bWidth, int bHeight) {
LayoutParams lp = button.getLayoutParams();
lp.height = bHeight;
lp.width = bWidth;
button.setLayoutParams(lp);
}
private synchronized final void setWakeLock(boolean enableLock) {
@ -1356,6 +1368,7 @@ public class DroidFish extends Activity implements GUIInterface {
static private final int NEW_GAME_DIALOG = 16;
static private final int CUSTOM1_BUTTON_DIALOG = 17;
static private final int CUSTOM2_BUTTON_DIALOG = 18;
static private final int CUSTOM3_BUTTON_DIALOG = 19;
@Override
protected Dialog onCreateDialog(int id) {
@ -2112,6 +2125,8 @@ public class DroidFish extends Activity implements GUIInterface {
return makeButtonDialog(custom1ButtonActions);
case CUSTOM2_BUTTON_DIALOG:
return makeButtonDialog(custom2ButtonActions);
case CUSTOM3_BUTTON_DIALOG:
return makeButtonDialog(custom3ButtonActions);
}
return null;
}