|
|
|
/**********************************************************************
|
|
|
|
** Copyright (C) 2000 Trolltech AS. All rights reserved.
|
|
|
|
**
|
|
|
|
** This file is part of TQt Designer.
|
|
|
|
**
|
|
|
|
** This file may be distributed and/or modified under the terms of the
|
|
|
|
** GNU General Public License version 2 as published by the Free Software
|
|
|
|
** Foundation and appearing in the file LICENSE.GPL included in the
|
|
|
|
** packaging of this file.
|
|
|
|
**
|
|
|
|
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
|
|
|
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
**
|
|
|
|
** See http://www.trolltech.com/gpl/ for GPL licensing information.
|
|
|
|
**
|
|
|
|
** Contact info@trolltech.com if any conditions of this licensing are
|
|
|
|
** not clear to you.
|
|
|
|
**
|
|
|
|
**********************************************************************/
|
|
|
|
|
|
|
|
#ifndef HIRARCHYVIEW_H
|
|
|
|
#define HIRARCHYVIEW_H
|
|
|
|
|
|
|
|
#include <tqvariant.h>
|
|
|
|
#include <tqlistview.h>
|
|
|
|
#include <tqtabwidget.h>
|
|
|
|
#include <tqguardedptr.h>
|
|
|
|
#include <tqcom_p.h>
|
|
|
|
|
|
|
|
class FormWindow;
|
|
|
|
class TQCloseEvent;
|
|
|
|
class TQPopupMenu;
|
|
|
|
class TQKeyEvent;
|
|
|
|
class TQMouseEvent;
|
|
|
|
class TQWizard;
|
|
|
|
class TQToolBox;
|
|
|
|
|
|
|
|
class HierarchyItem:public TQListViewItem
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
enum Type
|
|
|
|
{
|
|
|
|
Widget,
|
|
|
|
SlotParent,
|
|
|
|
Public,
|
|
|
|
Protected,
|
|
|
|
Private,
|
|
|
|
Slot,
|
|
|
|
DefinitionParent,
|
|
|
|
Definition,
|
|
|
|
Event,
|
|
|
|
EventFunction
|
|
|
|
};
|
|
|
|
|
|
|
|
HierarchyItem(Type type, TQListViewItem * parent,
|
|
|
|
const TQString & txt1, const TQString & txt2, const TQString & txt3);
|
|
|
|
HierarchyItem(Type type, TQListView * parent,
|
|
|
|
const TQString & txt1, const TQString & txt2, const TQString & txt3);
|
|
|
|
|
|
|
|
void paintCell(TQPainter * p, const TQColorGroup & cg, int column, int width, int align);
|
|
|
|
void updateBackColor();
|
|
|
|
|
|
|
|
void setWidget(TQWidget * w);
|
|
|
|
TQWidget *widget() const;
|
|
|
|
|
|
|
|
void setText(int col, const TQString & txt) {if (!txt.isEmpty()) TQListViewItem::setText(col, txt);}
|
|
|
|
int rtti() const { return (int) typ;}
|
|
|
|
|
|
|
|
private:
|
|
|
|
void okRename(int col);
|
|
|
|
void cancelRename(int col);
|
|
|
|
|
|
|
|
private:
|
|
|
|
TQColor backgroundColor();
|
|
|
|
TQColor backColor;
|
|
|
|
TQWidget *wid;
|
|
|
|
Type typ;
|
|
|
|
};
|
|
|
|
|
|
|
|
class HierarchyList:public TQListView
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
HierarchyList(TQWidget * parent, FormWindow * fw, bool doConnects = TRUE);
|
|
|
|
|
|
|
|
virtual void setup();
|
|
|
|
virtual void setCurrent(TQWidget * w);
|
|
|
|
void setOpen(TQListViewItem * i, bool b);
|
|
|
|
void changeNameOf(TQWidget * w, const TQString & name);
|
|
|
|
void changeDatabaseOf(TQWidget * w, const TQString & info);
|
|
|
|
void setFormWindow(FormWindow * fw) {formWindow = fw;}
|
|
|
|
void drawContentsOffset(TQPainter * p, int ox, int oy, int cx, int cy, int cw, int ch)
|
|
|
|
{ setUpdatesEnabled(FALSE); triggerUpdate(); setUpdatesEnabled(TRUE);
|
|
|
|
TQListView::drawContentsOffset(p, ox, oy, cx, cy, cw, ch); }
|
|
|
|
void insertEntry(TQListViewItem * i, const TQPixmap & pix = TQPixmap(), const TQString & s =
|
|
|
|
TQString());
|
|
|
|
|
|
|
|
protected:
|
|
|
|
void keyPressEvent(TQKeyEvent * e);
|
|
|
|
void keyReleaseEvent(TQKeyEvent * e);
|
|
|
|
void viewportMousePressEvent(TQMouseEvent * e);
|
|
|
|
void viewportMouseReleaseEvent(TQMouseEvent * e);
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
void addTabPage();
|
|
|
|
void removeTabPage();
|
|
|
|
|
|
|
|
private:
|
|
|
|
void insertObject(TQObject * o, TQListViewItem * parent);
|
|
|
|
TQWidget *findWidget(TQListViewItem * i);
|
|
|
|
TQListViewItem *findItem(TQWidget * w);
|
|
|
|
TQWidget *current() const;
|
|
|
|
|
|
|
|
private slots: virtual void objectClicked(TQListViewItem * i);
|
|
|
|
virtual void showRMBMenu(TQListViewItem *, const TQPoint &);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
FormWindow * formWindow;
|
|
|
|
TQPopupMenu *normalMenu, *tabWidgetMenu;
|
|
|
|
bool deselect;
|
|
|
|
};
|
|
|
|
|
|
|
|
class HierarchyView : public TQTabWidget
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
HierarchyView( TQWidget *parent );
|
|
|
|
~HierarchyView();
|
|
|
|
|
|
|
|
void setFormWindow( FormWindow *fw, TQWidget *w );
|
|
|
|
FormWindow *formWindow() const;
|
|
|
|
void clear();
|
|
|
|
void widgetInserted( TQWidget *w );
|
|
|
|
void widgetRemoved( TQWidget *w );
|
|
|
|
void widgetsInserted( const TQWidgetList &l );
|
|
|
|
void widgetsRemoved( const TQWidgetList &l );
|
|
|
|
void namePropertyChanged( TQWidget *w, const TQVariant &old );
|
|
|
|
void databasePropertyChanged( TQWidget *w, const TQStringList& info );
|
|
|
|
void tabsChanged( TQTabWidget *w );
|
|
|
|
void tabsChanged( TQToolBox *w );
|
|
|
|
void pagesChanged( TQWizard *w );
|
|
|
|
void rebuild();
|
|
|
|
void closed( FormWindow *fw );
|
|
|
|
|
|
|
|
protected slots:
|
|
|
|
|
|
|
|
protected:
|
|
|
|
void closeEvent( TQCloseEvent *e );
|
|
|
|
|
|
|
|
signals:
|
|
|
|
void hidden();
|
|
|
|
|
|
|
|
private:
|
|
|
|
FormWindow *formwindow;
|
|
|
|
HierarchyList *listview;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|