summaryrefslogtreecommitdiffstats
path: root/src/android/jar/src/org/qtproject/qt/android/EditContextView.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt/android/EditContextView.java')
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/EditContextView.java102
1 files changed, 49 insertions, 53 deletions
diff --git a/src/android/jar/src/org/qtproject/qt/android/EditContextView.java b/src/android/jar/src/org/qtproject/qt/android/EditContextView.java
index c96ab11ffa..fbd32ed98b 100644
--- a/src/android/jar/src/org/qtproject/qt/android/EditContextView.java
+++ b/src/android/jar/src/org/qtproject/qt/android/EditContextView.java
@@ -1,64 +1,30 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 BogDan Vatra <bogdan@kde.org>
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Android port of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 BogDan Vatra <bogdan@kde.org>
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
package org.qtproject.qt.android;
+import android.annotation.SuppressLint;
import android.content.Context;
+import android.graphics.Point;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
-import android.R;
import java.util.HashMap;
-public class EditContextView extends LinearLayout implements View.OnClickListener
+@SuppressLint("ViewConstructor")
+class EditContextView extends LinearLayout implements View.OnClickListener
{
- public static final int CUT_BUTTON = 1 << 0;
+ public static final int CUT_BUTTON = 1;
public static final int COPY_BUTTON = 1 << 1;
public static final int PASTE_BUTTON = 1 << 2;
- public static final int SALL_BUTTON = 1 << 3;
+ public static final int SELECT_ALL_BUTTON = 1 << 3;
- HashMap<Integer, ContextButton> m_buttons = new HashMap<Integer, ContextButton>(4);
+ HashMap<Integer, ContextButton> m_buttons = new HashMap<>(4);
OnClickListener m_onClickListener;
public interface OnClickListener
@@ -76,8 +42,10 @@ public class EditContextView extends LinearLayout implements View.OnClickListene
setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT, 1));
setGravity(Gravity.CENTER);
- setTextColor(getResources().getColor(R.color.widget_edittext_dark));
- EditContextView.this.setBackground(getResources().getDrawable(R.drawable.editbox_background_normal));
+ setTextColor(getResources().getColor(
+ android.R.color.widget_edittext_dark, context.getTheme()));
+ EditContextView.this.setBackground(getResources().getDrawable(
+ android.R.drawable.editbox_background_normal, context.getTheme()));
float scale = getResources().getDisplayMetrics().density;
int hPadding = (int)(16 * scale + 0.5f);
int vPadding = (int)(8 * scale + 0.5f);
@@ -104,10 +72,38 @@ public class EditContextView extends LinearLayout implements View.OnClickListene
public void updateButtons(int buttonsLayout)
{
- m_buttons.get(R.string.cut).setVisibility((buttonsLayout & CUT_BUTTON) != 0 ? View.VISIBLE : View.GONE);
- m_buttons.get(R.string.copy).setVisibility((buttonsLayout & COPY_BUTTON) != 0 ? View.VISIBLE : View.GONE);
- m_buttons.get(R.string.paste).setVisibility((buttonsLayout & PASTE_BUTTON) != 0 ? View.VISIBLE : View.GONE);
- m_buttons.get(R.string.selectAll).setVisibility((buttonsLayout & SALL_BUTTON) != 0 ? View.VISIBLE : View.GONE);
+ ContextButton button = m_buttons.get(android.R.string.cut);
+ if (button != null)
+ button.setVisibility((buttonsLayout & CUT_BUTTON) != 0 ? View.VISIBLE : View.GONE);
+
+ button = m_buttons.get(android.R.string.copy);
+ if (button != null)
+ button.setVisibility((buttonsLayout & COPY_BUTTON) != 0 ? View.VISIBLE : View.GONE);
+
+ button = m_buttons.get(android.R.string.paste);
+ if (button != null)
+ button.setVisibility((buttonsLayout & PASTE_BUTTON) != 0 ? View.VISIBLE : View.GONE);
+
+ button = m_buttons.get(android.R.string.selectAll);
+ if (button != null)
+ button.setVisibility((buttonsLayout & SELECT_ALL_BUTTON) != 0 ? View.VISIBLE : View.GONE);
+ }
+
+ public Point getCalculatedSize()
+ {
+ Point size = new Point(0, 0);
+ for (ContextButton b : m_buttons.values()) {
+ if (b.getVisibility() == View.VISIBLE) {
+ b.measure(0, 0);
+ size.x += b.getMeasuredWidth();
+ size.y = Math.max(size.y, b.getMeasuredHeight());
+ }
+ }
+
+ size.x += getPaddingLeft() + getPaddingRight();
+ size.y += getPaddingTop() + getPaddingBottom();
+
+ return size;
}
public EditContextView(Context context, OnClickListener onClickListener) {
@@ -115,9 +111,9 @@ public class EditContextView extends LinearLayout implements View.OnClickListene
m_onClickListener = onClickListener;
setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
- addButton(R.string.cut);
- addButton(R.string.copy);
- addButton(R.string.paste);
- addButton(R.string.selectAll);
+ addButton(android.R.string.cut);
+ addButton(android.R.string.copy);
+ addButton(android.R.string.paste);
+ addButton(android.R.string.selectAll);
}
}