Onscreen calculator now supports themes

This commit is contained in:
serso 2015-06-16 12:57:42 +02:00
parent e27b7e549f
commit 1d677f1c58
117 changed files with 2152 additions and 142 deletions

View File

@ -53,7 +53,7 @@ public class ActivityUi extends BaseUi {
private int layoutId;
@Nonnull
private Preferences.Gui.Theme theme = Preferences.Gui.Theme.default_theme;
private Preferences.Gui.Theme theme = Preferences.Gui.Theme.material_theme;
@Nonnull
private Preferences.Gui.Layout layout = Preferences.Gui.Layout.main_calculator;

View File

@ -30,6 +30,7 @@ import android.support.v4.app.FragmentActivity;
import android.text.Html;
import android.util.AttributeSet;
import android.util.TypedValue;
import org.solovyev.android.calculator.text.TextProcessor;
import org.solovyev.android.calculator.text.TextProcessorEditorResult;
import org.solovyev.android.calculator.view.TextHighlighter;
@ -140,7 +141,8 @@ public class AndroidCalculatorDisplayView extends AutoResizeTextView implements
}
private Preferences.Gui.TextColor getTextColor() {
return App.getTheme().getTextColor(getContext());
final Context context = getContext();
return App.getThemeIn(context).getTextColor(context);
}
@Nonnull

View File

@ -26,6 +26,7 @@ import android.app.Application;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Build;
@ -40,6 +41,7 @@ import org.solovyev.android.UiThreadExecutor;
import org.solovyev.android.Views;
import org.solovyev.android.calculator.ga.Ga;
import org.solovyev.android.calculator.language.Languages;
import org.solovyev.android.calculator.onscreen.CalculatorOnscreenService;
import org.solovyev.android.calculator.view.ScreenMetrics;
import org.solovyev.android.calculator.widget.BaseCalculatorWidgetProvider;
import org.solovyev.android.calculator.widget.CalculatorWidgetProvider;
@ -282,6 +284,23 @@ public final class App {
return Preferences.Gui.getTheme(getPreferences());
}
@Nonnull
public static Preferences.Onscreen.Theme getOnscreenTheme() {
return Preferences.Onscreen.getTheme(getPreferences());
}
@Nonnull
public static Preferences.Gui.Theme getThemeIn(@Nonnull Context context) {
if (context instanceof CalculatorOnscreenService) {
final SharedPreferences p = getPreferences();
final Preferences.Onscreen.Theme onscreenTheme = Preferences.Onscreen.getTheme(p);
final Preferences.Gui.Theme appTheme = Preferences.Gui.getTheme(p);
return onscreenTheme.resolveThemeFor(appTheme).getAppTheme();
} else {
return App.getTheme();
}
}
@Nonnull
public static Languages getLanguages() {
return languages;

View File

@ -274,8 +274,8 @@ public class CalculatorApplication extends android.app.Application implements Sh
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if (Preferences.OnscreenCalculator.showAppIcon.getKey().equals(key)) {
boolean showAppIcon = Preferences.OnscreenCalculator.showAppIcon.getPreference(prefs);
if (Preferences.Onscreen.showAppIcon.getKey().equals(key)) {
boolean showAppIcon = Preferences.Onscreen.showAppIcon.getPreference(prefs);
Android.toggleComponent(this, CalculatorOnscreenStartActivity.class, showAppIcon);
Locator.getInstance().getNotifier().showMessage(R.string.cpp_this_change_may_require_reboot, MessageType.info);
}

View File

@ -26,6 +26,7 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.support.annotation.LayoutRes;
import android.support.annotation.StyleRes;
import android.util.SparseArray;
import android.view.ContextThemeWrapper;
@ -33,7 +34,6 @@ import android.view.ContextThemeWrapper;
import org.solovyev.android.calculator.language.Languages;
import org.solovyev.android.calculator.math.MathType;
import org.solovyev.android.calculator.model.AndroidCalculatorEngine;
import org.solovyev.android.calculator.onscreen.CalculatorOnscreenService;
import org.solovyev.android.calculator.preferences.PurchaseDialogActivity;
import org.solovyev.android.calculator.wizard.WizardActivity;
import org.solovyev.android.prefs.BooleanPreference;
@ -65,9 +65,65 @@ public final class Preferences {
public static final Preference<Integer> appVersion = IntegerPreference.of("application.version", -1);
public static final Preference<Integer> appOpenedCounter = IntegerPreference.of("app_opened_counter", 0);
public static class OnscreenCalculator {
public static class Onscreen {
public static final Preference<Boolean> startOnBoot = BooleanPreference.of("onscreen_start_on_boot", false);
public static final Preference<Boolean> showAppIcon = BooleanPreference.of("onscreen_show_app_icon", true);
public static final Preference<Theme> theme = StringPreference.ofEnum("onscreen.theme", Theme.default_theme, Theme.class);
public enum Theme {
default_theme(0, null),
metro_blue_theme(R.layout.onscreen_layout, Gui.Theme.metro_blue_theme),
material_theme(R.layout.onscreen_layout_material, Gui.Theme.material_theme),
material_light_theme(R.layout.onscreen_layout_material_light, Gui.Theme.material_light_theme);
@LayoutRes
private final int layout;
@Nullable
private final Gui.Theme appTheme;
Theme(int layout, @Nullable Gui.Theme appTheme) {
this.layout = layout;
this.appTheme = appTheme;
}
public int getLayout(@Nonnull Gui.Theme appTheme) {
return resolveThemeFor(appTheme).layout;
}
@Nonnull
public Theme resolveThemeFor(@Nonnull Gui.Theme appTheme) {
if (this == default_theme) {
// find direct match
for (Theme theme : values()) {
if (theme.appTheme == appTheme) {
return theme;
}
}
// for metro themes return metro theme
if (appTheme == Gui.Theme.metro_green_theme || appTheme == Gui.Theme.metro_purple_theme) {
return metro_blue_theme;
}
// for old themes return dark material
return material_theme;
}
return this;
}
@Nullable
public Gui.Theme getAppTheme() {
return appTheme;
}
}
@Nonnull
public static Theme getTheme(@Nonnull SharedPreferences preferences) {
return theme.getPreferenceNoError(preferences);
}
}
public static class Calculations {
@ -113,7 +169,7 @@ public final class Preferences {
return layout.getPreferenceNoError(preferences);
}
public static enum Theme {
public enum Theme {
default_theme(R.style.Cpp_Theme_Gray),
violet_theme(R.style.Cpp_Theme_Violet),
@ -152,9 +208,6 @@ public final class Preferences {
if (context instanceof PurchaseDialogActivity) {
return dialogThemeId;
}
if (App.getTheme().isLight() && context instanceof CalculatorOnscreenService) {
return R.style.Cpp_Theme_Material;
}
return themeId;
}
@ -288,8 +341,9 @@ public final class Preferences {
applyDefaultPreference(preferences, Calculations.preferredAngleUnits);
applyDefaultPreference(preferences, Calculations.preferredNumeralBase);
applyDefaultPreference(preferences, OnscreenCalculator.showAppIcon);
applyDefaultPreference(preferences, OnscreenCalculator.startOnBoot);
applyDefaultPreference(preferences, Onscreen.showAppIcon);
applyDefaultPreference(preferences, Onscreen.startOnBoot);
applyDefaultPreference(preferences, Onscreen.theme);
applyDefaultPreference(preferences, Ga.initialReportDone);

View File

@ -28,11 +28,11 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import javax.annotation.Nonnull;
import org.solovyev.android.calculator.App;
import org.solovyev.android.calculator.Preferences;
import javax.annotation.Nonnull;
/**
* User: serso
* Date: 11/20/12
@ -48,7 +48,7 @@ public final class CalculatorOnscreenBroadcastReceiver extends BroadcastReceiver
@Nonnull Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
if (Preferences.OnscreenCalculator.startOnBoot.getPreferenceNoError(preferences)) {
if (Preferences.Onscreen.startOnBoot.getPreferenceNoError(preferences)) {
CalculatorOnscreenService.showNotification(context);
App.getGa().onBootStart();
}

View File

@ -27,12 +27,22 @@ import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.IBinder;
import android.support.v4.app.NotificationCompat;
import android.util.DisplayMetrics;
import android.view.WindowManager;
import org.solovyev.android.Views;
import org.solovyev.android.calculator.*;
import org.solovyev.android.calculator.App;
import org.solovyev.android.calculator.CalculatorDisplayChangeEventData;
import org.solovyev.android.calculator.CalculatorEditorChangeEventData;
import org.solovyev.android.calculator.CalculatorEventData;
import org.solovyev.android.calculator.CalculatorEventListener;
import org.solovyev.android.calculator.CalculatorEventType;
import org.solovyev.android.calculator.Locator;
import org.solovyev.android.calculator.Preferences;
import org.solovyev.android.calculator.R;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@ -42,7 +52,7 @@ import javax.annotation.Nullable;
* Date: 11/20/12
* Time: 9:42 PM
*/
public class CalculatorOnscreenService extends Service implements OnscreenViewListener, CalculatorEventListener {
public class CalculatorOnscreenService extends Service implements OnscreenViewListener, CalculatorEventListener, SharedPreferences.OnSharedPreferenceChangeListener {
private static final String SHOW_WINDOW_ACTION = "org.solovyev.android.calculator.onscreen.SHOW_WINDOW";
private static final String SHOW_NOTIFICATION_ACTION = "org.solovyev.android.calculator.onscreen.SHOW_NOTIFICATION";
@ -66,6 +76,7 @@ public class CalculatorOnscreenService extends Service implements OnscreenViewLi
@Override
public void onCreate() {
super.onCreate();
App.getPreferences().registerOnSharedPreferenceChangeListener(this);
}
private void createView() {
@ -87,7 +98,7 @@ public class CalculatorOnscreenService extends Service implements OnscreenViewLi
final int width = Math.min(width0, height0);
final int height = Math.max(width0, height0);
view = CalculatorOnscreenView.newInstance(this, CalculatorOnscreenViewState.newInstance(width, height, -1, -1), this);
view = CalculatorOnscreenView.create(this, CalculatorOnscreenViewState.create(width, height, -1, -1), this);
view.show();
startCalculatorListening();
@ -117,6 +128,7 @@ public class CalculatorOnscreenService extends Service implements OnscreenViewLi
@Override
public void onDestroy() {
App.getPreferences().unregisterOnSharedPreferenceChangeListener(this);
stopCalculatorListening();
if (viewCreated) {
this.view.hide();
@ -229,5 +241,15 @@ public class CalculatorOnscreenService extends Service implements OnscreenViewLi
break;
}
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (viewCreated) {
if (Preferences.Gui.theme.isSameKey(key) || Preferences.Onscreen.theme.isSameKey(key)) {
stopSelf();
CalculatorOnscreenService.showOnscreenView(this);
}
}
}
}

View File

@ -24,7 +24,9 @@ package org.solovyev.android.calculator.onscreen;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;
import android.preference.PreferenceManager;
import android.util.DisplayMetrics;
import android.util.Log;
@ -33,12 +35,21 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import org.solovyev.android.calculator.*;
import org.solovyev.android.calculator.AndroidCalculatorDisplayView;
import org.solovyev.android.calculator.AndroidCalculatorEditorView;
import org.solovyev.android.calculator.App;
import org.solovyev.android.calculator.CalculatorButton;
import org.solovyev.android.calculator.CalculatorDisplayViewState;
import org.solovyev.android.calculator.CalculatorEditorViewState;
import org.solovyev.android.calculator.Preferences;
import org.solovyev.android.calculator.R;
import org.solovyev.android.prefs.Preference;
import java.util.Locale;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.Locale;
/**
* User: serso
@ -64,7 +75,7 @@ public class CalculatorOnscreenView {
**********************************************************************
*/
private static final Preference<CalculatorOnscreenViewState> viewStatePreference = new CalculatorOnscreenViewState.Preference("onscreen_view_state", CalculatorOnscreenViewState.newDefaultState());
private static final Preference<CalculatorOnscreenViewState> viewStatePreference = new CalculatorOnscreenViewState.Preference("onscreen_view_state", CalculatorOnscreenViewState.createDefault());
/*
**********************************************************************
@ -83,6 +94,11 @@ public class CalculatorOnscreenView {
@Nonnull
private View header;
@Nonnull
private ImageView headerTitle;
private Drawable headerTitleDrawable;
@Nonnull
private AndroidCalculatorEditorView editorView;
@ -93,7 +109,7 @@ public class CalculatorOnscreenView {
private Context context;
@Nonnull
private CalculatorOnscreenViewState state = CalculatorOnscreenViewState.newDefaultState();
private CalculatorOnscreenViewState state = CalculatorOnscreenViewState.createDefault();
@Nullable
private OnscreenViewListener viewListener;
@ -128,12 +144,15 @@ public class CalculatorOnscreenView {
private CalculatorOnscreenView() {
}
public static CalculatorOnscreenView newInstance(@Nonnull Context context,
@Nonnull CalculatorOnscreenViewState state,
@Nullable OnscreenViewListener viewListener) {
public static CalculatorOnscreenView create(@Nonnull Context context,
@Nonnull CalculatorOnscreenViewState state,
@Nullable OnscreenViewListener viewListener) {
final CalculatorOnscreenView result = new CalculatorOnscreenView();
result.root = View.inflate(context, R.layout.onscreen_layout, null);
final SharedPreferences p = App.getPreferences();
final Preferences.Onscreen.Theme theme = Preferences.Onscreen.theme.getPreferenceNoError(p);
final Preferences.Gui.Theme appTheme = Preferences.Gui.theme.getPreferenceNoError(p);
result.root = View.inflate(context, theme.getLayout(appTheme), null);
result.context = context;
result.viewListener = viewListener;
@ -211,6 +230,9 @@ public class CalculatorOnscreenView {
final WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
header = root.findViewById(R.id.onscreen_header);
headerTitle = (ImageView) header.findViewById(R.id.onscreen_title);
headerTitleDrawable = headerTitle.getDrawable();
headerTitle.setImageDrawable(null);
content = root.findViewById(R.id.onscreen_content);
displayView = (AndroidCalculatorDisplayView) root.findViewById(R.id.calculator_display);
@ -249,8 +271,7 @@ public class CalculatorOnscreenView {
}
});
final ImageView onscreenTitleImageView = (ImageView) root.findViewById(R.id.onscreen_title);
onscreenTitleImageView.setOnTouchListener(new WindowDragTouchListener(wm, root));
headerTitle.setOnTouchListener(new WindowDragTouchListener(wm, root));
initialized = true;
}
@ -295,7 +316,9 @@ public class CalculatorOnscreenView {
private void fold() {
if (!folded) {
int newHeight = header.getHeight();
headerTitle.setImageDrawable(headerTitleDrawable);
final Resources r = header.getResources();
final int newHeight = header.getHeight() + 2 * r.getDimensionPixelSize(R.dimen.cpp_onscreen_main_padding);
content.setVisibility(View.GONE);
setHeight(newHeight);
folded = true;
@ -304,6 +327,7 @@ public class CalculatorOnscreenView {
private void unfold() {
if (folded) {
headerTitle.setImageDrawable(null);
content.setVisibility(View.VISIBLE);
setHeight(state.getHeight());
folded = false;
@ -375,9 +399,9 @@ public class CalculatorOnscreenView {
public CalculatorOnscreenViewState getCurrentState(boolean useRealSize) {
final WindowManager.LayoutParams params = (WindowManager.LayoutParams) root.getLayoutParams();
if (useRealSize) {
return CalculatorOnscreenViewState.newInstance(params.width, params.height, params.x, params.y);
return CalculatorOnscreenViewState.create(params.width, params.height, params.x, params.y);
} else {
return CalculatorOnscreenViewState.newInstance(state.getWidth(), state.getHeight(), params.x, params.y);
return CalculatorOnscreenViewState.create(state.getWidth(), state.getHeight(), params.x, params.y);
}
}

View File

@ -27,9 +27,6 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.util.Log;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.json.JSONException;
import org.json.JSONObject;
import org.solovyev.android.prefs.AbstractPreference;
@ -37,6 +34,9 @@ import org.solovyev.android.prefs.AbstractPreference;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
/**
* User: serso
* Date: 11/21/12
@ -78,12 +78,12 @@ public class CalculatorOnscreenViewState implements Parcelable {
}
@Nonnull
public static CalculatorOnscreenViewState newDefaultState() {
return newInstance(200, 400, 0, 0);
public static CalculatorOnscreenViewState createDefault() {
return create(200, 400, 0, 0);
}
@Nonnull
public static CalculatorOnscreenViewState newInstance(int width, int height, int x, int y) {
public static CalculatorOnscreenViewState create(int width, int height, int x, int y) {
final CalculatorOnscreenViewState result = new CalculatorOnscreenViewState();
result.width = width;
result.height = height;

View File

@ -49,7 +49,7 @@ public class OnScreenCalculatorWizardStep extends WizardFragment implements Comp
public void onViewCreated(View root, Bundle savedInstanceState) {
super.onViewCreated(root, savedInstanceState);
final Boolean enabled = Preferences.OnscreenCalculator.showAppIcon.getPreference(getPreferences());
final Boolean enabled = Preferences.Onscreen.showAppIcon.getPreference(getPreferences());
checkbox = (CheckBox) root.findViewById(R.id.wizard_onscreen_app_enabled_checkbox);
checkbox.setChecked(enabled);
checkbox.setOnCheckedChangeListener(this);
@ -67,7 +67,7 @@ public class OnScreenCalculatorWizardStep extends WizardFragment implements Comp
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean checked) {
Preferences.OnscreenCalculator.showAppIcon.putPreference(getPreferences(), checked);
Preferences.Onscreen.showAppIcon.putPreference(getPreferences(), checked);
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_0"
style="@style/cpp_simple_metro_digit_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="0" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_0"
style="@style/CppKeyboardButton.Material.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="0" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_0"
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="0" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_1"
style="@style/cpp_simple_metro_digit_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="1" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_1"
style="@style/CppKeyboardButton.Material.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="1" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_1"
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="1" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_2"
style="@style/cpp_simple_metro_digit_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="2" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_2"
style="@style/CppKeyboardButton.Material.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="2" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_2"
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="2" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_3"
style="@style/cpp_simple_metro_digit_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="3" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_3"
style="@style/CppKeyboardButton.Material.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="3" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_3"
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="3" />

View File

@ -22,6 +22,6 @@
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_4"
style="@style/cpp_simple_metro_digit_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="4" />

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_4"
style="@style/CppKeyboardButton.Material.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="4" />

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_4"
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="4" />

View File

@ -22,6 +22,6 @@
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_5"
style="@style/cpp_simple_metro_digit_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="5" />

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_5"
style="@style/CppKeyboardButton.Material.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="5" />

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_5"
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="5" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_6"
style="@style/cpp_simple_metro_digit_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="6" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_6"
style="@style/CppKeyboardButton.Material.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="6" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_6"
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="6" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_7"
style="@style/cpp_simple_metro_digit_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="7" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_7"
style="@style/CppKeyboardButton.Material.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="7" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_7"
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="7" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_8"
style="@style/cpp_simple_metro_digit_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="8" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_8"
style="@style/CppKeyboardButton.Material.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="8" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_8"
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="8" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_9"
style="@style/cpp_simple_metro_digit_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="9" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_9"
style="@style/CppKeyboardButton.Material.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="9" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_9"
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="9" />

View File

@ -23,7 +23,7 @@
-->
<ImageButton a:id="@id/cpp_button_app"
style="@style/cpp_simple_metro_control_image_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control.Image"
xmlns:a="http://schemas.android.com/apk/res/android"
a:contentDescription="App"
a:src="@drawable/kb_logo" />

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<ImageButton a:id="@id/cpp_button_app"
style="@style/CppKeyboardButton.Material.Simple.Control.Image"
xmlns:a="http://schemas.android.com/apk/res/android"
a:contentDescription="App"
a:src="@drawable/kb_logo" />

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<ImageButton a:id="@id/cpp_button_app"
style="@style/CppKeyboardButton.Material.Light.Simple.Control.Image"
xmlns:a="http://schemas.android.com/apk/res/android"
a:contentDescription="App"
a:src="@drawable/kb_logo" />

View File

@ -23,7 +23,7 @@
-->
<Button a:id="@id/cpp_button_clear"
style="@style/cpp_simple_metro_control_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="@string/c_clear"
a:textStyle="bold" />

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_clear"
style="@style/CppKeyboardButton.Material.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="@string/c_clear"
a:textStyle="bold" />

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_clear"
style="@style/CppKeyboardButton.Material.Light.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="@string/c_clear"
a:textStyle="bold" />

View File

@ -23,7 +23,7 @@
-->
<ImageButton a:id="@id/cpp_button_copy"
style="@style/cpp_simple_metro_control_image_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control.Image"
xmlns:a="http://schemas.android.com/apk/res/android"
a:contentDescription="Copy"
a:src="@drawable/kb_copy" />

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<ImageButton a:id="@id/cpp_button_copy"
style="@style/CppKeyboardButton.Material.Simple.Control.Image"
xmlns:a="http://schemas.android.com/apk/res/android"
a:contentDescription="Copy"
a:src="@drawable/kb_copy" />

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<ImageButton a:id="@id/cpp_button_copy"
style="@style/CppKeyboardButton.Material.Light.Simple.Control.Image"
xmlns:a="http://schemas.android.com/apk/res/android"
a:contentDescription="Copy"
a:src="@drawable/kb_copy" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_division"
style="@style/cpp_simple_metro_blue_operation_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="/" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_division"
style="@style/CppKeyboardButton.Material.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="/" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_division"
style="@style/CppKeyboardButton.Material.Light.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="/" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_period"
style="@style/cpp_simple_metro_digit_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="." />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_period"
style="@style/CppKeyboardButton.Material.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="." />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_period"
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="." />

View File

@ -22,6 +22,6 @@
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_equals"
style="@style/cpp_simple_metro_control_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="=" />

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_equals"
style="@style/CppKeyboardButton.Material.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="=" />

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_equals"
style="@style/CppKeyboardButton.Material.Light.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="=" />

View File

@ -23,7 +23,7 @@
-->
<ImageButton a:id="@id/cpp_button_erase"
style="@style/cpp_simple_metro_control_image_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control.Image"
xmlns:a="http://schemas.android.com/apk/res/android"
a:contentDescription="Erase"
a:src="@drawable/kb_erase" />

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<ImageButton a:id="@id/cpp_button_erase"
style="@style/CppKeyboardButton.Material.Simple.Control.Image"
xmlns:a="http://schemas.android.com/apk/res/android"
a:contentDescription="Erase"
a:src="@drawable/kb_erase" />

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<ImageButton a:id="@id/cpp_button_erase"
style="@style/CppKeyboardButton.Material.Light.Simple.Control.Image"
xmlns:a="http://schemas.android.com/apk/res/android"
a:contentDescription="Erase"
a:src="@drawable/kb_erase" />

View File

@ -23,7 +23,7 @@
-->
<Button a:id="@id/cpp_button_functions"
style="@style/cpp_simple_metro_control_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="ƒ(x)"
a:textStyle="italic" />

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_functions"
style="@style/CppKeyboardButton.Material.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="ƒ(x)"
a:textStyle="italic" />

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_functions"
style="@style/CppKeyboardButton.Material.Light.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="ƒ(x)"
a:textStyle="italic" />

View File

@ -22,7 +22,7 @@
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_history"
style="@style/cpp_simple_metro_control_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="@string/c_history_button"
a:textStyle="bold" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_history"
style="@style/CppKeyboardButton.Material.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="@string/c_history_button"
a:textStyle="bold" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_history"
style="@style/CppKeyboardButton.Material.Light.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="@string/c_history_button"
a:textStyle="bold" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_left"
style="@style/cpp_simple_metro_control_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="◁" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_left"
style="@style/CppKeyboardButton.Material.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="◁" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_left"
style="@style/CppKeyboardButton.Material.Light.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="◁" />

View File

@ -22,7 +22,7 @@
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_subtraction"
style="@style/cpp_simple_metro_blue_operation_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
a:text=""

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_subtraction"
style="@style/CppKeyboardButton.Material.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
a:text=""
tools:ignore="HardcodedText" />

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_subtraction"
style="@style/CppKeyboardButton.Material.Light.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
a:text=""
tools:ignore="HardcodedText" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_multiplication"
style="@style/cpp_simple_metro_blue_operation_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="×" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_multiplication"
style="@style/CppKeyboardButton.Material.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="×" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_multiplication"
style="@style/CppKeyboardButton.Material.Light.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="×" />

View File

@ -23,7 +23,7 @@
-->
<Button a:id="@id/cpp_button_operators"
style="@style/cpp_simple_metro_control_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="∂,…"
a:textStyle="italic" />

View File

@ -23,7 +23,7 @@
-->
<ImageButton a:id="@id/cpp_button_paste"
style="@style/cpp_simple_metro_control_image_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control.Image"
xmlns:a="http://schemas.android.com/apk/res/android"
a:contentDescription="Paste"
a:src="@drawable/kb_paste" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_percent"
style="@style/cpp_simple_metro_blue_operation_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="%" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_percent"
style="@style/CppKeyboardButton.Material.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="%" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_percent"
style="@style/CppKeyboardButton.Material.Light.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="%" />

View File

@ -22,6 +22,6 @@
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_plus"
style="@style/cpp_simple_metro_blue_operation_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="+" />

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_plus"
style="@style/CppKeyboardButton.Material.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="+" />

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_plus"
style="@style/CppKeyboardButton.Material.Light.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="+" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_power"
style="@style/cpp_simple_metro_blue_operation_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="^" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_power"
style="@style/CppKeyboardButton.Material.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="^" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_power"
style="@style/CppKeyboardButton.Material.Light.Simple.Operation"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="^" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_right"
style="@style/cpp_simple_metro_control_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="▷" />

View File

@ -23,6 +23,6 @@
-->
<Button a:id="@id/cpp_button_round_brackets"
style="@style/cpp_simple_metro_digit_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="( )" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_round_brackets"
style="@style/CppKeyboardButton.Material.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="( )" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2013 serso aka se.solovyev
~
~ 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.
~
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Contact details
~
~ Email: se.solovyev@gmail.com
~ Site: http://se.solovyev.org
-->
<Button a:id="@id/cpp_button_round_brackets"
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="( )" />

View File

@ -23,7 +23,7 @@
-->
<ImageButton a:id="@id/cpp_button_settings"
style="@style/cpp_simple_metro_control_image_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control.Image"
xmlns:a="http://schemas.android.com/apk/res/android"
a:contentDescription="Settings"
a:src="@drawable/kb_settings" />

View File

@ -23,7 +23,7 @@
-->
<Button a:id="@id/cpp_button_vars"
style="@style/cpp_simple_metro_control_button_style"
style="@style/CppKeyboardButton.Metro.Simple.Control"
xmlns:a="http://schemas.android.com/apk/res/android"
a:text="π,…"
a:textStyle="italic" />

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org
-->
<org.solovyev.android.calculator.AndroidCalculatorDisplayView a:id="@+id/calculator_display"
style="@style/CppText.Display.Onscreen.Light"
xmlns:a="http://schemas.android.com/apk/res/android"
a:inputType="textMultiLine"
a:maxLines="3"
a:padding="@dimen/cpp_display_padding"
a:scrollHorizontally="false"
a:scrollbars="none" />

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org
-->
<LinearLayout a:id="@+id/main_fragment_layout"
style="@style/CppFragment"
xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="match_parent"
a:layout_height="match_parent"
a:padding="@dimen/cpp_editor_padding">
<org.solovyev.android.calculator.AndroidCalculatorEditorView
a:id="@+id/calculator_editor"
style="@style/CppText.Editor.Onscreen.Light"
a:textIsSelectable="true" />
</LinearLayout>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
</LinearLayout>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="match_parent"
a:layout_height="30dp">
a:layout_width="match_parent"
a:layout_height="30dp">
<LinearLayout
a:id="@+id/onscreen_header_buttons"
@ -12,18 +12,18 @@
<ImageButton
a:id="@+id/onscreen_fold_button"
style="@style/onscreen_header_button_style"
a:src="@drawable/cpp_onscreen_button_fold" />
style="@style/CppHeaderButton.Metro.Blue"
a:src="@drawable/cpp_onscreen_button_fold"/>
<ImageButton
a:id="@+id/onscreen_minimize_button"
style="@style/onscreen_header_button_style"
a:src="@drawable/cpp_onscreen_button_minimize" />
style="@style/CppHeaderButton.Metro.Blue"
a:src="@drawable/cpp_onscreen_button_minimize"/>
<ImageButton
a:id="@+id/onscreen_close_button"
style="@style/onscreen_header_button_style"
a:src="@drawable/cpp_onscreen_button_close" />
style="@style/CppHeaderButton.Metro.Blue"
a:src="@drawable/cpp_onscreen_button_close"/>
</LinearLayout>
@ -36,6 +36,6 @@
a:paddingLeft="6dp"
a:paddingTop="2dp"
a:scaleType="fitStart"
a:src="@drawable/cpp_onscreen_header_logo" />
a:src="@drawable/cpp_onscreen_header_logo"/>
</RelativeLayout>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="match_parent"
a:layout_height="30dp">
<LinearLayout
a:id="@+id/onscreen_header_buttons"
a:layout_width="wrap_content"
a:layout_height="match_parent"
a:layout_alignParentRight="true">
<ImageButton
a:id="@+id/onscreen_fold_button"
style="@style/CppHeaderButton.Material"
a:src="@drawable/cpp_onscreen_button_fold"/>
<ImageButton
a:id="@+id/onscreen_minimize_button"
style="@style/CppHeaderButton.Material"
a:src="@drawable/cpp_onscreen_button_minimize"/>
<ImageButton
a:id="@+id/onscreen_close_button"
style="@style/CppHeaderButton.Material"
a:src="@drawable/cpp_onscreen_button_close"/>
</LinearLayout>
<ImageView
a:id="@+id/onscreen_title"
a:layout_width="match_parent"
a:layout_height="match_parent"
a:layout_toLeftOf="@id/onscreen_header_buttons"
a:paddingBottom="2dp"
a:paddingLeft="6dp"
a:paddingTop="2dp"
a:scaleType="fitStart"
a:src="@drawable/cpp_onscreen_header_logo"/>
</RelativeLayout>

Some files were not shown because too many files have changed in this diff Show More