You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/kdeui/tests/krulertest.cpp

376 lines
9.7 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

#include "krulertest.h"
#include "kruler.h"
#include <qlayout.h>
#include <qlabel.h>
#include <qgroupbox.h>
/*
void
MyCheckBox::mouseReleaseEvent(QMouseEvent *e )
{
QButton::mouseReleaseEvent(e);
if ();
}
*/
MouseWidget::MouseWidget( QWidget *parent, const char *name, WFlags f )
: QFrame(parent, name, f)
{
}
void
MouseWidget::mousePressEvent( QMouseEvent *e )
{
mouseButtonDown = true;
emit newXPos(e->x());
emit newYPos(e->y());
}
void
MouseWidget::mouseReleaseEvent( QMouseEvent * )
{ mouseButtonDown = false; }
void
MouseWidget::mouseMoveEvent( QMouseEvent *e )
{
if (mouseButtonDown) {
emit newXPos(e->x());
emit newYPos(e->y());
}
}
void
MouseWidget::resizeEvent( QResizeEvent *r )
{
emit newWidth(r->size().width());
emit newHeight(r->size().height());
}
KRulerTest::KRulerTest( const char *name )
: KMainWindow(0, name)
{
mainframe = new QFrame(this);
layout = new QGridLayout(mainframe, 2, 2);
miniwidget = new QFrame(mainframe);
miniwidget->setFrameStyle(QFrame::WinPanel | QFrame::Raised);
bigwidget = new MouseWidget(mainframe);
bigwidget->setFrameStyle(QFrame::WinPanel | QFrame::Sunken);
// QRect bwrect = bigwidget->frameRect();
// qDebug("big rect: top%i left%i bottom%i right%i",
// bwrect.top(), bwrect.left(), bwrect.bottom(), bwrect.right());
hruler = new KRuler(Horizontal, mainframe);
// hruler->setRange( bwrect.left(), bwrect.right() );
hruler->setRange( 0, 1000 );
// hruler->setOffset( bwrect.left() - bigwidget->frameRect().left() );
hruler->setOffset( 0 );
vruler = new KRuler(Vertical, mainframe);
vruler->setFrameStyle(QFrame::WinPanel | QFrame::Sunken);
vruler->setOffset( 0 );
vruler->setRange( 0, 1000 );
connect( bigwidget, SIGNAL(newXPos(int)),
hruler, SLOT(slotNewValue(int)) );
connect( bigwidget, SIGNAL(newYPos(int)),
vruler, SLOT(slotNewValue(int)) );
connect( bigwidget, SIGNAL(newWidth(int)),
SLOT(slotNewWidth(int)) );
connect( bigwidget, SIGNAL(newHeight(int)),
SLOT(slotNewHeight(int)) );
layout->addWidget(miniwidget, 0, 0);
layout->addWidget(hruler, 0, 1);
layout->addWidget(vruler, 1, 0);
layout->addWidget(bigwidget, 1, 1);
mouse_message = new QLabel("Press and hold mouse button\nfor pointer movement", bigwidget);
mouse_message->adjustSize();
mouse_message->move(4,4);
showMarks = new QGroupBox("Show which marks ?", bigwidget);
showMarks->setFixedSize(140, 160);
showMarks->move(330,4);
showTM = new QCheckBox("show tiny marks", showMarks);
showTM->adjustSize();
showTM->move(5,15);
showTM->setChecked(true);
connect(showTM, SIGNAL(toggled(bool)), SLOT(slotSetTinyMarks(bool)) );
showLM = new QCheckBox("show little marks", showMarks);
showLM->adjustSize();
showLM->move(5,35);
showLM->setChecked(true);
connect(showLM, SIGNAL(toggled(bool)), SLOT(slotSetLittleMarks(bool)) );
showMM = new QCheckBox("show medium marks", showMarks);
showMM->adjustSize();
showMM->move(5,55);
showMM->setChecked(true);
connect(showMM, SIGNAL(toggled(bool)), SLOT(slotSetMediumMarks(bool)) );
showBM = new QCheckBox("show big marks", showMarks);
showBM->adjustSize();
showBM->move(5,75);
showBM->setChecked(true);
connect(showBM, SIGNAL(toggled(bool)), SLOT(slotSetBigMarks(bool)) );
showEM = new QCheckBox("show end marks", showMarks);
showEM->adjustSize();
showEM->move(5,95);
showEM->setChecked(true);
connect(showEM, SIGNAL(toggled(bool)), SLOT(slotSetEndMarks(bool)) );
showPT = new QCheckBox("show ruler pointer", showMarks);
showPT->adjustSize();
showPT->move(5,115);
showPT->setChecked(true);
connect(showPT, SIGNAL(toggled(bool)), SLOT(slotSetRulerPointer(bool)) );
fixLen = new QCheckBox("fix ruler length", showMarks);
fixLen->adjustSize();
fixLen->move(5,135);
fixLen->setChecked(true);
connect(fixLen, SIGNAL(toggled(bool)), SLOT(slotFixRulerLength(bool)) );
connect(fixLen, SIGNAL(toggled(bool)), SLOT(slotCheckLength(bool)) );
lineEdit = new QGroupBox("Value of begin/end", bigwidget);
lineEdit->setFixedSize(140, 80);
lineEdit->move(330,4+160);
beginMark = new KIntNumInput(0, lineEdit);
beginMark->setRange(-1000, 1000, 1, false);
beginMark->move(5, 15);
beginMark->setFixedSize(beginMark->sizeHint());
connect(beginMark, SIGNAL(valueChanged(int)),
hruler, SLOT(slotNewOffset(int)) );
connect(beginMark, SIGNAL(valueChanged(int)),
vruler, SLOT(slotNewOffset(int)) );
endMark = new KIntNumInput(0, lineEdit);
endMark->setRange(-1000, 1000, 1, false);
endMark->move(5, 35);
endMark->setFixedSize(endMark->sizeHint());
connect(endMark, SIGNAL(valueChanged(int)),
hruler, SLOT(slotEndOffset(int)) );
connect(endMark, SIGNAL(valueChanged(int)),
vruler, SLOT(slotEndOffset(int)) );
lengthInput = new KIntNumInput(0, lineEdit);
lengthInput->setRange(-1000, 1000, 1, false);
lengthInput->move(5, 55);
lengthInput->setFixedSize(lengthInput->sizeHint());
connect(lengthInput, SIGNAL(valueChanged(int)),
hruler, SLOT(slotEndOffset(int)) );
connect(lengthInput, SIGNAL(valueChanged(int)),
vruler, SLOT(slotEndOffset(int)) );
vertrot = new QGroupBox("Value of rotate translate for Vert.", bigwidget);
vertrot->setFixedSize(140, 80);
vertrot->move(330,4+160+80+4);
transX = new KDoubleNumInput(0.0, vertrot);
transX->setRange(-1000, 1000, 1, false);
transX->move(5, 15);
transX->setFixedSize(transX->sizeHint());
//transX->setLabel("transx", AlignLeft);
connect(transX, SIGNAL(valueChanged(double)),
SLOT(slotSetXTrans(double)) );
transY = new KDoubleNumInput(-12.0, vertrot);
transY->setRange(-1000, 1000, 1, false);
transY->move(5, 35);
transY->setFixedSize(transY->sizeHint());
//transY->setLabel("transy", AlignLeft);
connect(transY, SIGNAL(valueChanged(double)),
SLOT(slotSetYTrans(double)) );
rotV = new KDoubleNumInput(90.0, vertrot);
rotV->setRange(-1000, 1000, 1, false);
rotV->move(5, 55);
rotV->setFixedSize(rotV->sizeHint());
//rotV->setLabel("rot", AlignLeft);
connect(rotV, SIGNAL(valueChanged(double)),
SLOT(slotSetRotate(double)) );
metricstyle = new QButtonGroup("metric styles", bigwidget);
metricstyle->setFixedSize(100, 120);
metricstyle->move(330-110,4);
pixelmetric = new QRadioButton("pixel", metricstyle);
pixelmetric->adjustSize();
pixelmetric->move(5,15);
metricstyle->insert(pixelmetric, (int)KRuler::Pixel);
inchmetric = new QRadioButton("inch", metricstyle);
inchmetric->adjustSize();
inchmetric->move(5,35);
metricstyle->insert(inchmetric, (int)KRuler::Inch);
mmmetric = new QRadioButton("millimeter", metricstyle);
mmmetric->adjustSize();
mmmetric->move(5,55);
metricstyle->insert(mmmetric, (int)KRuler::Millimetres);
cmmetric = new QRadioButton("centimeter", metricstyle);
cmmetric->adjustSize();
cmmetric->move(5,75);
metricstyle->insert(cmmetric, (int)KRuler::Centimetres);
mmetric = new QRadioButton("meter", metricstyle);
mmetric->adjustSize();
mmetric->move(5,95);
metricstyle->insert(mmetric, (int)KRuler::Metres);
connect ( metricstyle, SIGNAL(clicked(int)), SLOT(slotSetMStyle(int)) );
setCentralWidget(mainframe);
slotUpdateShowMarks();
}
KRulerTest::~KRulerTest()
{
delete layout;
delete hruler;
delete vruler;
delete miniwidget;
delete bigwidget;
delete mainframe;
}
void
KRulerTest::slotNewWidth(int width)
{
hruler->setMaxValue(width);
}
void
KRulerTest::slotNewHeight(int height)
{
vruler->setMaxValue(height);
}
void
KRulerTest::slotSetTinyMarks(bool set)
{
hruler->setShowTinyMarks(set);
vruler->setShowTinyMarks(set);
}
void
KRulerTest::slotSetLittleMarks(bool set)
{
hruler->setShowLittleMarks(set);
vruler->setShowLittleMarks(set);
}
void
KRulerTest::slotSetMediumMarks(bool set)
{
hruler->setShowMediumMarks(set);
vruler->setShowMediumMarks(set);
}
void
KRulerTest::slotSetBigMarks(bool set)
{
hruler->setShowBigMarks(set);
vruler->setShowBigMarks(set);
}
void
KRulerTest::slotSetEndMarks(bool set)
{
hruler->setShowEndMarks(set);
vruler->setShowEndMarks(set);
}
void
KRulerTest::slotSetRulerPointer(bool set)
{
hruler->setShowPointer(set);
vruler->setShowPointer(set);
}
void
KRulerTest::slotSetRulerLength(int len)
{
hruler->setLength(len);
vruler->setLength(len);
}
void
KRulerTest::slotFixRulerLength(bool fix)
{
hruler->setLengthFixed(fix);
vruler->setLengthFixed(fix);
}
void
KRulerTest::slotSetMStyle(int style)
{
hruler->setRulerMetricStyle((KRuler::MetricStyle)style);
vruler->setRulerMetricStyle((KRuler::MetricStyle)style);
slotUpdateShowMarks();
}
void
KRulerTest::slotUpdateShowMarks()
{
showTM->setChecked(hruler->showTinyMarks());
showLM->setChecked(hruler->showLittleMarks());
showMM->setChecked(hruler->showMediumMarks());
showBM->setChecked(hruler->showBigMarks());
showEM->setChecked(hruler->showEndMarks());
}
void
KRulerTest::slotCheckLength(bool fixlen)
{
beginMark->setValue(hruler->offset());
endMark->setValue(hruler->endOffset());
lengthInput->setValue(hruler->length());
}
void
KRulerTest::slotSetRotate(double d)
{
#ifdef KRULER_ROTATE_TEST
vruler->rotate = d;
vruler->update();
//debug("rotate %.1f", d);
#endif
}
void
KRulerTest::slotSetXTrans(double d)
{
#ifdef KRULER_ROTATE_TEST
vruler->xtrans = d;
vruler->update();
//debug("trans x %.1f", d);
#endif
}
void
KRulerTest::slotSetYTrans(double d)
{
#ifdef KRULER_ROTATE_TEST
vruler->ytrans = d;
vruler->update();
//debug("trans y %.1f", d);
#endif
}
/* --- MAIN -----------------------*/
int main(int argc, char **argv)
{
KApplication *testapp;
KRulerTest *window;
testapp = new KApplication(argc, argv,"krulertest");
testapp->setFont(QFont("Helvetica",12),true);
window = new KRulerTest("main");
testapp->setMainWidget(window);
window->setCaption("KRulerTest");
window->show();
return testapp->exec();
}
#include "krulertest.moc"