New lua versions
[ryzomcore.git] / studio / src / plugins / gui_editor / widget_hierarchy.h
blobca93e3a96f649b654d54a3106284364ad6b1ced4
1 // Object Viewer Qt GUI Editor plugin <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
6 //
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU Affero General Public License as
9 // published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Affero General Public License for more details.
17 // You should have received a copy of the GNU Affero General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #ifndef WIDGET_HA_H
21 #define WIDGET_HA_H
23 #include "ui_widget_hierarchy.h"
24 #include <string>
25 #include <map>
27 namespace NLGUI
29 class CInterfaceGroup;
32 class QTreeWidgetItem;
34 namespace GUIEditor
36 class WidgetHierarchy : public QWidget, public Ui::WidgetHierarchyTree
38 Q_OBJECT
39 public:
40 WidgetHierarchy( QWidget *parent = NULL );
41 ~WidgetHierarchy();
43 void setMasterGroup( const std::string &name ){ masterGroup = name; }
45 void clearHierarchy();
46 void buildHierarchy( std::string &masterGroup );
48 void onWidgetDeleted( const std::string &id );
49 void onWidgetAdded( const std::string &id );
50 void onWidgetMoved( const std::string &oldid, const std::string &newid );
52 void getCurrentGroup( QString &g );
54 private:
55 void buildHierarchy( QTreeWidgetItem *parent, NLGUI::CInterfaceGroup *group );
56 QTreeWidgetItem* findItem( const std::string &id );
57 QTreeWidgetItem* findParent( const std::string &id );
58 void selectItem( QTreeWidgetItem *item );
60 public Q_SLOTS:
61 void onGUILoaded();
62 void onSelectionChanged();
64 private Q_SLOTS:
65 void onItemDblClicked( QTreeWidgetItem *item );
67 private:
68 std::string currentSelection;
69 std::string masterGroup;
70 std::map< std::string, QTreeWidgetItem* > widgetHierarchyMap;
74 #endif