#ifndef GVIEWBASE_H
#define GVIEWBASE_H
-#include <gtkmm.h>
-#include <libglademm.h>
-#include <boost/scoped_ptr.hpp>
#include "Dialog.h"
#include "ButtonPolicies.h"
#include "GBC.h"
-class GViewBase : public Dialog::View, public SigC::Object
-{
+#include <gtkmm.h>
+#include <libglademm.h>
+
+#include <boost/scoped_ptr.hpp>
+
+namespace lyx {
+namespace frontend {
+
+class GViewBase : public Dialog::View, public sigc::trackable {
public:
GViewBase(Dialog &, std::string const &, bool allowResize);
virtual ~GViewBase();
void setApply(Gtk::Button * apply);
void setOK(Gtk::Button * ok);
void setRestore(Gtk::Button * restore);
+ void setTitle(std::string const &);
+ bool readOnly() const;
protected:
// Build the dialog
virtual void build();
bool allowResize_;
};
+
template <class Dialog>
-class GViewDB : public GViewBase
-{
+class GViewDB : public GViewBase {
protected:
GViewDB(Dialog &, std::string const &, bool allowResize);
- virtual const Gtk::Window * window() const;
+ virtual Gtk::Window const * window() const;
virtual Gtk::Window * window();
boost::scoped_ptr<Dialog> dialog_;
};
}
-class GViewGladeB : public GViewBase
-{
+class GViewGladeB : public GViewBase {
protected:
GViewGladeB(Dialog & parent, std::string const & t, bool allowResize);
- virtual const Gtk::Window * window() const;
+ virtual Gtk::Window const * window() const;
virtual Gtk::Window * window();
Glib::RefPtr<Gnome::Glade::Xml> xml_;
};
template <class Controller, class Base>
-class GViewCB : public Base
-{
+class GViewCB : public Base {
public:
Controller & controller();
Controller const & controller() const;
template <class Controller, class Base>
Controller & GViewCB<Controller, Base>::controller()
{
- return static_cast<Controller &>(getController());
+ return static_cast<Controller &>(this->getController());
}
template <class Controller, class Base>
Controller const & GViewCB<Controller, Base>::controller() const
{
- return static_cast<Controller const &>(getController());
+ return static_cast<Controller const &>(this->getController());
}
+} // namespace frontend
+} // namespace lyx
+
#endif