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:
		
							
								
								
									
										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> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user