GTK Bibtex dialog

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10817 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
John Spray 2006-02-06 21:59:12 +00:00
parent 98dd757bbc
commit f3341d73ee
7 changed files with 890 additions and 3 deletions

View File

@ -2,6 +2,7 @@
* GGraphics.[Ch], glade/graphics.glade: Use GtkLengthEntry, touch up glade
* GDocument.[Ch], glade/document.glade: Only Bullet options left to do
* GBibtex.[Ch], glade/bibtex.glade: Implement bibtex dialog
2006-02-05 John Spray <spray@lyx.org>

View File

@ -58,7 +58,7 @@
#include "GText.h"
#include "GMathDelim.h"
#include "GBibItem.h"
//#include "FormBibtex.h"
#include "GBibtex.h"
#include "GBox.h"
#include "GBranch.h"
#include "GChanges.h"
@ -189,9 +189,9 @@ Dialogs::DialogPtr Dialogs::build(string const & name)
dialog->setView(new GBibItem(*dialog));
dialog->bc().bp(new OkCancelReadOnlyPolicy);
} else if (name == "bibtex") {
// dialog->bc().view(new xformsBC(dialog->bc()));
dialog->bc().view(new GBC(dialog->bc()));
dialog->setController(new ControlBibtex(*dialog));
// dialog->setView(new FormBibtex(*dialog));
dialog->setView(new GBibtex(*dialog));
dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
} else if (name == "box") {
dialog->bc().view(new GBC(dialog->bc()));

288
src/frontends/gtk/GBibtex.C Normal file
View File

@ -0,0 +1,288 @@
/**
* \file GBibtex.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>
// Too hard to make concept checks work with this file
#ifdef _GLIBCXX_CONCEPT_CHECKS
#undef _GLIBCXX_CONCEPT_CHECKS
#endif
#ifdef _GLIBCPP_CONCEPT_CHECKS
#undef _GLIBCPP_CONCEPT_CHECKS
#endif
#include "GBibtex.h"
#include "ControlBibtex.h"
#include "ghelpers.h"
#include "support/filetools.h"
#include "support/lstrings.h"
#include <libglademm.h>
using lyx::support::ChangeExtension;
using lyx::support::contains;
using lyx::support::prefixIs;
using lyx::support::split;
using lyx::support::trim;
using std::vector;
using std::string;
namespace lyx {
namespace frontend {
GBibtex::GBibtex(Dialog & parent)
: GViewCB<ControlBibtex, GViewGladeB>(parent, _("BibTeX Bibliography"), false)
{}
void GBibtex::doBuild()
{
string const gladeName = findGladeFile("bibtex");
xml_ = Gnome::Glade::Xml::create(gladeName);
Gtk::Button * button;
xml_->get_widget("Cancel", button);
setCancel(button);
xml_->get_widget("OK", button);
setOK(button);
xml_->get_widget("Databases", databasesview_);
databasessel_ = databasesview_->get_selection();
// signal_changed gets connected at the end of this fn.
Gtk::TreeModel::ColumnRecord listcols;
listcols.add (stringcol_);
databasesstore_ = Gtk::ListStore::create(listcols);
databasesview_->set_model(databasesstore_);
databasesview_->append_column("Database", stringcol_);
xml_->get_widget("Add", button);
button->signal_clicked().connect(
sigc::mem_fun(*this, &GBibtex::add));
bcview().addReadOnly(button);
xml_->get_widget("Remove", removebutton_);
removebutton_->signal_clicked().connect(
sigc::mem_fun(*this, &GBibtex::remove));
bcview().addReadOnly(removebutton_);
xml_->get_widget("Browse", button);
button->signal_clicked().connect(
sigc::mem_fun(*this, &GBibtex::browse));
bcview().addReadOnly(button);
Gtk::HBox *box;
xml_->get_widget("Style", box);
box->pack_start(stylecombo_);
stylecombo_.show();
bcview().addReadOnly(&stylecombo_);
xml_->get_widget("Content", contentcombo_);
bcview().addReadOnly(contentcombo_);
xml_->get_widget("TOC", toccheck_);
bcview().addReadOnly(toccheck_);
databasessel_->signal_changed().connect(
sigc::mem_fun(*this, &GBibtex::validate));
}
void GBibtex::update()
{
string bibs(controller().params().getContents());
string bib;
databasesstore_->clear();
while (!bibs.empty()) {
bibs = split(bibs, bib, ',');
bib = trim(bib);
if (!bib.empty()) {
Gtk::TreeModel::iterator const row = databasesstore_->append();
(*row)[stringcol_] = bib;
}
}
string bibtotoc = "bibtotoc";
string bibstyle(controller().params().getOptions());
// bibtotoc exists?
if (prefixIs(bibstyle, bibtotoc)){
// bibstyle exists?
if (contains(bibstyle,','))
bibstyle = split(bibstyle, bibtotoc, ',');
else
bibstyle.erase();
}
bool const bibtopic = controller().usingBibtopic();
if (prefixIs(bibstyle, bibtotoc) && !bibtopic)
toccheck_->set_active(true);
else
toccheck_->set_active(false);
string btprint(controller().params().getSecOptions());
int btp = 0;
if (btprint == "btPrintNotCited")
btp = 1;
else if (btprint == "btPrintAll")
btp = 2;
contentcombo_->set_active(btp);
contentcombo_->set_sensitive(bibtopic);
stylecombo_.clear();
vector<string> str;
controller().getBibStyles(str);
int item_nr(-1);
vector<string>::const_iterator it = str.begin();
vector<string>::const_iterator const end = str.end();
for (; it != end; ++it) {
string item(ChangeExtension(*it, ""));
if (item == bibstyle)
item_nr = int(it - str.begin());
stylecombo_.append_text (item);
}
if (item_nr == -1 && !bibstyle.empty()) {
stylecombo_.append_text (bibstyle);
item_nr = stylecombo_.get_model()->children().size() - 1;
}
if (item_nr != -1)
stylecombo_.set_active(item_nr);
else
stylecombo_.get_entry()->set_text("");
validate();
}
void GBibtex::apply()
{
Gtk::TreeModel::iterator it = databasesstore_->children().begin();
Gtk::TreeModel::iterator const end = databasesstore_->children().end();
string dblist;
for (; it != end; ++it) {
Glib::ustring db = (*it)[stringcol_];
dblist += string(db);
if (it + 1 != end)
dblist += ",";
}
controller().params().setContents(dblist);
string const bibstyle = stylecombo_.get_active_text();
bool const bibtotoc = toccheck_->get_active();
if (bibtotoc && (!bibstyle.empty())) {
// both bibtotoc and style
controller().params().setOptions("bibtotoc," + bibstyle);
} else if (bibtotoc) {
// bibtotoc and no style
controller().params().setOptions("bibtotoc");
} else {
// only style. An empty one is valid, because some
// documentclasses have an own \bibliographystyle{}
// command!
controller().params().setOptions(bibstyle);
}
// bibtopic allows three kinds of sections:
// 1. sections that include all cited references of the database(s)
// 2. sections that include all uncited references of the database(s)
// 3. sections that include all references of the database(s), cited or not
int const btp = contentcombo_->get_active_row_number();
switch (btp) {
case 0:
controller().params().setSecOptions("btPrintCited");
break;
case 1:
controller().params().setSecOptions("btPrintNotCited");
break;
case 2:
controller().params().setSecOptions("btPrintAll");
break;
}
if (!controller().usingBibtopic())
controller().params().setSecOptions("");
}
void GBibtex::add()
{
string new_bib = controller().browseBib("");
if (new_bib.empty())
return;
new_bib = ChangeExtension(new_bib, string());
Gtk::TreeModel::iterator const row = databasesstore_->append();
(*row)[stringcol_] = new_bib;
validate();
}
void GBibtex::remove()
{
Gtk::TreeModel::iterator const selected = databasessel_->get_selected();
if (!databasesstore_->iter_is_valid(selected))
return;
databasesstore_->erase(selected);
validate();
}
void GBibtex::browse()
{
string const file = controller().browseBst("");
if (!file.empty()) {
string const filen = ChangeExtension(file, "");
bool present = false;
for (int i = 0; i < stylecombo_.get_model()->children().size(); ++i) {
stylecombo_.set_active(i);
Glib::ustring const item = stylecombo_.get_active_text ();
if (item == filen) {
present = true;
break;
}
}
if (!present) {
stylecombo_.append_text (filen);
stylecombo_.set_active_text(filen);
}
}
}
void GBibtex::validate()
{
if (databasesstore_->children().size())
bc().valid(true);
else
bc().valid(false);
Gtk::TreeModel::iterator selected = databasessel_->get_selected();
bool const enableremove = databasesstore_->iter_is_valid(selected) && !readOnly();
removebutton_->set_sensitive(enableremove);
}
} // namespace frontend
} // namespace lyx

View File

@ -0,0 +1,50 @@
// -*- C++ -*-
/**
* \file GBibtex.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 GBIBTEX_H
#define GBIBTEX_H
#include "GViewBase.h"
namespace lyx {
namespace frontend {
class ControlBibtex;
/** This class provides a GTK+ implementation of the Bibtex Dialog.
*/
class GBibtex : public GViewCB<ControlBibtex, GViewGladeB> {
public:
GBibtex(Dialog & parent);
private:
virtual void apply();
virtual void doBuild();
virtual void update();
void add();
void remove();
void browse();
void validate();
Gtk::TreeView *databasesview_;
Glib::RefPtr<Gtk::TreeView::Selection> databasessel_;
Glib::RefPtr<Gtk::ListStore> databasesstore_;
Gtk::TreeModelColumn<Glib::ustring> stringcol_;
Gtk::Button *removebutton_;
Gtk::ComboBoxEntryText stylecombo_;
Gtk::ComboBox *contentcombo_;
Gtk::CheckButton *toccheck_;
};
} // namespace frontend
} // namespace lyx
#endif // GBIBTEX_H

View File

@ -31,6 +31,8 @@ libgtk_la_SOURCES = \
GBC.h \
GBibItem.C \
GBibItem.h \
GBibtex.C \
GBibtex.h \
GBox.C \
GBox.h \
GBranch.C \

View File

@ -6,6 +6,7 @@ gladedir = $(pkgdatadir)/glade
dist_glade_DATA = \
aboutlyx.glade \
bibitem.glade \
bibtex.glade \
box.glade \
branch.glade \
changes.glade \

View File

@ -0,0 +1,545 @@
<?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">True</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="focus_on_map">True</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="Cancel">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-cancel</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">-6</property>
<accelerator key="Escape" modifiers="0" signal="clicked"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="OK">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-ok</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">-5</property>
</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="GtkVBox" id="vbox1">
<property name="border_width">12</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Databases&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</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<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">6</property>
<property name="bottom_padding">12</property>
<property name="left_padding">6</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<widget class="GtkAlignment" id="alignment3">
<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">0</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindow1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTreeView" id="Databases">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="headers_visible">False</property>
<property name="rules_hint">False</property>
<property name="reorderable">False</property>
<property name="enable_search">True</property>
<property name="fixed_height_mode">False</property>
<property name="hover_selection">False</property>
<property name="hover_expand">False</property>
</widget>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox2">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<widget class="GtkButton" id="Add">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<child>
<widget class="GtkAlignment" id="alignment5">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">0</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox4">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="stock">gtk-add</property>
<property name="icon_size">4</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="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="label">_Add...</property>
<property name="use_underline">True</property>
<property name="use_markup">False</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>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="Remove">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-remove</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Appearance&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</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkAlignment" id="alignment6">
<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">6</property>
<property name="bottom_padding">12</property>
<property name="left_padding">6</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkTable" id="table1">
<property name="visible">True</property>
<property name="n_rows">3</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
<property name="column_spacing">6</property>
<child>
<widget class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="label" translatable="yes">_Style:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="label" translatable="yes">Co_ntent:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkButton" id="Browse">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<child>
<widget class="GtkAlignment" id="alignment4">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">0</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox3">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
<property name="icon_size">4</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="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="label" translatable="yes">_Browse...</property>
<property name="use_underline">True</property>
<property name="use_markup">False</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>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="TOC">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Add bibliography to _TOC</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="left_attach">0</property>
<property name="right_attach">3</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="Content">
<property name="visible">True</property>
<property name="items" translatable="yes">Cited references
Uncited references
All references</property>
<property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="Style">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<placeholder/>
</child>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options">fill</property>
</packing>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</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>