/* This file is part of moth. moth is a program for creating and editing textured 3D models. Copyright (C) 2004 Peter Uray. moth is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. moth is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with moth; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __MSTRUCTUREVIEW_H__ #define __MSTRUCTUREVIEW_H__ #include #include #include #include #include class MStructureView : public QWidget { Q_OBJECT signals: public slots: void selectionChanged(void); void update(void); void rightButtonPressed(QListViewItem *item, const QPoint &point, int column); // The context menu handler functions. void onExpand(void); void onCollapse(void); void expanded(QListViewItem *item); void collapsed(QListViewItem *item); void itemRenamed(QListViewItem *item, int col, const QString &text); void onGlobalLightSelect(int index); void onGlobalBackgroundSelect(int index); void onCut(void); void onCopy(void); void onPaste(void); void onClone(void); void onCloneSelectedVertices(void); void onAddModelToScene(void); void onAddLightSourceToScene(void); void onAddModelToModel(void); void onAddShapeToModel(void); void onAddLightSourceToModel(void); void onAddLightSourceToShape(void); void onAssignMaterial(void); void onSetAppearance(int mode); void onSetPosition(void); void onMove(void); void onRotate(void); void onScale(void); void onMirror(void); void onSetLightSourceParameters(void); void onCreatePlane(void); void onCreateSphere(void); void onCreateDisk(void); void onCreatePrism(void); void onCreateTorus(void); void onCreateHemisphere(void); void onElevateShape(void); void onSweepRotateShape(void); void onJitterShape(void); void onDeclareMaster(void); void onClearMaster(void); void onSnapToMaster(void); void onMergeDown(void); void onRemoveFacets(void); void onRemoveDegenerateFacets(void); void onRemoveUnusedVertices(void); void onRemoveUnusedTextureVertices(void); void onHomogeneousOrientation(void); void onRevertOrientation(void); void onTextureProjection(void); void onClearTextureMapping(void); void onSnapVertices(void); void onSnapPosition(void); void onAlignDirection(void); void onAlignUp(void); void setSelectedItem(MSceneGraphItem *item); public: static void create(QWidget *parent); static MStructureView *get(void); void createContextMenus(void); protected: MStructureView(QWidget *parent); virtual void resizeEvent(QResizeEvent *event); void update(MModel *model, MTreeItem *parent); QListView *_structureView; QPopupMenu *_sceneMenu; QPopupMenu *_modelMenu; QPopupMenu *_shapeMenu; QPopupMenu *_lightsourceMenu; QPopupMenu *_appearanceMenu; // sub menus QPopupMenu *_globalLightMenu; QPopupMenu *_globalBackgroundMenu; QPopupMenu *_createShapeMenu; QPopupMenu *_modelFunctionMenu; QPopupMenu *_shapeFunctionMenu; QPopupMenu *_lightFunctionMenu; static MStructureView *_this; }; #endif