-// -*- C++ -*-
/* This file is part of
* =================================================
- *
+ *
* LyX, The Document Processor
* Copyright 1995 Matthias Ettrich.
* Copyright 1995-2000 The LyX Team.
#include "debug.h"
#include "support/filetools.h"
#include <glib.h>
+#include <gtkmm/dialog.h>
-#include <gnome--/dialog.h>
-
-GnomeBase::GnomeBase(ControlButtons & c,
- string const & glade_file, string const & name)
+GnomeBase::GnomeBase(ControlButtons & c,
+ string const & name)
: ViewBC<gnomeBC>(c)
- , file_(glade_file), widget_name_(name), xml_(0)
+ , file_(name + ".glade"), widget_name_(name), xml_(0)
, dialog_(0)
-{}
-
-GnomeBase::~GnomeBase()
{
- if (xml_)
- gtk_object_unref(GTK_OBJECT(xml_));
+ loadXML();
}
-
-void GnomeBase::loadXML() const
+GnomeBase::~GnomeBase()
+{}
+
+
+void GnomeBase::loadXML()
{
#ifdef WITH_WARNINGS
#warning Change this before declaring it production code! (be 20010325)
#endif
- string const path("src/frontends/gnome/dialogs/;frontends/gnome/dialogs/;/home/baruch/prog/lyx/graphics/src/frontends/gnome/dialogs/");
+ string const path("src/frontends/gnome/dialogs/;frontends/gnome/dialogs/;");
string const file = FileOpenSearch(path, file_, "glade");
if (file.empty()) {
lyxerr << "Cannot find glade file. Aborting." << std::endl;
lyx::Assert(true);
}
-
+
lyxerr[Debug::GUI] << "Glade file to open is " << file << '\n';
-
- xml_ = glade_xml_new(file.c_str(), widget_name_.c_str());
+
+ xml_ = Gnome::Glade::Xml::create (file, widget_name_);
}
void GnomeBase::show()
{
- if (!dialog_) {
- dialog_ = dialog();
- build();
- }
-
update();
- dialog_->show();
+ dialog()->show();
}
void GnomeBase::hide()
{
- if (dialog_)
- dialog_->hide();
+ dialog()->hide();
}
+bool GnomeBase::validate()
+{
+ return true;
+}
-Gnome::Dialog * GnomeBase::dialog()
+void GnomeBase::OKClicked()
{
- if (!dialog_)
- dialog_ = getWidget<Gnome::Dialog>(widget_name_.c_str());
-
+ lyxerr[Debug::GUI] << "GnomeBase::OKClicked()\n";
+ OKButton();
+}
+
+void GnomeBase::CancelClicked()
+{
+ lyxerr[Debug::GUI] << "GnomeBase::CancelClicked()\n";
+ CancelButton();
+}
+
+void GnomeBase::ApplyClicked()
+{
+ lyxerr[Debug::GUI] << "GnomeBase::ApplyClicked()\n";
+ ApplyButton();
+}
+
+void GnomeBase::RestoreClicked()
+{
+ lyxerr[Debug::GUI] << "GnomeBase::RestoreClicked()\n";
+ RestoreButton();
+}
+
+void GnomeBase::InputChanged()
+{
+ bc().valid(validate());
+}
+
+Gtk::Dialog * GnomeBase::dialog()
+{
+ if (!dialog_)
+ dialog_ = getWidget<Gtk::Dialog>(widget_name_);
+
return dialog_;
}