From 82d6766dc35a6bbb36c1622d221767e704b8d7d7 Mon Sep 17 00:00:00 2001 From: Matthias Toussaint Date: Sat, 12 Apr 2014 09:56:47 +0100 Subject: [PATCH] Release 0.8.11 --- CHANGELOG | 4 + INSTALL | 7 +- README | 4 +- WISHLIST | 6 + qtdmm.1 | 18 ++ src/colorbutton.cpp | 29 +++- src/colorbutton.h | 4 +- src/displaywid.cpp | 4 +- src/dmmgraph.cpp | 16 +- src/dmmprefs.cpp | 59 +++++-- src/dmmprefs.h | 4 +- src/main.cpp | 3 +- src/mainwin.cpp | 2 +- src/src.pro | 12 +- src/tipdlg.cpp | 3 +- src/uidmmprefs.ui | 394 ++++++++++++++++++++++++------------------- src/uitipdlg.ui | 14 +- src/xpm/cm.xpm | 21 +++ src/xpm/cm_small.xpm | 13 ++ 19 files changed, 397 insertions(+), 220 deletions(-) create mode 100644 qtdmm.1 create mode 100644 src/xpm/cm.xpm create mode 100644 src/xpm/cm_small.xpm diff --git a/CHANGELOG b/CHANGELOG index 9e5cf71..5789709 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +20/11/2007 0.8.11 + - GCC 4.3 compilation issues + - Make it compile on OSX + 30/09/2007 0.8.10 - Added Sinometer MAS-343 - Adedd PeakTech 3330 diff --git a/INSTALL b/INSTALL index 4c3a293..43c9016 100644 --- a/INSTALL +++ b/INSTALL @@ -1,9 +1,8 @@ -Installation QtDMM 0.8.10 (c) 2001-2007 M.Toussaint +Installation QtDMM 0.8 (c) 2001-2005 M.Toussaint Requirements: ------------- -- Qt library 3.x developer version - (will not compile with Qt 4.x) +- Qt library >= 3.0 developer version - A supported multimeter or a compatible model Compilation: @@ -34,7 +33,7 @@ presets and future users can benefit from you help. If you encounter any problems don't hesitate to contact me --- 30/09/2007 +-- 15/08/2005 Matthias Toussaint diff --git a/README b/README index b177d3e..ef9e5e2 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -QtDMM 0.8.10 (c) 2001-2007 M.Toussaint +QtDMM 0.8.6 (c) 2001-2005 M.Toussaint QtDMM is a simple DMM readout software including a configurable transient recorder. A friend of mine asked me for a DMM readout software for Linux @@ -64,7 +64,7 @@ QtDMM is distributed under the GNU Public License, version 2. The tab size of the sourcefiles is 2 --- 30/09/2007 +-- 20/12/2005 Matthias Toussaint diff --git a/WISHLIST b/WISHLIST index f4f2529..939d323 100644 --- a/WISHLIST +++ b/WISHLIST @@ -2,4 +2,10 @@ jacob@wiersma-online.de - check printing - fix import/export +- QM 1538 vik.olliver@uiactive.com +- Presets for Voltcraft M-4650CR + 1200,7,n,2 + Display 4 1/2 + Protokoll: 14 bytes ascii, continuous +- autoscrolling diff --git a/qtdmm.1 b/qtdmm.1 new file mode 100644 index 0000000..7b495bd --- /dev/null +++ b/qtdmm.1 @@ -0,0 +1,18 @@ +.\" Hey, EMACS: -*- nroff -*- +.TH QTDMM 1 "Dec 14, 2006" +.SH NAME +QtDMM \- GUI for Digital Multimeters +.SH SYNOPSIS +.B qtdmm +.SH DESCRIPTION +QtDMM presents a graphical user interface to digital multimeters. It caters +for the loggin of data, its export and the triggering of external applications. +The recorder features manual start, scheduled start (at a given time) and +triggered automatic start when given thresholds are reached. Additionally +you can start an external application when given thresholds are reached. +.SH SEE ALSO +.BR http://www.mtoussaint.de/qtdmm.html +.br +online help of application +.SH AUTHOR +QtDMM was written by Matthias Toussaint. diff --git a/src/colorbutton.cpp b/src/colorbutton.cpp index d780207..a3c32ab 100644 --- a/src/colorbutton.cpp +++ b/src/colorbutton.cpp @@ -21,10 +21,13 @@ #include #include #include +#include +#include ColorButton::ColorButton( QWidget *parent, const char *name ) : QPushButton( parent, name ) { + m_color = QColor( 255, 255, 255 ); setAutoDefault( false ); connect( this, SIGNAL( clicked() ), this, SLOT( clickedSLOT() )); @@ -37,13 +40,31 @@ ColorButton::~ColorButton() QColor ColorButton::color() const { - return backgroundColor(); + return m_color; } void ColorButton::setColor( const QColor & c ) { - setBackgroundColor( c ); + m_color = c; + + QImage img( 16, 12, 32 ); + img.fill(m_color.rgb()); + for (int i=0; i<16; ++i) + { + ((QRgb *)img.scanLine(0))[i] = 0; + ((QRgb *)img.scanLine(11))[i] = 0; + } + + for (int i=0; i<12; ++i) + { + ((QRgb *)img.scanLine(i))[0] = 0; + ((QRgb *)img.scanLine(i))[15] = 0; + } + + QPixmap pix; + pix.convertFromImage( img ); + setPixmap( pix ); } void @@ -59,10 +80,12 @@ ColorButton::clickedSLOT() emit valueChanged( c ); } } - +/* void ColorButton::drawButtonLabel( QPainter *p ) { p->setBrush( color() ); p->drawRoundRect( 6, 6, width()-12, height()-12, 30, 30 ); } +*/ + diff --git a/src/colorbutton.h b/src/colorbutton.h index f831e87..c36a151 100644 --- a/src/colorbutton.h +++ b/src/colorbutton.h @@ -22,6 +22,7 @@ #define COLORBUTTON_HH #include +#include class QPainter; @@ -43,7 +44,8 @@ protected slots: void clickedSLOT(); protected: - void drawButtonLabel( QPainter * ); + QColor m_color; +// void drawButtonLabel( QPainter * ); }; diff --git a/src/displaywid.cpp b/src/displaywid.cpp index 8302d8e..776d097 100644 --- a/src/displaywid.cpp +++ b/src/displaywid.cpp @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include #include #include @@ -54,7 +54,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/dmmgraph.cpp b/src/dmmgraph.cpp index aae5ad8..c2320c9 100644 --- a/src/dmmgraph.cpp +++ b/src/dmmgraph.cpp @@ -15,7 +15,7 @@ // thereof. In no event will the author be liable for any lost revenue // or profits or other special, indirect and consequential damages. //---------------------------------------------------------------------- -// (c) 2001 Matthias Toussaint +// (c) 2001-2007 Matthias Toussaint //====================================================================== #include @@ -39,7 +39,7 @@ #include #include // RedHat needs it - +#include #include #include @@ -1212,7 +1212,7 @@ DMMGraph::fillInfoBox( const QPoint & pos ) if (fabs(val) < 1 && val != 0) { val *= 1000; - prefix = ""; + prefix = "u"; } if (fabs(val) < 1 && val != 0) { @@ -1403,7 +1403,7 @@ DMMGraph::importDataSLOT() file.close(); } - std::cerr << "sample=" << sample << std::endl; + //std::cerr << "sample=" << sample << std::endl; m_sampleTime = sample / (cnt>1 ? cnt-1 : 1); //m_graphStartDateTime.secsTo( graphEnd ); @@ -1461,11 +1461,11 @@ DMMGraph::importDataSLOT() computeUnitFactor(); } -std::cerr << "min=" << m_scaleMin << " max=" << m_scaleMax << std::endl; -std::cerr << "factor=" << m_factor << " prefix=" << - m_prefix.latin1() << " unit=" << m_unit.latin1() << std::endl; +//std::cerr << "min=" << m_scaleMin << " max=" << m_scaleMax << std::endl; +//std::cerr << "factor=" << m_factor << " prefix=" << +// m_prefix.latin1() << " unit=" << m_unit.latin1() << std::endl; -std::cerr << "size=" << size << "cnt*m_sampleTime=" << cnt*m_sampleTime << std::endl; +//std::cerr << "size=" << size << "cnt*m_sampleTime=" << cnt*m_sampleTime << std::endl; // TEST emit graphSize( size, cnt*m_sampleTime ); } diff --git a/src/dmmprefs.cpp b/src/dmmprefs.cpp index da11183..ce24855 100644 --- a/src/dmmprefs.cpp +++ b/src/dmmprefs.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -57,13 +58,13 @@ struct DMMInfo dmm_info[] = { {"Digitek DT-9062", 3, 5, 8, 1, 1, 0, 1}, - {"Digitech QM1350", 0, 0, 7, 2, 1, 0, 1}, - {"Digitech QM1538", 3, 5, 8, 1, 1, 0, 1}, - {"Digitech QM1537", 3, 8, 8, 1, 1, 0, 1}, + {"Digitech QM1350", 0, 0, 7, 2, 1, 0, 1}, // no image + {"Digitech QM1538", 3, 5, 8, 1, 1, 0, 1}, // no image + {"Digitech QM1537", 3, 8, 8, 1, 1, 0, 1}, // no image - {"ELV M9803R", 5, 4, 7, 1, 1, 1, 1}, + {"ELV M9803R", 5, 4, 7, 1, 1, 1, 1}, // no image - {"Iso-Tech IDM 73", 6, 6, 7, 1, 1, 2, 8}, + {"Iso-Tech IDM 73", 6, 6, 7, 1, 1, 2, 8}, // no image {"MASTECH MAS-343", 0, 0, 7, 2, 1, 0, 1}, {"MASTECH MAS-345", 0, 0, 7, 2, 1, 0, 1}, @@ -73,7 +74,7 @@ struct DMMInfo dmm_info[] = { {"McVoice M-980T", 5, 4, 7, 1, 1, 1, 1}, {"Metex M-3660D", 1, 0, 7, 2, 1, 0, 1}, - {"Metex M-3830D", 1, 0, 7, 2, 4, 0, 1}, + {"Metex M-3830D", 1, 0, 7, 2, 4, 0, 1}, // no image {"Metex M-3850D", 1, 0, 7, 2, 4, 0, 1}, {"Metex M-3850M", 5, 0, 7, 2, 4, 0, 1}, {"Metex ME-11", 0, 0, 7, 2, 1, 0, 1}, @@ -84,22 +85,22 @@ struct DMMInfo dmm_info[] = { {"PeakTech 3330", 3, 5, 8, 1, 1, 0, 1}, {"PeakTech 4010", 5, 0, 7, 2, 1, 0, 1}, - {"Peaktech 4360", 0, 0, 7, 2, 1, 0, 1}, + {"PeakTech 4360", 0, 0, 7, 2, 1, 0, 1}, {"PeakTech 4390", 5, 0, 7, 2, 4, 0, 1}, - {"PeakTech 451", 0, 1, 7, 2, 1, 0, 1}, + {"PeakTech 451", 0, 1, 7, 2, 1, 0, 1}, // no image {"Radioshack 22-805 DMM", 0, 0, 7, 2, 1, 0, 1}, - {"Radioshack RS22-168A", 1, 0, 7, 2, 1, 0, 1}, + {"Radioshack RS22-168A", 1, 0, 7, 2, 1, 0, 1}, // no image {"Sinometer MAS-343", 0, 0, 7, 2, 1, 0, 1}, {"Uni-Trend UT30A", 3, 5, 8, 1, 1, 0, 1}, - {"Uni-Trend UT30E", 3, 5, 8, 1, 1, 0, 1}, + {"Uni-Trend UT30E", 3, 5, 8, 1, 1, 0, 1}, // no image - {"Voltcraft M-3610D", 1, 0, 7, 2, 1, 0, 1}, + {"Voltcraft M-3610D", 1, 0, 7, 2, 1, 0, 1}, // no image {"Voltcraft M-3650D", 1, 0, 7, 2, 1, 0, 1}, - {"Voltcraft M-3860", 5, 0, 7, 2, 4, 0, 2}, - {"Voltcraft M-4650CR", 1, 2, 7, 2, 1, 0, 2 }, + {"Voltcraft M-3860", 5, 0, 7, 2, 4, 0, 2}, // no image + {"Voltcraft M-4650CR", 1, 2, 7, 2, 1, 0, 2 }, // no image {"Voltcraft M-4660", 1, 0, 7, 2, 4, 0, 3}, {"Voltcraft ME-11", 0, 0, 7, 2, 1, 0, 1}, {"Voltcraft ME-22T", 3, 0, 7, 2, 1, 0, 1}, @@ -149,12 +150,40 @@ DmmPrefs::DmmPrefs( QWidget *parent, const char *name ) : this, SLOT( saveSLOT())); m_path = QDir::currentDirPath(); + +#ifdef Q_WS_MACX + connect( ui_scanPorts, SIGNAL( clicked() ), + this, SLOT( scanDevicesSLOT() )); + + portNumber->hide(); + scanDevicesSLOT(); +#else + ui_scanPorts->hide(); +#endif } DmmPrefs::~DmmPrefs() { } +void DmmPrefs::scanDevicesSLOT() +{ +#ifdef Q_WS_MACX + port->clear(); + QDir dir( "/dev" ); + QStringList files = dir.entryList( "cu.*", QDir::System ); + for (unsigned i=0; iinsertItem( QString( "/dev/" ) + files[i] ); + } + files = dir.entryList( "tty.*", QDir::System ); + for (unsigned i=0; iinsertItem( QString( "/dev/" ) + files[i] ); + } +#endif +} + QString DmmPrefs::deviceListText() const { QString text; @@ -376,9 +405,13 @@ DmmPrefs::dmmName() const QString DmmPrefs::device() const { +#ifdef Q_WS_MACX + return port->currentText(); +#else QString txt; txt.sprintf( "%s%d", port->currentText().latin1(), portNumber->value() ); return txt; +#endif } void diff --git a/src/dmmprefs.h b/src/dmmprefs.h index 2a1859a..a0906c7 100644 --- a/src/dmmprefs.h +++ b/src/dmmprefs.h @@ -59,11 +59,13 @@ public slots: virtual void defaultsSLOT(); virtual void factoryDefaultsSLOT(); virtual void applySLOT(); - + protected slots: void modelSLOT( int ); void loadSLOT(); void saveSLOT(); + // empty finction as damn moc doesn't know about defines + void scanDevicesSLOT(); protected: QString m_path; diff --git a/src/main.cpp b/src/main.cpp index 23cd080..b304b41 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -52,7 +52,7 @@ main( int argc, char **argv ) qInstallMsgHandler( myMessageOutput ); QApplication app( argc, argv ); - MainWin mainWin( 0 ); + MainWin mainWin; // very simple parsing (tm) for (int i=0; i #include -#define VERSION_STRING "0.8.10" +#define VERSION_STRING "0.8.11" #include diff --git a/src/src.pro b/src/src.pro index 2303fa1..3012093 100644 --- a/src/src.pro +++ b/src/src.pro @@ -1,5 +1,8 @@ TEMPLATE = app -CONFIG = qt release warn_on thread +CONFIG += qt release warn_on thread +macx { + CONFIG += static +} INCLUDEPATH = . moc xpm MOC_DIR = moc OBJECTS_DIR = tmp @@ -70,8 +73,11 @@ SOURCES = \ simplecfg.cpp \ tipdlg.cpp -LIBS = +macx { + LIBS = -framework Carbon -framework QuickTime -lz $(QTDIR)/lib/libqt-mt.a + RC_FILE = QtDMMIcon.icns +} TARGET = qtdmm -VERSION = 0.8.4 +VERSION = 0.8.11 DESTDIR = ../bin diff --git a/src/tipdlg.cpp b/src/tipdlg.cpp index 6e5413a..d28ab6d 100644 --- a/src/tipdlg.cpp +++ b/src/tipdlg.cpp @@ -25,7 +25,8 @@ const char *TipDlg::s_tipText[] = { "Welcome

QtDMM is a small DMM " - "(Digital Multi Meter) readout software for Linux/UNIX." + "(Digital Multi Meter) readout software for Linux/UNIX" + " and since version 0.8.11 for Mac OSX." " If you don't want to see the tips of the day you " "can switch them of with" " the checkbox below this text. The tips can be switched " diff --git a/src/uidmmprefs.ui b/src/uidmmprefs.ui index b20d937..77acab3 100644 --- a/src/uidmmprefs.ui +++ b/src/uidmmprefs.ui @@ -8,7 +8,7 @@ 0 0 - 534 + 598 635 @@ -143,23 +143,81 @@ 5 - + - TextLabel2 - - - &Port: - - - AlignVCenter|AlignRight - - - port - - + layout2 + + + unnamed + + + 0 + + + 2 + + + + + /dev/ttyS + + + + + /dev/usb/ttyUSB + + + + + /dev/ttyUSB + + + + + /dev/tty.usbserial + + + + port + + + + 3 + 0 + 0 + 0 + + + + 0 + + + Choose the serial device here. <i>(Hint for DOS people: /dev/ttyS0 corresponds to COM1. /dev/ttyS1 to COM2 ...)</i> + + + + + portNumber + + + Enter the number of the port. + + + + + ui_scanPorts + + + Scan + + + Clicke here to scan for new devices. + + + - + ui_bitsLabel @@ -175,102 +233,12 @@ - - - - 5 bits - - - - - 6 bits - - - - - 7 bits - - - - - 8 bits - - + - bitsCombo - - - Number of bits for serial communication. - - - - - ui_baudLabel + ui_parityLabel - Baud &rate: - - - AlignVCenter|AlignRight - - - baudRate - - - - - - - - 600 baud - - - - - 1200 baud - - - - - 1800 baud - - - - - 2400 baud - - - - - 4800 baud - - - - - 9600 baud - - - - - 19200 baud - - - - baudRate - - - 0 - - - Select the baud rate for the DMM here. If you encounter problems connecting to your DMM try lowering the baud rate. I had some problems with my <b>Metex ME-32</b>. The Documentation said 1200 baud but it only worked at 600. - - - - - ui_stopLabel - - - &Stop bits: + Parit&y AlignVCenter|AlignRight @@ -281,7 +249,7 @@ - + 1 Stop bit @@ -299,62 +267,7 @@ Number of stop bits for serial communication. - - - - None - - - - - Even - - - - - Odd - - - - parityCombo - - - Parity for serial communication. May be None, Odd or Even. - - - - - ui_parityLabel - - - Parit&y - - - AlignVCenter|AlignRight - - - stopBitsCombo - - - - - - - ui_displayLabel - - - &Digits - - - AlignVCenter|AlignRight - - - stopBitsCombo - - - - - + 2000 @@ -417,38 +330,165 @@ </ul> - + + + ui_stopLabel + + + &Stop bits: + + + AlignVCenter|AlignRight + + + stopBitsCombo + + + + + - /dev/ttyS + 600 baud - /dev/usb/ttyUSB + 1200 baud - /dev/ttyUSB + 1800 baud + + + + + 2400 baud + + + + + 4800 baud + + + + + 9600 baud + + + + + 19200 baud - port + baudRate 0 - Choose the serial device here. <i>(Hint for DOS people: /dev/ttyS0 corresponds to COM1. /dev/ttyS1 to COM2 ...)</i> + Select the baud rate for the DMM here. If you encounter problems connecting to your DMM try lowering the baud rate. I had some problems with my <b>Metex ME-32</b>. The Documentation said 1200 baud but it only worked at 600. - + - portNumber + ui_displayLabel + + + &Digits + + + AlignVCenter|AlignRight + + + stopBitsCombo + + + + + + + ui_baudLabel + + + Baud &rate: + + + AlignVCenter|AlignRight + + + baudRate + + + + + + + TextLabel2 + + + &Port: + + + AlignVCenter|AlignRight + + + port + + + + + + + + 5 bits + + + + + 6 bits + + + + + 7 bits + + + + + 8 bits + + + + bitsCombo - Enter the number of the port. + Number of bits for serial communication. + + + + + + None + + + + + Even + + + + + Odd + + + + parityCombo + + + Parity for serial communication. May be None, Odd or Even. @@ -656,13 +696,13 @@ - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003a749444154388db595db6bdc4514c73fbfdffee26e9adb363149636d132ab62249a460a9542b22f14114d410a848fb604104093efae0dd17df7ca87f8014ec830fd22a548a90a86d646b83a5de5a2506499a264db29bcde6b2bfcb5ccef8b03171ad41113330cc6166ce67ce7ce7cc8c97cbe5d88ae26f09f5bf82cf9cf3ddd9e1c0fdafe091d13a77fc5837c78f7673eab4dd14feafc167870317a93d6ef0855e5ab2695ab2697aee6ddf74bed7f9fccfeee947da100165411b4119f8f8dc345fbc167a9f5fa8715d776679ecd14e9a1a6a30c6a1b5c518472693e2f5772f71b41fefafe060776b9a6303cd2803b1056520d170a8a78e4f2f8cb9febe5ddcbfbf19ad41a96ae728323c3bb08fb7deffc1bd3398ae8207ce55cb6414cc8c4ed36062de7cf93eb6d582b57fbf5d1147f7de2c87f73703e5ea88ad6c804bd723a62f4ff0645f175dbb6b37d50f6071d570e29339700eadeb38f2f6a29b9af340049c23f87334cbb3cb1c3ad0f18fd0525978e28d31fa1eba833dbbea1181ae7d3b58295bb48113ef7d4b6065c3c1dfd9c6ab1ffcc4c10382b360c562ad20c621d661d6eccfbe2932f07827b7b566393f5909329d81efaf2c31353c7eab146786f274dddd4aefce80edb76f231447a41c91823076845a88637871ef0e929a80d1df2a50cf8785c988f98b1320abe44ed67a55e0a19179c64e75b330af696a09907ac8af406105266fc2ea22141228cc43b16429e413c285556e5e9da7345386d883868ab6813115e897a311877b1aa9cd404d5b0d57c69669ddddc8d80d189f84d9bc215fb0cc150cf982212c4544a532a599459c7210028105d6c0b2966ee72f15e97fb099b2c05c02f37e23bf7c671197228c1d4a41ac844439e24428e44374a8a1ae0e6c02249052e02a87e68b1596cbf0e3b51247faea192bc28d22c4407145585a1512ed88954369282d696667436c90c6cfa4abd32565c87dd8e8ad1d1e0c5d5ce1e1de266657a13e808e0cd45b68ec08582a2a4ce0d12c86461dd3d0aeb82b9b42920409134ca28942437e41989cd2eb6b04c63abeca2df0ca33eddcd3b0d6bb1db486387668ed93248624b128e5a354401c1bb40e88e35a94aa41a90ca7479638797d2311fc726898985ce1a983d597c2f721087c52290fdff7d76c7fddf6fdcad81ff6d75723721f65d7df8b6061a6cc4bcf75de72bb52a94a7538440c89d24471421469c25011270971a4d15a48b461fcd71068da9002df63f8729107069770e21001c42122582b582d1863b046b0c6608cc5688b18a9b46229870ec2eac7ccdbaacff47797721a4f2ef8084a0000000049454e44ae426082 + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003a749444154789cb595db6bdc4514c73fbfdffee26e9adb363149636d132ab62249a460a9542b22f14114d410a848fb604104093efae0dd17df7ca87f8014ec830fd22a548a90a86d646b83a5de5a2506499a264db29bcde6b2bfcb5ccef8b03171ad41113330cc6166ce67ce7ce7cc8c97cbe5d88ae26f09f5bf82cf9cf3ddd9e1c0fdafe091d13a77fc5837c78f7673eab4dd14feafc167870317a93d6ef0855e5ab2695ab2697aee6ddf74bed7f9fccfeee947da100165411b4119f8f8dc345fbc167a9f5fa8715d776679ecd14e9a1a6a30c6a1b5c518472693e2f5772f71b41fefafe060776b9a6303cd2803b1056520d170a8a78e4f2f8cb9febe5ddcbfbf19ad41a96ae728323c3bb08fb7deffc1bd3398ae8207ce55cb6414cc8c4ed36062de7cf93eb6d582b57fbf5d1147f7de2c87f73703e5ea88ad6c804bd723a62f4ff0645f175dbb6b37d50f6071d570e29339700eadeb38f2f6a29b9af340049c23f87334cbb3cb1c3ad0f18fd0525978e28d31fa1eba833dbbea1181ae7d3b58295bb48113ef7d4b6065c3c1dfd9c6ab1ffcc4c10382b360c562ad20c621d661d6eccfbe2932f07827b7b566393f5909329d81efaf2c31353c7eab146786f274dddd4aefce80edb76f231447a41c91823076845a88637871ef0e929a80d1df2a50cf8785c988f98b1320abe44ed67a55e0a19179c64e75b330af696a09907ac8af406105266fc2ea22141228cc43b16429e413c285556e5e9da7345386d883868ab6813115e897a311877b1aa9cd404d5b0d57c69669ddddc8d80d189f84d9bc215fb0cc150cf982212c4544a532a599459c7210028105d6c0b2966ee72f15e97fb099b2c05c02f37e23bf7c671197228c1d4a41ac844439e24428e44374a8a1ae0e6c02249052e02a87e68b1596cbf0e3b51247faea192bc28d22c4407145585a1512ed88954369282d696667436c90c6cfa4abd32565c87dd8e8ad1d1e0c5d5ce1e1de266657a13e808e0cd45b68ec08582a2a4ce0d12c86461dd3d0aeb82b9b42920409134ca28942437e41989cd2eb6b04c63abeca2df0ca33eddcd3b0d6bb1db486387668ed93248624b128e5a354401c1bb40e88e35a94aa41a90ca7479638797d2311fc726898985ce1a983d597c2f721087c52290fdff7d76c7fddf6fdcad81ff6d75723721f65d7df8b6061a6cc4bcf75de72bb52a94a7538440c89d24471421469c25011270971a4d15a48b461fcd71068da9002df63f8729107069770e21001c42122582b582d1863b046b0c6608cc5688b18a9b46229870ec2eac7ccdbaacff47797721a4fc40f4d680000000049454e44ae426082 - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000002a249444154388db594bd6f5c5510c57fcf1f496105298e0329a0e25f48414185e811a4a02012121565e853a1502021e18a1a0929050852d0502051b12d428ae8c347b063a3c426ebf8bd3b730ec5bdfbb26b2f091419e9e9adf6defb9b73cfccbc6e329970f3d66d9b1ab6dbd37e0336486aeb00755d6d1f98f7af5eee988bb59bb76efb8d375f4336afbff232fbf77b56573bd6563bce6dacf3b4b8f1d9f748e6daf56fbc7de3ad11be6640aa2a013ef8f0abf1d0179f5e5d0ab34d647dc6ffda8d463086c8c48ff7f0eedbaf128aa550d94498be08c944887bf70e8938013635b3e7c82659e9ba934c4a88a188485322e987e48fbb0f284339b577cd8688aa38c27cfec93b741d745db7708b12a244851ef7413f043ffdb2c750622cec09b0194a02f0e5773f93590fa7448940692292122253a484523c9c0eecec1ea0149ef37ace0aeaa221b21e96bc008d109949ca64d4f7ceee0129e1d4828d23184389c4ccc0493675ca7a7d497350310c59c5c818a325e015034324925bdbb5f683134352df184cc7d6c5e7d8da3a57ebb05431aebe8678efcae5da156daab2792dcd7c3792b87f180c512df878fb5be4a5c583d28a374bfc6fd0081129f61f4c91ccd9b3674865bdc669c59039fb0e98df76f6aa3243665668bb514a1c3e0c8e8e8334bcb0b989314b04cf26af6634f0e2a58ba3da08511a34521c4c071e0d476cacd4a2f625974247c52562b4e2ceddddc7e014a508b92a9d3e8a96c864265b9b179653c7e2b53997cc4b979e5f50fbf774e0cffd29eb67928d4e0ca5da23d7c44f0033f6a16deeecec514a72741cf47dd297a484e94b504af3ba0dd185f3e79f0ccea85df1c38fbf37e555cd4c7966559fe1b1b016fc7af8176af5595f5f5d007793c9846bd7bf5eec97d3ddf3d4d8fee8cac2e7b09b4c26ff9ff21f62e599509f25f81fedcca62070ce498c0000000049454e44ae426082 + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000002a249444154789cb594bd6f5c5510c57fcf1f496105298e0329a0e25f48414185e811a4a02012121565e853a1502021e18a1a0929050852d0502051b12d428ae8c347b063a3c426ebf8bd3b730ec5bdfbb26b2f091419e9e9adf6defb9b73cfccbc6e329970f3d66d9b1ab6dbd37e0336486aeb00755d6d1f98f7af5eee988bb59bb76efb8d375f4336afbff232fbf77b56573bd6563bce6dacf3b4b8f1d9f748e6daf56fbc7de3ad11be6640aa2a013ef8f0abf1d0179f5e5d0ab34d647dc6ffda8d463086c8c48ff7f0eedbaf128aa550d94498be08c944887bf70e8938013635b3e7c82659e9ba934c4a88a188485322e987e48fbb0f284339b577cd8688aa38c27cfec93b741d745db7708b12a244851ef7413f043ffdb2c750622cec09b0194a02f0e5773f93590fa7448940692292122253a484523c9c0eecec1ea0149ef37ace0aeaa221b21e96bc008d109949ca64d4f7ceee0129e1d4828d23184389c4ccc0493675ca7a7d497350310c59c5c818a325e015034324925bdbb5f683134352df184cc7d6c5e7d8da3a57ebb05431aebe8678efcae5da156daab2792dcd7c3792b87f180c512df878fb5be4a5c583d28a374bfc6fd0081129f61f4c91ccd9b3674865bdc669c59039fb0e98df76f6aa3243665668bb514a1c3e0c8e8e8334bcb0b989314b04cf26af6634f0e2a58ba3da08511a34521c4c071e0d476cacd4a2f625974247c52562b4e2ceddddc7e014a508b92a9d3e8a96c864265b9b179653c7e2b53997cc4b979e5f50fbf774e0cffd29eb67928d4e0ca5da23d7c44f0033f6a16deeecec514a72741cf47dd297a484e94b504af3ba0dd185f3e79f0ccea85df1c38fbf37e555cd4c7966559fe1b1b016fc7af8176af5595f5f5d007793c9846bd7bf5eec97d3ddf3d4d8fee8cac2e7b09b4c26ff9ff21f62e599509f25f81fedcca620b8886cd70000000049454e44ae426082 - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000c749444154388dad55db1184200c4c180bb81a28c73aad811228c356f42b3792db3cc0db2fc724bb7901dc7b270f27ed17fa5fa9b117b7cd90211f4ba0ac906a7f1453b4d30ca917bb590681552af23f69bfc4ffa71519d2c8f62546ea5ea03738b1c18c33a4d156f0d13f43b61952e4af6d6e8fb3a408f080448419a433d6486d85052fdba892a295f5d45785cd8c51a9d6de6a814a8d2131da51f98e7a3b64ec9da04a8db53d43be3c3c0b22cacf17e4cdb5a931649ceddf34b190cf0aa019f03f1fd3e7457f03b5a66c9ed26e86130000000049454e44ae426082 + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000c749444154789cad55db1184200c4c180bb81a28c73aad811228c356f42b3792db3cc0db2fc724bb7901dc7b270f27ed17fa5fa9b117b7cd90211f4ba0ac906a7f1453b4d30ca917bb590681552af23f69bfc4ffa71519d2c8f62546ea5ea03738b1c18c33a4d156f0d13f43b61952e4af6d6e8fb3a408f080448419a433d6486d85052fdba892a295f5d45785cd8c51a9d6de6a814a8d2131da51f98e7a3b64ec9da04a8db53d43be3c3c0b22cacf17e4cdb5a931649ceddf34b190cf0aa019f03f1fd3e7457f03b5a66c9e1f13d0b20000000049454e44ae426082 diff --git a/src/uitipdlg.ui b/src/uitipdlg.ui index 64eb0c6..18ad5d3 100644 --- a/src/uitipdlg.ui +++ b/src/uitipdlg.ui @@ -8,8 +8,8 @@ 0 0 - 485 - 215 + 510 + 246 @@ -52,6 +52,14 @@ ui_tip + + + 7 + 7 + 0 + 0 + + 400 @@ -61,7 +69,7 @@ 32767 - 200 + 32767 diff --git a/src/xpm/cm.xpm b/src/xpm/cm.xpm new file mode 100644 index 0000000..c4d3776 --- /dev/null +++ b/src/xpm/cm.xpm @@ -0,0 +1,21 @@ +/* XPM */ +static char * M_xpm[] = { +"12 16 2 1", +" c None", +". c #000000", +".. ..", +"... ...", +".... ....", +"..... .....", +".. ...... ..", +".. .... ..", +".. .. ..", +".. .. ..", +".. ..", +".. ..", +".. ..", +".. ..", +".. ..", +".. ..", +".. ..", +".. .."}; diff --git a/src/xpm/cm_small.xpm b/src/xpm/cm_small.xpm new file mode 100644 index 0000000..14194cc --- /dev/null +++ b/src/xpm/cm_small.xpm @@ -0,0 +1,13 @@ +/* XPM */ +static char * M_small_xpm[] = { +"7 8 2 1", +" c None", +". c #000000", +". .", +".. ..", +"... ...", +". ... .", +". . .", +". .", +". .", +". ."};