Migrated from Glade to GtkBuilder
This commit is contained in:
parent
e0cb6bd23b
commit
2bd663e0db
10 changed files with 310 additions and 357 deletions
|
@ -21,7 +21,7 @@
|
|||
#define ZOOMEDIT_GUI_ASPECTFRAME_H_
|
||||
|
||||
#include <gtkmm/aspectframe.h>
|
||||
#include <iostream>
|
||||
#include <gtkmm/builder.h>
|
||||
|
||||
namespace ZoomEdit {
|
||||
namespace Gui {
|
||||
|
@ -40,7 +40,7 @@ class AspectFrame : public Gtk::AspectFrame {
|
|||
}
|
||||
|
||||
public:
|
||||
AspectFrame(BaseObjectType *cobject, const Glib::RefPtr<Gnome::Glade::Xml>&)
|
||||
AspectFrame(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder>&)
|
||||
: Gtk::AspectFrame(cobject), width(-1) {
|
||||
signal_size_allocate().connect(sigc::mem_fun(this, &AspectFrame::onSizeAllocate));
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace Gui {
|
|||
|
||||
GdkGLConfig *RenderArea::glconfig = 0;
|
||||
|
||||
RenderArea::RenderArea(BaseObjectType *cobject, const Glib::RefPtr<Gnome::Glade::Xml>&)
|
||||
RenderArea::RenderArea(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder>&)
|
||||
: Gtk::DrawingArea(cobject), view(0), inWindow(false) {
|
||||
if(!glconfig) {
|
||||
glconfig = gdk_gl_config_new_by_mode((GdkGLConfigMode)(GDK_GL_MODE_RGB | GDK_GL_MODE_DOUBLE));
|
||||
|
|
|
@ -20,9 +20,9 @@
|
|||
#ifndef ZOOMEDIT_GUI_RENDERAREA_H_
|
||||
#define ZOOMEDIT_GUI_RENDERAREA_H_
|
||||
|
||||
#include <gtkmm/builder.h>
|
||||
#include <gtkmm/drawingarea.h>
|
||||
#include <gtkmm/scrollbar.h>
|
||||
#include <libglademm/xml.h>
|
||||
#include <gtk/gtkgl.h>
|
||||
|
||||
namespace ZoomEdit {
|
||||
|
@ -35,7 +35,7 @@ namespace Gui {
|
|||
|
||||
class RenderArea : public Gtk::DrawingArea {
|
||||
public:
|
||||
RenderArea(BaseObjectType *cobject, const Glib::RefPtr<Gnome::Glade::Xml>&);
|
||||
RenderArea(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder>&);
|
||||
|
||||
View::View* getView() const {return view;}
|
||||
void setView(View::View *view0);
|
||||
|
|
|
@ -21,16 +21,22 @@
|
|||
#include "RenderArea.h"
|
||||
#include "AspectFrame.h"
|
||||
|
||||
#include <gtkmm/action.h>
|
||||
|
||||
namespace ZoomEdit {
|
||||
namespace Gui {
|
||||
|
||||
Window::Window(BaseObjectType *cobject, const Glib::RefPtr<Gnome::Glade::Xml> &xml)
|
||||
Window::Window(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder)
|
||||
: Gtk::Window(cobject) {
|
||||
xml->connect_clicked("MenuItemQuit", sigc::mem_fun(this, &Window::hide));
|
||||
|
||||
xml->get_widget_derived("RenderArea", renderArea);
|
||||
xml->get_widget_derived("MapArea", mapArea);
|
||||
xml->get_widget_derived("AspectFrameMap", aspectFrameMap);
|
||||
Glib::RefPtr<Gtk::Action> itemQuit = Glib::RefPtr<Gtk::Action>::cast_dynamic(builder->get_object("MenuItemQuit"));
|
||||
if(itemQuit) {
|
||||
itemQuit->signal_activate().connect(sigc::mem_fun(this, &Window::hide));
|
||||
}
|
||||
|
||||
builder->get_widget_derived("RenderArea", renderArea);
|
||||
builder->get_widget_derived("MapArea", mapArea);
|
||||
builder->get_widget_derived("AspectFrameMap", aspectFrameMap);
|
||||
}
|
||||
|
||||
Window::~Window() {
|
||||
|
|
|
@ -20,8 +20,8 @@
|
|||
#ifndef ZOOMEDIT_GUI_WINDOW_H_
|
||||
#define ZOOMEDIT_GUI_WINDOW_H_
|
||||
|
||||
#include <gtkmm/builder.h>
|
||||
#include <gtkmm/window.h>
|
||||
#include <libglademm/xml.h>
|
||||
|
||||
namespace ZoomEdit {
|
||||
namespace Gui {
|
||||
|
@ -35,7 +35,7 @@ class Window : public Gtk::Window {
|
|||
AspectFrame *aspectFrameMap;
|
||||
|
||||
public:
|
||||
Window(BaseObjectType *cobject, const Glib::RefPtr<Gnome::Glade::Xml> &xml);
|
||||
Window(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder);
|
||||
virtual ~Window();
|
||||
|
||||
RenderArea* getRenderArea() const {return renderArea;}
|
||||
|
|
|
@ -35,29 +35,17 @@ guint Instance::instances = 0;
|
|||
Instance::Instance(const Glib::ustring &file) : window(0), levelXml(0), level(0), view(0) {
|
||||
instances++;
|
||||
|
||||
#ifdef GLIBMM_EXCEPTIONS_ENABLED
|
||||
try
|
||||
{
|
||||
xml = Gnome::Glade::Xml::create("zoomedit.glade");
|
||||
try {
|
||||
builder = Gtk::Builder::create_from_file("zoomedit.ui");
|
||||
}
|
||||
catch(const Gnome::Glade::XmlError& ex)
|
||||
{
|
||||
catch(const Glib::Exception& ex) {
|
||||
std::cerr << ex.what() << std::endl;
|
||||
return;
|
||||
}
|
||||
#else
|
||||
std::auto_ptr<Gnome::Glade::XmlError> error;
|
||||
xml = Gnome::Glade::Xml::create("zoomedit.glade", "", "", error);
|
||||
if(error.get())
|
||||
{
|
||||
std::cerr << error->what() << std::endl;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
xml->get_widget_derived("WindowMain", window);
|
||||
builder->get_widget_derived("WindowMain", window);
|
||||
if(!window) {
|
||||
xml.clear();
|
||||
builder.clear();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -70,10 +58,10 @@ Instance::Instance(const Glib::ustring &file) : window(0), levelXml(0), level(0)
|
|||
window->getMapArea()->setView(mapView);
|
||||
|
||||
Gtk::ToolButton *button;
|
||||
xml->get_widget("ToolButtonZoomIn", button);
|
||||
builder->get_widget("ToolButtonZoomIn", button);
|
||||
button->signal_clicked().connect(sigc::bind(sigc::mem_fun(view, &View::TopView::zoom), 2, 0, 0));
|
||||
|
||||
xml->get_widget("ToolButtonZoomOut", button);
|
||||
builder->get_widget("ToolButtonZoomOut", button);
|
||||
button->signal_clicked().connect(sigc::bind(sigc::mem_fun(view, &View::TopView::zoom), -2, 0, 0));
|
||||
|
||||
if(file.empty())
|
||||
|
|
|
@ -20,8 +20,8 @@
|
|||
#ifndef ZOOMEDIT_INSTANCE_H_
|
||||
#define ZOOMEDIT_INSTANCE_H_
|
||||
|
||||
#include <gtkmm/builder.h>
|
||||
#include <gtkmm/main.h>
|
||||
#include <libglademm/xml.h>
|
||||
#include <libxml++/parsers/domparser.h>
|
||||
|
||||
namespace ZoomEdit {
|
||||
|
@ -52,7 +52,7 @@ class Instance {
|
|||
private:
|
||||
static guint instances;
|
||||
|
||||
Glib::RefPtr<Gnome::Glade::Xml> xml;
|
||||
Glib::RefPtr<Gtk::Builder> builder;
|
||||
Gui::Window *window;
|
||||
|
||||
xmlpp::DomParser *levelXml;
|
||||
|
|
Reference in a new issue