From 90825e2392b2d70e43c7a25b8a3752299a933894 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kjsembed/docs/embedding/simple-embed/Makefile.am | 40 +++++ kjsembed/docs/embedding/simple-embed/README | 81 +++++++++ kjsembed/docs/embedding/simple-embed/demo.html | 93 +++++++++++ .../docs/embedding/simple-embed/embedjs.desktop | 29 ++++ kjsembed/docs/embedding/simple-embed/embedjs.lsm | 16 ++ kjsembed/docs/embedding/simple-embed/embedjsui.rc | 14 ++ kjsembed/docs/embedding/simple-embed/embedview.ui | 183 +++++++++++++++++++++ .../docs/embedding/simple-embed/embedviewimp.cpp | 78 +++++++++ .../docs/embedding/simple-embed/embedviewimp.h | 34 ++++ .../embedding/simple-embed/hi16-app-embedjs.png | Bin 0 -> 1033 bytes .../embedding/simple-embed/hi32-app-embedjs.png | Bin 0 -> 2749 bytes kjsembed/docs/embedding/simple-embed/main.cpp | 45 +++++ kjsembed/docs/embedding/simple-embed/test.js | 37 +++++ 13 files changed, 650 insertions(+) create mode 100644 kjsembed/docs/embedding/simple-embed/Makefile.am create mode 100644 kjsembed/docs/embedding/simple-embed/README create mode 100644 kjsembed/docs/embedding/simple-embed/demo.html create mode 100644 kjsembed/docs/embedding/simple-embed/embedjs.desktop create mode 100644 kjsembed/docs/embedding/simple-embed/embedjs.lsm create mode 100644 kjsembed/docs/embedding/simple-embed/embedjsui.rc create mode 100644 kjsembed/docs/embedding/simple-embed/embedview.ui create mode 100644 kjsembed/docs/embedding/simple-embed/embedviewimp.cpp create mode 100644 kjsembed/docs/embedding/simple-embed/embedviewimp.h create mode 100644 kjsembed/docs/embedding/simple-embed/hi16-app-embedjs.png create mode 100644 kjsembed/docs/embedding/simple-embed/hi32-app-embedjs.png create mode 100644 kjsembed/docs/embedding/simple-embed/main.cpp create mode 100644 kjsembed/docs/embedding/simple-embed/test.js (limited to 'kjsembed/docs/embedding/simple-embed') diff --git a/kjsembed/docs/embedding/simple-embed/Makefile.am b/kjsembed/docs/embedding/simple-embed/Makefile.am new file mode 100644 index 00000000..44607f91 --- /dev/null +++ b/kjsembed/docs/embedding/simple-embed/Makefile.am @@ -0,0 +1,40 @@ +## Makefile.am for embedjs + +# this is the program that gets installed. it's name is used for all +# of the other Makefile.am variables +bin_PROGRAMS = embedjs + +# set the include path for X, qt and KDE +INCLUDES = -I$(top_srcdir) $(all_includes) + +# the library search path. +embedjs_LDFLAGS = $(KDE_RPATH) $(all_libraries) + +# the libraries to link against. +embedjs_LDADD = $(LIB_KFILE) $(LIB_KDEPRINT) -lkjs $(top_builddir)/kjsembed/libkjsembed.la + +# which sources should be compiled for embedjs +embedjs_SOURCES = main.cpp embedview.ui embedviewimp.cpp + +# these are the headers for your project + + +# client stuff + +# let automoc handle all of the meta source files (moc) +METASOURCES = AUTO + +messages: rc.cpp + $(XGETTEXT) *.cpp -o $(podir)/embedjs.pot + +KDE_ICON = embedjs + +# this is where the kdelnk file will go +kdelnkdir = $(kde_appsdir)/Utilities +kdelnk_DATA = embedjs.desktop + +# this is where the XML-GUI resource file goes +rcdir = $(kde_datadir)/embedjs +rc_DATA = embedjsui.rc +noinst_HEADERS = embedviewimp.h +noinst_DATA = test.js diff --git a/kjsembed/docs/embedding/simple-embed/README b/kjsembed/docs/embedding/simple-embed/README new file mode 100644 index 00000000..f04a5635 --- /dev/null +++ b/kjsembed/docs/embedding/simple-embed/README @@ -0,0 +1,81 @@ +----------------------------------------------- +Kde application framework template quickstart +Author: Thomas Nagy +Date: 2004-03-22 +----------------------------------------------- + +This README file explains you basic things for starting with +this application template. + + +** Building and installing ** + +* Build the configure script by "make -f Makefile.cvs" + +* To clean, use "make clean", and to clean everything +(remove the makefiles, etc), use "make distclean" + +* To distribute your program, try "make dist". +This will make a compact tarball archive of your release with the +necessary scripts inside. + +* Modifying the auto-tools scripts +for automake scripts there is an excellent tutorial there : +http://developer.kde.org/documentation/other/makefile_am_howto.html + +* Simplify your life : install the project in your home directory for +testing purposes. +./configure --prefix=/home/user/dummyfolder/ +In the end when you finished the development you can +rm -rf /home/user/dummyfolder/ +without fear. + + +** Technologies ** + +* Build the menus of your application easily +kde applications now use an xml file (*ui.rc file) to build the menus. +This allow a great customization of the application. However, when +programming the menu is shown only after a "make install" + +For more details, consult : +http://devel-home.kde.org/~larrosa/tutorial/p9.html +http://developer.kde.org/documentation/tutorials/xmlui/preface.html + +* Use KConfig XT to create your configuration dialogs and make +them more maintainable. + +For more details, consult : +http://developer.kde.org/documentation/tutorials/kconfigxt/kconfigxt.html + +* With KParts, you can embed other kde components in your program, or make your program +embeddable in other apps. For example, the kmplayer kpart can be called to play videos +in your app. + +For more details, consult : +http://www-106.ibm.com/developerworks/library/l-kparts/ +http://developer.kde.org/documentation/tutorials/dot/writing-plugins.html +http://developer.kde.org/documentation/tutorials/developing-a-plugin-structure/index.html + +* With dcop, you can control your app from other applications +Make sure to include K_DCOP and a kdcop: section in your .h file +http://developer.kde.org/documentation/tutorials/dot/dcopiface/dcop-interface.html + + +** Documentation ** + +* For the translations : +1. Download a patched gettext which can be found at: + http://public.kde.planetmirror.com/pub/kde/devel/gettext-kde/ +2. Install that gettext in ~/bin/ +3. cd ~/yourproject, export PATH=~/bin:$PATH, export +KDEDIR=/where_your_KDE3_is +4. make -f admin/Makefile.common package-messages +5. make package-messages +6. Translate the po files (not the pot!!) with kbabel or xemacs + +* Do not forget to write the documentation for your kde app +edit the documentation template index.docbook in doc/ + + + diff --git a/kjsembed/docs/embedding/simple-embed/demo.html b/kjsembed/docs/embedding/simple-embed/demo.html new file mode 100644 index 00000000..8b8f236e --- /dev/null +++ b/kjsembed/docs/embedding/simple-embed/demo.html @@ -0,0 +1,93 @@ + + + +KJSEmbed Documentation + + +

KJSEmbed Documentation

+
+ +

Introduction

+ +The KJSEmbed library is an easy-to-use wrapper around the KDE +ECMAScript interpreter (kjs) that makes it easy to add scriptability +to an application. The kjsembed library is distributed in the +kdebindings module of KDE. This library provides a binding between +Qt/KDE applications and KJS. + +

Discussion Forums

+ +There is now a KJSEmbed mailing list, see +http://mail.kde.org/mailman/listinfo/kjsembed +for more information about the list. In addition to the mailing list, +KJSEmbed is discussed on the #kaxul IRC channel (on the freenode IRC network). + +

Learning KJSEmbed

+ +An introduction to KJSEmbed. The example scripts demonstrate the use +of all the major objects, and even provides some useful tools. The +tutorial provides a basic introduction to using KJSEmbed, though it is +a little out of date. + + + +

Reference Information

+ +A reference manual for both the C++ and Javascript APIs defined by +KJSEmbed. The C++ API is of interest to developers looking to adding +scripting to support to their applications, the JS API is for people +who want to write scripts. + +

JavaScript API

+ + +

Host API

+ + +

Appendices

+ + +

References

+ + +
+ + diff --git a/kjsembed/docs/embedding/simple-embed/embedjs.desktop b/kjsembed/docs/embedding/simple-embed/embedjs.desktop new file mode 100644 index 00000000..19629691 --- /dev/null +++ b/kjsembed/docs/embedding/simple-embed/embedjs.desktop @@ -0,0 +1,29 @@ +[Desktop Entry] +Name=EmbedJS +Name[xx]=xxEmbedJSxx +Exec=embedjs %i %m -caption "%c" +Icon=embedjs +Categories=Qt;KDE;Debugger;Development; +Type=Application +DocPath=embedjs/embedjs.html +Comment=A KDE KPart Application +Comment[ca]=Una aplicació KPart per a KDE +Comment[da]=Et KDE KPart program +Comment[de]=Eine KDE-Komponenten-Anwendung +Comment[el]=Μια εφαρμογή KPart του KDE +Comment[es]=Una aplicación KPart de KDE +Comment[et]=KDE KPart rakendus +Comment[fr]=Une application KPart pour KDE. +Comment[hu]=KPart-alapú KDE-alkalmazás +Comment[it]=Applicazione KPart di KDE +Comment[nl]=Een KDE KPart-toepassing +Comment[pt]=Uma aplicação KPart do KDE +Comment[pt_BR]=Um Aplicativo KPart do KDE +Comment[ru]=Приложение KPart для KDE +Comment[sl]=Program KPart za KDE +Comment[sr]=KDE KPart програм +Comment[sv]=Ett KDE Kpart-program +Comment[ta]=கெடி கெபார்ட் பயன்பாடு +Comment[xx]=xxA KDE KPart Applicationxx +Comment[zh_CN]=一个KDE KPart应用程序 +Terminal=false diff --git a/kjsembed/docs/embedding/simple-embed/embedjs.lsm b/kjsembed/docs/embedding/simple-embed/embedjs.lsm new file mode 100644 index 00000000..c4955cbd --- /dev/null +++ b/kjsembed/docs/embedding/simple-embed/embedjs.lsm @@ -0,0 +1,16 @@ +Begin3 +Title: EmbedJS -- Some description +Version: 0.1 +Entered-date: +Description: +Keywords: KDE Qt +Author: Richard Moore +Maintained-by: Richard Moore +Home-page: +Alternate-site: +Primary-site: ftp://ftp.kde.org/pub/kde/unstable/apps/utils + xxxxxx embedjs-0.1.tar.gz + xxx embedjs-0.1.lsm +Platform: Linux. Needs KDE +Copying-policy: LGPL +End diff --git a/kjsembed/docs/embedding/simple-embed/embedjsui.rc b/kjsembed/docs/embedding/simple-embed/embedjsui.rc new file mode 100644 index 00000000..b7138c3b --- /dev/null +++ b/kjsembed/docs/embedding/simple-embed/embedjsui.rc @@ -0,0 +1,14 @@ + + + + &Tools + + + &Settings + + + C&ustom + + + + diff --git a/kjsembed/docs/embedding/simple-embed/embedview.ui b/kjsembed/docs/embedding/simple-embed/embedview.ui new file mode 100644 index 00000000..43be65ab --- /dev/null +++ b/kjsembed/docs/embedding/simple-embed/embedview.ui @@ -0,0 +1,183 @@ + +EmbedView + + + Form1 + + + + 0 + 0 + 600 + 480 + + + + + unnamed + + + + layout1 + + + + unnamed + + + + textLabel3 + + + Title: + + + + + m_dept + + + + + m_name + + + + + textLabel2 + + + Department: + + + + + textLabel1 + + + Name: + + + + + m_title + + + + + + + m_customOptions + + + + 5 + 5 + 1 + 1 + + + + Custom Options + + + + + layout3 + + + + unnamed + + + + m_console + + + Console + + + + + + 0 + + + + + spacer1 + + + Horizontal + + + Expanding + + + + 280 + 20 + + + + + + m_ok + + + &OK + + + 1 + + + + + m_cancel + + + &Cancel + + + 2 + + + + + + + + + m_ok + clicked() + Form1 + okClicked() + + + m_cancel + clicked() + Form1 + cancelClicked() + + + m_console + clicked() + Form1 + consoleClicked() + + + + okClicked() + cancelClicked() + consoleClicked() + + + + klineedit.h + klineedit.h + klineedit.h + kpushbutton.h + kpushbutton.h + kpushbutton.h + + diff --git a/kjsembed/docs/embedding/simple-embed/embedviewimp.cpp b/kjsembed/docs/embedding/simple-embed/embedviewimp.cpp new file mode 100644 index 00000000..a1355909 --- /dev/null +++ b/kjsembed/docs/embedding/simple-embed/embedviewimp.cpp @@ -0,0 +1,78 @@ +// +// Author: Ian Reinhart Geiser , (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include +#include +#include + +#include "embedviewimp.h" +#include +#include + +#include +#include + +EmbedViewImp::EmbedViewImp(QWidget *parent, const char *name) + :EmbedView(parent, name) +{ + m_part = new KJSEmbed::KJSEmbedPart(0, "kjsembed_part", this,"JSEmbed"); + m_part->addObject(m_name, "Name"); + m_part->addObject(m_dept, "Dept"); + m_part->addObject(m_title, "Title"); + m_part->addObject(m_customOptions, "CustomOptions"); + m_part->addObject(this, "EmbedInterface"); +} + +void EmbedViewImp::okClicked() +{ + KJS::List args; + KJS::Value val = m_part->callMethod("handleOk", args); + QMap personalData = KJSEmbed::convertToVariant(m_part->globalExec(), val).toMap(); + QDate birthday = personalData["birthday"].toDate(); + QColor eyecolor = personalData["eyeColor"].toColor(); + QString notes = personalData["notes"].toString(); + + kdDebug() << "birthday: " << birthday << endl; + kdDebug() << "eyecolor: " << eyecolor << endl; + kdDebug() << "notes: " << notes << endl; + +} + +void EmbedViewImp::cancelClicked() +{ + m_name->setText(""); + m_title->setText(""); + m_dept->setText(""); +} + +void EmbedViewImp::consoleClicked() +{ + m_part->view()->setHidden(!m_part->view()->isHidden()); +} + +bool EmbedViewImp::runScript( const QString &file ) +{ + return m_part->runFile(file, m_part->globalObject() ); +} + +QVariant EmbedViewImp::someValue() const +{ + QMap returnMap; + returnMap["name"] = m_name->text(); + returnMap["title"] = m_title->text(); + returnMap["dept"] = m_dept->text(); + return QVariant(returnMap); +} + +void EmbedViewImp::setSomeValue( const QVariant &val ) +{ + QMap map = val.toMap(); + m_name->setText(map["name"].toString()); + m_title->setText(map["title"].toString()); + m_dept->setText(map["dept"].toString()); +} + +#include "embedviewimp.moc" diff --git a/kjsembed/docs/embedding/simple-embed/embedviewimp.h b/kjsembed/docs/embedding/simple-embed/embedviewimp.h new file mode 100644 index 00000000..c56f078c --- /dev/null +++ b/kjsembed/docs/embedding/simple-embed/embedviewimp.h @@ -0,0 +1,34 @@ +// +// Author: Ian Reinhart Geiser , (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef EMBEDVIEWIMP_H +#define EMBEDVIEWIMP_H + +#include "embedview.h" +namespace KJSEmbed { + class KJSEmbedPart; +} + +class EmbedViewImp: public EmbedView { + Q_OBJECT + +public: + EmbedViewImp( QWidget *parent = 0, const char *name = 0 ); + + bool runScript( const QString &file ); + +public slots: + virtual void cancelClicked(); + virtual void okClicked(); + virtual void consoleClicked(); + + QVariant someValue() const; + void setSomeValue( const QVariant &var ); +private: + KJSEmbed::KJSEmbedPart *m_part; +}; + +#endif diff --git a/kjsembed/docs/embedding/simple-embed/hi16-app-embedjs.png b/kjsembed/docs/embedding/simple-embed/hi16-app-embedjs.png new file mode 100644 index 00000000..4ed606c1 Binary files /dev/null and b/kjsembed/docs/embedding/simple-embed/hi16-app-embedjs.png differ diff --git a/kjsembed/docs/embedding/simple-embed/hi32-app-embedjs.png b/kjsembed/docs/embedding/simple-embed/hi32-app-embedjs.png new file mode 100644 index 00000000..45ae1a11 Binary files /dev/null and b/kjsembed/docs/embedding/simple-embed/hi32-app-embedjs.png differ diff --git a/kjsembed/docs/embedding/simple-embed/main.cpp b/kjsembed/docs/embedding/simple-embed/main.cpp new file mode 100644 index 00000000..74c5d241 --- /dev/null +++ b/kjsembed/docs/embedding/simple-embed/main.cpp @@ -0,0 +1,45 @@ +/*************************************************************************** + * Copyright (C) 2004 by Richard Moore * + * rich@kde.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Library General Public License as * + * published by the Free Software Foundation; either version 2 of the * + * License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include "embedviewimp.h" +#include +#include +#include +#include + +static const char description[] = + I18N_NOOP("A KDE Application"); + +static const char version[] = "0.1"; + +int main(int argc, char **argv) +{ + KAboutData about("embedjs", I18N_NOOP("EmbedJS"), version, description, + KAboutData::License_LGPL, "(C) 2004 Ian Reinhart Geiser", 0, 0, "geiseri@kde.org"); + about.addAuthor( "Ian Reinhart Geiser", 0, "geiseri@kde.org" ); + KCmdLineArgs::init(argc, argv, &about); + KApplication app; + + EmbedViewImp *view = new EmbedViewImp; + app.setMainWidget(view); + view->show(); + view->runScript("test.js"); + return app.exec(); +} diff --git a/kjsembed/docs/embedding/simple-embed/test.js b/kjsembed/docs/embedding/simple-embed/test.js new file mode 100644 index 00000000..2511a465 --- /dev/null +++ b/kjsembed/docs/embedding/simple-embed/test.js @@ -0,0 +1,37 @@ +#!/usr/bin/env kjsembed + +CustomOptions.orientation = Qt.Vertical; +CustomOptions.columns = 1; + +var box = new QVBox(CustomOptions); +var row1 = new QHBox(box); +var dateLabel = new QLabel(row1); +dateLabel.text = "Birthday:"; +var birthday = new KDateWidget(row1); + +var row2 = new QHBox(box); +var eyeLabel = new QLabel(row2); +eyeLabel.text = "Eye color:"; +var eyeColor = new KColorButton(row2); + +var row3 = new QHBox(box); +var notes = new KTextEdit(row3); + +box.show(); + +function handleOk() +{ + var personelData = []; // make this an array so it will convert properly + personelData = {birthday:birthday.date, eyeColor:eyeColor.color, notes:notes.text }; +// personelData[birthday] = birthday.date; +// personelData[eyeColor] = eyeColor.color; +// personelData[notes] = notes.text; + return personelData; +} + +function handleCancel() +{ + notes.text = ""; +} + + -- cgit v1.2.1