diff options
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.java | 102 |
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); } } |