35 #ifndef ANAQT_BROWSER_QWOBJECTBROWSER_H
36 #define ANAQT_BROWSER_QWOBJECTBROWSER_H
46 class QTreeWidgetItem;
51 class StaticInitializers;
72 typedef bool (*
EditFunc)(
const std::set<carto::GenericObject*> & ao,
73 const std::string & att,
75 const std::set<QTreeWidgetItem*> & item );
79 Qt::WindowFlags f = Qt::WindowFlags() );
84 void Draw(
bool flush =
true );
88 bool temporaryObject =
false,
111 const std::string & att,
114 const std::string & att,
116 const std::set<QTreeWidgetItem*> & item );
117 static bool intEditor(
const std::set<carto::GenericObject*> & ao,
118 const std::string & att,
120 const std::set<QTreeWidgetItem*> & item );
121 static bool floatEditor(
const std::set<carto::GenericObject*> & ao,
122 const std::string & att,
124 const std::set<QTreeWidgetItem*> & item );
126 const std::string & att,
128 const std::set<QTreeWidgetItem*> & item );
129 static bool labelEditor(
const std::set<carto::GenericObject*> & ao,
130 const std::string & att,
132 const std::set<QTreeWidgetItem*> & item );
133 static bool colorEditor(
const std::set<carto::GenericObject*> & ao,
134 const std::string & att,
136 const std::set<QTreeWidgetItem*> & item );
151 QTreeWidgetItem* item,
166 std::string & attrib );
168 const QTreeWidgetItem* item,
171 const QTreeWidgetItem* item );
177 const std::string & att,
179 const std::set<QTreeWidgetItem*> & items,
193 std::set<anatomist::AObject *> & tosel );
195 QTreeWidgetItem* & current );
208 const QString & text );
212 void startDrag( QTreeWidgetItem*, Qt::MouseButtons, Qt::KeyboardModifiers );
222 static int registerClass();
223 static Static & staticState();
Anatomist Window using Qt and controler system, providing a toolbar for controls.
Editor window for labels (interaction with hierarchies)
virtual void modifAttrib(const std::string &attrib)
static bool doubleEditor(const std::set< carto::GenericObject * > &ao, const std::string &att, QObjectBrowserWidget *br, const std::set< QTreeWidgetItem * > &item)
static bool intEditor(const std::set< carto::GenericObject * > &ao, const std::string &att, QObjectBrowserWidget *br, const std::set< QTreeWidgetItem * > &item)
virtual void leftSelectionChangedSlot()
virtual carto::GenericObject * gObject(const QObjectBrowserWidget *br, const QTreeWidgetItem *item, int type)
virtual void rightButtonClickedSlot(QTreeWidgetItem *, const QPoint &)
void startDrag(QTreeWidgetItem *, Qt::MouseButtons, Qt::KeyboardModifiers)
void updateRightSelectionChange(int modifier)
modifier can be 0 (normal) or 1 (select edge ends)
EditMode
Bit combinations for edit mode.
static void modifLabelStatic(void *parent)
static anatomist::AWindow * createBrowser(void *, carto::Object)
virtual void setMode(unsigned mode)
static unsigned countSelected(QTreeWidgetItem *parent, QTreeWidgetItem *¤t)
static void setAttributeToAllSelected(void *parent)
virtual void leftItemStartsRename(QTreeWidgetItem *item, int col)
bool(* EditFunc)(const std::set< carto::GenericObject * > &ao, const std::string &att, QObjectBrowserWidget *br, const std::set< QTreeWidgetItem * > &item)
Attribute editor function type.
void updateRightPanelNow()
static void modifyAttributeStatic(void *parent)
bool editAttribute(carto::GenericObject *ao, const std::string &att, QObjectBrowserWidget *br, QTreeWidgetItem *item, bool &edited)
dispatcher function: chooses the right editor function
void nomenclatureClick(anatomist::Hierarchy *h, QObjectBrowserWidget::ItemDescr &descr, std::set< anatomist::AObject * > &tosel)
special selection mode of Nomenclature nodes
static void addAttributeStatic(void *parent)
bool editAttribute(const std::set< carto::GenericObject * > &objs, const std::string &att, QObjectBrowserWidget *br, const std::set< QTreeWidgetItem * > &items, bool &edited)
void normalModeSelectionChanged()
called by leftSelectionChanged() in NORMAL mode
void setShowDetailsUponRegister(bool)
void Draw(bool flush=true)
static bool labelEditor(const std::set< carto::GenericObject * > &ao, const std::string &att, QObjectBrowserWidget *br, const std::set< QTreeWidgetItem * > &item)
virtual const std::string & baseTitle() const
virtual void doubleClickedSlot(QTreeWidgetItem *, int)
virtual bool event(QEvent *ev)
virtual ~QObjectBrowser()
virtual const std::set< unsigned > & typeCount() const
virtual void removeProperty()
Tree * buildSpecificMenuTree(QObjectBrowserWidget *br, QTreeWidgetItem *item, Tree &tr)
returns a pointer to the default action item (if any, 0 if none)
virtual void update(const anatomist::Observable *observable, void *arg)
This method is called whenever the observed object is changed.
static void registerTypeEditor(const std::string &type, EditFunc func)
static anatomist::AttDescr & attDescr()
virtual anatomist::View * view()
virtual Type type() const
Get the window type (2D, 3D or control)
virtual void updateObject(anatomist::AObject *obj)
Updates an object contents.
std::string canSend(QObjectBrowserWidget *br, QTreeWidgetItem *item)
tells if a nomenclature item can send its value (and if so, returns it)
virtual void keyPressEvent(QKeyEvent *ev)
virtual void rightSelectionChangedSlot()
void rightPanelDoubleClicked(QTreeWidgetItem *, int)
virtual anatomist::AObject * aObject(const QObjectBrowserWidget *br, const QTreeWidgetItem *item)
virtual void unregisterObject(anatomist::AObject *object)
Remove an object from the objects.
virtual void modifyAttribute()
virtual const anatomist::View * view() const
static void sendModeSelection(void *parent)
called in SENDEDIT mode
static void registerAttributeEditor(const std::string &syntax, const std::string &att, EditFunc func)
virtual std::set< unsigned > & typeCount()
bool showDetailsUponRegister() const
std::string canSendToAny(QObjectBrowserWidget *br, QTreeWidgetItem *item)
same as canSend() but does not check if a browser is in edit mode
static bool floatEditor(const std::set< carto::GenericObject * > &ao, const std::string &att, QObjectBrowserWidget *br, const std::set< QTreeWidgetItem * > &item)
static void modifNameStatic(void *parent)
virtual void registerObject(anatomist::AObject *object, bool temporaryObject=false, int position=-1)
Add an object to the objects.
virtual std::string modeString() const
friend class anatomist::StaticInitializers
virtual void leftItemRenamed(QTreeWidgetItem *item, int col, const QString &text)
static void removePropertyStatic(void *parent)
virtual carto::GenericObject * attributeCaract(const QObjectBrowserWidget *br, const QTreeWidgetItem *item, std::string &attrib)
Finds the attribute pointed to by the list item, and returns its parent GenericObject.
static bool colorEditor(const std::set< carto::GenericObject * > &ao, const std::string &att, QObjectBrowserWidget *br, const std::set< QTreeWidgetItem * > &item)
virtual void leftItemCancelsRename(QTreeWidgetItem *item, int col)
static bool stringEditor(const std::set< carto::GenericObject * > &ao, const std::string &att, QObjectBrowserWidget *br, const std::set< QTreeWidgetItem * > &item)
virtual void refreshNow()
virtual void rightButtonRightPanel(QTreeWidgetItem *, const QPoint &)
QObjectBrowser(QWidget *parent=0, const char *name=0, carto::Object options=carto::none(), Qt::WindowFlags f=Qt::WindowFlags())
virtual void addAttribute()
Base Anatomist object (abstract)
Abstract base class Anatomist window.
Attributed object descriptor.
Nomenclature hierarchy object.
This class can be subclassed to represent an object that the programmer wants to have observed.