diff options
Diffstat (limited to 'chalk/plugins/viewplugins/rotateimage')
8 files changed, 732 insertions, 0 deletions
diff --git a/chalk/plugins/viewplugins/rotateimage/Makefile.am b/chalk/plugins/viewplugins/rotateimage/Makefile.am new file mode 100644 index 00000000..d4ff4e63 --- /dev/null +++ b/chalk/plugins/viewplugins/rotateimage/Makefile.am @@ -0,0 +1,25 @@ +chalkrcdir = $(kde_datadir)/chalkplugins +chalkrc_DATA = rotateimage.rc + +EXTRA_DIST = $(chalkrc_DATA) + + +INCLUDES = -I$(srcdir)/../../../sdk \ + -I$(srcdir)/../../../core \ + -I$(srcdir)/../../../chalkcolor/ \ + -I$(srcdir)/../../../ui \ + $(KOFFICE_INCLUDES) \ + $(all_includes) + +kde_module_LTLIBRARIES = chalkrotateimage.la + +chalkrotateimage_la_SOURCES = wdg_rotateimage.ui rotateimage.cc dlg_rotateimage.cc +noinst_HEADERS = wdg_rotateimage.h dlg_rotateimage.h rotateimage.h + +chalkrotateimage_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) chalkblurfilter_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -L../../../../chalk/chalkcolor/.libs -lchalkcolor -L../../../../chalk/core/.libs -lchalkimage \ + -L../../../../chalk/ui/.libs -lchalkui -L../../../../lib/kofficeui/.libs -lkofficeui +chalkrotateimage_la_LIBADD = ../../../libchalkcommon.la + +kde_services_DATA = chalkrotateimage.desktop + +chalkrotateimage_la_METASOURCES = AUTO diff --git a/chalk/plugins/viewplugins/rotateimage/chalkrotateimage.desktop b/chalk/plugins/viewplugins/rotateimage/chalkrotateimage.desktop new file mode 100644 index 00000000..e855492e --- /dev/null +++ b/chalk/plugins/viewplugins/rotateimage/chalkrotateimage.desktop @@ -0,0 +1,40 @@ +[Desktop Entry] +Name=Rotate Image Plugin +Name[bg]=Приставка за въртене на изображение +Name[ca]=Connector de rotació d'imatge +Name[da]=Plugin for rotering af billede +Name[de]="Bild rotieren"-Modul +Name[el]=Πρόσθετο περιστροφής εικόνας +Name[es]=Complemento para girar la imagen +Name[et]=Pildi pööramise plugin +Name[fa]=چرخش وصلۀ تصویر +Name[fr]=Module de rotation d'images +Name[fy]=Plugin foar ôfbyldingsrotaasje +Name[gl]=Plugin para Rodar a Imaxe +Name[he]=תוסף לשינוי גודל של תמונה +Name[hu]=Képelforgató modul +Name[is]=Snúa mynd íforrit +Name[it]=Plugin per ruotare le immagini +Name[ja]=画像回転プラグイン +Name[km]=កម្មវិធីត្រឡប់រូបភាព +Name[nb]=Programtillegg for bilderotering +Name[nds]=Moduul för't Bilddreihen +Name[ne]=छवि प्लगइन परिक्रमा गर्नुहोस् +Name[nl]=Plugin voor afbeeldingrotatie +Name[pl]=Wtyczka obrotu obrazków +Name[pt]='Plugin' para Rodar a Imagem +Name[pt_BR]=Plugin para Rodar a Imagem +Name[ru]=Модуль вращения +Name[sk]=Modul rotácia obrázkov +Name[sl]=Vstavek za vrtenje slike +Name[sr]=Прикључак за ротирање слике +Name[sr@Latn]=Priključak za rotiranje slike +Name[sv]=Insticksprogram för rotera bild +Name[uk]=Втулок обертання зображень +Name[uz]=Rasmni burish plagini +Name[uz@cyrillic]=Расмни буриш плагини +Name[zh_TW]=旋轉圖片外掛程式 +ServiceTypes=Chalk/ViewPlugin +Type=Service +X-KDE-Library=chalkrotateimage +X-Chalk-Version=2 diff --git a/chalk/plugins/viewplugins/rotateimage/dlg_rotateimage.cc b/chalk/plugins/viewplugins/rotateimage/dlg_rotateimage.cc new file mode 100644 index 00000000..6e3cc9f7 --- /dev/null +++ b/chalk/plugins/viewplugins/rotateimage/dlg_rotateimage.cc @@ -0,0 +1,147 @@ +/* + * dlg_rotateimage.cc - part of KimageShop^WKrayon^WChalk + * + * Copyright (c) 2004 Michael Thaler <michael.thaler@physik.tu-muenchen.de> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU 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 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 <config.h> + +#include <math.h> + +#include <iostream> + +using namespace std; + +#include <tqgroupbox.h> +#include <tqradiobutton.h> +#include <tqcheckbox.h> +#include <tqlabel.h> + +#include <klocale.h> +#include <knuminput.h> +#include <kdebug.h> + +#include "dlg_rotateimage.h" +#include "wdg_rotateimage.h" + + +DlgRotateImage::DlgRotateImage( TQWidget * tqparent, + const char * name) + : super (tqparent, name, true, i18n("Rotate Image"), Ok | Cancel, Ok) +{ + m_lock = false; + + m_page = new WdgRotateImage(this, "rotate_image"); + Q_CHECK_PTR(m_page); + + setMainWidget(m_page); + resize(m_page->tqsizeHint()); + + connect(this, TQT_SIGNAL(okClicked()), + this, TQT_SLOT(okClicked())); + connect( m_page->doubleCustom, TQT_SIGNAL( valueChanged ( double ) ), + this, TQT_SLOT( slotAngleValueChanged( double ) ) ); + +} + +DlgRotateImage::~DlgRotateImage() +{ + delete m_page; +} + +void DlgRotateImage::slotAngleValueChanged( double ) +{ + m_page->radioCustom->setChecked(true); +} + +void DlgRotateImage::setAngle(double angle) +{ + if (angle == 90) { + m_page->radio90->setChecked(true); + } + else if (angle == 180) { + m_page->radio180->setChecked(true); + } + else if (angle == 270) { + m_page->radio270->setChecked(true); + } + else { + m_page->radioCustom->setChecked(true); + m_page->doubleCustom->setValue(angle); + } + + if (m_oldAngle != angle) + resetPreview(); + + m_oldAngle = angle; + +} + +double DlgRotateImage::angle() +{ + double angle = 0; + if (m_page->radio90->isChecked()) { + angle = 90; + } + else if (m_page->radio180->isChecked()) { + angle = 180; + } + else if (m_page->radio270->isChecked()) { + angle = 270; + } + else { + angle = tqRound(m_page->doubleCustom->value()); + } + if (m_page->radioCW->isChecked()) { + return angle; + } + else { + return -angle; + } +} + +void DlgRotateImage::setDirection (enumRotationDirection direction) +{ + if (direction == CLOCKWISE) { + m_page->radioCW->setChecked(true); + } + else if (direction== COUNTERCLOCKWISE) { + m_page->radioCCW->setChecked(true); + } +} + +enumRotationDirection DlgRotateImage::direction() +{ + if (m_page->radioCCW->isChecked()) { + return COUNTERCLOCKWISE; + } + else { + return CLOCKWISE; + } +} + +void DlgRotateImage::okClicked() +{ + accept(); +} + +void DlgRotateImage::resetPreview() +{ + // Code to update preview here. +} + +#include "dlg_rotateimage.moc" diff --git a/chalk/plugins/viewplugins/rotateimage/dlg_rotateimage.h b/chalk/plugins/viewplugins/rotateimage/dlg_rotateimage.h new file mode 100644 index 00000000..47ddd344 --- /dev/null +++ b/chalk/plugins/viewplugins/rotateimage/dlg_rotateimage.h @@ -0,0 +1,66 @@ +/* + * dlg_rotateimage.h -- part of KimageShop^WKrayon^WChalk + * + * Copyright (c) 2004 Michael Thaler <michael.thaler@physik.tu-muenchen.de> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU 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 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. + */ +#ifndef DLG_ROTATEIMAGE +#define DLG_ROTATEIMAGE + +#include <kdialogbase.h> + +#include <kis_global.h> + +class WdgRotateImage; + +enum enumRotationDirection { + CLOCKWISE, + COUNTERCLOCKWISE +}; + + +class DlgRotateImage: public KDialogBase { + typedef KDialogBase super; + Q_OBJECT + TQ_OBJECT + +public: + + DlgRotateImage(TQWidget * tqparent = 0, + const char* name = 0); + ~DlgRotateImage(); + + void setAngle(double w); + double angle(); + + void setDirection (enumRotationDirection direction); + enumRotationDirection direction(); + +private slots: + + void okClicked(); + void resetPreview(); + void slotAngleValueChanged( double ); + +private: + + WdgRotateImage * m_page; + double m_oldAngle; + bool m_lock; + +}; + +#endif // DLG_ROTATEIMAGE diff --git a/chalk/plugins/viewplugins/rotateimage/rotateimage.cc b/chalk/plugins/viewplugins/rotateimage/rotateimage.cc new file mode 100644 index 00000000..e8961cec --- /dev/null +++ b/chalk/plugins/viewplugins/rotateimage/rotateimage.cc @@ -0,0 +1,134 @@ +/* + * rotateimage.cc -- Part of Chalk + * + * Copyright (c) 2004 Michael Thaler + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU 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 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 <math.h> + +#include <stdlib.h> + +#include <tqslider.h> +#include <tqpoint.h> + +#include <klocale.h> +#include <kiconloader.h> +#include <kinstance.h> +#include <kmessagebox.h> +#include <kstandarddirs.h> +#include <ktempfile.h> +#include <kdebug.h> +#include <kgenericfactory.h> + +#include <kis_doc.h> +#include <kis_config.h> +#include <kis_image.h> +#include <kis_layer.h> +#include <kis_global.h> +#include <kis_types.h> +#include <kis_view.h> +#include <kis_selection.h> + +#include "rotateimage.h" +#include "dlg_rotateimage.h" + +typedef KGenericFactory<RotateImage> RotateImageFactory; +K_EXPORT_COMPONENT_FACTORY( chalkrotateimage, RotateImageFactory( "chalk" ) ) + +// XXX: this plugin could also provide layer scaling/resizing +RotateImage::RotateImage(TQObject *tqparent, const char *name, const TQStringList &) + : KParts::Plugin(tqparent, name) +{ + + if ( tqparent->inherits("KisView") ) { + setInstance(RotateImageFactory::instance()); + setXMLFile(locate("data","chalkplugins/rotateimage.rc"), true); + m_view = (KisView*) tqparent; + (void) new KAction(i18n("&Rotate Image..."), 0, 0, TQT_TQOBJECT(this), TQT_SLOT(slotRotateImage()), actionCollection(), "rotateimage"); + (void) new KAction(i18n("Rotate Image CW"), "rotate_cw", 0, TQT_TQOBJECT(this), TQT_SLOT(slotRotateImage90()), actionCollection(), "rotateImageCW90"); + (void) new KAction(i18n("Rotate Image 1&80"), 0, 0, TQT_TQOBJECT(this), TQT_SLOT(slotRotateImage180()), actionCollection(), "rotateImage180"); + (void) new KAction(i18n("Rotate Image CCW"), "rotate_ccw", 0, TQT_TQOBJECT(this), TQT_SLOT(slotRotateImage270()), actionCollection(), "rotateImageCCW90"); + + (void) new KAction(i18n("&Rotate Layer..."), 0, 0, TQT_TQOBJECT(this), TQT_SLOT(slotRotateLayer()), actionCollection(), "rotatelayer"); + + (void)new KAction(i18n("Rotate 1&80"), 0, TQT_TQOBJECT(m_view), TQT_SLOT(rotateLayer180()), actionCollection(), "rotateLayer180"); + (void)new KAction(i18n("Rotate CCW"), "rotate_ccw", 0, TQT_TQOBJECT(m_view), TQT_SLOT(rotateLayerLeft90()), actionCollection(), "rotateLayerCCW90"); + (void)new KAction(i18n("Rotate CW"), "rotate_cw", 0, TQT_TQOBJECT(m_view), TQT_SLOT(rotateLayerRight90()), actionCollection(), "rotateLayerCW90"); + } +} + +RotateImage::~RotateImage() +{ + m_view = 0; +} + +void RotateImage::slotRotateImage() +{ + KisImageSP image = m_view->canvasSubject()->currentImg(); + + if (!image) return; + + DlgRotateImage * dlgRotateImage = new DlgRotateImage(m_view, "RotateImage"); + Q_CHECK_PTR(dlgRotateImage); + + dlgRotateImage->setCaption(i18n("Rotate Image")); + + if (dlgRotateImage->exec() == TQDialog::Accepted) { + double angle = dlgRotateImage->angle(); + angle *= M_PI/180; + m_view->rotateCurrentImage(angle); + } + delete dlgRotateImage; +} + +void RotateImage::slotRotateImage90() +{ + m_view->rotateCurrentImage( M_PI/2); +} + +void RotateImage::slotRotateImage180() +{ + m_view->rotateCurrentImage( M_PI ); +} + + +void RotateImage::slotRotateImage270() +{ + m_view->rotateCurrentImage( - M_PI/2 + M_PI*2 ); +} + +void RotateImage::slotRotateLayer() +{ + KisImageSP image = m_view->canvasSubject()->currentImg(); + + if (!image) return; + + DlgRotateImage * dlgRotateImage = new DlgRotateImage(m_view, "RotateLayer"); + Q_CHECK_PTR(dlgRotateImage); + + dlgRotateImage->setCaption(i18n("Rotate Layer")); + + if (dlgRotateImage->exec() == TQDialog::Accepted) { + double angle = dlgRotateImage->angle(); + angle *= M_PI/180; + m_view->rotateLayer(angle); + } + delete dlgRotateImage; +} + +#include "rotateimage.moc" diff --git a/chalk/plugins/viewplugins/rotateimage/rotateimage.h b/chalk/plugins/viewplugins/rotateimage/rotateimage.h new file mode 100644 index 00000000..6b262608 --- /dev/null +++ b/chalk/plugins/viewplugins/rotateimage/rotateimage.h @@ -0,0 +1,50 @@ +/* + * rotateimage.h -- Part of Chalk + * + * Copyright (c) 2004 Michael Thaler (michael.thaler@physik.tu-muenchen.de) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU 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 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. */ + +#ifndef ROTATEIMAGE_H +#define ROTATEIMAGE_H + +#include <kparts/plugin.h> + +class KisView; + +class RotateImage : public KParts::Plugin +{ + Q_OBJECT + TQ_OBJECT +public: + RotateImage(TQObject *tqparent, const char *name, const TQStringList &); + virtual ~RotateImage(); + +private slots: + + void slotRotateImage(); + void slotRotateImage90(); + void slotRotateImage180(); + void slotRotateImage270(); + void slotRotateLayer(); + +private: + + KisView * m_view; + KisPainter * m_painter; + +}; + +#endif // ROTATEIMAGE_H diff --git a/chalk/plugins/viewplugins/rotateimage/rotateimage.rc b/chalk/plugins/viewplugins/rotateimage/rotateimage.rc new file mode 100644 index 00000000..78ae6f4f --- /dev/null +++ b/chalk/plugins/viewplugins/rotateimage/rotateimage.rc @@ -0,0 +1,25 @@ +<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> +<kpartgui library="chalkrotateimage" version="7"> +<MenuBar> + <Menu name="Image"><text>&Image</text> + <Menu name="Rotate"><text>&Rotate</text> + <Action name="rotateimage"/> + <Separator /> + <Action name="rotateImageCW90"/> + <Action name="rotateImageCCW90"/> + <Action name="rotateImage180"/> + </Menu> + </Menu> + + <Menu name="Layer"><text>La&yer</text> + <Menu name="Rotate"><text>&Rotate</text> + <Action name="rotatelayer"/> + <Separator /> + <Action name="rotateLayerCW90"/> + <Action name="rotateLayerCCW90"/> + <Action name="rotateLayer180"/> + </Menu> + </Menu> +</MenuBar> + +</kpartgui> diff --git a/chalk/plugins/viewplugins/rotateimage/wdg_rotateimage.ui b/chalk/plugins/viewplugins/rotateimage/wdg_rotateimage.ui new file mode 100644 index 00000000..d58c458d --- /dev/null +++ b/chalk/plugins/viewplugins/rotateimage/wdg_rotateimage.ui @@ -0,0 +1,245 @@ +<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> +<class>WdgRotateImage</class> +<widget class="TQWidget"> + <property name="name"> + <cstring>WdgRotateImage</cstring> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>489</width> + <height>447</height> + </rect> + </property> + <property name="caption"> + <string>Rotate Image</string> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="TQButtonGroup" row="0" column="0"> + <property name="name"> + <cstring>grpDirection</cstring> + </property> + <property name="title"> + <string>Direction</string> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="TQLayoutWidget" row="0" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>tqlayout6</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <spacer> + <property name="name"> + <cstring>spacer3</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="tqsizeHint"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="TQLabel"> + <property name="name"> + <cstring>pixmapLabel1</cstring> + </property> + <property name="pixmap"> + <pixmap>image0</pixmap> + </property> + <property name="scaledContents"> + <bool>false</bool> + </property> + <property name="tqalignment"> + <set>AlignCenter</set> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer1</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="tqsizeHint"> + <size> + <width>41</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="TQLabel"> + <property name="name"> + <cstring>pixmapLabel2</cstring> + </property> + <property name="pixmap"> + <pixmap>image1</pixmap> + </property> + <property name="scaledContents"> + <bool>false</bool> + </property> + <property name="tqalignment"> + <set>AlignCenter</set> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer2</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="tqsizeHint"> + <size> + <width>31</width> + <height>20</height> + </size> + </property> + </spacer> + </hbox> + </widget> + <widget class="TQRadioButton" row="1" column="1"> + <property name="name"> + <cstring>radioCW</cstring> + </property> + <property name="text"> + <string>C&lockwise</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + <widget class="TQRadioButton" row="1" column="0"> + <property name="name"> + <cstring>radioCCW</cstring> + </property> + <property name="text"> + <string>Cou&nter-clockwise</string> + </property> + </widget> + </grid> + </widget> + <widget class="TQButtonGroup" row="1" column="0"> + <property name="name"> + <cstring>grpAngle</cstring> + </property> + <property name="title"> + <string>Angle</string> + </property> + <vbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="TQRadioButton"> + <property name="name"> + <cstring>radio90</cstring> + </property> + <property name="text"> + <string>90 &degrees</string> + </property> + </widget> + <widget class="TQRadioButton"> + <property name="name"> + <cstring>radio180</cstring> + </property> + <property name="text"> + <string>180 d&egrees</string> + </property> + </widget> + <widget class="TQRadioButton"> + <property name="name"> + <cstring>radio270</cstring> + </property> + <property name="text"> + <string>270 de&grees</string> + </property> + </widget> + <widget class="TQLayoutWidget"> + <property name="name"> + <cstring>tqlayout1</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="TQRadioButton"> + <property name="name"> + <cstring>radioCustom</cstring> + </property> + <property name="text"> + <string>&Custom:</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + <widget class="KDoubleSpinBox"> + <property name="name"> + <cstring>doubleCustom</cstring> + </property> + <property name="maxValue"> + <number>360</number> + </property> + <property name="lineStep"> + <number>1</number> + </property> + </widget> + </hbox> + </widget> + </vbox> + </widget> + <spacer row="2" column="0"> + <property name="name"> + <cstring>spacer4</cstring> + </property> + <property name="orientation"> + <enum>Vertical</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="tqsizeHint"> + <size> + <width>20</width> + <height>91</height> + </size> + </property> + </spacer> + </grid> +</widget> +<customwidgets> +</customwidgets> +<images> + <image name="image0"> + <data format="PNG" length="371">89504e470d0a1a0a0000000d494844520000002c0000002e0806000000534cfb0a0000013a494441545885ed994b0ec330084487aaf7bf32dd5689297f9b489d6d24fc3c02db106266a445c460a67c205daf7404a2821ddb9503de0c0b64800fc00251e043b00040eea28bc21615a50fb8cad904bc1db8230d02e0671cbeca01ee2bbaaecbc16184bfe8a405b4cd58a00c86c48eb588d3cc54b1a9f8c5114d0f0d5c81ce5dcd999c0e42e71f3f5dd0826245572dc9d1c586f20e57a8ed1cdead85f373808d2ecf01366a16f0cae54b5acc0236e80fdcadc701bfc52f99c77ae35065edf0c1ae58d31d78302c302d870d9dcc2c6083e4a2bbaa7b3a694cc5bbc39bc6a626a5dec39dc5e888bd06965cee8076741b40a4e82aa103b164e0442b6ed2af183fd6d69b500dce5ba4c978b6aeb962cc5434aa3a3b6efd56794fd7793e3b62d74d2f23da3ef939f0bfa36e54557d9a48cb8c98ad39f4b8e7e5e3803f91a1a32701eeec170000000049454e44ae426082</data> + </image> + <image name="image1"> + <data format="PNG" length="363">89504e470d0a1a0a0000000d494844520000002c0000002e0806000000534cfb0a00000132494441545885ed994b12032108449b54ee7f65b3cd5440f92a56a5f7326f5a11451a63608b8806c6a0689857068b5a446177f6020361e8fdc04008fa0c30e086a6b4a4f3ba664cc418704212013041fb80b340bfa5847e9b825680022687f549d70016d03aac815d7d988be1a87c6be015acb7dc3ac7cd8167b091734160acbc861bc2029e4a77101690f661c9dd840f46a577b8012cc00157edb749d239dcc45de0e4f1d2a927705235aad4e50e5fa03f70b56c0778ab227bba90ec7d1d167eb62f30c0423f81b9696856aa7b3bcc487fa7f3543ccb18e54cfe3adca914332ce7aff9c6d83cb0e47205b4f176634fba4c68472c1978b69633a09db7f2753330bb91128ca7eb5e56b5aaac316069b756573ce54cf5b8e65fd3d0769870e6c920305bfb1e659296541ef0265d77bcbc0ef803779f9c39421cd9b50000000049454e44ae426082</data> + </image> +</images> +<tqlayoutdefaults spacing="6" margin="11"/> +<includehints> + <includehint>knuminput.h</includehint> +</includehints> +</UI> |