Some work on GTK tabular dialog

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13260 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
John Spray 2006-02-20 18:03:24 +00:00
parent e4c3c00f80
commit 786759e106
3 changed files with 851 additions and 563 deletions

View File

@ -30,39 +30,10 @@
using std::string;
using std::vector;
/*
class GtkLengthEntry : public Gtk::HBox {
public:
GtkLengthEntry::GtkLengthEntry(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade);
protected:
Gtk::SpinButton spin_;
Gtk::ComboBoxText combo_;
};
GtkLengthEntry::GtkLengthEntry(
BaseObjectType* cobject,
const Glib::RefPtr<Gnome::Glade::Xml>& refGlade)
: Gtk::HBox(cobject), spin_(0.1, 2)
{
pack_start (spin_, true, true, 0);
pack_start (combo_, true, true, 0);
spin_.set_range(0.0, 99999.0f);
set_spacing(6);
show_all();
}*/
namespace lyx {
namespace frontend {
namespace {
string defaultUnit("cm");
} // namespace anon
GTabular::GTabular(Dialog & parent)
: GViewCB<ControlTabular, GViewGladeB>(parent, _("Table Settings"), false)
{}
@ -77,15 +48,21 @@ void GTabular::doBuild()
xml_->get_widget("Close", button);
setCancel(button);
// **** Current cell coords ****
xml_->get_widget("CurrentRow", cellrowspin_);
xml_->get_widget("CurrentColumn", cellcolspin_);
// **** Table tab ****
xml_->get_widget("HorizontalAlignment", horzaligncombo_);
Gtk::HBox *box;
xml_->get_widget("HorizontalAlignment", box);
horzaligncombo_ = Gtk::manage (new Gtk::ComboBoxText);
box->add(*horzaligncombo_);
box->show_all();
xml_->get_widget("VerticalAlignment", vertaligncombo_);
xml_->get_widget("SpecifyWidth", specifywidthcheck_);
specifywidthcheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSensitivity));
xml_->get_widget_derived ("Width", widthlength_);
xml_->get_widget("LaTeXArgument", latexargsentry_);
xml_->get_widget("RotateTable", rotatetablecheck_);
@ -97,6 +74,8 @@ void GTabular::doBuild()
xml_->get_widget("RightBorder", rightbordercheck_);
xml_->get_widget("RotateCell", rotatecellcheck_);
xml_->get_widget("MultiColumn", multicolcheck_);
multicolcheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSensitivity));
xml_->get_widget("NoBorders", button);
button->signal_clicked().connect(
sigc::bind(sigc::mem_fun(*this, &GTabular::allBorders), false));
@ -105,6 +84,72 @@ void GTabular::doBuild()
sigc::bind(sigc::mem_fun(*this, &GTabular::allBorders), true));
// **** Longtable tab ****
xml_->get_widget("LongTable", longtablecheck_);
longtablecheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
xml_->get_widget("PageBreak", pagebreakcheck_);
xml_->get_widget("SpecialRows", specialrowstable_);
xml_->get_widget("HeaderOn",headeroncheck_);
xml_->get_widget("FooterOn",footeroncheck_);
xml_->get_widget("FirstHeaderOn",firstheaderoncheck_);
xml_->get_widget("LastFooterOn",lastfooteroncheck_);
xml_->get_widget("FirstHeaderEmpty",firstheaderemptycheck_);
xml_->get_widget("LastFooterEmpty",lastfooteremptycheck_);
xml_->get_widget("HeaderUpperBorderDouble",headerupperborderdoublecheck_);
xml_->get_widget("FooterUpperBorderDouble",footerupperborderdoublecheck_);
xml_->get_widget("FirstHeaderUpperBorderDouble",firstheaderupperborderdoublecheck_);
xml_->get_widget("LastFooterUpperBorderDouble",lastfooterupperborderdoublecheck_);
xml_->get_widget("HeaderLowerBorderDouble",headerlowerborderdoublecheck_);
xml_->get_widget("FooterLowerBorderDouble",footerlowerborderdoublecheck_);
xml_->get_widget("FirstHeaderLowerBorderDouble",firstheaderlowerborderdoublecheck_);
xml_->get_widget("LastFooterLowerBorderDouble",lastfooterlowerborderdoublecheck_);
headeroncheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
footeroncheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
firstheaderoncheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
lastfooteroncheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
firstheaderemptycheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
lastfooteremptycheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
headerupperborderdoublecheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
footerupperborderdoublecheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
firstheaderupperborderdoublecheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
lastfooterupperborderdoublecheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
headerlowerborderdoublecheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
footerlowerborderdoublecheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
firstheaderlowerborderdoublecheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
lastfooterlowerborderdoublecheck_->signal_toggled().connect(
sigc::mem_fun(*this, &GTabular::updateSpecialRowsSensitivity));
/* headeroncheck_;
firstheaderoncheck_;
lastfooteroncheck_;
firstheaderemptycheck_;
lastfooteremptycheck_;
headerupperborderdoublecheck_;
footerupperborderdoublecheck_;
firstheaderupperborderdoublecheck_;
lastfooterupperborderdoublecheck_;
headerlowerborderdoublecheck_;
footerlowerborderdoublecheck_;
firstheaderlowerborderdoublecheck_;
lastfooterlowerborderdoublecheck_;*/
// Disable for read-only documents.
// bcview().addReadOnly(browsebutton_);
@ -120,30 +165,16 @@ void GTabular::apply()
void GTabular::update()
{
updating_ = true;
LyXTabular const & tabular = controller().tabular();
LyXTabular::idx_type const cell = controller().getActiveCell();
bool multicol = tabular.isMultiColumn(cell);
bool const multicol = tabular.isMultiColumn(cell);
cellcolspin_->get_adjustment()->set_value(tabular.column_of_cell (cell)+1);
cellrowspin_->get_adjustment()->set_value(tabular.row_of_cell (cell));
// **** Table tab ****
int align = tabular.getAlignment(cell);
if (align == LYX_ALIGN_RIGHT)
horzaligncombo_->set_active(2);
else if (align == LYX_ALIGN_CENTER)
horzaligncombo_->set_active(1);
else
horzaligncombo_->set_active(0);
align = tabular.getVAlignment(cell);
if (align == LyXTabular::LYX_VALIGN_BOTTOM)
vertaligncombo_->set_active(2);
else if (align == LyXTabular::LYX_VALIGN_MIDDLE)
vertaligncombo_->set_active(1);
else
vertaligncombo_->set_active(0);
LyXLength pwidth;
string special;
@ -156,17 +187,123 @@ void GTabular::update()
pwidth = tabular.getColumnPWidth(cell);
}
updateHorzAlignCombo(!multicol && !pwidth.zero());
int halign = tabular.getAlignment(cell);
if (halign == LYX_ALIGN_RIGHT)
horzaligncombo_->set_active(2);
else if (halign == LYX_ALIGN_CENTER)
horzaligncombo_->set_active(1);
else if (halign == LYX_ALIGN_BLOCK)
horzaligncombo_->set_active(3);
else
horzaligncombo_->set_active(0);
int valign = tabular.getVAlignment(cell);
if (valign == LyXTabular::LYX_VALIGN_BOTTOM)
vertaligncombo_->set_active(2);
else if (valign == LyXTabular::LYX_VALIGN_MIDDLE)
vertaligncombo_->set_active(1);
else
vertaligncombo_->set_active(0);
latexargsentry_->set_text(special);
specifywidthcheck_->set_active(!pwidth.zero());
widthlength_->set_length(pwidth);
rotatetablecheck_->set_active(tabular.getRotateTabular());
//TODO: insert 'Block' entry into halign as neccessary
// **** This Cell tab ****
multicolcheck_->set_active(multicol);
rotatecellcheck_->set_active(tabular.getRotateCell(cell));
upperbordercheck_->set_active(tabular.topLine(cell));
lowerbordercheck_->set_active(tabular.bottomLine(cell));
leftbordercheck_->set_active(tabular.leftLine(cell));
rightbordercheck_->set_active(tabular.rightLine(cell));
// **** Long-table tab ****
LyXTabular::row_type const row(tabular.row_of_cell(cell));
bool const longtable = tabular.isLongTabular();
longtablecheck_->set_active(longtable);
pagebreakcheck_->set_active(tabular.getLTNewPage(row));
if (longtable) {
LyXTabular::ltType ltt;
bool use_empty;
bool row_set = tabular.getRowOfLTHead(row, ltt);
headeroncheck_->set_active(row_set);
lyxerr << "row_set for header = " << row_set << "\n";
if (ltt.set) {
headerupperborderdoublecheck_->set_active(ltt.topDL);
headerlowerborderdoublecheck_->set_active(ltt.bottomDL);
use_empty = true;
} else {
headerupperborderdoublecheck_->set_active(false);
headerlowerborderdoublecheck_->set_active(false);
/*headerupperborderdoublecheck_->set_sensitive(false);
headerlowerborderdoublecheck_->set_sensitive(false);*/
firstheaderemptycheck_->set_active(false);
/*firstheaderemptycheck_->set_sensitive(false);*/
use_empty = false;
}
row_set = tabular.getRowOfLTFirstHead(row, ltt);
firstheaderoncheck_->set_active(row_set);
if (ltt.set && (!ltt.empty || !use_empty)) {
firstheaderupperborderdoublecheck_->set_active(ltt.topDL);
firstheaderlowerborderdoublecheck_->set_active(ltt.bottomDL);
} else {
firstheaderupperborderdoublecheck_->set_active(false);
firstheaderlowerborderdoublecheck_->set_active(false);
/*firstheaderupperborderdoublecheck_->set_sensitive(false);
firstheaderlowerborderdoublecheck_->set_sensitive(false);*/
if (use_empty) {
firstheaderemptycheck_->set_active(ltt.empty);
//if (ltt.empty)
//firstheaderoncheck_->set_sensitive(false);
}
}
row_set = tabular.getRowOfLTFoot(row, ltt);
footeroncheck_->set_active(row_set);
if (ltt.set) {
footerupperborderdoublecheck_->set_active(ltt.topDL);
footerlowerborderdoublecheck_->set_active(ltt.bottomDL);
use_empty = true;
} else {
footerupperborderdoublecheck_->set_active(false);
footerlowerborderdoublecheck_->set_active(false);
//footerupperborderdoublecheck_->set_sensitive(false);
//footerlowerborderdoublecheck_->set_sensitive(false);
lastfooteremptycheck_->set_active(false);
//lastfooteremptycheck_->set_sensitive(false);
use_empty = false;
}
row_set = tabular.getRowOfLTLastFoot(row, ltt);
lastfooteroncheck_->set_active(row_set);
if (ltt.set && (!ltt.empty || !use_empty)) {
lastfooterupperborderdoublecheck_->set_active(ltt.topDL);
lastfooterlowerborderdoublecheck_->set_active(ltt.bottomDL);
} else {
lastfooterupperborderdoublecheck_->set_active(false);
lastfooterlowerborderdoublecheck_->set_active(false);
//lastfooterupperborderdoublecheck_->set_sensitive(false);
//lastfooterlowerborderdoublecheck_->set_sensitive(false);
if (use_empty) {
lastfooteremptycheck_->set_active(ltt.empty);
//if (ltt.empty)
//lastfooteroncheck_->set_sensitive(false);
}
}
}
updating_ = false;
updateSensitivity();
updateSpecialRowsSensitivity();
}
@ -191,9 +328,67 @@ void GTabular::allBorders(bool borders)
void GTabular::updateSensitivity()
{
bool specifywidth = specifywidthcheck_->get_active();
if (updating_)
return;
bool const specifywidth = specifywidthcheck_->get_active();
bool const multicol = multicolcheck_->get_active();
widthlength_->set_sensitive(specifywidth);
vertaligncombo_->set_sensitive(specifywidth);
updateHorzAlignCombo(!multicol && specifywidth);
}
void GTabular::updateHorzAlignCombo(bool extraoption)
{
if (updating_)
return;
//FIXME: check if we really need to completely rewrite combo data
// Deprecated in favor of clear_items in gtkmm >= 2.8
int const oldselection = horzaligncombo_->get_active_row_number();
horzaligncombo_->clear();
horzaligncombo_->append_text(_("Left"));
horzaligncombo_->append_text(_("Center"));
horzaligncombo_->append_text(_("Right"));
if (extraoption)
horzaligncombo_->append_text(_("Block"));
if (oldselection < horzaligncombo_->get_model()->children().size())
horzaligncombo_->set_active(oldselection);
else
horzaligncombo_->set_active(0);
}
void GTabular::updateSpecialRowsSensitivity()
{
if (updating_)
return;
bool const header = headeroncheck_->get_active();
bool const footer = footeroncheck_->get_active();
bool const firstheader = firstheaderoncheck_->get_active();
bool const firstheaderempty = firstheaderemptycheck_->get_active();
bool const lastfooter = lastfooteroncheck_->get_active();
bool const lastfooterempty = lastfooteremptycheck_->get_active();
firstheaderemptycheck_->set_sensitive(!firstheader);
lastfooteremptycheck_->set_sensitive(!lastfooter);
headerupperborderdoublecheck_->set_sensitive(header);
headerlowerborderdoublecheck_->set_sensitive(header);
footerupperborderdoublecheck_->set_sensitive(footer);
footerlowerborderdoublecheck_->set_sensitive(footer);
firstheaderoncheck_->set_sensitive(!firstheaderempty);
firstheaderupperborderdoublecheck_->set_sensitive(firstheaderempty || firstheader);
firstheaderlowerborderdoublecheck_->set_sensitive(firstheaderempty || firstheader);
lastfooteroncheck_->set_sensitive(!lastfooterempty);
lastfooterupperborderdoublecheck_->set_sensitive(lastfooterempty || lastfooter);
lastfooterlowerborderdoublecheck_->set_sensitive(lastfooterempty || lastfooter);
bool const longtable = longtablecheck_->get_active();
specialrowstable_->set_sensitive(longtable);
pagebreakcheck_->set_sensitive(longtable);
}
} // namespace frontend

View File

@ -44,6 +44,8 @@ private:
void onInput();
void allBorders(bool borders);
void updateSensitivity();
void updateSpecialRowsSensitivity();
void updateHorzAlignCombo(bool extraoption);
bool updating_;
@ -52,7 +54,7 @@ private:
Gtk::SpinButton *cellcolspin_;
// **** Table tab ****
Gtk::ComboBox *horzaligncombo_;
Gtk::ComboBoxText *horzaligncombo_;
Gtk::ComboBox *vertaligncombo_;
Gtk::CheckButton *specifywidthcheck_;
GtkLengthEntry *widthlength_;
@ -69,6 +71,27 @@ private:
Gtk::CheckButton *multicolcheck_;
// **** Longtable tab ****
Gtk::CheckButton *longtablecheck_;
Gtk::CheckButton *pagebreakcheck_;
Gtk::Table *specialrowstable_;
Gtk::CheckButton *headeroncheck_;
Gtk::CheckButton *footeroncheck_;
Gtk::CheckButton *firstheaderoncheck_;
Gtk::CheckButton *lastfooteroncheck_;
Gtk::CheckButton *firstheaderemptycheck_;
Gtk::CheckButton *lastfooteremptycheck_;
Gtk::CheckButton *headerupperborderdoublecheck_;
Gtk::CheckButton *footerupperborderdoublecheck_;
Gtk::CheckButton *firstheaderupperborderdoublecheck_;
Gtk::CheckButton *lastfooterupperborderdoublecheck_;
Gtk::CheckButton *headerlowerborderdoublecheck_;
Gtk::CheckButton *footerlowerborderdoublecheck_;
Gtk::CheckButton *firstheaderlowerborderdoublecheck_;
Gtk::CheckButton *lastfooterlowerborderdoublecheck_;
};
} // namespace frontend

View File

@ -54,7 +54,7 @@
<child>
<widget class="GtkVBox" id="vbox1">
<property name="border_width">12</property>
<property name="border_width">2</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">12</property>
@ -206,24 +206,6 @@
</packing>
</child>
<child>
<widget class="GtkComboBox" id="HorizontalAlignment">
<property name="visible">True</property>
<property name="items" translatable="yes">Left
Center
Right</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">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="VerticalAlignment">
<property name="visible">True</property>
@ -351,6 +333,26 @@ Bottom</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="HorizontalAlignment">
<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="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
</widget>
</child>
</widget>
@ -747,7 +749,7 @@ Bottom</property>
<property name="spacing">6</property>
<child>
<widget class="GtkCheckButton" id="checkbutton1">
<widget class="GtkCheckButton" id="LongTable">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Make this table a long table</property>
@ -766,7 +768,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton2">
<widget class="GtkCheckButton" id="PageBreak">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Page break on selected row</property>
@ -822,7 +824,68 @@ Bottom</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkTable" id="table1">
<widget class="GtkVBox" id="vbox6">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<widget class="GtkHBox" id="hbox7">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<widget class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="stock">gtk-info</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">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label21">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;i&gt;The following options allow you to use the currently selected row as a header and/or footer for the table&lt;/i&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">True</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>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkTable" id="SpecialRows">
<property name="visible">True</property>
<property name="n_rows">5</property>
<property name="n_columns">8</property>
@ -999,7 +1062,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton3">
<widget class="GtkCheckButton" id="HeaderOn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">On</property>
@ -1021,7 +1084,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton6">
<widget class="GtkCheckButton" id="FirstHeaderOn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">On</property>
@ -1043,7 +1106,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton7">
<widget class="GtkCheckButton" id="FooterOn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">On</property>
@ -1065,7 +1128,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton8">
<widget class="GtkCheckButton" id="LastFooterOn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">On</property>
@ -1087,7 +1150,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton9">
<widget class="GtkCheckButton" id="HeaderUpperBorderDouble">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Double</property>
@ -1109,7 +1172,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton10">
<widget class="GtkCheckButton" id="FirstHeaderUpperBorderDouble">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Double</property>
@ -1131,7 +1194,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton11">
<widget class="GtkCheckButton" id="FooterUpperBorderDouble">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Double</property>
@ -1153,7 +1216,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton12">
<widget class="GtkCheckButton" id="LastFooterUpperBorderDouble">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Double</property>
@ -1175,7 +1238,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton13">
<widget class="GtkCheckButton" id="LastFooterLowerBorderDouble">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Double</property>
@ -1197,7 +1260,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton14">
<widget class="GtkCheckButton" id="FooterLowerBorderDouble">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Double</property>
@ -1219,7 +1282,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton15">
<widget class="GtkCheckButton" id="FirstHeaderLowerBorderDouble">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Double</property>
@ -1241,29 +1304,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton16">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Double</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">7</property>
<property name="right_attach">8</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="GtkCheckButton" id="checkbutton4">
<widget class="GtkCheckButton" id="FirstHeaderEmpty">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Empty</property>
@ -1285,7 +1326,7 @@ Bottom</property>
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton5">
<widget class="GtkCheckButton" id="LastFooterEmpty">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Empty</property>
@ -1344,6 +1385,35 @@ Bottom</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="HeaderLowerBorderDouble">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Double</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">7</property>
<property name="right_attach">8</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>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>