19#include "kivio_icon_view.h"
21#include "kivio_stencil_spawner.h"
22#include "kivio_stencil_spawner_set.h"
23#include "kivio_stencil_spawner_info.h"
24#include "kivio_spawner_drag.h"
25#include "kivio_common.h"
26#include "kivioglobal.h"
27#include "kivio_stencil.h"
34#include <tdeglobalsettings.h>
36KivioStencilSpawner* KivioIconView::m_pCurDrag = 0L;
37TQPtrList<KivioIconView> KivioIconView::objList;
44KivioIconViewItem::KivioIconViewItem( TQIconView *parent )
45 : TQIconViewItem( parent )
51KivioIconViewItem::~KivioIconViewItem()
56void KivioIconViewItem::setStencilSpawner( KivioStencilSpawner *pSpawn )
58 KivioStencilSpawnerInfo *pInfo;
64 setText( i18n(
"untitled stencil",
"Untitled") );
68 pInfo = m_pSpawner->info();
69 setText( pInfo->title() );
70 KivioStencil* stencil = m_pSpawner->newStencil();
71 setPixmap(Kivio::generatePixmapFromStencil(32, 32, stencil));
77bool KivioIconViewItem::acceptDrop(
const TQMimeSource * )
const
88KivioIconView::KivioIconView(
bool _readWrite,TQWidget *parent,
const char *name )
89: TQIconView( parent, name )
93 isReadWrite=_readWrite;
98 setResizeMode( Adjust );
99 setWordWrapIconText(
true);
100 setHScrollBarMode( AlwaysOff );
101 setVScrollBarMode( Auto );
102 setAutoArrange(
true);
105 setItemsMovable(
false);
107 setArrangement(LeftToRight);
108 setAcceptDrops(
false);
109 viewport()->setAcceptDrops(
false);
111 connect(
this, TQ_SIGNAL(doubleClicked(TQIconViewItem*)),
this, TQ_SLOT(slotDoubleClicked(TQIconViewItem*)));
112 connect(
this, TQ_SIGNAL(clicked(TQIconViewItem*)),
this, TQ_SLOT(slotClicked(TQIconViewItem*)));
116KivioIconView::~KivioIconView()
118 objList.remove(
this);
122void KivioIconView::setStencilSpawnerSet( KivioStencilSpawnerSet *pSet )
124 m_pSpawnerSet = pSet;
127 KivioStencilSpawner *pSpawner;
128 KivioIconViewItem *pItem;
130 pSpawner = pSet->spawners()->first();
133 pItem =
new KivioIconViewItem(
this );
134 pItem->setKey(pSpawner->info()->title());
135 pItem->setStencilSpawner(pSpawner);
137 pSpawner = pSet->spawners()->next();
141TQDragObject *KivioIconView::dragObject()
143 if( !currentItem() || !isReadWrite)
146 TQPoint orig = viewportToContents( viewport()->mapFromGlobal( TQCursor::pos() ) );
147 KivioSpawnerDrag *drag =
new KivioSpawnerDrag(
this, viewport() );
149 const char*null_pix[]={
153 drag->setPixmap(null_pix);
155 KivioIconViewItem *item = (KivioIconViewItem *)currentItem();
159 full = item->spawner()->set()->dir() +
"/" + item->spawner()->info()->title();
160 id.setData( TQCString(full.ascii()));
163 TQRect( item->pixmapRect(
false).x() - orig.x(),
164 item->pixmapRect(
false).y() - orig.y(),
165 item->pixmapRect().width(),
166 item->pixmapRect().height() ),
167 TQRect( item->textRect(
false).x() - orig.x(),
168 item->textRect(
false).y() - orig.y(),
169 item->textRect().width(),
170 item->textRect().height() ),
171 *(item->spawner()) );
179 m_pCurDrag = item->spawner();
184void KivioIconView::clearCurrentDrag()
190void KivioIconView::slotDoubleClicked( TQIconViewItem *pTQtItem )
192 KivioIconViewItem* pItem =
dynamic_cast<KivioIconViewItem *
>(pTQtItem);
196 kdDebug(43000) <<
"KivioIconView::slotDoubleClicked() - Clicked item is not a KivioIconViewItem!" << endl;
200 KivioStencilSpawner* pSpawner = pItem->spawner();
202 emit createNewStencil(pSpawner);
205void KivioIconView::slotClicked(TQIconViewItem* item)
207 KivioIconViewItem* stencilItem =
dynamic_cast<KivioIconViewItem *
>(item);
211 kdDebug(43000) <<
"KivioIconView::slotClicked() - Clicked item is not a KivioIconViewItem!" << endl;
215 KivioStencilSpawner* spawner = stencilItem->spawner();
216 emit stencilSelected(spawner);
219#include "kivio_icon_view.moc"