the character dialog

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9016 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Lars Gullik Bjønnes 2004-09-27 18:52:43 +00:00
parent 026310cdb5
commit de8a7a9214
8 changed files with 926 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2004-09-27 John Spray <spray_john@users.sourceforge.net>
* The Character dialog
* Dialogs.C, GCharacter.C, GCharacter.h, Makefile.am, ghelpers.h,
glade/Makefile.am, glade/character.glade
2004-09-27 Lars Gullik Bjonnes <larsbj@gullik.net>
* GXpmBtnTbl.C (construct): use Boost.Assert

View File

@ -57,7 +57,7 @@
#include "FormBox.h"
#include "FormBranch.h"
#include "FormChanges.h"
#include "FormCharacter.h"
#include "GCharacter.h"
#include "FormCitation.h"
#include "FormDocument.h"
#include "FormErrorList.h"
@ -198,8 +198,9 @@ Dialogs::DialogPtr Dialogs::build(string const & name)
dialog->setView(new FormChanges(*dialog));
dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
} else if (name == "character") {
dialog->bc().view(new GBC(dialog->bc()));
dialog->setController(new ControlCharacter(*dialog));
dialog->setView(new FormCharacter(*dialog));
dialog->setView(new GCharacter(*dialog));
dialog->bc().bp(new OkApplyCancelReadOnlyPolicy);
} else if (name == "citation") {
dialog->setController(new ControlCitation(*dialog));

View File

@ -0,0 +1,245 @@
/**
* \file GCharacter.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 "GCharacter.h"
#include "ghelpers.h"
#include "LColor.h"
#include "controllers/frnt_lang.h"
#include "controllers/helper_funcs.h"
#include "support/lstrings.h"
#include <libglademm.h>
using std::vector;
using std::string;
namespace lyx {
namespace frontend {
GCharacter::GCharacter(Dialog & parent)
: GViewCB<ControlCharacter, GViewGladeB>(parent, _("Text Style"), false)
{}
class stringcolumns : public Gtk::TreeModel::ColumnRecord {
public:
stringcolumns()
{
add(name);
}
Gtk::TreeModelColumn<Glib::ustring> name;
};
void GCharacter::PopulateComboBox(Gtk::ComboBox * combo,
vector<string> const & strings)
{
stringcolumns * cols = new stringcolumns;
Glib::RefPtr<Gtk::ListStore> model = Gtk::ListStore::create(*cols);
vector<string>::const_iterator it = strings.begin();
vector<string>::const_iterator end = strings.end();
for(; it != end; ++it){
Gtk::TreeModel::iterator iter = model->append();
Gtk::TreeModel::Row row = *iter;
row[cols->name] = *it;
}
combo->set_model(model);
Gtk::CellRendererText * cell = Gtk::manage(new Gtk::CellRendererText);
combo->pack_start(*cell, true);
combo->add_attribute(*cell,"text",0);
}
void GCharacter::doBuild()
{
string const gladeName = findGladeFile("character");
xml_ = Gnome::Glade::Xml::create(gladeName);
Gtk::Button * button;
// Manage the ok, apply and cancel/close buttons
xml_->get_widget("Ok", button);
setOK(button);
xml_->get_widget("Apply", button);
setApply(button);
xml_->get_widget("Cancel", button);
setCancel(button);
xml_->get_widget("ToggleAll", toggleallcheck_);
//Get combobox addresses
xml_->get_widget("Family", familycombo_);
xml_->get_widget("Series", seriescombo_);
xml_->get_widget("Shape", shapecombo_);
xml_->get_widget("Color", colorcombo_);
xml_->get_widget("Language", languagecombo_);
xml_->get_widget("Size", sizecombo_);
xml_->get_widget("Misc", misccombo_);
//Don't let the user change anything for read only documents
bcview().addReadOnly(familycombo_);
bcview().addReadOnly(seriescombo_);
bcview().addReadOnly(shapecombo_);
bcview().addReadOnly(colorcombo_);
bcview().addReadOnly(languagecombo_);
bcview().addReadOnly(sizecombo_);
bcview().addReadOnly(misccombo_);
bcview().addReadOnly(toggleallcheck_);
//Caption/identifier pairs for the parameters
vector<FamilyPair> const family = getFamilyData();
vector<SeriesPair> const series = getSeriesData();
vector<ShapePair> const shape = getShapeData();
vector<SizePair> const size = getSizeData();
vector<BarPair> const bar = getBarData();
vector<ColorPair> const color = getColorData();
vector<LanguagePair> const language = getLanguageData(true);
// Store the identifiers for later
family_ = getSecond(family);
series_ = getSecond(series);
shape_ = getSecond(shape);
size_ = getSecond(size);
bar_ = getSecond(bar);
color_ = getSecond(color);
lang_ = getSecond(language);
// Load the captions into the comboboxes
PopulateComboBox(familycombo_, getFirst(family));
PopulateComboBox(seriescombo_, getFirst(series));
PopulateComboBox(shapecombo_, getFirst(shape));
PopulateComboBox(sizecombo_, getFirst(size));
PopulateComboBox(misccombo_, getFirst(bar));
PopulateComboBox(colorcombo_, getFirst(color));
PopulateComboBox(languagecombo_, getFirst(language));
/* We use a table so that people with decent size screens don't
* have to scroll. However, this risks the popup being too wide
* for people with small screens, and it doesn't scroll horizontally.
* Hopefully this is not too wide (and hopefully gtk gets fixed).*/
languagecombo_->set_wrap_width(3);
//Load in the current settings
update();
familycombo_->signal_changed().connect(
sigc::mem_fun(*this, &GCharacter::onChange));
seriescombo_->signal_changed().connect(
sigc::mem_fun(*this, &GCharacter::onChange));
shapecombo_->signal_changed().connect(
sigc::mem_fun(*this, &GCharacter::onChange));
sizecombo_->signal_changed().connect(
sigc::mem_fun(*this, &GCharacter::onChange));
misccombo_->signal_changed().connect(
sigc::mem_fun(*this, &GCharacter::onChange));
colorcombo_->signal_changed().connect(
sigc::mem_fun(*this, &GCharacter::onChange));
languagecombo_->signal_changed().connect(
sigc::mem_fun(*this, &GCharacter::onChange));
}
void GCharacter::apply()
{
int pos = familycombo_->get_active_row_number();
controller().setFamily(family_[pos]);
pos = seriescombo_->get_active_row_number();
controller().setSeries(series_[pos]);
pos = shapecombo_->get_active_row_number();
controller().setShape(shape_[pos]);
pos = sizecombo_->get_active_row_number();
controller().setSize(size_[pos]);
pos = misccombo_->get_active_row_number();
controller().setBar(bar_[pos]);
pos = colorcombo_->get_active_row_number();
controller().setColor(color_[pos]);
pos = languagecombo_->get_active_row_number();
controller().setLanguage(lang_[pos]);
bool const toggleall = toggleallcheck_->get_active();
controller().setToggleAll(toggleall);
}
void GCharacter::update()
{
int pos = int(findPos(family_, controller().getFamily()));
familycombo_->set_active(pos);
pos = int(findPos(series_, controller().getSeries()));
seriescombo_->set_active(pos);
pos = int(findPos(shape_, controller().getShape()));
shapecombo_->set_active(pos);
pos = int(findPos(size_, controller().getSize()));
sizecombo_->set_active(pos);
pos = int(findPos(bar_, controller().getBar()));
misccombo_->set_active(pos);
pos = int(findPos(color_, controller().getColor()));
colorcombo_->set_active(pos);
pos = int(findPos(lang_, controller().getLanguage()));
languagecombo_->set_active(pos);
toggleallcheck_->set_active(controller().getToggleAll());
}
void GCharacter::onChange()
{
ButtonPolicy::SMInput activate = ButtonPolicy::SMI_NOOP;
int pos = familycombo_->get_active_row_number();
if (family_[pos] != LyXFont::IGNORE_FAMILY)
activate = ButtonPolicy::SMI_VALID;
pos = seriescombo_->get_active_row_number();
if (series_[pos] != LyXFont::IGNORE_SERIES)
activate = ButtonPolicy::SMI_VALID;
pos = shapecombo_->get_active_row_number();
if (shape_[pos] != LyXFont::IGNORE_SHAPE)
activate = ButtonPolicy::SMI_VALID;
pos = sizecombo_->get_active_row_number();
if (size_[pos] != LyXFont::IGNORE_SIZE)
activate = ButtonPolicy::SMI_VALID;
pos = misccombo_->get_active_row_number();
if (bar_[pos] != IGNORE)
activate = ButtonPolicy::SMI_VALID;
pos = colorcombo_->get_active_row_number();
if (color_[pos] != LColor::ignore)
activate = ButtonPolicy::SMI_VALID;
pos = languagecombo_->get_active_row_number();
if (lang_[pos] != "No change")
activate = ButtonPolicy::SMI_VALID;
bc().input(activate);
}
} // namespace frontend
} // namespace lyx

View File

@ -0,0 +1,71 @@
// -*- C++ -*-
/**
* \file GCharacter.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author John Spray
* Based on version from xforms frontend
*
* Full author contact details are available in file CREDITS.
*/
#ifndef GCHARACTER_H
#define GCHARACTER_H
#include "GViewBase.h"
#include "ControlCharacter.h" // for ControlCharacter enum
struct LColor_color;
namespace lyx {
namespace frontend {
/**
* This class provides a GTK+ implementation of the Character Dialog.
* The character dialog allows users to change the character settings
* in their documents.
*/
class GCharacter
: public GViewCB<ControlCharacter, GViewGladeB > {
public:
///
GCharacter(Dialog &);
private:
/// Apply from dialog
virtual void apply();
/// Build the dialog
virtual void doBuild();
/// Update the dialog.
virtual void update();
void PopulateComboBox(Gtk::ComboBox * combo,
std::vector<std::string> const & strings);
std::vector<LyXFont::FONT_FAMILY> family_;
std::vector<LyXFont::FONT_SERIES> series_;
std::vector<LyXFont::FONT_SHAPE> shape_;
std::vector<LyXFont::FONT_SIZE> size_;
std::vector<FONT_STATE> bar_;
std::vector<LColor_color> color_;
std::vector<std::string> lang_;
Gtk::ComboBox * familycombo_;
Gtk::ComboBox * seriescombo_;
Gtk::ComboBox * shapecombo_;
Gtk::ComboBox * colorcombo_;
Gtk::ComboBox * languagecombo_;
Gtk::ComboBox * sizecombo_;
Gtk::ComboBox * misccombo_;
Gtk::CheckButton * toggleallcheck_;
void GCharacter::onChange();
};
} // namespace frontend
} // namespace lyx
#endif

View File

@ -24,6 +24,8 @@ libgtk_la_SOURCES = \
GAboutlyx.h \
GBC.C \
GBC.h \
GCharacter.C \
GCharacter.h \
GLyXKeySym.C \
GLyXKeySym.h \
GMathDelim.C \
@ -90,7 +92,6 @@ xforms_objects = \
../xforms/FormBranch.lo \
../xforms/FormBrowser.lo \
../xforms/FormChanges.lo \
../xforms/FormCharacter.lo \
../xforms/FormCitation.lo \
../xforms/FormColorpicker.lo \
../xforms/FormDialogView.lo \

View File

@ -13,6 +13,7 @@
#define GHELPERS_H
#include <string>
#include <vector>
namespace lyx {
namespace frontend {
@ -22,6 +23,17 @@ namespace frontend {
*/
std::string const findGladeFile(std::string const & name);
template<class A>
typename std::vector<A>::size_type
findPos(std::vector<A> const & vec, A const & val)
{
typename std::vector<A>::const_iterator it =
std::find(vec.begin(), vec.end(), val);
if (it == vec.end())
return 0;
return std::distance(vec.begin(), it);
}
} // namespace frontend
} // namespace lyx

View File

@ -4,8 +4,14 @@ MAINTAINERCLEANFILES = $(srcdir)/Makefile.in
GLADE_DIR = glade
GLADE_FILES = \
aboutlyx.glade mathDelim.glade mathPanel.glade \
print.glade search.glade tableCreate.glade text.glade \
aboutlyx.glade \
character.glade \
mathDelim.glade \
mathPanel.glade \
print.glade \
search.glade \
tableCreate.glade \
text.glade \
url.glade
EXTRA_DIST = ${GLADE_FILES}

View File

@ -0,0 +1,579 @@
<?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">Character</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="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="Apply">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-apply</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">-10</property>
</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="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkFrame" id="frame3">
<property name="border_width">3</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="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">12</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkTable" id="table1">
<property name="visible">True</property>
<property name="n_rows">6</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">4</property>
<property name="column_spacing">0</property>
<child>
<widget class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="label" translatable="yes">_Family:</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="mnemonic_widget">Family</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="label5">
<property name="visible">True</property>
<property name="label" translatable="yes">_Series</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="mnemonic_widget">Series</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="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="label" translatable="yes">S_hape:</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="mnemonic_widget">Shape</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</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="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="label" translatable="yes">_Color</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="mnemonic_widget">Color</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label8">
<property name="visible">True</property>
<property name="label" translatable="yes">_Language:</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="mnemonic_widget">Language</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="ToggleAll">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Toggle all</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">1</property>
<property name="right_attach">2</property>
<property name="top_attach">5</property>
<property name="bottom_attach">6</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="Family">
<property name="visible">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="x_padding">4</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="Series">
<property name="visible">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_padding">4</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="Shape">
<property name="visible">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_padding">4</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="Color">
<property name="visible">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_padding">4</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="Language">
<property name="visible">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="x_padding">4</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Character&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>
<child>
<widget class="GtkVSeparator" id="vseparator1">
<property name="visible">True</property>
</widget>
<packing>
<property name="padding">3</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkFrame" id="frame1">
<property name="border_width">3</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">6</property>
<property name="bottom_padding">6</property>
<property name="left_padding">12</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="label" translatable="yes">Si_ze:</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="mnemonic_widget">Size</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="Size">
<property name="visible">True</property>
</widget>
<packing>
<property name="padding">3</property>
<property name="expand">True</property>
<property name="fill">True</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;Never Toggled&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">False</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkFrame" id="frame2">
<property name="border_width">3</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="alignment2">
<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">6</property>
<property name="left_padding">12</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">0</property>
<child>
<widget class="GtkLabel" id="label10">
<property name="visible">True</property>
<property name="label" translatable="yes">_Misc:</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">1</property>
<property name="mnemonic_widget">Misc</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="Misc">
<property name="visible">True</property>
</widget>
<packing>
<property name="padding">3</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Always Toggled&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">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>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>