Choreonoid  1.8
View.h
Go to the documentation of this file.
1 
5 #ifndef CNOID_BASE_VIEW_H
6 #define CNOID_BASE_VIEW_H
7 
8 #include <cnoid/Signal>
9 #include <cnoid/Widget>
10 #include "exportdecl.h"
11 
12 namespace cnoid {
13 
14 class ExtensionManager;
15 class Archive;
16 class MenuManager;
17 class ViewManager;
18 class ViewArea;
19 class ViewAreaImpl;
20 
21 class CNOID_EXPORT ViewClass
22 {
23 public:
24  virtual const std::string& className() const = 0;
25 };
26 
27 class CNOID_EXPORT View : public Widget
28 {
29 public:
30  View();
31  virtual ~View();
32 
33  ViewClass* viewClass() const;
34 
35  const std::string& name() const;
36  virtual void setName(const std::string& name);
37  void setTitleFormat(const std::string& title);
38  void resetTitleFormat();
39  const std::string& titleFormat() const;
40 
41  ViewArea* viewArea() const;
42 
43  bool isActive() const;
44  bool hasFocus() const;
45 
46  void bringToFront();
47 
48  SignalProxy<void()> sigActivated();
49  SignalProxy<void()> sigDeactivated();
50  SignalProxy<void()> sigResized();
51  SignalProxy<void()> sigRemoved();
52 
53  enum LayoutArea {
54  LEFT = 0,
55  LEFT_TOP = 0,
56  LEFT_BOTTOM = 1,
57  CENTER = 2,
58  RIGHT = 3,
59  BOTTOM = 4,
60  NUM_AREAS };
61 
62  void setDefaultLayoutArea(LayoutArea area);
63  LayoutArea defaultLayoutArea() const;
64 
65  void setLayout(QLayout* layout, double marginRatio = 0.0);
66 
67  void setLayout(
68  QLayout* layout,
69  double leftMarginRatio, double topMarginRatio, double rightMarginRatio, double bottomMarginRatio);
70 
71  QPoint viewAreaPos() const;
72 
73  virtual QWidget* indicatorOnInfoBar();
74 
75  void enableFontSizeZoomKeys(bool on);
76 
77  virtual bool storeState(Archive& archive);
78  virtual bool restoreState(const Archive& archive);
79 
80  static View* lastFocusView();
81 
82 protected:
83  void setLayoutContentsMarginRatio(
84  QLayout* layout,
85  double leftMarginRatio, double topMarginRatio, double rightMarginRatio, double bottomMarginRatio);
86  void zoomFontSize(int zoom);
87 
88  virtual void onActivated();
89  virtual void onDeactivated();
90  virtual void onFocusChanged(bool on);
91  virtual void onAttachedMenuRequest(MenuManager& menuManager);
92  virtual void keyPressEvent(QKeyEvent* event);
93  virtual void resizeEvent(QResizeEvent* event);
94 
95 private:
96  class Impl;
97  Impl* impl;
98 
99  friend class ViewManager;
100  friend class ViewArea;
101 
102  // Called from the view manager initialization
103  static void initializeClass();
104 
105  static void onApplicationFocusChanged(QWidget* widget);
106 
107  // Qt events (make hidden)
108  virtual void showEvent(QShowEvent* event);
109  virtual void hideEvent(QHideEvent* event);
110 
111  void setViewArea(ViewArea* area);
112  void notifySigRemoved();
113 };
114 
115 }
116 
117 #endif
cnoid::View
Definition: View.h:27
cnoid::Archive
Definition: Archive.h:23
cnoid::MenuManager
Definition: MenuManager.h:18
cnoid::ViewArea
Definition: ViewArea.h:16
cnoid::View::LayoutArea
LayoutArea
Definition: View.h:53
cnoid
Definition: AbstractSceneLoader.h:11
cnoid::ViewManager
Definition: ViewManager.h:19
cnoid::Widget
Definition: Widget.h:10
cnoid::SignalProxy
Definition: Signal.h:470
cnoid::ViewClass
Definition: View.h:21