krita
kis_tool_dummy.cc00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <qwidget.h>
00020 #include <qstring.h>
00021 #include <kaction.h>
00022 #include <qlabel.h>
00023
00024 #include <kaction.h>
00025 #include <klocale.h>
00026
00027 #include "kis_canvas_controller.h"
00028 #include "kis_canvas_subject.h"
00029 #include "kis_cursor.h"
00030 #include "kis_tool_dummy.h"
00031 #include "kis_button_press_event.h"
00032 #include "kis_button_release_event.h"
00033 #include "kis_move_event.h"
00034
00035 KisToolDummy::KisToolDummy()
00036 : super(i18n("No Active Tool"))
00037 {
00038 setName("tool_dummy");
00039 m_subject = 0;
00040 m_dragging = false;
00041 m_optionWidget = 0;
00042 setCursor(QCursor::forbiddenCursor);
00043 }
00044
00045 KisToolDummy::~KisToolDummy()
00046 {
00047 }
00048
00049 void KisToolDummy::update(KisCanvasSubject *subject)
00050 {
00051 m_subject = subject;
00052 super::update(m_subject);
00053 }
00054
00055 void KisToolDummy::buttonPress(KisButtonPressEvent *e)
00056 {
00057 if (m_subject && !m_dragging && e->button() == Qt::LeftButton) {
00058 KisCanvasController *controller = m_subject->canvasController();
00059
00060 m_origScrollX = controller->horzValue();
00061 m_origScrollY = controller->vertValue();
00062 m_dragPos = controller->windowToView(e->pos());
00063 m_dragging = true;
00064 }
00065 }
00066
00067 void KisToolDummy::move(KisMoveEvent *e)
00068 {
00069 if (m_subject && m_dragging) {
00070 KisCanvasController *controller = m_subject->canvasController();
00071
00072 KisPoint currPos = controller->windowToView(e->pos());
00073 KisPoint delta = currPos - m_dragPos;
00074 controller->scrollTo(m_origScrollX - delta.floorX(), m_origScrollY - delta.floorY());
00075 }
00076 }
00077
00078 void KisToolDummy::buttonRelease(KisButtonReleaseEvent *e)
00079 {
00080 if (m_subject && m_dragging && e->button() == Qt::LeftButton) {
00081 m_dragging = false;
00082 }
00083 }
00084
00085 void KisToolDummy::setup(KActionCollection *collection)
00086 {
00087 m_action = static_cast<KRadioAction *>(collection->action(name()));
00088
00089 if (m_action == 0) {
00090 m_action = new KRadioAction(i18n("&Dummy"), "tool_dummy", Qt::SHIFT+Qt::Key_H, this, SLOT(activate()), collection, name());
00091 m_action->setExclusiveGroup("tools");
00092 m_ownAction = true;
00093 }
00094 }
00095
00096
00097 QWidget* KisToolDummy::createOptionWidget(QWidget* parent)
00098 {
00099 m_optionWidget = new QLabel(i18n("Layer is locked or invisible."), parent);
00100 m_optionWidget->setCaption(i18n("No Active Tool"));
00101 m_optionWidget->setAlignment(Qt::AlignCenter);
00102 return m_optionWidget;
00103 }
00104
00105 QWidget* KisToolDummy::optionWidget()
00106 {
00107 return m_optionWidget;
00108 }
00109
00110
00111 #include "kis_tool_dummy.moc"
|