Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
EditContextView.java
Go to the documentation of this file.
1// Copyright (C) 2018 BogDan Vatra <bogdan@kde.org>
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4package org.qtproject.qt.android;
5
6
7import android.content.Context;
8import android.text.TextUtils;
9import android.view.Gravity;
10import android.view.View;
11import android.view.ViewGroup;
12import android.widget.LinearLayout;
13import android.widget.TextView;
14import android.R;
15
16import java.util.HashMap;
17
18public class EditContextView extends LinearLayout implements View.OnClickListener
19{
20 public static final int CUT_BUTTON = 1 << 0;
21 public static final int COPY_BUTTON = 1 << 1;
22 public static final int PASTE_BUTTON = 1 << 2;
23 public static final int SALL_BUTTON = 1 << 3;
24
25 HashMap<Integer, ContextButton> m_buttons = new HashMap<Integer, ContextButton>(4);
26 OnClickListener m_onClickListener;
27
28 public interface OnClickListener
29 {
30 void contextButtonClicked(int buttonId);
31 }
32
33 private class ContextButton extends TextView
34 {
35 public int m_buttonId;
36 public ContextButton(Context context, int stringId) {
37 super(context);
38 m_buttonId = stringId;
39 setText(stringId);
40 setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
41 ViewGroup.LayoutParams.WRAP_CONTENT, 1));
42 setGravity(Gravity.CENTER);
43 setTextColor(getResources().getColor(R.color.widget_edittext_dark));
44 EditContextView.this.setBackground(getResources().getDrawable(R.drawable.editbox_background_normal));
45 float scale = getResources().getDisplayMetrics().density;
46 int hPadding = (int)(16 * scale + 0.5f);
47 int vPadding = (int)(8 * scale + 0.5f);
48 setPadding(hPadding, vPadding, hPadding, vPadding);
49 setSingleLine();
50 setEllipsize(TextUtils.TruncateAt.END);
51 setOnClickListener(EditContextView.this);
52 }
53 }
54
55 @Override
56 public void onClick(View v)
57 {
58 ContextButton button = (ContextButton)v;
59 m_onClickListener.contextButtonClicked(button.m_buttonId);
60 }
61
62 void addButton(int id)
63 {
64 ContextButton button = new ContextButton(getContext(), id);
65 m_buttons.put(id, button);
66 addView(button);
67 }
68
69 public void updateButtons(int buttonsLayout)
70 {
71 m_buttons.get(R.string.cut).setVisibility((buttonsLayout & CUT_BUTTON) != 0 ? View.VISIBLE : View.GONE);
72 m_buttons.get(R.string.copy).setVisibility((buttonsLayout & COPY_BUTTON) != 0 ? View.VISIBLE : View.GONE);
73 m_buttons.get(R.string.paste).setVisibility((buttonsLayout & PASTE_BUTTON) != 0 ? View.VISIBLE : View.GONE);
74 m_buttons.get(R.string.selectAll).setVisibility((buttonsLayout & SALL_BUTTON) != 0 ? View.VISIBLE : View.GONE);
75 }
76
77 public EditContextView(Context context, OnClickListener onClickListener) {
78 super(context);
79 m_onClickListener = onClickListener;
80 setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
81
82 addButton(R.string.cut);
83 addButton(R.string.copy);
84 addButton(R.string.paste);
85 addButton(R.string.selectAll);
86 }
87}
EditContextView(Context context, OnClickListener onClickListener)
QPushButton * button
[2]
static void * context
Qt::MouseButtons m_buttons
Definition qnsview.mm:100
GLsizei const GLfloat * v
[13]
GLfloat GLfloat f
GLenum GLenum GLenum GLenum GLenum scale
insertRed setText("insert red text")