BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
modularWidget.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_VIEW_WIDGETS_MODULARWIDGET_H
6 #define BALL_VIEW_WIDGETS_MODULARWIDGET_H
7 
8 #ifndef BALL_CONCEPT_EMBEDDABLE_H
10 #endif
11 
12 #ifndef BALL_VIEW_KERNEL_CONNECTIONOBJECT_H
14 #endif
15 
16 #include <QtGui/QKeySequence>
17 #include <QtGui/QToolBar>
18 
19 class QObject;
20 class QMenuBar;
21 class QWidget;
22 class QAction;
23 
24 namespace BALL
25 {
26  class INIFile;
27  class FragmentDB;
28 
29  namespace VIEW
30  {
31  class Preferences;
32  class MainControl;
33 
58  : public Embeddable,
59  public ConnectionObject
60  {
61  public:
62 
65 
66 
69 
74  ModularWidget(const char* name = "<ModularWidget>");
75 
78  ModularWidget(const ModularWidget& widget);
79 
81 
84 
88  virtual ~ModularWidget();
89 
91  virtual void destroy()
92  { clear(); };
93 
97  virtual void clear();
98 
100 
103 
110  static void registerWidget(ModularWidget* mwidget)
111  throw(Exception::NullPointer);
112 
120  virtual void initializeWidget(MainControl& main_control);
121 
130  virtual void finalizeWidget(MainControl& main_control);
131 
137  virtual bool canHandle(const String& /*fileformat*/) const { return false;}
138 
143  virtual bool openFile(const String& /*filename*/) { return false;}
144 
146 
149 
155  virtual void checkMenu(MainControl& main_control);
156 
158  QAction* insertMenuEntry (Position parent_id, const String& name, const QObject* receiver = 0,
159  const char* slot = 0, const String& description = "", QKeySequence accel = QKeySequence());
160 
164  void setMenuHint(const String& hint);
165 
170  void setMenuHelp(const String& url);
171 
175  virtual void registerForHelpSystem(const QObject* object, const String& url);
176 
181  virtual void addToolBarEntries(QToolBar* main_tb);
182 
186  void setIcon(const String& filename, bool add_to_main_toolbar = true);
187 
188 
190 
193 
200  virtual void initializePreferencesTab(Preferences& preferences);
201 
208  virtual void finalizePreferencesTab(Preferences& preferences);
209 
221  virtual void applyPreferences(){};
222 
228  virtual void fetchPreferences(INIFile& inifile);
229 
235  virtual void writePreferences(INIFile& inifile);
236 
238 
241 
245  bool lockComposites();
246 
248  bool unlockComposites();
249 
251 
254 
258  MainControl* getMainControl() const;
259 
264  virtual void setStatusbarText(const String& text, bool important = false);
265 
267  virtual void setStatusbarText(const QString& text, bool important = false);
268 
270  String getWorkingDir();
271 
273  void setWorkingDir(const String& dir);
274 
279  FragmentDB& getFragmentDB() const;
280 
282 
285 
293  virtual void dump(std::ostream& s = std::cout, Size depth = 0) const;
294 
296 
297  void setWorkingDirFromFilename_(String filename);
298 
299  virtual void showHelp(const String& url);
300 
301  protected:
302 
303  //_ id in the menubar entry "WINDOWS" for every widget
305 
306  //_ should there be an entry to switch the window on and off?
308 
309  //_ should the widget be visible, if no config file entry exists?
311 
312  QAction* last_action_;
313  QList<QAction*> main_toolbar_actions_;
314  };
315 
316  } // namespace VIEW
317 } // namespace BALL
318 
319 #endif // BALL_VIEW_WIDGETS_MODULARWIDGET_H