2007-02-25 Don Allingham <don@gramps-project.org>
* src/DataViews/__init__.py: Add NoteView * src/DataViews/_NoteView.py: Added * src/Config/_GrampsConfigKeys.py: Added new keys to handle note dialog width * src/Editors/__init__.py: Add _EditNote.py * src/Editors/_EditNote.py: Added * src/DisplayTabs/_NoteTab.py: Updated to the new list format * src/GrampsWidgets.py: Add checkbox support * src/glade/gramps.glade: Added edit_note * data/gramps.schemas.in: new keys svn: r8240
This commit is contained in:
parent
7ee2ff3f5c
commit
18984b840e
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
||||
2007-02-25 Don Allingham <don@gramps-project.org>
|
||||
* src/DataViews/__init__.py: Add NoteView
|
||||
* src/DataViews/_NoteView.py: Added
|
||||
* src/Config/_GrampsConfigKeys.py: Added new keys to handle note dialog
|
||||
width
|
||||
* src/Editors/__init__.py: Add _EditNote.py
|
||||
* src/Editors/_EditNote.py: Added
|
||||
* src/DisplayTabs/_NoteTab.py: Updated to the new list format
|
||||
* src/GrampsWidgets.py: Add checkbox support
|
||||
* src/glade/gramps.glade: Added edit_note
|
||||
* data/gramps.schemas.in: new keys
|
||||
|
||||
2007-02-25 Brian Matherly <brian@gramps-project.org>
|
||||
* src/plugins/AncestorChart2.py: Fix index error
|
||||
|
||||
|
@ -297,6 +297,30 @@
|
||||
</locale>
|
||||
</schema>
|
||||
|
||||
<schema>
|
||||
<key>/schemas/apps/gramps/interface/note-height</key>
|
||||
<applyto>/apps/gramps/interface/note-height</applyto>
|
||||
<owner>gramps</owner>
|
||||
<type>int</type>
|
||||
<default>500</default>
|
||||
<locale name="C">
|
||||
<short>Height of the note editor interface.</short>
|
||||
<long>Specifies the height of the note editor interface.</long>
|
||||
</locale>
|
||||
</schema>
|
||||
|
||||
<schema>
|
||||
<key>/schemas/apps/gramps/interface/note-width</key>
|
||||
<applyto>/apps/gramps/interface/note-width</applyto>
|
||||
<owner>gramps</owner>
|
||||
<type>int</type>
|
||||
<default>700</default>
|
||||
<locale name="C">
|
||||
<short>Width of the note editor interface.</short>
|
||||
<long>Specifies the width of the note editor interface.</long>
|
||||
</locale>
|
||||
</schema>
|
||||
|
||||
<schema>
|
||||
<key>/schemas/apps/gramps/interface/person-height</key>
|
||||
<applyto>/apps/gramps/interface/person-height</applyto>
|
||||
|
@ -49,6 +49,8 @@ HEIGHT = ('interface','height', 1)
|
||||
WIDTH = ('interface','width', 1)
|
||||
FAMILY_HEIGHT = ('interface','family-height', 1)
|
||||
FAMILY_WIDTH = ('interface','family-width', 1)
|
||||
NOTE_HEIGHT = ('interface','note-height', 1)
|
||||
NOTE_WIDTH = ('interface','note-width', 1)
|
||||
PERSON_HEIGHT = ('interface','person-height', 1)
|
||||
PERSON_WIDTH = ('interface','person-width', 1)
|
||||
EVENT_HEIGHT = ('interface','event-height', 1)
|
||||
@ -148,6 +150,8 @@ default_value = {
|
||||
WIDTH : 775,
|
||||
FAMILY_HEIGHT : 500,
|
||||
FAMILY_WIDTH : 700,
|
||||
NOTE_HEIGHT : 500,
|
||||
NOTE_WIDTH : 700,
|
||||
PERSON_HEIGHT : 550,
|
||||
PERSON_WIDTH : 750,
|
||||
EVENT_HEIGHT : 450,
|
||||
|
@ -48,6 +48,7 @@ import Config
|
||||
from DdTargets import DdTargets
|
||||
from QuestionDialog import QuestionDialog, ErrorDialog
|
||||
from Filters.SideBar import NoteSidebarFilter
|
||||
from Editors import EditNote
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -109,9 +110,6 @@ class NoteView(PageView.ListView):
|
||||
self.add_action('FilterEdit', None, _('Note Filter Editor'),
|
||||
callback=self.filter_editor,)
|
||||
|
||||
# def drag_info(self):
|
||||
# return DdTargets.PLACE_LINK
|
||||
|
||||
def column_editor(self, obj):
|
||||
pass
|
||||
# import ColumnOrder
|
||||
@ -168,16 +166,14 @@ class NoteView(PageView.ListView):
|
||||
|
||||
def on_double_click(self, obj, event):
|
||||
handle = self.first_selected()
|
||||
note = self.dbstate.db.get_note_from_handle(handle)
|
||||
note = RelLib.Note()
|
||||
try:
|
||||
#EditPlace(self.dbstate, self.uistate, [], place)
|
||||
print handle
|
||||
EditNote(self.dbstate, self.uistate, [], note)
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
|
||||
def add(self, obj):
|
||||
try:
|
||||
#EditPlace(self.dbstate, self.uistate, [], RelLib.Place())
|
||||
pass
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
@ -226,8 +222,7 @@ class NoteView(PageView.ListView):
|
||||
for handle in mlist:
|
||||
note = self.dbstate.db.get_note_from_handle(handle)
|
||||
try:
|
||||
#EditPlace(self.dbstate, self.uistate, [], place)
|
||||
print handle
|
||||
EditNote(self.dbstate, self.uistate, [], note)
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
|
||||
|
@ -34,7 +34,6 @@ from _EventView import EventView
|
||||
from _SourceView import SourceView
|
||||
from _PlaceView import PlaceView
|
||||
from _MediaView import MediaView
|
||||
#from _MapView import MapView
|
||||
from _RepositoryView import RepositoryView
|
||||
from _NoteView import NoteView
|
||||
|
||||
|
@ -33,9 +33,12 @@ from gettext import gettext as _
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import Spell
|
||||
import Errors
|
||||
|
||||
from DisplayTabs import log
|
||||
from _NoteModel import NoteModel
|
||||
from _EmbeddedList import EmbeddedList
|
||||
from Editors import EditNote
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -69,7 +72,11 @@ class NoteTab(EmbeddedList):
|
||||
return ((1, 0), (1, 1))
|
||||
|
||||
def add_button_clicked(self, obj):
|
||||
pass
|
||||
note = RelLib.Note()
|
||||
try:
|
||||
EditNote(self.dbstate, self.uistate, [], note)
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
|
||||
def add_callback(self, name):
|
||||
self.get_data().append(name)
|
||||
@ -77,9 +84,13 @@ class NoteTab(EmbeddedList):
|
||||
self.rebuild()
|
||||
|
||||
def edit_button_clicked(self, obj):
|
||||
note = self.get_selected()
|
||||
if note:
|
||||
print note
|
||||
handle = self.get_selected()
|
||||
if handle:
|
||||
note = self.dbstate.db.get_note_from_handle(handle)
|
||||
try:
|
||||
EditNote(self.dbstate, self.uistate, [], note)
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
|
||||
def edit_callback(self, name):
|
||||
self.changed = True
|
||||
|
@ -28,6 +28,7 @@ pkgdata_PYTHON = \
|
||||
_EditSecondary.py \
|
||||
_EditSource.py \
|
||||
_EditSourceRef.py \
|
||||
_EditNote.py \
|
||||
_EditUrl.py
|
||||
|
||||
pkgpyexecdir = @pkgpyexecdir@/Editors
|
||||
|
243
src/Editors/_EditNote.py
Normal file
243
src/Editors/_EditNote.py
Normal file
@ -0,0 +1,243 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2000-2006 Donald N. Allingham
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
# $Id$
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Python classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gettext import gettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GTK libraries
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import gtk
|
||||
import pango
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GRAMPS classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import const
|
||||
import Spell
|
||||
import Config
|
||||
from _EditPrimary import EditPrimary
|
||||
from MarkupText import EditorBuffer
|
||||
from GrampsWidgets import *
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# NoteTab
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class EditNote(EditPrimary):
|
||||
|
||||
def __init__(self, state, uistate, track, note, callback=None):
|
||||
"""
|
||||
Creates an EditPerson window. Associates a person with the window.
|
||||
"""
|
||||
EditPrimary.__init__(self, state, uistate, track, note,
|
||||
state.db.get_note_from_handle, callback)
|
||||
|
||||
def empty_object(self):
|
||||
"""
|
||||
Returns an empty Person object for comparison for changes. This
|
||||
is used by the base class (EditPrimary)
|
||||
"""
|
||||
return RelLib.Note()
|
||||
|
||||
def get_menu_title(self):
|
||||
if self.obj.get_handle():
|
||||
title = _('Note') + ': %s' % self.obj.get_gramps_id()
|
||||
else:
|
||||
title = _('New Note')
|
||||
return title
|
||||
|
||||
def _local_init(self):
|
||||
"""
|
||||
Local initialization function. Performs basic initialization,
|
||||
including setting up widgets and the glade interface. This is called
|
||||
by the base class of EditPrimary, and overridden here.
|
||||
"""
|
||||
self.top = gtk.glade.XML(const.gladeFile, "edit_note", "gramps")
|
||||
win = self.top.get_widget("edit_note")
|
||||
self.set_window(win, None, self.get_menu_title())
|
||||
|
||||
width = Config.get(Config.NOTE_WIDTH)
|
||||
height = Config.get(Config.NOTE_HEIGHT)
|
||||
self.window.set_default_size(width, height)
|
||||
|
||||
self.type = self.top.get_widget('type')
|
||||
self.format = self.top.get_widget('format')
|
||||
|
||||
container = self.top.get_widget('container')
|
||||
container.pack_start(self.build_interface())
|
||||
container.show_all()
|
||||
|
||||
def _setup_fields(self):
|
||||
|
||||
self.type_selector = MonitoredDataType(
|
||||
self.top.get_widget("type"),
|
||||
self.obj.set_type,
|
||||
self.obj.get_type,
|
||||
self.db.readonly,
|
||||
)
|
||||
|
||||
self.check = MonitoredCheckbox(
|
||||
self.obj,
|
||||
self.format,
|
||||
self.obj.set_format,
|
||||
self.obj.get_format,
|
||||
)
|
||||
|
||||
def _connect_signals(self):
|
||||
"""
|
||||
Connects any signals that need to be connected. Called by the
|
||||
init routine of the base class (_EditPrimary).
|
||||
"""
|
||||
self.define_ok_button(self.top.get_widget('ok'),self.save)
|
||||
self.define_cancel_button(self.top.get_widget('cancel'))
|
||||
|
||||
def build_interface(self):
|
||||
BUTTON = [(_('Italic'),gtk.STOCK_ITALIC,'<i>i</i>','<Control>I'),
|
||||
(_('Bold'),gtk.STOCK_BOLD,'<b>b</b>','<Control>B'),
|
||||
(_('Underline'),gtk.STOCK_UNDERLINE,'<u>u</u>','<Control>U'),
|
||||
#('Separator', None, None, None),
|
||||
]
|
||||
|
||||
vbox = gtk.VBox()
|
||||
|
||||
self.text = gtk.TextView()
|
||||
self.text.set_accepts_tab(True)
|
||||
# Accelerator dictionary used for formatting shortcuts
|
||||
# key: tuple(key, modifier)
|
||||
# value: widget, to emit 'activate' signal on
|
||||
self.accelerator = {}
|
||||
self.text.connect('key-press-event', self._on_key_press_event)
|
||||
|
||||
if self.obj and self.obj.get_format():
|
||||
self.format.set_active(True)
|
||||
self.text.set_wrap_mode(gtk.WRAP_NONE)
|
||||
else:
|
||||
self.format.set_active(False)
|
||||
self.text.set_wrap_mode(gtk.WRAP_WORD)
|
||||
self.spellcheck = Spell.Spell(self.text)
|
||||
|
||||
self.format.connect('toggled', self.flow_changed)
|
||||
|
||||
scroll = gtk.ScrolledWindow()
|
||||
scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||
scroll.set_shadow_type(gtk.SHADOW_IN)
|
||||
scroll.add(self.text)
|
||||
# FIXME: is this signal called at all
|
||||
scroll.connect('focus-out-event', self.update)
|
||||
|
||||
hbox = gtk.HBox()
|
||||
hbox.set_spacing(0)
|
||||
hbox.set_border_width(0)
|
||||
vbox.pack_start(hbox, False)
|
||||
|
||||
vbox.pack_start(scroll, True)
|
||||
vbox.set_spacing(6)
|
||||
vbox.set_border_width(6)
|
||||
|
||||
self.buf = EditorBuffer()
|
||||
self.text.set_buffer(self.buf)
|
||||
tooltips = gtk.Tooltips()
|
||||
for tip, stock, markup, accel in BUTTON:
|
||||
if markup:
|
||||
button = gtk.ToggleButton()
|
||||
image = gtk.Image()
|
||||
image.set_from_stock(stock, gtk.ICON_SIZE_MENU)
|
||||
button.set_image(image)
|
||||
button.set_relief(gtk.RELIEF_NONE)
|
||||
tooltips.set_tip(button, tip)
|
||||
self.buf.setup_widget_from_xml(button, markup)
|
||||
key, mod = gtk.accelerator_parse(accel)
|
||||
self.accelerator[(key, mod)] = button
|
||||
hbox.pack_start(button, False)
|
||||
else:
|
||||
hbox.pack_start(gtk.VSeparator(), False)
|
||||
|
||||
if self.obj:
|
||||
self.empty = False
|
||||
self.buf.set_text(self.obj.get(markup=True))
|
||||
#log.debug("Text: %s" % self.buf.get_text())
|
||||
else:
|
||||
self.empty = True
|
||||
|
||||
self.buf.connect('changed', self.update)
|
||||
self.buf.connect_after('apply-tag', self.update)
|
||||
self.buf.connect_after('remove-tag', self.update)
|
||||
#self.rebuild()
|
||||
return vbox
|
||||
|
||||
def _on_key_press_event(self, widget, event):
|
||||
#log.debug("Key %s (%d) was pressed on %s" %
|
||||
#(gtk.gdk.keyval_name(event.keyval), event.keyval, widget))
|
||||
key = event.keyval
|
||||
mod = event.state
|
||||
if self.accelerator.has_key((key, mod)):
|
||||
self.accelerator[(key, mod)].emit('activate')
|
||||
return True
|
||||
|
||||
def update(self, obj, *args):
|
||||
if self.obj:
|
||||
start = self.buf.get_start_iter()
|
||||
stop = self.buf.get_end_iter()
|
||||
text = self.buf.get_text(start, stop)
|
||||
self.obj.set(text)
|
||||
else:
|
||||
print "NOTE OBJ DOES NOT EXIST"
|
||||
return False
|
||||
|
||||
def flow_changed(self, obj):
|
||||
if obj.get_active():
|
||||
self.text.set_wrap_mode(gtk.WRAP_NONE)
|
||||
self.obj.set_format(True)
|
||||
else:
|
||||
self.text.set_wrap_mode(gtk.WRAP_WORD)
|
||||
self.obj.set_format(False)
|
||||
|
||||
def save(self, *obj):
|
||||
"""
|
||||
Save the data.
|
||||
"""
|
||||
trans = self.db.transaction_begin()
|
||||
if self.obj.get_handle():
|
||||
self.db.commit_note(self.obj,trans)
|
||||
else:
|
||||
self.db.add_note(self.obj,trans)
|
||||
self.db.transaction_commit(trans, _("Edit Note"))
|
||||
|
||||
if self.callback:
|
||||
self.callback(self.obj)
|
||||
self.close()
|
||||
|
||||
def _cleanup_on_exit(self):
|
||||
(width, height) = self.window.get_size()
|
||||
Config.set(Config.NOTE_WIDTH, width)
|
||||
Config.set(Config.NOTE_HEIGHT, height)
|
||||
Config.sync()
|
@ -18,6 +18,7 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
from _EditNote import *
|
||||
from _EditAddress import *
|
||||
from _EditAttribute import *
|
||||
from _EditEvent import *
|
||||
|
@ -316,7 +316,7 @@ class MonitoredCheckbox:
|
||||
self.obj = obj
|
||||
self.set_val = set_val
|
||||
self.get_val = get_val
|
||||
self.obj.set_active(get_val())
|
||||
self.button.set_active(get_val())
|
||||
|
||||
def _on_toggle(self, obj):
|
||||
self.set_val(obj.get_active())
|
||||
|
@ -14982,4 +14982,184 @@ Very High</property>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget class="GtkDialog" id="edit_note">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes"></property>
|
||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||
<property name="modal">False</property>
|
||||
<property name="default_width">500</property>
|
||||
<property name="default_height">400</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="urgency_hint">False</property>
|
||||
<property name="has_separator">False</property>
|
||||
|
||||
<child internal-child="vbox">
|
||||
<widget class="GtkVBox" id="dialog-vbox25">
|
||||
<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_area25">
|
||||
<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>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="ok">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_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="vbox131">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="container">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkTable" id="table79">
|
||||
<property name="border_width">6</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="n_rows">1</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="label707">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Type</property>
|
||||
<property name="use_underline">False</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="GtkComboBoxEntry" id="type">
|
||||
<property name="visible">True</property>
|
||||
<property name="add_tearoffs">False</property>
|
||||
<property name="has_frame">True</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="GtkCheckButton" id="format">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Preformatted</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">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>
|
||||
</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>
|
||||
|
Loading…
Reference in New Issue
Block a user