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">&lt;b&gt;Display&lt;/b&gt;</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>

Reply via email to