A trivial one.
John
Index: ChangeLog =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/gtk/ChangeLog,v retrieving revision 1.82 diff -u -p -r1.82 ChangeLog --- ChangeLog 14 Nov 2004 17:10:04 -0000 1.82 +++ ChangeLog 14 Nov 2004 17:58:59 -0000 @@ -1,5 +1,7 @@ 2004-11-14 John Spray <[EMAIL PROTECTED]> + * The ERT dialog: + Dialogs.C, Makefile.am, GERT.C, GERT.h * The Box dialog: Dialogs.C, Makefile.am, GBox.C, GBox.h * ghelpers.[Ch], GGraphics.[Ch]: new functions unitsComboFromLength Index: Dialogs.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/gtk/Dialogs.C,v retrieving revision 1.32 diff -u -p -r1.32 Dialogs.C --- Dialogs.C 14 Nov 2004 17:10:04 -0000 1.32 +++ Dialogs.C 14 Nov 2004 17:59:00 -0000 @@ -61,7 +61,7 @@ #include "FormCitation.h" #include "FormDocument.h" #include "GErrorList.h" -#include "FormERT.h" +#include "GERT.h" #include "FormExternal.h" #include "FormFloat.h" #include "GGraphics.h" @@ -218,8 +218,9 @@ Dialogs::DialogPtr Dialogs::build(string dialog->setView(new GErrorList(*dialog)); dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy); } else if (name == "ert") { + dialog->bc().view(new GBC(dialog->bc())); dialog->setController(new ControlERT(*dialog)); - dialog->setView(new FormERT(*dialog)); + dialog->setView(new GERT(*dialog)); dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy); } else if (name == "external") { dialog->setController(new ControlExternal(*dialog)); Index: GERT.C =================================================================== RCS file: GERT.C diff -N GERT.C --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ GERT.C 14 Nov 2004 17:59:00 -0000 @@ -0,0 +1,93 @@ +/** + * \file GERT.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author John Spray + * + * Full author contact details are available in file CREDITS. + */ + +#include <config.h> + +#include "GERT.h" +#include "ControlERT.h" +#include "ghelpers.h" + +#include <libglademm.h> + +using std::string; + +namespace lyx { +namespace frontend { + +GERT::GERT(Dialog & parent) + : GViewCB<ControlERT, GViewGladeB>(parent, _("TeX Settings"), false) +{} + + +void GERT::doBuild() +{ + string const gladeName = findGladeFile("ERT"); + xml_ = Gnome::Glade::Xml::create(gladeName); + + Gtk::Button * cancelbutton; + xml_->get_widget("Close", cancelbutton); + setCancel(cancelbutton); + + xml_->get_widget("Inline", inlineradio_); + xml_->get_widget("Open", openradio_); + xml_->get_widget("Collapsed", collapsedradio_); + + inlineradio_->signal_toggled().connect( + sigc::mem_fun(*this, &GERT::apply)); + openradio_->signal_toggled().connect( + sigc::mem_fun(*this, &GERT::apply)); + collapsedradio_->signal_toggled().connect( + sigc::mem_fun(*this, &GERT::apply)); + + bcview().addReadOnly(inlineradio_); + bcview().addReadOnly(openradio_); + bcview().addReadOnly(collapsedradio_); +} + + +void GERT::update() +{ + applylock_ = true; + + bc().refreshReadOnly(); + + switch (controller().status()) { + case InsetERT::Open: + openradio_->set_active(true); + break; + case InsetERT::Collapsed: + collapsedradio_->set_active(true); + break; + case InsetERT::Inlined: + inlineradio_->set_active(true); + break; + } + + applylock_ = false; +} + + +void GERT::apply() +{ + if (applylock_) + return; + + if (openradio_->get_active()) + controller().setStatus(InsetERT::Open); + else if (collapsedradio_->get_active()) + controller().setStatus(InsetERT::Collapsed); + else + controller().setStatus(InsetERT::Inlined); + + controller().dispatchParams(); +} + +} // namespace frontend +} // namespace lyx Index: GERT.h =================================================================== RCS file: GERT.h diff -N GERT.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ GERT.h 14 Nov 2004 17:59:00 -0000 @@ -0,0 +1,43 @@ +// -*- C++ -*- +/** + * \file GERT.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author John Spray + * + * Full author contact details are available in file CREDITS. + */ + +#ifndef GERT_H +#define GERT_H + +#include "GViewBase.h" + +namespace lyx { +namespace frontend { + +class ControlERT; + +/** This class provides a GTK+ implementation of the ERT Dialog. + */ +class GERT : public GViewCB<ControlERT, GViewGladeB> { +public: + GERT(Dialog & parent); +private: + virtual void apply(); + virtual void doBuild(); + virtual void update(); + + // apply() won't act when this is true + bool applylock_; + + Gtk::RadioButton * inlineradio_; + Gtk::RadioButton * openradio_; + Gtk::RadioButton * collapsedradio_; +}; + +} // namespace frontend +} // namespace lyx + +#endif // GERT_H Index: Makefile.am =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/gtk/Makefile.am,v retrieving revision 1.31 diff -u -p -r1.31 Makefile.am --- Makefile.am 14 Nov 2004 17:10:04 -0000 1.31 +++ Makefile.am 14 Nov 2004 17:59:00 -0000 @@ -32,6 +32,8 @@ libgtk_la_SOURCES = \ GCharacter.h \ GErrorList.C \ GErrorList.h \ + GERT.C \ + GERT.h \ GGraphics.C \ GGraphics.h \ GLog.C \ @@ -116,7 +118,6 @@ xforms_objects = \ ../xforms/FormColorpicker.lo \ ../xforms/FormDialogView.lo \ ../xforms/FormDocument.lo \ - ../xforms/FormERT.lo \ ../xforms/FormExternal.lo \ ../xforms/FormFloat.lo \ ../xforms/FormInclude.lo \ Index: glade/ERT.glade =================================================================== RCS file: glade/ERT.glade diff -N glade/ERT.glade --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ glade/ERT.glade 14 Nov 2004 17:59:00 -0000 @@ -0,0 +1,172 @@ +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> +<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> + +<glade-interface> + +<widget class="GtkDialog" id="dialog"> + <property name="visible">True</property> + <property name="title" translatable="yes">dialog1</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</property> + <property name="resizable">False</property> + <property name="destroy_with_parent">False</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="has_separator">False</property> + + <child internal-child="vbox"> + <widget class="GtkVBox" id="dialog-vbox1"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child internal-child="action_area"> + <widget class="GtkHButtonBox" id="dialog-action_area1"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + + <child> + <widget class="GtkButton" id="Close"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-close</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="response_id">-7</property> + <accelerator key="Escape" modifiers="0" signal="clicked"/> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + + <child> + <widget class="GtkFrame" id="frame1"> + <property name="border_width">12</property> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_NONE</property> + + <child> + <widget class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xscale">1</property> + <property name="yscale">1</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">12</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkVBox" id="vbox1"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkRadioButton" id="Open"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_Open</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkRadioButton" id="Collapsed"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_Collapsed</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + <property name="group">Open</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkRadioButton" id="Inline"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_Inline</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + <property name="group">Open</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Display</b></property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + </child> +</widget> + +</glade-interface>