messages_context_help.py
Nov 25, 2022 3:58:31 GMT -8
Post by Uncle Buddy on Nov 25, 2022 3:58:31 GMT -8
<drive>:\treebard\messages_context_help.py Last Changed 2024-07-25
# messages_context_help.py
import dev_tools as dt
''' Store strings used as messages in right-click context help menus. The
right-click menu or rcm code is ripe for improvement.
'''
# CUSTOM MESSAGES USED IN ONE PLACE:
# rcm_widgets = (self.content, self.header, self.radnew)
place_dupes_help_msg = (
("Places which you've researched a lot will be used over and over. When a new place is made, some of its enclosing places might have already been entered. Treebard is careful to keep each of these places separate so your French ancestors don't find themselves living in Paris, Texas. I'm sure that Paris, Texas is a fine place to live, but we aim for accuracy in Treebard design. We also aim for convenience, but generally accuracy trumps convenience.\n\nYou'll be happy that this dialog does exist when you type a 'p' and 'Paris, Lamar County, Texas, United States of America' fills in after one character with the right Paris.\n\nAll but the top selection in this dialog will refer to places you\'ve already entered, with examples given for each place so you can tell them apart without looking up ID numbers.\n\nWhen a new place is created, Treebard creates a timestamp and saves it as a hint. This feature can be improved to make the place hint customizable. For example, if you have two separate countries named Israel in order to delineate ancient and modern Israel, hints could be used to tell you which is which when this dialog comes up.\n\n Sorry for the inconvenience, but this dialog will come up whenever you add a new place, and nobody apologized to me when my Texan ancestors found themselves living in the shadow of the Eiffel Tower. It was because of this almost insurmountable inconvenience that I vowed to my ancestors that I would create a Better Genealogy Software so that software developers would know what genealogists expect from them.\n\nThe only reason that Treebard's places are more complicated than other geniewares' places is to match the complexity of places in the real world.",
'New & Duplicate Places Dialog: Use Existing Place Option'),
('This dialog will come up when entering new places so that two places with the same name will be treated as two separate places. For example, there are many places named "Paris" and Treebard tracks each of them separately. To do this, Treebard gives separate IDs not only to each abstract place, but also to each name for each place.\n\nChains of comma-separated place names will fill in automatically and accurately because of this feature; you only have to type the first few characters to use a long place name that\'s previously been entered.',
'New & Duplicate Places Dialog: Header'),
("Select this option if you are trying to make a new place by this name. If it's the first place by this name, only this option will appear.",
"New & Duplicate Places Dialog: New Place Selector"),)
# rcm_widgets = (
# self.note_header, self.note.text, self.toc_head, self.linker, radframe,
# self.order)
notes_dlg_help_msg = (
('', ''),
("Type or paste text of any length. The Particulars column in the events table can hold one short note, whereas this notes field can be used for any amount of detail. On the events table, in the row pertaining to a given event or attribute, the button in the Notes column will read '...' if any notes exist for that event or attribute. Clicking a blank button will open the notes dialog so the first note can be created.",
"notes dialog: Note Input"),
("", ""),
("Each note can be linked to any number of elements. If you open the notes dialog by clicking a button in the NOTES row of the events table, assertions table, or names table, the notes you create in that dialog will be automatically linked to the element corresponding to the row that the note button was in.",
"Notes Dialog: Link Current Note to Elements"),
("", ""),
("",""),
)
# rcm_widgets = (self.name_input, self.name_type_input.entry,
# self.gender_input.entry, self.image_input.entry,
# autosort, self.order_frm)
person_add_help_msg = (
("If you came to this dialog by way of an input where you've already entered the name of a person that is new to the tree, the name you entered will have already filled into the input field automatically. Otherwise, you can enter any name you want into the field if it's blank, or you can change what was auto-filled. This is the full name as seen in your source, complete with the correct capitalization and spelling, the way you want to see it stored and displayed. Please do not use ALL CAPS unless the name is correctly written that way in real life. All-caps SURNAME is a device left over from the days of the typewriter, when methods for differentiating among data were extremely limited. Treebard won't try to stop you, but if you enter a surname in ALL CAPS, it will be displayed that way everywhere.",
'New Person Dialog: Full Name Input'),
("Treebard classifies all names by type. When entering a name, select the right type here, such as 'birth name', 'stage name', etc. You can choose any of the person's names as their display name in the names tab. In some parts of the app, Treebard will denote the name by type so it will not be mistaken for a birth name. The autofill entry at the top of the program for changing the current person's name accepts any name that's been entered, including nicknames, identification numbers etc. Please consider not using words such as 'unknown' when a name is not known. It's better to use some sort of punctuation such as '_________' or '?', and you can experiment with leaving part of a name blank, for example 'Mary _____', since Treebard will think 'unknown' is a person's name and behave accordingly. In the SETTINGS tab of the main app, you can tell Treebard how to name auto-created partners when a couple event is made. Change auto-created names like any other name, by switching the named person to the current person and going to the names tab.\n\nUnlike other software, Treebard does not provide fields for First Name, Middle Name, and Last Name. These categories don't apply to all cases, even in the countries where this basic scheme is typically used. Some people have two or more 'middle names'. Then there are countries such as Iceland and China where the 'first middle last' scheme is completely wrong. It's correct to input the full name as a full name, in the order in which it is normally displayed. Don't put the surname first unless the person lived in a country where surnames are written first. As for how a name will be alphabetized, see the AUTOSORT button's help topic for that.\n\nAnother reason Treebard doesn't try to track First, Middle and Last names is that it makes it impossible to write code that accomodates all cases, due to the vast abundance of cultures where this scheme does not apply.\n\nIn the person search dialog, which is opened by pressing the WHO button, typing any three characters that exist consecutively in any name will show the persons whose names have those three characters in a row. Typing more characters will filter down the results.",
'New Person Dialog: Name Type Input'),
("Treebard is not in the political correctness business, but we do recognize that others will have certain preferences, and we have no argument with that. Any attempt to please anybody in these tumultuous times of changing gender roles will lead only to displeasing everyone else. We expect current trends to change and we don't design our historical data app around modern anything. So we have settled on the following policy.\n\nThe parents are never assumed to be married. Anyone of any gender can adopt a child with a partner of any gender, or marry anyone of any gender. Treebard performs no code logic based on gender except to decide who the biological parents of a child are. We will provide the following gender categories: female, male, unknown, and other. Persons input without a gender designation will be designated 'unknown' gender by default. You are allowed to input a female as biological father if you want, etc.",
'New Person Dialog: Gender Input'),
("Each person who has linked images will have a main image or display image. If there's only one image provided, it will automatically be designated the display image. Treebard suggests that each person in a tree could be provided with a vintage photo of a place where that person lived, if there are no photos of the person available. Old photos of every place in the world are available online, for example the Library of Congress website which has a wealth of public domain images. For persons with no linked images, Treebard has old drawings and photos of vintage cameras which are used by default if you don't provide an image for a person. In the MEDIA tab, you can provide your own default images and use them instead, or you can elect to use no image when none is available. The display image is the one that shows in a tabbed frame on the top right side of the PERSON tab. If no image is available, the do list tab will automatically be shown, but if any image is available, the images tab will be shown by default. The PLACES tab and SOURCES tab also have image galleries with default images which work similarly.",
'New Person Dialog: Main Image Input'),
("The right way to alphabetize names varies from culture to culture. For example, a surname like 'van Dyke' will be alphabetized by 'V' in the Netherlands but by 'D' in the USA. Most genealogy software ignores this sort of distinction.\n\nTreebard uniquely recognizes the need for a feature whereby the tree author can tell the program exactly how to alphabetize a name. Instead of pretending that the whole world follows the typical western tradition of First, Middle, Last Name, Treebard lets you enter a full name as a single string of characters, in the order that the name parts are normally used. But when it comes to how the name should be alphabetized, Treebard can only guess using the typical western format. This order (last, first, middle) will automatically fill into the widget to the right of the AUTOSORT button when you press the button. If you change the contents of the full name input, you can click the AUTOSORT button to change what's shown in the sorting area. If the right order is shown, just Tab on to the OK button. Otherwise, you can type anything you want to the right of the AUTOSORT button.",
'New Person Dialog: AUTOSORT button'),
("If the widget to the right of the AUTOSORT button doesn't display the correct order for alphabetizing a name, the input to the right of the AUTOSORT button can be changed to anything you want. This input should be whatever Treebard will use to alphabetize the current person's name.",
'New Person Dialog: Name Ordering'))
# rcm_widgets = (
# self.current_person_input, person_change, person_search,
# self.top_pic_button, self.do_list.do_list_frame,
# self.do_list.item_input, self.events_table.conclusion_input,
# self.nukefam_table.parents_table, self.nukefam_table.progeny_table,
# self.nukefam_table.pa_input, self.nukefam_table.ma_input,
# self.nukefam_table.new_partner_input, self.nukefam_table.new_child_input,
# self.nukefam_table.partner_linker,
# self.att.new_event_input, self.fontpicker.output_sample,
# self.fontpicker.font_size, self.fontpicker.cbo.entry,
# self.fontpicker.apply_button,
# colorizer.header, colorizer.current_display,
# colorizer.copy_button, colorizer.apply_button,
# colorizer.add_button, colorizer.bg1, colorizer.fg1,
# self.events_table.headers[0], self.events_table.headers[1],
# self.events_table.headers[2], self.events_table.headers[3],
# self.events_table.headers[4], self.events_table.headers[5],
# self.events_table.headers[6], self.events_table.headers[7],
# self.date_options.tester_head,
# self.date_options.date_test['Date Input I'],
# self.date_options.date_test['Date Input II'],
# self.date_options.date_test['Date Input III'],
# self.date_options.pref_head,
# self.date_options.prefcombos['General'].entry,
# self.date_options.prefcombos['Estimated'].entry,
# self.date_options.prefcombos['Approximate'].entry,
# self.date_options.prefcombos['Calculated'].entry,
# self.date_options.prefcombos['Before/After'].entry,
# self.date_options.prefcombos['Epoch'].entry,
# self.date_options.prefcombos['Julian/Gregorian'].entry,
# self.date_options.prefcombos['From...To...'].entry,
# self.date_options.prefcombos['Between...And...'].entry,
# self.date_options.submit, self.date_options.revert,
# media_tab.add_input, media_tab.add_caption, media_tab.image_type,
# media_tab.link_input, media_tab.radframe, media_tab.ask_main_image,
# media_tab.no_image, media_tab.user_input, media_tab.reset)
main_help_msg = (
("Use this field to change the current person (the person whose information is displayed in the PERSON tab) to a person who exists in the tree or to a new person who you want to add to the tree. When you start typing, Treebard will try to guess which person you want based on what you type. If Treebard guesses right, click the OK button. You can enter any of the person's names, such as a nickname or pseudonym. If you type a name that Treebard doesn't recognize, the add person dialog will open.\n\nYou can also enter a person's unique Treebard ID number if you know it, preceded by the number sign: #679. If you don't know the ID number, you can press the button that says 'WHO?'. The person search dialog will open, and you can use it to search for the person you tried to enter, for example if you forgot how their name starts or how it was spelled.",
"Person Tab: Change Current Person Input"),
("Pressing this button will change the current person, i.e. the person displayed on the PERSON tab and names tab. If the name is not known to Treebard, the new person dialog will open. If you know that the ID number of the person you want to change to is 422, just type #422 and press OK. The current person will change to the person that has that ID number.",
"Person Tab: Change Current Person OK Button"),
("When typing into the main person entry input at the top of the app, which is used to change the current person, you have to type a name or ID number exactly as stored in the database, but the search dialog works differently. To search a name, press the button that says 'WHO?'. If a name is already in the main person input widget, that name will automatically fill into the input at the top of the search dialog, but you can change it or delete it and start over. (July 2024: delete the last character of the auto-filled name in the search dialog for this slightly unpolished function to put results in the table below.) For this input, you don't have to know the whole name, just some part of it, or some part of any alternative name the person has. For example, if the person has a prisoner number and you happen to remember it had a double 8 in it, just type a double 8, and the results table will display a row for the right person. This also works for Treebard person ID numbers (July 2024: ID numbers with at least 3 digits), if you remember a person's Treebard ID number. But usually this dialog will be used to find unknown ID numbers when you only remember part of a name or when there's more than one person with the same exact name but you don't know which one you want. The results table shows not only ID numbers and names, but also birth and death dates, as well as parents' names, if they exist in the database.",
"Person Tab: Person Search Button"),
("The display image for each person is the one that is displayed on the PERSON tab. If you click the image, a gallery will open to show the rest of the person's stored images, if any. In this gallery there is a radio button under each thumbnail image which, if selected, will change that person's display image to the selected image. If the person has no linked images, and you choose to not use the default images that come with Treebard or provide default images of your own (in the MEDIA tab), the images tab will not open by default when you change the current person; instead the do list tab will open by default.",
"Person Tab: Current Person Main Image"),
("This area lists the to-do items you record in regards to the app as a whole. Your do list will be the same in every tree and in the PROJECTS tab of the main app. Each item can be prioritized from 10.0 to 1.0 (lowest to highest) and will be sorted accordingly.",
"To Do List: List Items"),
("Type new to do list items here and use the slider to indicate the priority of the item from lowest to highest (10.0 to 1.0), then press the ADD button. To delete one or more items, double click each item to be deleted to highlight it, and press the delete key on the keyboard. Highlighted items will be deleted. To unhighlight an item, double-click it again. To change the priority of an item, create a new item with the same name and delete the old one.",
"To Do List: Add Items"),
("The new event or attribute input fills in automatically with values from a list of event types that includes both events and attributes. A new blank row of conclusions--an 'event'--will be created in the events table when you press the button to the right of the input field.\n\nThe events table on the PERSON tab contains both so-called 'events' (dated events) and so-called 'attributes' (undated events). This is a case of somewhat arbitrarily having to draw the line somewhere, so rows on the events table can be sorted by date, and undated rows can be sorted alphabetically, in the same table, but shown at the bottom of the table.",
"Person Tab: New Event or Attribute Input"),
("Treebard tries to show the current person's whole life story, within reason, in a single place on the app. We want to present people as they were: people with life stories, not empty names, dates and places that just drag data around with them in scattered, unconnected containers that have to be opened up one at a time. As part of our goal of making a life story instantly available from one location in the app, the current person's entire nuclear family is summarized in the current PERSON tab.\n\nAt the top left section of the PERSON tab is the nuclear families table. Here you see all the current person's spouses and partners at once, with the children belonging to each partnership listed under each partner. Treebard not only shows the male and female couple that produced the current person biologically, but equally as important, if you like, under the biological parents are listed foster parents, adoptive parents, and guardians. Any of these three categories of alternative parents can be listed as roles instead of parents (see roles dialog) depending on how you want to regard their role in the family. In either case, the alternative parents are recorded as full-fledged members of the family tree, but to see the roles you have to open a roles dialog. Roles dialogs are linked to rows in the events table.\n\nEach person in the nuclear families table is cross-referenced to a birth, adoption, fosterage, guardianship, offspring, or marital event in the EVENTS column of the events table right below the families table. You can point at an 'offspring' label, for example, and a tooltip will open to show which child in the families table is being referred to. Similarly, there will be tooltips for the names of parents, foster parents, spouses, etc. when you point to parentage or couple events in the EVENTS column of the events table. So you never have to guess which person in the families table a multi-person event refers to.",
"Nuclear Families Table: Parents Area"),
("Below the parents area in the nuclear families table is the partners and children area. Here you'll find every partner and spouse you've recorded for the current person as well as the children which that partner had with the current person. Treebard lists here the partners that have participated in marital events from marriage to divorce and everything in between; partners that have added children to the current person's nuclear family, and persons who you've added as partners whether or not there were any marital events or children.\n\nEach partner's children with the current person are indented under that partner's name. Children are sorted by their birth date, if it's available. Partners are sorted by event dates, if available. Child rows include inputs to add and edit the child's birth date, and death date. The date fields work the same as the date fields elsewhere in Treebard. Available genders are male, female, unknown, and other, all of which can be used in any way you see fit.",
"Nuclear Families Table: Partners & Children Area"),
("The biological father input is meant for the person who got the biological mother pregnant, but as usual you can use this category in any way you prefer since Treebard doesn't come with opinions about gender issues.",
"Nuclear Families Table: Biological Father Input"),
("The biological mother tends to be the person who was pregnant with the child. There is nothing to prevent you from using this field in any way you like, if you have your own ideas about these things, however most people might prefer to add adoption, fosterage, or guardianship events to the events table in order to have Treebard produce inputs for the names of non-biological parents.",
"Nuclear Families Table: Biological Mother Input"),
("Here you can add the name of anyone you decide was partnered with the current person. The name will appear in the families table and can be selected in order to add children to that partnership with the next button below.",
"Nuclear Families Table: Add Partner Input"),
("To add a child to an existing partner of the current person, select the partner and press this button. To add a child when you don't know the partner's name, you can add a partner name placeholder such as '_____' or '???' in the ADD PARTNER field above, which will create an unnamed person in the tree with an ID number, and you can add children to that partner. Alternatively you can create the child independently with the big + icon on the icon menu or the ADD PERSON command in the ELEMENTS menu, then make that person the current person, and add the one partner you do know as a parent to the newly created child.\n\nTo make any person in the families table the current person, CTRL+CLICK their name. To unlink a person from the family shown without deleting them from the tree, delete their name from the field their name is in and tab or click out of the field. To completely delete a person from the tree along with all their links (but not the elements they're linked to), make the deletable person the current person and use the ELEMENTS menu to delete the current person.",
"Nuclear Families Table: Add Child Input"),
("Before you press the big long button that says LINK SELECTED PARTNER..., select the partner that you'd like to link to any existing couple event in the events table below. All the couple events in the EVENTS column of the events table will be highlighted, and you can just click the one you want to link the partner to. You can change your mind as many times as you want before pressing the little OK button to the right of the big long button, and you can press the big long button as many times as you want to highlight the couple events. Nothing is saved to the database until you press OK. After that you can still change your mind and link the event to a different partner in the same way. To just unlink a partner from an event, delete their name from the field it's in, and tab or click out of the field. A dialog will open if there are any couple events or children linked to the current person and the partner in question. You can select which events and children to unlink from the partner, you can unlink them all, and you can choose to delete the entire relationship if you prefer.",
"Nuclear Families Table: Link Partner to Event Button"),
("This topic will introduce the events and attributes table, or events table for short, also known as the conclusions table since it actually lists your conclusions about the current person's events and attributes. The events table is located on the PERSON tab and all the listed events and attributes are in reference to the current person.\n\nThe events table is sorted by date, however even if dates are obviously wrong, birth will always be first, death will always be last except for burial and other after-death events which will be in order of date below the row for death. Everything else will appear strictly in order. In the case of range or span dates, the first date is the one that will be sorted on.\n\nThe plain text fields in the first five columns take input directly, but respond differently, depending on that column's validation requirements. The AGE and PARTICULARS columns are not validated, so you can put any text in these fields. The PLACES column is an autofill input which remembers the last place you input and will try to autofill that place first if you type its initial letter. The DATE column is easy to use, validated to disallow bad dates, and formatted according to your settings in the date preferences tab.\n\nThe EVENT column accepts event types which can be changed to different event type by simply replacing what's in the field, with certain exceptions: couple events can be changed to different couple events and non-couple events can be changed to other non-couple events. For example, a marriage can be changed to a wedding or a divorce, and a career can be changed to an occupation or a residence. A divorce can't be changed to a death, but a residence can. In general, to change the text in a table cell, just change it, and your changes will be saved instantly. There is no SAVE menu item since changes are saved instantly wherever there's no OK button, or saved on OK if there is an OK button. If a change to the events table upsets the table formatting, press CTRL+F5 to redraw the table.\n\nThe last three columns contain buttons instead of plain text. The ROLES and NOTES columns have either plain buttons or buttons with three dots (...) to indicate that there are roles and notes linked to that event. To create roles and notes when none exist, just open the dialog by clicking the blank button in the row corresponding to the relevant event or attribute. The SOURCES column says how many citations--and thus how many assertions--are linked to the event or attribute which the row corresponds to.",
"Events Table: Event Type Column"),
("Event types are of two basic kinds: events and attributes. For example: Grandma Robertson had prematurely gray hair, so I could record hair color as a dated event with a range date such as 'between 1920 and 1930' and with 'prematurely gray' in the PARTICULARS column. But assuming that Grandpa had brown hair most of his life, this would naturally belong in the attributes portion of the events table without a date, and I don't think it matters how many of his hairs turned gray in which year.\n\nTo create a new row in the events table, you enter an event type into the new event or attribute input, and Treebard creates a new undated row in the bottom part of the table.\n\nWhile Treebard's one and only criteria for deciding whether a event or attribute refers to an event or an attribute is whether or not it has an official date, we recognize that reality is not this simple. But Treebard needs a date-sorted table in the PERSON tab in order to tell a chronological story of a person's experiences, so undated conclusions are not interfiled with dated conclusions. It's up to you, but Treebard suggests adding estimated or approximate dates to events where the exact dates are unknown, in order to get them interfiled reasonably well by date on the events table. On the other hand, if you have a date for an attribute but really want that attribute interfiled with attributes and not events, just put any associated date in the particulars column or in a note.",
"Events Table: Date Column"),
("Places are input as nestings, or smaller places nested within larger places, with each place separated by a comma, such as 'Aspen, Pitkin County, Colorado, USA'. Commas within a single place name are not allowed. The place input will fill in automatically as soon as you start typing, and will preferentially fill in the last place you used that started with the typed letters instead of just selecting alphabetically. So if you are using the same place name over and over, no matter how long the nested place name is, you'll usually have to type only a few characters unless the place name is new to your copy of Treebard. Treebard doesn't come pre-bloated with place names since we think you should enter the places that are right for your needs and spelled the way you prefer to spell them. When entering a new place, you have to tell Treebard the proper spelling and capitalization by typing it that way the first time. After the place is already stored, you don't have to capitalize anything to get the right place to fill in.\n\nIf a part of the nested place name already exists in the database but something else is not the same, a new & duplicate place dialog will open so that a mistaken entry is not made. For example, if George was born in Paris, Texas but his wife was born in Paris, France, Treebard will not try to guess which Paris you're talking about when you try to input a second Paris in addition to the one that's already been stored. In the dialog, there will be an option for every place by the same name, as well as the option to create a new place by that name, and you just select the right one for each single place inside the nested place. This might seem redundant but there's a good reason for it, besides Treebard's unique standard that mistaken place data should not be stored if it can be prevented. We have used programs that let us treat Paris, Texas and Paris, France as the same place, and correcting the resulting mistakes had to be done laboriously and manually. Treebard feels that dealing with a new & duplicate places dialog is a lot easier than making a lot of manual corrections.\n\nBut another good reason exists for going to all this trouble. In the real world, a city in the state of Texas, USA might have once been located in the Republic of Texas. Did Dallas get up and go somewhere? Not likely. In Treebard, a place can be nested in any number of parent places, and you can also optionally track the span of time during which each parent place was actually the nested place's parent.",
"Events Table: Place Column"),
("The PARTICULARS column is for very short notes. If more than a few words, you should use the notes dialog instead, and if you do, that note can be linked to any number of elements. The PARTICULARS column is particularly well-suited for additional input in event or attribute rows such as 'occupation', where you can type 'farmer' or in the case of an illness you could type 'typhoid fever' into the PARTICULARS column. The PARTICULARS column is a good place to put a date if you want to prevent an attribute from being interfiled with dated events at the top of the events table.",
"Events Table: Particulars Column"),
("In the interest of not getting ahead of our sources, Treebard doesn't fill in calculated ages. All age input is yours to do. You can put any text you want in an AGE cell, such as '89y, 9m, 14d', '89', '89 years old', etc.",
"Events Table: Age Column"),
("Roles are a key feature in Treebard which is mostly or completely missing from most genieware applications. How many times have you felt compelled to research the odd neighbor or boarder, with the sneaking suspicion that there's a story to be found that could have profoundly affected your family story and/or your research results. The differently-surnamed adjunct person could turn out to be a relative or even the key to tearing down a brick wall. Treebard believes that we can't be serious about telling a story if we're not interested in the people who our ancestors were interested in, so Treebard provides a system for keeping track of these auxiliary folks. They are part of the tree, the same as any other person, so they're easily accessible in the roles dialog, searchable in the person search dialog, etc.",
"Events Table: Roles Column"),
("", ""),
("The SOURCES button displays a number indicating how many assertions are linked to the corresponding event or attribute. An assertion is what a source says about an event, attribute, name, or other element of the tree. The Treebard won't allow two birth or death events for the same person since this is physically impossible. But sources don't always agree, so Treebard provides another layer of data linking that mediates between the evidence and the conclusion, and that is the assertion. If you click the SOURCES button, the assertions dialog will open. There you can view, create, and edit sources, citations, and assertions. Since it is unrealistic to record two conclusions about the same event in the events table, Treebard provides assertions where each source could conceivably suggest its own separate event or attribute. So let's say you have a residence event but different sources tell a different story about where the person lived at a particular time. You can record anything you want on the events table as a conclusion (except for multiple births or deaths for the same person). Then each source for that conclusion can be linked to a separate assertion. The SOURCES button in the events table will count the assertions linked to an event or assertion, i.e. a row in the events table.",
"Events Table: Sources Column"),
("When you change the font family selected in the bottom input, the sample text will change to the selected font so you can see what it looks like before clicking APPLY.",
"Font Preferences Tab: Sample Output 1"),
("", ""),
("The Font Preferences PREVIEW button will change the output font family and size, in the sample text at the top, to whatever you've selected.",
"Font Preferences Tab: PREVIEW Button"),
("The font size input changes the size of the main text display across the whole application. Only this one setting is needed. Treebard will change the larger and smaller fonts proportionately.",
"Font Preferences Tab: Font Size Input"),
("The font family input lets you choose from among several popular fonts which should all be on your computer. To add a font to Treebard to this selection, go to the SETTINGS tab in the main Treebard app, and add any font that exists in your computer. The fonts that are available on your computer will be listed in word processing and graphics app menus, for example.",
"Font Preferences Tab: Font Family Input"),
("There are several ways to try a color scheme before applying it. The color preferences tab is a preview area. If you click on one of the color swatches, the preview area will change colors so you can preview the color scheme. Or you can tab through the swatches to see the selected swatch change, and the preview area change with it.\n\nBut the easiest way to preview many color samples quickly is to traverse the swatches with the arrow keys. The up and down arrows traverse within a column, while the left and right arrows traverse by row, and from row to row. While traversing with the arrow keys, the scrollbar won't be needed; the swatches area will autoscroll as needed.\n\nIn either case, no changes will be made to the application in general till you press APPLY.",
"Color Scheme Tab: Preview and Traversal"),
("Click the currently applied color scheme ID to highlight its swatch. The highlight is orange.\n\nYou can click the orange-outlined swatch to preview it, then click the COPY COLOR SCHEME button. Its colors will fill into the four inputs, and from there you can easily adjust one or more colors and use the ADD COLOR SCHEME button to save the adjusted color scheme as a new color scheme. The currently applied color scheme (not the previewed scheme; the applied scheme) is shown at the top right of the PREFERENCES > COLORS tab, along with its theme name if the color scheme has been named. For named color schemes, instead of selecting color swatches, you can select the theme name where it says 'Select a theme.' Themes can be deleted, and this will delete only the name of the color scheme, not the color scheme itself. In this way you could change any theme names you want, by deleting the theme (not the color scheme) and giving the color scheme a new name.",
"Color Scheme Tab: Current Color Scheme ID"),
("The COPY COLOR SCHEME button is used to copy an existing color scheme so you can adjust one or more parts of it and save it as a new color scheme. You can even delete the original color scheme by highlighting the swatch and pressing the delete key.\n\nTo copy a color scheme, highlight the corresponding swatch by arrowing to it, clicking on it or tabbing into it, then press the COPY COLOR SCHEME button. The color names for the four colors in the highlighted swatch will be automatically copied into the four inputs at the bottom of the PREFERENCES > COLORS tab. Hex color names have to be 3 or 6 characters long and preceded by a '#' character.\n\nThere are a few ways to change any of the four colors: 1) replace any character in a hex name with a numeral, or a letter from a to f; 2) type a valid color string such as 'blue' or 'steelblue'; 3) paste in a hex color name from a graphics program; 4) double-click in one of the four inputs to open a color picker and select any color you want.\n\nAs soon as there are four valid colors in the inputs, the new color scheme will be previewed automatically. When you get a combination you like, press the ADD COLOR SCHEME button to add a new swatch to your copy of Treebard.",
"Color Scheme Tab: COPY COLOR SCHEME Button"),
("The APPLY button chould be used after first trying a color scheme and then creating a new color scheme based on what is previewed for your color choices. The trial scheme will be shown on the Color Scheme Preferences Tab only. To apply this scheme to the whole application instantly, click APPLY.",
"Color Scheme Tab: APPLY Button"),
("The ADD COLOR SCHEME button at the bottom of the PREFERENCES > COLORS tab will create a new swatch at the bottom of the swatch area. The new swatch will be based on hex color values which you can fill into the four inputs above the button, either by typing or pasting color values that you know, or by selecting a swatch and pressing the COPY COLOR SCHEME button, or by double-clicking in an input to open a color picker.\n\nTreebard uses a simple color scheme so anyone can create their own color scheme in seconds. If you want a dark theme, choose three relatively dark colors and in the bottom of the four inputs, enter a relatively light color for text. If you want a light theme, choose three relatively light colors and in the bottom input, enter a relatively dark color.\n\nThe top input is for the main background color. The second input is for a main highlight color, and the third is for a secondary highlight color. By arrowing from swatch to swatch, you can see how this works with existing color schemes.",
"Color Scheme Tab: NEW COLOR SCHEME Button"),
("If you want a dark theme, choose three different relatively dark colors. I usually make this background color 1 the darkest, but it's up to you. By keeping the number of colors down, this system is fast and easy to use, and the results can be beautiful, simple, and easy to read.\n\nPrimary colors fatigue the eye faster than muddy or earthtone colors, but it's completely up to you; if you prefer a black background with hot pink highlights and bright yellow text, Treebard will not try to stop you. For light-colored themes, you're on your own. Treebard can show those too, but I can't look at them; it's like looking at bare lightbulbs and has the same effect on my eyes, besides using more power and thus more of the earth's resources.\n\nFor inspiration you can browse online resources such as http://colorhunt.co where color lovers post thousands of color schemes, or you can browse websites taking screenshots from themes you like, paste them into your graphics program, and get the graphics program to tell you what the hex numbers for the colors are.",
"Color Scheme Tab: Background Color 1 Input"),
("If you want a dark theme, choose a light font color. If you want a light theme, choose a dark font color. For a theme with medium backgrounds, choose whatever font color--light or dark--is easier to read against the background colors.",
"Color Scheme Tab: Font Color Input"),
("The date entry demo section at the top of the PREFERENCES > DATES tab allows you to test various ways of inputting and displaying dates. Nothing you enter here will affect your tree, but the three input fields are exact working models of every date input field in Treebard. For more info, right-click for context help in each of the three input fields.",
"Date Settings Tab: Date Entry Demo"),
("Here\'s a list of ways that date qualifiers and months can be input and displayed:\n\n"
"separators: [space, dash, slash, asterisk or underscore]\n\n"
"estimated dates: ['est', 'est.', 'est\'d']\n\n"
"approximate dates: ['abt', 'about', 'circa', 'ca', 'ca.', 'approx.']\n\n"
"calculated dates: ['cal', 'calc', 'calc.', 'cal.', 'calc\'d']\n\n"
"before dates: ['bef', 'bef.', 'before']\n\n"
"after dates: ['aft', 'aft.', 'after']\n\n"
"before current era: ['BCE', 'BC', 'B.C.E.', 'B.C.']\n\n"
"current era: ['CE', 'AD', 'C.E.', 'A.D.']\n\n"
"Julian calendar: ['OS', 'O.S.', 'old style', 'Old Style']\n\n"
"Gregorian calendar: ['NS', 'N.S.', 'new style', 'New Style']\n\n"
"January: ['ja', 'ja.', 'jan', 'jan.', 'january']\n\n"
"February: ['f', 'f.', 'fe', 'fe.', 'feb', 'feb.', 'february']\n\n"
"March: ['mar', 'mar.', 'march']\n\n"
"April: ['ap', 'ap.', 'apr', 'apr.', 'april']\n\n"
"May: ['may', 'MAY', 'mAy', 'maY', 'May']\n\n"
"June: ['jun', 'jun.', 'june']\n\n"
"July: ['jul', 'jul.', 'july']\n\n"
"August: ['au', 'au.', 'aug', 'aug.', 'august']\n\n"
"September: ['s', 's.', 'sep', 'sep.', 'sept', 'sept.', 'september'\n\n"
"October: ['oc', 'oc.', 'oct', 'oct.', 'october']\n\n"
"November: ['no', 'no.', 'nov', 'nov.', 'november']\n\n"
"December: ['d', 'd.', 'de', 'de.', 'dec', 'dec.', 'december']\n\n"
"All month input is case insensitive, as shown above for May.",
"Date Settings Tab: Date Input Fields (1 of 3)"),
("Treebard date input is unusually free. You can input date parts such as year, month, and day in any order that they occur to you. You could even input every date in a different style, but each date will still be displayed according to your preferred display format. To separate the parts of a date from each other, you can use spaces, slashes, dashes, asterisks, or underscores. So a date input as 'bc 3040*f*19/to_1888-01-no_abt' will display something like 'from Feb 19, 3040 BC to abt Nov 1, 1888' depending on your display format preferences. This is an absurd example, but the point is that you can stay focused on your genealogy instead of fishing with your mouse for the right month or year on one of those calendar widgets, when most people would rather type a few characters and keep going.\n\nFor example, 'March' pops into your head, or '1888'. Whatever. Just type 'mar' into the field. The next thing that occurs to you may be that it\'s an estimated or approximate date, a calculated date, or even 'B.C.' Doesn\'t matter, just type 'est' or 'abt' or 'cal' or 'bc' next, in any order.\n\nFor the fourth month, instead of typing '4' you can type 'April', 'Apr', 'Ap.', 'Ap,' or 'ap'. While some countries might display 'April 19, 1884' as '19-04-1884', others would display it as '04-19-1884'. Treebard is all about sharing trees, so to avoid ambiguity in international exchange of trees, Treebard doesn\'t allow months to be displayed as numbers. Then to avoid bloated code, Treebard doesn\'t allow months to be input as numbers either. Most folks will appreciate the simplicity of this approach, since typing 'd' for 'December' is easier than typing '12' anyway. To make it even easier, all month inputs are case insensitive. If you wanted to type 'mArCh', that would not be a problem. It will be displayed as 'March', 'Mar' or 'Mar.', depending on your stored preferences.\n\nWhen inputting years with less than four digits, such as the year 33 AD, add preceding zeroes, i.e. '0033'. If you forget to do so, Treebard will ask for clarification on a date like 10 mar 19 wherein either 10 or 19 could be the year. Other than that--and because you can\'t type '12' for December--this date input system is almost completely free of extra dialogs other than error messages. There are messages when you make an obvious mistake, because Treebard doesn\'t allow bad dates to be entered into a database.\n\nFor an estimated date, type any of the abbreviations for 'estimated' that Treebard will let you select as a display preference, that is, anything in this list: 'est, est. est\'d' For a list of all allowed abbreviations, see post 1 of 3 in this series. For a calculated date, type 'cal', etc. To display a date like 'Before 1824', just type '1824 bef' or 'bef 1824', either way. For 'after 1242 B.C.' you could type 'bc 1242 aft' with the parts in any order and Treebard will display the date the way you want it displayed, for example 'aft. 1242 BCE' if that\'s how you\'ve set your preferences.\n\nThere are two kinds of compound date: range and span. A range refers to a range of time between two dates, such as 'between 19 Sep 1899 and Aug 1902'. To enter a range, enter the two dates any way you want with the word 'and' between them. If you enter '1885 and 19 bc', Treebard will display 'Between 19 BC and 1885 AD' in whatever display format you\'ve chosen. A span is used when something is known to have occurred throughout that time span such as a career 'from 1920 to 1945'. To enter a span, input two dates with the word 'to' between them.\n\n",
"Date Settings Tab: Date Input Fields (2 of 3)"),
("In order to make Treebard trees truly portable and sharable, display styles for dates are limited to styles which are unambiguous to anyone including plain folks like me with little education. For example, my personal favorite way to display dates is the ISO format (1200-12-14 for December 14, 1200), but this format might be unfamiliar to some folks so I dropped it.\n\nTreebard has no option for displaying bad dates, in fact Treebard refuses to store them. For example, 'March 10' is a bad date because there is no year. In case you have a hint like that, notes or the PARTICULARS column of the events table are a good place to store them. In this way, every stored date can be used in calculations such as subtracting one date from another to find out how old someone was when something happened.\n\nTreebard deletes bad date input and tells you why, so you can retype the date the right way. If a mistake in editing a date on the events table makes the whole row disappear, it\'s because the bad date was deleted. This caused the row to move to the bottom part of the table with other undated rows. It can be resurrected as an event by giving it a date.",
"Date Settings Tab: Date Input Fields (3 of 3)"),
("Several different choices can be made in regards to how you want Treebard to display dates. Display style has nothing to do with how a date is entered. By making choices in the bottom part of the PREFERENCES > DATES tab and then inputting sample data in the three input fields at the top of the Date Preferences tab, you can sample how dates of different types will be displayed without affecting the data in your tree.\n\nTreebard has its own defaults which you can use by ignoring the options on the PREFERENCES > DATES tab. You can change options at any time or revert to Treebard\'s defaults if you want. Changes will be reflected in how dates display next time you reload the program.\n\nChanging date display styles does not affect your tree in any way since all dates are stored in a single consistent format.",
"Date Settings Tab: Date Display Preferences"),
("While you can enter dates with a lot of freedom, Treebard only allows dates to display in ways that are unambiguous. In this way, genealogists can share their trees with confidence that their dates will not be misread by people from other countries.\n\nThe only way Treebard will display dates is using spelled-out or partially spelled-out months such as 'Jan', 'Jan.' or 'January'. If display like '10-1-1888' were allowed, in some countries this would be interpreted as Oct. 1, 1888 while in other countries it would mean Jan. 10, 1888.",
"Date Settings Tab: General Date Display"),
("Estimated and approximated dates could be used in distinct ways. What follows is Treebard\'s suggestion on how this could be done.\n\nSometimes the user wants to enter a date when he doesn\'t have one, for example to get events or attributes to appear in chronological order in the events table. (In Treebard, an undated event is treated as an attribute and will appear at the bottom of the events table with other undated events.) Suppose a source states that someone attended school through the 5th grade. We can guess that his school career ended around age 11 and enter a guess in place of a known date that we don\'t have. Making a distinction between estimated dates and approximate dates can mark the date as a pure guess (estimated) or a sourced guess (approximate). So in this case, the date arrived at for the end of his schooling should be an approximate date--not estimated--because a source document such as census states that the person quit school after grade 5. It\'s not quite a guess, because there\'s a source: the census. But it\'s still a guess, because he could have graduated grade 5 at the age of 14 or whatever.\n\nHowever, in the case where a date is desired but there is no source other than possibly common sense, an estimated date could be used. For example, we might normally assume, even with no source, that a woman got married sometime after the age of 13. The range 'btwn est 1883' and 'est 1893' would indicate that the date was just a guess, while causing the marriage event or attribute to fall reasonably close to where it probably belongs within the events table.",
"Date Settings Tab: Estimated Date Prefix"),
("In Treebard\'s opinion, the difference between estimated dates and approximate dates is that estimated dates have no source; they\'re just a reasonable guess by the researcher based on the facts of life. On the other hand, an approximate date should have some sort of source to back it up.",
"Date Settings Tab: Approximate Date Prefix"),
("Calculated dates are not literally from a source but are calculated from data that is from a source, such as an age or another date listed on a source document.\n\nYou can use Treebard\'s Date Calculator (in the Tools menu but not currently available) to subtract one date from another. This will give you an exact number of years, months and days to enter in an age field. Or if you have an age of any precision, the date calculator would give you a date of matching precision (if the date calculator still existed).",
"Date Settings Tab: Calculated Date Prefix"),
("Type the prefix 'bef' or 'aft' in a date field to indicate that you don\'t know the exact date when an event took place, but that evidence shows it must have taken place before or after some specific date. For example, if a census states that Mary was a widow in 1880, it can be deduced that her husband might have died 'bef 1880'. This is not proof, but her 1880 census can be used as evidence for the husband\'s 'bef 1880' death date. In reality, she could be a single mother or her husband could be on vacation or practicing for divorce, so 'before/after' dates help us mark the difference between evidenced dates and proven ones.",
"Date Settings Tab: Before/After Date Prefix"),
("Back in the stone ages when only the Christian religion existed, everyone was equally comfortable separating the major epochs of recorded history at the year when Jesus was thought to have been born. In modern times, 'AD' for 'Anno Domini' and 'BC' for 'before Christ' might not be everyone\'s cup of tea. They are not Treebard\'s defaults. \n\nIn practice, you should never have to type 'ad' as you normally wouldn\'t want it displayed. Treebard adds it to years prior to 1000 AD [remind me to fix this] since we\'re used to seeing 4-digit dates. And if one date in a compound date is BC but the other is AD, Treebard will add the AD to the right date if you don\'t. Treebard always assumes that any date not marked 'bc' is AD.\n\nFor the sake of honoring diverse religious traditions and political correctness, Treebard\'s default epoch markers are 'CE' for 'current era' and 'BCE' for 'before current era'. The dividing line is still the same: the year that the Christian religion traditionally holds as the birth year of Jesus.",
"Date Settings Tab: Epoch Date Suffix"),
("Some programs display dual dates such as '1751/1752' to indicate that an event took place while the transition was going on from the Julian Calendar to the Gregorian calendar. Unfortunately, every country adopted the Gregorian calendar in a different year. So it would take a lot of stored per-country data for a computer program to know what span of time to display dual dates in, depending on what country the event took place in. And if my research was wrong or incomplete, I would be building mistaken data into Treebard. And then this data would rarely be used, and more rarely appreciated. And some countries have only recently made the transition.\n\nInstead of pretending that all events took place in the USA and then using the transition period pertinent to the USA, Treebard would like to avoid displaying ugly dual dates altogether. If you know you\'re entering a date that falls within a calendar transition period, just mark the input 'ns' for new style date (Gregorian calendar) or 'os' for old style date (Julian calendar).\n\nIn Treebard\'s opinion, most uneducated people in the olden days didn\'t know for sure when they were born or exactly how old they were. And in the olden days, most people couldn\'t read or write. This makes us wonder what good it does to use fastidiously precise date strictures for dates that are obviously imprecise if not downright sloppy maybe 75% of the time, except for the royal families who could afford a scribe to follow them around and record the exact date of their every move.",
"Date Settings Tab: Julian/Gregorian Date Suffix"),
("A span is a compound date such as 'from July 1845 to Jan. 1850' which denotes a specific known period of time. Enter date spans with the word 'to' between the two dates. Example: input such as '4 19 1888 to 3-20-1887' will display as 'from March 20, 1887 to April 19, 1888' in whatever format you\'ve selected for date display.",
"Date Settings Tab: Span Compound Date"),
("A range is a compound date such as 'between July 1845 and Jan. 1850' which denotes a known period of time during which an event took place, when the exact date of the event is not known. Enter date ranges with the word 'and' between the two dates. Example: input such as '4 19 1888 and 3-20-1887' will display as 'between March 20, 1887 and April 19, 1888' in whatever format you\'ve selected for date display.",
"Date Settings Tab: Range Compound Date"),
("When you\'ve selected one or more date display format changes, click the SUBMIT PREFERENCES button to store the changes. Changes made to your date format settings have no effect on Treebard defaults, which can be reverted to at any time. You can change formats as often as you like. Changes take effect next time you restart the program, except for new edits and input which uses the new formatting immediately. Display formats have nothing to do with how dates are entered or how they are stored, so you don\'t need to consider anything except how you want dates to look when displayed.",
"Date Settings Tab: SUBMIT PREFERENCES Button"),
("To return to Treebard\'s out-of-the-box default date display settings, click the REVERT TO DEFAULT VALUES button. Date display settings specific to your currently open tree will be deleted but the dates will be unaffected. Date display settings for all your trees will change accordingly. ",
"Date Settings Tab: REVERT TO DEFAULT VALUES Button"),
("When you add an image to your tree, it's not linked to any element, it's just copied from the original image on your computer and the copy is placed in a special directory in your project. A reference to the image is stored in the database. The controls below are used to link or unlink a tree image to one or more elements.\n\nThe elements of genealogy are things that exist in the world independently of genealogy, such as the persons, places, and sources that genealogy describes. In Treebard, images can be linked to as many instances of the above element types as you like. The same image can be linked to many elements; you don't have to import it over and over. The image is copied to your project folder once, without moving or altering the original image file. You can keep your original image files anywhere on your computer, and Treebard keeps your project copies in a special folder which you should not touch. Treebard suggests keeping all your originals in one separate folder or area for each tree you're building. It will speed up the file selection process if you go to the PREFERENCES > WHERE? tab and tell Treebard where to start looking for images related to the current tree.",
"Media Tab: Add Image Input"),
("Add a caption to be displayed in image galleries along with the image, such as description of the image, approximate date if available, location, names of people in the image. It's not necessary to manually add the image's file name or path where the file is stored, since Treebard figures this out for you when the image is displayed in a gallery, so you know exactly which image you're looking at.",
"Media Tab: Caption Input"),
("Images can be linked to persons, places, and sources. This input can be ignored when using the input above it, since adding an image to the tree and linking it to an element are separate actions. This input is required when using any of the controls below it. Treebard needs to know whether linking to a person, place, or source, and when adding default images to replace Treebard's built-in default images, Treebard also needs to know whether to use a person default image for males, females, or unknown/undefined gender. If more than one type applies, just select one of the types that applies.",
"Media Tab: Image Type Input"),
("Select an image from anywhere on your computer. The button that says ' ... ' opens a file explorer, starting in the directory you've told Treebard to start in (see the WHERE? tab in Preferences). The original file will not be moved or altered, but copied into your project folder where all the tree's images are kept. Adding the image does not automatically link it to any element of the tree (person, place or source). The linking can be done and undone in this section of the MEDIA tab. Images have to be added first in the top section, and in this section they can be linked to any number of persons, places, or sources.\n\n",
"Media Tab: Image Link Input"),
("Since the MEDIA tab inputs link and unlink elements from current person, current place, or current source, you have to change the person, place or source to the current respective element before using the MEDIA tab controls to add or delete links to that current element. The CHANGE CURRENT PERSON input is near the top of the app, right under the menu icons. You can also change the current person by CTRL-clicking any name in the families table or by clicking any name or ID number in the person search dialog which is accessed by pressing the WHO? button.\n\nTo change the current place or current source, go to the PLACE tab or SOURCE tab. If you're adding images to an element that has no linked images, the first image you link will become the main image for that element. So it will be shown on the large button that opens the image gallery for that type of element. To change the main image to a different image, open the element's image gallery and select the desired image's thumbnail by clicking the radiobutton under the thumbnail image. As you select different radiobuttons, you'll see the image changing on the big button that you click to open the gallery. There's no OK button for this operation, it just changes the main image instantly.",
"Media Tab: Link to Current Element"),
("The image you specify will be unlinked from the current person, current place or current source, depending on what type of element you've told Treebard that this image is linked to. The image will still be available for linking to other elements, and existing links will not be disturbed. The change current person input is near the top of the app, right under the menu icons. To change the current place or current source, go to the PLACE tab or SOURCE tab.",
"Media Tab: Unlink from Current Element"),
("The image you specify will be unlinked from all persons, places, and sources, but the image file will not be deleted from the project.",
"Media Tab: Unlink from All Elements"),
("All links to the image will be removed from the tree and the copy of the image that had been added to the project folder will be deleted. The original file you specified when you first added the image to the tree will not be affected; Treebard doesn't even remember where it was.",
"Media Tab: Delete from Tree"),
("Treebard has built-in default images that are displayed on the large buttons that open image galleries on the PERSON tab, PLACES tab, and SOURCES tab, if the current person, place or source has no images linked to it. You can check this box to opt out of having any default images display. To replace the built-in default images with default images of your choosing, see the next input in this section of the MEDIA tab.",
"Media Tab: Option to Use No Default Images"),
("Default images are images that display on PERSON, PLACE and SOURCE tabs, on big buttons that open image galleries when pressed.\n\nSelect an image from anywhere on your computer. The button that says ' ... ' opens a file explorer, starting in the directory you've told Treebard to start in (see the PREFERENCES > WHERE? tab). The original file will not be moved or altered, but copied into your project folder where all the tree's images are kept. The specified image will be copied to an automatically resized file and saved in a special folder in your project for use as a default image in all your trees, in place of Treebard's built-in default images. To get rid of a default image you'd formerly specified, blank out this input before pressing OK. The image copy will be deleted from Treebard completely, and the built-in default image will be used instead. To delete all your custom default images, press the button that says '...REVERT...'.\n\nThis control won't do anything unless you've told Treebard what element type the action relates to (See the input above labeled 'Changes below will relate to what element type?')",
"Media Tab: User-Defined Default Image Input"),
("Pressing this button will delete all your custom default images and revert to Treebard's built-in default images.",
"Media Tab: Revert to Built-In Default Images"),
)
# rcm_widgets = (
# self.role_type_input.entry, self.person_input, self.add_butt,
# self.done_butt, self.close_butt)
roles_dlg_help_msg = (
('Type or select the role type for a new role. A role type can be anything except the primary participants\' roles in the event. For example, at a wedding event there\'s a bride and groom who are primary participants in the event. Don\'t input them here. But many other roles exist such as bible bearer, ring bearer, flower girl, best man, religious official, usher, witness, candle-lighter, photographer or anything you want. In a document describing an event, many names might be mentioned that you might want to research further, or record in case they end up being related to the family or the family\'s story in some way. Role types can\'t be blank, but you can select \'other\' or \'unknown\'. For example, a group photo from a wedding has names listed on the back, but you don\'t know who some of the people are. Just input the names and select \'unknown\' role type. They\'ll be added to the database same as anyone else, so if the name pops up again, you won\'t have to go searching for it in notes. ',
'Roles Dialog: Role Type Input'),
('For a role you don\'t always know the names of the people involved, but maybe you want to research it. You can\'t enter roles without names, but you can enter known names or name placeholders such as \'_____ _____\' with \'other\' or \'unknown\' selected as the role type. You can create new people here. If you add a role with a new person, a dialog will open so you can specify the new person\'s name type such as birth name or nickname; gender if known; image if any; and preferred sort order for alphabetization. If you input a name that already exists in the database, another dialog will ask whether you intended to create a new person by the same name. This will help prevent duplicate persons which would have to be merged later. You can input as many John Smiths as you want, since each person entered has a unique ID in the database. Later if you find that two persons in the database are really the same person, the two can be merged so that your work doesn\'t have to be done over (the merge feature doesn\'t exist yet). If you know the name of someone who participated in an event but you don\'t know what role they played, you can still input the name and select \'other\' or \'unknown\' as the role type.',
'Roles Dialog: Person Input'),
('Use the ADD button to add a role if you\'ll be adding more than one role, so the dialog doesn\'t close. The new roles will instantly be added to the roles table and you\'ll be able to edit or delete them at any time.',
'Roles Dialog: ADD Button'),
('', ''),
('Use the CLOSE button to close the roles dialog if you\'re finished adding roles. Even if you\'ve typed all or part of a new role, what you typed will be ignored. Roles you already entered will not be affected. To edit a role, press the DELETE ROLE button and start over.',
'Roles Dialog: CLOSE Button'))
# rcm_widgets = (self.search_input, self.search_dlg_heading, self.search_table)
search_person_help_msg = (
('This person search tool is especially helpful if you know only part of the name you\'re looking for. Also, if there\'s more than one person with an identical name, the other way to select a person--the autofill person select field--won\'t work for duplicate names unless you know the ID. This search dialog will help you differentiate among several people with the same name by showing birth and death dates and parent names for each person. Just type any part of any name, ID number, nickname, a.k.a., etc. and the search table will fill with matching names. Tab out of the input field to the table and navigate up and down using the Tab or Shift+Tab keys or the Up/Down arrow keys. You can select a new current person with the mouse, enter key, or space bar, but you don\'t have to. The search tool is also an easy way to look up a name or ID number you need.',
'Person Search Dialog: Person Search Input'),
('After tabbing into the search results table, you can navigate up and down the table with tab or Shift+tab keys, or up/down arrow keys. To choose a new current person, press the enter key or space bar when the person you want is highlighted, or click any row whether it\'s highlighted or not. The table can be sorted ascendingly or descendingly by single clicks of the column heads. If you typed "lou" and "Fred Jenkins" pops up, what\'s going on? Point at the name and a name_tip will pop up giving the needed information: "Nickname: Louie", along with any other names, ID numbers, nicknames, pseudonyms, married names, mis-spellings, and any other name information you\'ve entered for Fred Jenkins. ',
'Person Search Dialog: Person Search Table'),
("", "")
)
# rcm_widgets = (
# self.pic_canvas, self.prevbutt, self.nextbutt, self.b1)
gallery_help_msg = (
("Image galleries are available for persons, places and sources. The place image gallery is opened by clicking the big picture in the PLACES tab and the source images are opened the same way in the SOURCES tab. The Person Gallery opens the same way when you click the image on the PERSON tab. All the images linked to the current person will be shown as small thumbnails at the top of the gallery. In the person gallery, there will be a radiobutton under each thumbnail so the image represented by that thumbnail can be selected as the person's display image. In all the galleries, hovering over the thumbnail will show a tooltip displaying the image's filename. Clicking the thumbnail will display the full-size version in the viewport.\n\nThe file name and full path of the image, as well as a caption and the image's pixel dimensions, are shown in the far right panel of the gallery. The text of these labels can be copied to the clipboard so it can be pasted elsewhere.\n\nThe viewport (large image) can be focused by clicking on it. When it's in focus, the image can be changed with the right or left arrow keys. There are also buttons under the viewport which can change the image.\n\nThe EDIT button will place a copy of the viewport image in the GRAPHICS tab where certain basic operations can be performed such as cropping, resizing, renaming, copying, adding borders with or without text, etc.\n\nThe size of the largest image stored for the current element will determine how large the viewport is, with the maximum size being some proportion of your screen size. If you don't like a large viewport, don't link any large pictures to your Treebard elements. However, if the image doesn't fit in the viewport, it will still be shown at its normal resolution, and you can pan it in the viewport by dragging it with the mouse.",
"Image Gallery: viewport"),
("The PREVIOUS button shows the previous image in the viewport. The order of the images is the same as shown in the thumbnail strip at the top of the gallery. The arrow keys on the keyboard can also be used to change the image in the viewport, if the viewport is in focus. The viewport can be focused by clicking it with the mouse or tabbing into it.",
"Image Gallery: PREVIOUS Button"),
("The NEXT button shows the next image in the viewport. The order of the images is the same as shown in the thumbnail strip at the top of the gallery. The arrow keys on the keyboard can also be used to change the image in the viewport, if the viewport is in focus. The viewport can be focused by clicking it with the mouse or tabbing into it.",
"Image Gallery: NEXT Button"),
("The image shown in the viewport can be copied into the GRAPHICS tab by pressing the EDIT button. In the GRAPHICS tab, you'll be able to do some basic image manipulations such as cropping, renaming and resizing.",
"Image Gallery: EDIT Button"))
# rcm_widgets = (opener, new, importgedcom, opensample, cancel, self.picbutton)
opening_dlg_help_msg = (
("Open an existing tree.",
"Opening Dialog: OPEN TREE Button"),
("Create a new tree based on Treebard defaults and the universal genealogy data structure UNIGEDS.",
"Opening Dialog: NEW TREE Button"),
("Create a new tree based on data imported from a GEDCOM file which you can select from any place on your computer. Treebard supports most features of GEDCOM v. 5.5.1 and records unsupported data in an exceptions log so it can be entered manually. Please ask you genealogy software vendor to change their back-end data storage facility to UNIGEDS so your data can be opened directly in Treebard without a GEDCOM import step.",
"Opening Dialog: IMPORT GEDCOM Button"),
("The Sample Tree will open. You can make any changes you want, and if you want, you can restore it to its original content.",
"Opening Dialog: OPEN SAMPLE TREE Button"),
("" ""),
("Clicking the big image on the main Treebard app will open the last tree you worked on. You can click the image with the mouse or tab into it to focus it, and press the space bar when the image is in focus. Treebard will not open any tree automatically when you load the application, for these reasons: 1) if the tree is very large, it could take a long time to open, and you'll have to wait for it to load completely and then close it; and 2) Sometimes a genealogist will have two or more trees that are similar, and we don't want to find ourselves working in the wrong tree by accident. So Treebard will only open a tree that you specifically select from your file system. If you do want to open the last tree you worked on, to speed this up, just click the big picture instead of using the OPEN button. To further speed this up, the main Treebard app window opens with the big image already in focus, so as soon as the dialog opens, you can just press the space bar to re-open the last tree that was open.",
"Opening Dialog: OPEN PRIOR TREE Button")
)
# rcm_widgets = (self.chk_all, self.checkframe)
person_unlink_dlg_help_msg = (
("Check this option to unlink all the partner from all the couple events and children currently linked to the current person with this partner. The entire relationship will be discarded. The current person will still be linked to the events and children and the partner will still exist in the family tree. To delete the partner from the tree altogether, make them current person and use the ELEMENTS menu to delete the current person from the tree.",
"Partner Unlink Select Dialog: Delete the Relationship"),
("To use this feature, uncheck the top option to delete the entire relationship. Then you can select only those marital events and children which you want to unlink from the relationship. The events and children you select will be unlinked from the partner, but not from the current person.",
"Partner Unlink Select Dialog: Unlink Selected Events & Children"))
places_dlg_help_msg = ()
links_dlg_help_msg = ()
# MESSAGES USED GENERICALLY BY ALL THE WIDGETS MADE IN A LOOP.
# roles dialog editx buttons
role_edit_help_msg = (
'', '')
# places dialog nest label
places_dialog_label_help_msg = (
"The new & duplicate places dialog exists to keep your 'Paris, Texas' ancestors from being born in Paris, France; to prevent duplicate places being made if possible, and to allow you to nest the same city--such as Dallas, Texas--in an alternative parent place--such as the Republic of Texas--at different periods of its history, without making you split it into two different cities in the same location. \n\nPlaces in Treebard are stored as single elements such as 'Paris' and as nested elements such as 'Paris, Texas' and 'Paris, Republic of Texas'. Texas in turn can be nested in a place called 'USA', and the result is a whole nesting such as 'Paris, Texas, USA'. When a new or potentially duplicate place name is entered, the dialog opens separately for each nested place where you can tell Treebard whether to use the existing Paris or make a new place by that name.\n\nTo help you tell the difference between multiple places that have the same name, Treebard has an unfinished hint system which isn't very useful yet since you currently lack the ability to edit the hint. Currently the hint is an autocreated date & time stamp which will tell you when you first created the place. There is also a list of example nested places that will help you decide which existing place to select. For example, under one option will be listed Paris, Lamar County, Texas, USA and under another option will be listed Paris, Ile de France, France. You will probably know which Paris to select.",
"New & Duplicate Places Dialog: Place Nest Label")
# places dialog radio button
places_dialog_radio_help_msg = (
"", "")
# places dialog hint input
places_dialog_hint_help_msg = (
"", "")
# color preferences tab color swatches
color_preferences_swatches_help_msg = ("Treebard's philosophy on color schemes is that it's none of Treebard's business what colors you want to display, but in order to give you the freedom to choose, the method of choosing should be very easy. You will find it easy to create new color schemes, which will display in the swatches area that takes up most of the COLORS tab. Treebard comes with many color schemes, and opens in a dark theme by default. This can be changed in seconds, either by selecting a different color scheme or by creating your own. Detailed instructions for doing this are given in the context help topics throughout the COLORS tab. To delete any color scheme, highlight it by clicking on it or tabbing into it, and press the delete key. You might want to COPY it first, and adjust the copy, before deleting the one you don't like. All schemes can be previewed before they are applied. Windows color schemes should have no effect on any part of Treebard's display except for each window's draggable title bar.",
"Color Scheme Tab: New Color Scheme Area")
# image gallery thumbnails
gallery_thumbnail_help_msg = ("All the images linked to the current element (person, place or source) will be shown as small thumbnail images in a strip across the top of the gallery. You can link as many images to an element as you like, and if the thumbnails don't fit into the width of the gallery, there's a horizontal scrollbar so you can use them all. There's a radio button below each thumbnail which, if clicked, will change the person, place, or source's gallery opening button image to that person, place, or source's display image. In all the galleries, pointing at a thumbnail with the mouse will show its file name, and to see (and copy) the full path with the file name, display it in the larger viewport and its data will appear in panel on the lower right. To display the image corresponding to a thumbnail, click it with the mouse.",
"Image Gallery: Thumbnails Strip")