Nemiver  0.3
nmv-i-workbench.h
Go to the documentation of this file.
1 // Author: Dodji Seketeli
2 /*
3  *This file is part of the Nemiver project
4  *
5  *Nemiver is free software; you can redistribute
6  *it and/or modify it under the terms of
7  *the GNU General Public License as published by the
8  *Free Software Foundation; either version 2,
9  *or (at your option) any later version.
10  *
11  *Nemiver is distributed in the hope that it will
12  *be useful, but WITHOUT ANY WARRANTY;
13  *without even the implied warranty of
14  *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15  *See the GNU General Public License for more details.
16  *
17  *You should have received a copy of the
18  *GNU General Public License along with Nemiver;
19  *see the file COPYING.
20  *If not, write to the Free Software Foundation,
21  *Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22  *
23  *See COPYRIGHT file copyright information.
24  */
25 #ifndef __NMV_I_WORKBENCH_H__
26 #define __NMV_I_WORKBENCH_H__
27 
28 #include "common/nmv-api-macros.h"
30 #include "nmv-i-conf-mgr.h"
31 
32 //*******************
33 //some Gtk forward decls
34 //******************
35 namespace Gtk {
36  class Widget;
37  class Notebook;
38  class Window;
39  class ActionGroup;
40  class UIManager;
41  class Main;
42 }//end namespace Gtk
43 
44 namespace Glib {
45  class MainContext;
46 }
47 
48 namespace nemiver {
49 namespace common {
50  class UString;
51 }
52 }
53 
54 NEMIVER_BEGIN_NAMESPACE (nemiver)
55 
56 //*******************
57 //some forward decls
58 //******************
59 class IPerspective;
60 class IConfMgr;
69 
70 class IWorkbench;
72 
94 
95  //non copyable
96  IWorkbench (const IWorkbench&);
97  IWorkbench& operator= (const IWorkbench&);
98 
99 protected:
100  // must be created by the dynamic modules factory
101  IWorkbench (DynamicModule *a_dynmod) : DynModIface (a_dynmod)
102  {
103  }
104 
105 public:
106 
107  virtual ~IWorkbench () {}
108 
111  virtual void do_init (Gtk::Main &a_main) = 0;
112 
113  virtual void shut_down () = 0;
114 
116 
117 
119 
121 
123  virtual Glib::RefPtr<Gtk::ActionGroup> get_default_action_group () = 0;
124 
125  virtual Gtk::Widget& get_menubar () = 0;
126 
128  virtual Gtk::Notebook& get_toolbar_container () = 0;
129 
131  virtual Gtk::Window& get_root_window () = 0;
132 
134  virtual void set_title_extension (const UString &a_str) = 0;
135 
137  virtual Glib::RefPtr<Gtk::UIManager>& get_ui_manager () = 0;
138 
140  virtual IPerspective* get_perspective (const UString &a_name) = 0;
141 
143  virtual void do_init (IConfMgrSafePtr &) = 0;
144 
146  virtual IConfMgrSafePtr get_configuration_manager () = 0;
148 
149  virtual Glib::RefPtr<Glib::MainContext> get_main_context () = 0;
151 
153 
155  virtual sigc::signal<void>& shutting_down_signal () = 0;
156 
158 };//end class IWorkbench
159 
160 NEMIVER_END_NAMESPACE (nemiver)
161 
162 #endif //__NMV_I_WORKBENCH
163 
nemiver
Definition: nmv-address.h:31
nemiver::IWorkbench::~IWorkbench
virtual ~IWorkbench()
Definition: nmv-i-workbench.h:107
nemiver::common::ObjectRef
Definition: nmv-safe-ptr-utils.h:45
nemiver::IWorkbench
the interface of the Workbench. The workbench is what you see graphically when you use Nemiver....
Definition: nmv-i-workbench.h:93
NEMIVER_API
#define NEMIVER_API
Definition: nmv-api-macros.h:53
nmv-api-macros.h
nemiver::common::DynamicModule
The base class for loadable modules.
Definition: nmv-dynamic-module.h:76
nemiver::common::DynModIfaceSafePtr
SafePtr< DynModIface, ObjectRef, ObjectUnref > DynModIfaceSafePtr
Definition: nmv-dynamic-module.h:64
nemiver::IWorkbench::IWorkbench
IWorkbench(DynamicModule *a_dynmod)
Definition: nmv-i-workbench.h:101
nemiver::common::UString
Definition: nmv-ustring.h:45
nemiver::common::DynModIface
Definition: nmv-dynamic-module.h:220
nmv-dynamic-module.h
nmv-i-conf-mgr.h
nemiver::IWorkbenchSafePtr
SafePtr< IWorkbench, ObjectRef, ObjectUnref > IWorkbenchSafePtr
Definition: nmv-i-workbench.h:70
Gtk
Definition: nmv-asm-utils.h:30
nemiver::common::ObjectUnref
Definition: nmv-safe-ptr-utils.h:55
nemiver::IPerspective
Definition: nmv-i-perspective.h:54
nemiver::common::SafePtr
Definition: nmv-safe-ptr.h:71
nemiver::common::DynamicModuleSafePtr
SafePtr< DynamicModule, ObjectRef, ObjectUnref > DynamicModuleSafePtr
Definition: nmv-dynamic-module.h:61
Glib
Definition: nmv-i-workbench.h:44
nemiver::common::env::do_init
void do_init()
common
Definition: nmv-proc-list-dialog.h:32