summaryrefslogtreecommitdiffstats
path: root/qtjava/javalib/examples/showimg/ImageTextEditor.java
diff options
context:
space:
mode:
Diffstat (limited to 'qtjava/javalib/examples/showimg/ImageTextEditor.java')
-rw-r--r--qtjava/javalib/examples/showimg/ImageTextEditor.java144
1 files changed, 144 insertions, 0 deletions
diff --git a/qtjava/javalib/examples/showimg/ImageTextEditor.java b/qtjava/javalib/examples/showimg/ImageTextEditor.java
new file mode 100644
index 00000000..6c11c1a4
--- /dev/null
+++ b/qtjava/javalib/examples/showimg/ImageTextEditor.java
@@ -0,0 +1,144 @@
+/***************************************************************************
+* $Id$
+**
+* Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
+**
+* This file is part of an example program for Qt. This example
+* program may be used, distributed and modified without limitation.
+**
+****************************************************************************/
+
+import org.kde.qt.*;
+
+
+class ImageTextEditor extends QDialog
+{
+private QImage image;
+private QComboBox languages;
+private QComboBox keys;
+private QMultiLineEdit text;
+private QLineEdit newlang;
+private QLineEdit newkey;
+
+
+
+ImageTextEditor( QImage i, QWidget parent )
+{
+ this(i, parent, null, 0);
+}
+
+ImageTextEditor( QImage i, QWidget parent, String name, int f )
+{
+ super(parent,name,true,f);
+ image = i;
+ QVBoxLayout vbox = new QVBoxLayout(this,8);
+ vbox.setAutoAdd(true);
+
+ QGrid controls = new QGrid(3,QGrid.Horizontal,this);
+ controls.setSpacing(8);
+ QLabel l;
+ l=new QLabel("Language",controls); l.setAlignment(AlignCenter);
+ l=new QLabel("Key",controls); l.setAlignment(AlignCenter);
+ new QLabel("",controls); // dummy
+ languages = new QComboBox(controls);
+ keys = new QComboBox(controls);
+ QPushButton remove = new QPushButton("Remove",controls);
+
+ newlang = new QLineEdit(controls);
+ newkey = new QLineEdit(controls);
+ QPushButton add = new QPushButton("Add",controls);
+
+ text = new QMultiLineEdit(this);
+
+ QHBox hbox = new QHBox(this);
+ QPushButton cancel = new QPushButton("Cancel",hbox);
+ QPushButton ok = new QPushButton("OK",hbox);
+
+ connect(add,SIGNAL("clicked()"),
+ this,SLOT("addText()"));
+
+ connect(remove,SIGNAL("clicked()"),
+ this,SLOT("removeText()"));
+
+ connect(ok,SIGNAL("clicked()"),
+ this,SLOT("accept()"));
+
+ connect(cancel,SIGNAL("clicked()"),
+ this,SLOT("reject()"));
+
+ connect(languages,SIGNAL("activated(int)"),
+ this,SLOT("updateText()"));
+
+ connect(keys,SIGNAL("activated(int)"),
+ this,SLOT("updateText()"));
+
+ imageChanged();
+}
+
+void imageChanged()
+{
+ languages.clear();
+ keys.clear();
+ text.clear();
+ languages.insertItem("<any>");
+
+ languages.insertStringList( (String[]) image.textLanguages().toArray(new String[0]) );
+ keys.insertStringList( (String[]) image.textKeys().toArray(new String[0]) );
+
+ updateText();
+}
+
+public void accept()
+{
+ storeText();
+ super.accept();
+}
+
+void updateText()
+{
+ storeText();
+ newlang.setText(languages.currentText());
+ newkey.setText(keys.currentText());
+ String t = image.text(currKey(),currLang());
+
+ text.setText(t);
+}
+
+String currKey()
+{
+ return newkey.text();
+}
+
+String currLang()
+{
+ String l = newlang.text();
+ if ( l.equals("<any>") )
+ l = "";
+ return l;
+}
+
+String currText()
+{
+ String t = text.text();
+ if ( t == null ) t = "";
+ return t;
+}
+
+
+void removeText()
+{
+ image.setText(currKey(),currLang(),"");
+}
+
+void addText()
+{
+ storeText();
+}
+
+void storeText()
+{
+ if ( currKey().length() > 0 ) {
+ image.setText(currKey(),currLang(),currText());
+ }
+}
+}