Pop-up menu interface

Approaches are disclosed for generating a menu that may be used to provide a set of bounded options for populating associated cells of a table. In certain embodiments, the menu is automatically generated based at least in part on the initial content of one or more cells to be associated with the menu. In certain embodiments, the options listed in the menu may be edited by a user or reformatted based on logic associated with the menu generation process.

BACKGROUND

The present disclosure relates generally to the use of a pop-up menu interface in populating cells of a table.

In certain productivity applications, a user may be prompted to provide inputs or otherwise fill in content of a cell or series of cells within a table. For example, in a spreadsheet application or other application where a table is provided, certain of the cells may be used to display user selected or input content. In some instances, it may be appropriate for a range of cells, such as a row or column, to contain values selected from a known or limited set of values. That is, the value for a given cell may correspond to a value from a known set or list of possible values. Implementation of a user-friendly approach for helping a user populate such cells, particularly in the context of a portable or handheld device where the input control structures are limited, may be difficult.

SUMMARY

In accordance with various implementations discussed herein, the generation and use of pop-up menus for populating cells of a table is described. In certain embodiments, the cells and table are displayed as part of a productivity application (such as a spreadsheet application) running on a portable or handheld device having a limited range of input structures, such as only having a touch screen or a touchscreen and one or two function buttons. In certain implementations, a user may automatically generate a pop-up menu for use in specifying content of associated cells. In particular, the pop-up menu may be automatically and dynamically generated when a user selects a set of populated cells for association with the pop-up menu. For example, the contents of the selected cells may be used to populate a list of options or items in a pop-up menu, with duplicated values or contents only being added a single time to the pop-up menu list of options. In addition, automatic reformatting (such as to identifiable text, date, time, or numeric formats) of the cells contents may be performed as part of the pop-up menu generation. A user may also perform manual editing of the generated pop-up menu, with the corresponding values in the selected cells subsequently being reformatted or altered based on the automated reformatting or user provided edits applied to the pop-up menu options. Otherwise, however, the contents of the cells used to generate the pop-up menu list of options is unchanged as long as that value is present in the associated pop-up menu.

DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS

As noted above, certain types of applications (such as productivity applications running on processor-based system) may provide a user with the option to place a table within a document (i.e., a word processing document, a spreadsheet, a slide of a presentation application, and so forth). Such tables typically consist of cells, in which the user can enter content (i.e., numbers, letters, words, and so forth). In certain instances, the content added to a range of cells (e.g., all or part of a column or row of cells) may have a limited range of defined or pre-defined values, i.e., the data entry options may be bounded. For example a range of cells may be defined as corresponding to some qualitative characteristic (such as color, flavor, diagnosis, part type, rating, true/false, yes/no) for which there may be a limited number of defined or pre-defined values. Alternatively, the range of cells may be defined as corresponding to a quantitative characteristic for which the values are limited and definable (e.g., such as a column corresponding to height in feet, where another column may contain the value in inches which may be more continuous in nature).

In accordance with certain implementations of the present disclosure, a pop-up menu may be generated, edited, and used in filling in content of cells having such a limited range of content options. By way of example, and as discussed herein, selecting a cell associated with a pop-up menu control function (such as by single- or double-tapping a table cell in a touch-screen display context) causes the control associated with that cell to be displayed. In the case of a pop-up menu, the associated control is a list of values that are displayed, allowing the user to select the appropriate value from the list. The selected value may then be inserted into the respective cell and the pop-up menu may be hidden until invoked again. In certain implementations, as discussed herein, the pop-up menu may be manually created by the user or may be automatically generated based upon values already present in a range of cells specified by the user.

With the foregoing in mind, a general description is provided below of suitable electronic devices that may be used in the implementation of the present approaches to generation and use of pop-up menus. In particular,FIG. 1is a block diagram depicting various components that may be present in an electronic device suitable for running an application that allows for the display of tables and the generation and use of pop-up menus in conjunction with such tables.FIGS. 2 and 3respectively illustrate perspective and front views of suitable electronic devices, which may be, as illustrated, a handheld electronic device (e.g., a tablet computer) or other mobile computing device (e.g., a laptop computer).

An example of an electronic device suitable for the techniques described herein may include various internal and/or external components. For example,FIG. 1is a block diagram illustrating the components that may be present in such an electronic device8, allowing the electronic device8to function. One of ordinary skill in the art will appreciate that the various functional blocks shown inFIG. 1may comprise hardware elements (including circuitry), software elements (including computer code stored on a computer-readable medium), or a combination of both hardware and software elements. It should further be noted thatFIG. 1is merely one example of a particular implementation and is merely intended to illustrate the types of components that may be present in a device8. For example, in the presently illustrated embodiment, these components may include a display10, I/O ports12, input structures14, one or more processors16, a memory device18, a non-volatile storage20, expansion card(s)22, a networking device24, and a power source26.

With regard to each of these components, the display10may be used to display various images generated by the device8. The display10may be an LCD, OLED-type display, or other suitable display device. Additionally, in certain embodiments of the electronic device8, the display10may be provided in conjunction with a touch-sensitive element, such as a touchscreen, that may be used as part of the control interface for the device8and, further, may be used in conjunction with the presently disclosed approach to enter content into cells of a table or to rotate content entered into cells of a table displayed on the touchscreen.

The I/O ports12may include ports configured to connect to a variety of external devices, such as a power source, headset or headphones, or other electronic devices (such as handheld devices and/or computers, printers, projectors, external displays, modems, docking stations, and so forth). The I/O ports12may support any interface type, such as a universal serial bus (USB) port, a video port, a serial connection port, an IEEE-1394 or Firewire™ port, a Thunderbolt™ port, an Ethernet or modem port, and/or an AC/DC power connection port.

The input structures14may include the various devices, circuitry, and pathways by which user input or feedback is provided to the processor16. Such input structures14may be configured to control a function of the device8, applications running on the device8, and/or any interfaces or devices connected to or used by the electronic device8. For example, the input structures14may allow a user to navigate a displayed user interface or application interface. Examples of the input structures14may include buttons, sliders, switches, control pads, keys, knobs, scroll wheels, keyboards, mice, touchpads, internal accelerometers, and so forth.

In certain embodiments, an input structure14and display10may be provided together, such as in the case of a touchscreen, where a touch sensitive mechanism is provided in conjunction with the display10. In such embodiments, the user may select or interact with displayed interface elements (such as column or row elements of a displayed table) via the touch sensitive mechanism. In this way, the displayed interface may provide interactive functionality, allowing a user to navigate the displayed interface by touching the display10.

User interaction with the input structures14, such as to interact with a user or application interface displayed on the display10, may generate electrical signals indicative of the user input. These input signals may be routed via suitable pathways, such as an input hub or bus, to the processor(s)16for further processing.

The processor(s)16may provide the processing capability to execute the operating system, programs, user and application interfaces (e.g., a word processor, spreadsheet, database, or presentation application user interface), and any other functions of the electronic device8. The processor(s)16may include one or more microprocessors, such as one or more “general-purpose” microprocessors, one or more special-purpose microprocessors and/or ASICS, or some combination of such processing components. For example, the processor16may include one or more central processing units (CPUs), physics processors, graphics processors, video processors, audio processors and/or related chip sets.

The instructions or data to be processed by the processor(s)16may be stored in a computer-readable medium, such as a memory18. Such a memory18may be provided as a volatile memory, such as random access memory (RAM), and/or as a non-volatile memory, such as read-only memory (ROM). The memory18may store a variety of information and may be used for various purposes. For example, the memory18may store firmware for the electronic device8(such as a basic input/output instruction or operating system instructions), various programs, applications, or routines executed on the electronic device8, user interface functions, processor functions, and so forth. In addition, the memory18may be used for buffering or caching during operation of the electronic device8.

The components may further include other forms of computer-readable media, such as a non-volatile storage20, for persistent storage of data and/or instructions. The non-volatile storage20may include flash memory, a hard drive, or any other optical, magnetic, and/or solid-state storage media. The non-volatile storage20may be used to store firmware, data files, software, hardware configuration information, and any other suitable data.

The embodiment illustrated inFIG. 1may also include one or more card or expansion slots. The card slots may be configured to receive an expansion card22that may be used to add functionality, such as additional memory, I/O functionality, or networking capability, to the electronic device8. Such an expansion card22may connect to the device through any type of suitable connector, and may be accessed internally or external to the housing of the electronic device8. For example, in one embodiment, the expansion card22may be a flash memory card, such as a SecureDigital (SD) card, mini- or microSD, CompactFlash card, Multimedia card (MMC), or the like.

The components depicted inFIG. 1also include a network device24, such as a network controller or a network interface card (MC). In one embodiment, the network device24may be a wireless NIC providing wireless connectivity over any 802.11 standard; any 2G, 3G, or 4G cellular data standard; or any other suitable wireless networking standard. The network device24may allow the electronic device8to communicate over a network, such as a Local Area Network (LAN), Wide Area Network (WAN), or the Internet. Further, the electronic device8may connect to and send or receive data with any device on the network, such as portable electronic devices, personal computers, printers, and so forth. Alternatively, in some embodiments, the electronic device8may not include a network device24. In such an embodiment, a NIC may be added as an expansion card22to provide similar networking capability as described above.

Further, the components may also include a power source26. In one embodiment, the power source26may be one or more batteries, such as a lithium-ion polymer battery or other type of suitable battery. The battery may be user-removable or may be secured within the housing of the electronic device8and may be rechargeable. Additionally, the power source26may include AC power, such as provided by an electrical outlet, and the electronic device8may be connected to the power source26via a power adapter and suitable connector port. This power adapter may also be used to recharge one or more batteries, if present.

With the foregoing in mind,FIG. 2illustrates an electronic device8in the form of a handheld device30, here a tablet computer. By way of example, the handheld device30may be a model of an iPad®, iPod®, or iPhone® available from Apple Inc. of Cupertino, Calif. It should be noted that while the depicted handheld device30is provided in the context of a tablet computer, other types of handheld devices (such as media players for playing music and/or video, personal data organizers, handheld game platforms, e-readers, handheld GPS navigation units, and/or combinations of such devices) may also be suitably provided as the electronic device8. Further, a suitable handheld device30may incorporate the functionality of one or more types of devices, such as a media player, a cellular phone, a gaming platform, an e-reader, a personal data organizer, and so forth.

For example, in the depicted embodiment, the handheld device30is in the form of a tablet computer that may provide various functionalities (such as the ability to take pictures, record audio and/or video, listen to music, play games, map travel routes, and so forth) in addition to running applications, such as productivity software, capable of displaying and manipulating content within table cells. As discussed with respect to the general electronic device ofFIG. 1, the handheld device30may allow a user to connect to and communicate through the Internet or through other networks, such as local or wide area networks. The handheld electronic device30, may also communicate with other devices using short-range connections, such as Bluetooth and near field communication.

In the depicted embodiment, the handheld device30includes an enclosure or body that protects the interior components from physical damage and shields them from electromagnetic interference. The enclosure may be formed from any suitable material such as plastic, metal, or a composite material and may allow certain frequencies of electromagnetic radiation to pass through to wireless communication circuitry within the handheld device30to facilitate wireless communication.

In the depicted embodiment, the enclosure includes user input structures14through which a user may interface with the device. Each user input structure14may be configured to help control a device function when actuated. For example, in a tablet computer implementation, one or more of the input structures14may be configured to invoke a “home” screen or menu to be displayed, to toggle between a sleep and a wake mode, adjust the volume of audible feedback, and so forth.

In the depicted embodiment, the handheld device30includes a display10in the form of an LCD32. The LCD32may be used to display a graphical user interface (GUI)34that allows a user to interact with the handheld device30. The GUI34may include various layers, windows, screens, templates, or other graphical elements that may be displayed in all, or a portion, of the LCD32. Generally, the GUI34may include graphical elements that represent applications and functions of the electronic device. The graphical elements may include icons36and other images representing buttons, sliders, menu bars, and the like. The icons36may correspond to various applications of the electronic device that may open upon selection of a respective icon36. Furthermore, selection of an icon36may lead to a hierarchical navigation process, such that selection of an icon36leads to a screen that includes one or more additional icons or other GUI elements. The icons36may be selected via a touchscreen included in the display10, or may be selected by a user input structure14, such as a mouse, wheel, or button.

The handheld electronic device30also may include various input and output (I/O) ports12that allow connection of the handheld device30to external devices. For example, one I/O port12may be a port that allows the transmission and reception of data or commands between the handheld electronic device30and another electronic device, such as a computer. Such an I/O port12may be a proprietary port from Apple Inc. or may be an open standard I/O port.

In addition to handheld devices30, such as the depicted tablet computer ofFIG. 2, an electronic device8may also take the form of a computer or other type of electronic device. Such computers may include computers that are generally portable (such as laptop or notebook computers) as well as computers that are generally used in one place (such as conventional desktop computers, workstations and/or servers). In certain embodiments, the electronic device8in the form of a computer may be a model of a MacBook®, MacBook® Pro, MacBook Air®, iMac®, Mac® mini, or Mac Pro® available from Apple Inc. By way of example, an electronic device8in the form of a laptop computer50is illustrated inFIG. 3, in accordance with one embodiment of the present disclosure. The depicted computer50includes a housing52, a display10(such as the depicted LCD32), input structures14, and input/output ports12.

In one embodiment, the input structures14(such as a keyboard and/or touchpad) may be used to interact with the computer50, such as to start, control, or operate a GUI or applications running on the computer50. For example, a keyboard, mouse, and/or touchpad may allow a user to navigate a user interface or application interface displayed on the LCD32.

As depicted, the electronic device8in the form of computer50may also include various input and output ports12to allow connection of additional devices. For example, the computer50may include an I/O port12, such as a USB port, Thunderbolt® port, or other port, suitable for connecting to another electronic device, a projector, a supplemental display, and so forth. In addition, the computer50may include network connectivity, memory, and storage capabilities, as described with respect toFIG. 1. As a result, the computer50may store and execute a GUI and other applications (e.g., productivity and/or presentation applications having a user interface).

With the foregoing discussion in mind, an electronic device8, such as either a handheld electronic device30or computer50, may be used to store and run an application that allows a user to generate, modify, and utilize a pop-up menu containing options for populating a cell of a table. In certain implementations, routines executed on the electronic device8may initially automatically generate or populate such a pop-up menu and a user may subsequently edit and use the pop-up menu when entering data into cells of a table. In other embodiments, the user may generate the pop-up menu themselves for subsequent use.

By way of example, and relying on a series of representative screen-shots,FIGS. 4-10, depict screens and options that may be displayed as part of the present approach for generating pop-up menus, both manually and automatically. Turning toFIG. 4, in this example screen shot, a spreadsheet application88is depicted in which a table90having a single column92of cells94is displayed. In this example, the column92is labeled with a header96that provides an indication or description related to the contents of the cells94. Here, the header96is titled “Flavors” and conveys that the contents of the cells94will relate to various flavors that may be associated with an items or items to which the table90relates. As will be appreciated, the present example is provided to facilitate explanation by providing a straight-forward, understandable context. However, the contents of the cells94and the options provided by the pop-up menus discussed herein may, in practice, relate to any number of suitable qualitative or quantitative descriptors.

With this in mind, and turning back to the example ofFIG. 4, in this example the range of cells94is initially empty and the user may wish to associate the selected range of cells94with an option to populate the cells94via a pop-up menu. In one embodiment, the user may select the range of cells94and invoke, by appropriate means within the application spreadsheet program interface, an option to associate the selected cells94with a pop-up menu. For example, an information or setup menu100may be invoked after selecting the cells94and a format option (i.e., format option102) may be selected allowing a user to apply certain format options to the selected cells94. In the depicted example, the format options displayed include an option104to associate a control in the form of a pop-up menu with the selected cells94.

Upon selection of the pop-up menu option104, an options screen110may be displayed (FIG. 5) to allow configuration or modification of a pop-up menu to be associated with the selected cells94. In the depicted example, the range of cells94is initially empty. In one implementation, the default initial value setting in the selected cells94is to the first option item (i.e., “Item 1”) of the pop-up menu item list and the default character string, “Item 1”, is initially displayed in the cells94of the selected range of cells94associated with the pop-up menu. In this example, other default values (i.e., “Item 2” and “Item 3”) may also be associated with the pop-up menu being formatted, though the number of items associated with the default pop-up menu and the associated character strings may vary in different implementations. In the depicted example, the user is also provided with an option112to leave each selected cell94blank initially, as opposed to a default of initially populating the selected cells94with the first value within the pop-up menu option list being formatted. In addition, such a “Blank” initial value option may be employed to provide a user-selectable blank-option (e.g., an option for “none” or “blank”) within the pop-up menu list being created (such as at the top of the pop-up menu) so that a user can actually select to leave the contents of a cell94that is linked to a pop-up menu blank or empty.

Turning toFIG. 6, in this example the user may select (such as by touch in a touch screen context or mouse click in other contexts) the first option field120in the displayed pop-up menu options110to prompt entry of a value for the first option. In the depicted example, selection of the first option field120causes an insertion point122to be displayed in the first option field120along with a virtual keyboard124, such as may be suitable for entry of a character string in a touch screen implementation. In one implementation, a control128that may be used to delete the current text in the first option field120may also be provided to allow a user to quickly and easily remove text present in the respective fields prior to entering new characters. In addition, controls130may be provided for reordering items of the pop-up menu, for deleting (controls132) items from the pop-up menu, or for adding (control134) new items to the pop-up menu. In certain implementations, deletion of an item from the pop-up menu list, such as using control312, results in any cell94having a value corresponding to the deleted item to be set to the initial value (e.g., blank or to the first item in the pop-up menu list).

Using the virtual keyboard124or other suitable input interfaces, a user may enter a character string into the respective first option field120as well as second and third option fields138,140. Turning toFIG. 7, in the depicted example the user has entered the flavor “Vanilla” in the first option field120, “Chocolate” in the second option field138, and “Strawberry” in the third option field140, thereby defining the values for the first three fields of a pop-up menu to populate the associated cells94. In the depicted example, the user has also left the option selected to set initial values of the cells94to the first value in the pop-up menu. As a result, the cells94all initially display the character string “Vanilla” which is designated in the first option field120.

Turning toFIG. 8, in this example, a user has added an additional field150to the pop-up menu options, such as by selection of the control134or corresponding “add new item” field or by interacting with a suitable key off the virtual keyboard124(such as a “Next” key) to add the additional field150. In addition,FIG. 8depicts the additional field150as having the character string “Cinnamon” entered in the added field150for display and use with a pop-up menu corresponding to the entered options.

Similarly, a user may rename an item in the pop-up menu list by selecting the field having the item to be renamed. Using virtual keyboard124or other suitable control (e.g., text removal control128), the user may remove or overwrite the existing entry of the selected field and replace the prior entry with a new entry. In one implementation, upon entry and confirmation of the new entry in the pop-up menu list, any cells94that previously displayed contents corresponding to the changed entry may be updated to display the newly entered value or character string.

In certain instances, data entered into or edited in a field of the pop-up menu editing interface110may be determined to correspond to a particular non-text format, such as a time or data format, a currency format, or a number or duration format. In certain implementations, such a determination may result in the entered or edited character string being automatically converted (i.e., coerced) into that format upon completion of the entry or editing operation. In such implementations the formatted string, upon selection and entry into a cell94may be used in calculations or formulas referencing the respective cell94. Such coercion or reformatting may also be automatically applied in certain instances where a text string (e.g., “five”) is automatically reformatted into a numeric value or format (i.e., “5”) from the text string. Alternatively, if the formatting so specifies, a numeric value may be reformatted to a text value upon entry into the pop-up menu option interface110.

While the preceding discussion describes an implementation in which a pop-up menu is populated manually upon selection of a range of cells94that are empty, in other implementations the pop-up menu may be completely or partially populated based upon the existing entries of the selected cells94. For example, turning toFIG. 9, the selected cells94may initially be populated with values used to generate a pop-up menu, which may then be used in populating additional cells.

In this example, the user may select the range of cells94having the suitable values and invoke, by appropriate means within the application spreadsheet program interface, an option to associate the selected cells94with a pop-up menu. For example, as discussed above, an information or setup menu100may be invoked after selecting the cells94and a format option (i.e., format option102) may be selected from among a series of options to allow a user to apply certain format options to the selected cells94. In the depicted example, the format options displayed include an option104to associate a control in the form of a pop-up menu with the selected cells94.

Upon selection of the pop-up menu option104, the pop-up menu options interface110may be displayed (FIG. 10) to allow configuration or modification of a pop-up menu to be associated with the selected cells94. However, unlike preceding examples, the invoked pop-up menu option interface may be automatically populated based upon the contents (e.g., unique values) already present in the selected cells94. In the depicted example, the order in which options are listed in the pop-up menu option interface110are based on the order in which the values occur in the selected calls94. However, in other embodiments this may vary. For example, in an alternative embodiment, the frequency at which a value occurs in the selected cells94may instead determine the order in which the values are listed in the pop-up menu (i.e., more common or frequent entries are listed higher in the pop-up menu options). In the present example, duplicate values in the selected cells94are not added to the pop-up menu list, i.e., each unique value is only added once to the pop-up menu list. Further, in certain implementations, a cell94may have already been populated by means of a pop-up menu previously associated with the respective cell. In certain such embodiments, the present value within the selected cell may be used in populating the pop-up menu list within the pop-up options interface110. In one embodiment where a pop-up menu list is initially populated using a set of populated cells94, the selected cells94, which become associated with the pop-up menu being generated, are assigned the value from the pop-up menu that corresponds to the respective cell's initial value. Such an implementation is in contrast to other implementations, where existing entries or contents of the selected cells are deleted or replaced with one or more stock options.

It should also be noted that, in certain circumstances, the content of a selected cell94may contain or be specified by a construct (e.g., a formula) or other content specifying mechanism (such as a stepper or slider mechanism also used in entering bounded values). Likewise, the content of a selected cell may be some non-text construct, such as a checkbox or star rating mechanism. In such instances, the control logic used to automatically generate the pop-up menu list may account for such values or value formats. For example, in one implementation, if a selected cell94contains a valid formula, the result of the formula (i.e., the displayed value in the cell) may be converted to a text or numeric string and added to the pop-up menu list as a selectable item, with that value being used as the content of the respective cell that contained the formula. Conversely, if the selected cell contains an invalid formula (such as due to an error in the formula), no value may be added to the pop-up menu list options and the respective cell may be initially populated with the first listed item in the pop-up menu or by a blank.

Likewise, numbers, dates, times, durations, custom formats, numeral systems, cell values specified by a slide, and cell values specified by a stepper may be converted to a suitable text string (or suitably formatted field) and the respective converted text string or formatted value used to populate the pop-up menu list options as well as the respective cell94. Further, checkbox values present in a selected cell94may be converted into “true” or “false” text strings, respectively, corresponding to their logical values. Likewise, star-rating values present in a selected cell may be converted into a corresponding numerical text string (e.g., “****” may be converted to “4” or “four”). As described above, the content value in each selected cell94is automatically set to the item in the pop-up menu list options that corresponds to the cell's previous value.

With the preceding discussion in mind,FIG. 11depicts a process flow diagram illustrating control logic that may be used in one implementation in which a pop-up menu180is automatically generated based on a selection of populated cells162. In this example, a suitable application, such as a spreadsheet application or other productivity application running on an electronic device8, receives (block160) a user input corresponding to a selection of cells162, such as populated cells within a displayed table.

Based on the selected cells162, a pop-up menu180may be automatically populated (block164) based on the contents of the selected cells162. For example, each unique value in the selected cells162may be listed once as an item or option in the pop-up menu list (i.e., values that are duplicated in the selected cells162are only listed once in the pop-up menu). In addition, user edits may be received (block168), such as deletion or renaming of items or options from the generated pop-up menu. Likewise, various edits or reformatting logic in place may automatically convert or reformat (block170) values present in the selected cells162to a suitable text (or other) format in the pop-up menu options. Upon acceptance of the pop-up menu options, the pop-up menu180is associated with the selected cells and may be used to select or change the contents of the selected cells162or other cells with which the pop-up menu180is subsequently associated. Further, if a range of selected cells includes an existing pop-up cell, the currently-selected item or value may be assigned as the value for the respective cell. Further, to the extent that the reformatting step (block170) or user editing step (block168) results in a pop-up menu option being changed compared to the initial value in the cell contents from which it was derived, the content of those cells may be set to correspond to the edited or reformatted entry in the pop-up menu180.

The preceding examples relate to instances where the pop-up menu list is initially generated and populated based on a range of cells that is entirely blank or entirely populated. As will be appreciated, in other circumstances, the selected range of cells94associated with a pop-up menu being generated may be partially populated, with some cells94being blank and others being populated with numeric or textual strings. In such instances, the pop-up list menu may generally be generated in the manner discussed above for generating a pop-up list menu from a range of populated cells except, in one implementation, the initial value setting112may be set to “Blank”, or some similar setting. Based on this setting, the pop-up list menu generated in such an implementation will include a “Blank” option within the pop-up menu generated, such as in the first field option of the corresponding pop-up menu. As with the preceding example, the selected cells94, which become associated with the pop-up menu being generated, are assigned the value from the pop-up menu that corresponds to the respective cell's initial value, including blank values.

The preceding discussion generally relates to the generation and modification of a pop-up menu for use in providing a bounded range of content option for associated cells of a table. The use of pop-up menus is now described. For example, turning toFIG. 12, a range of cells94of a table90is depicted where the cells94are associated with a pop-up menu. In the depicted example, the first list item in the pop-up menu (e.g., “Vanilla”) initially populates the associated cells94.

In this example, selection of a cell94associated with the pop-up menu (such as by single- or double-tapping the cell94in a touch screen embodiment) causes the pop-up menu or control180to be displayed (FIG. 13). In the depicted example, a carat or pointer of the pop-up menu180indicates the cell94for which the contents are to be selected. In addition or alternatively, the selected cell may be highlighted or otherwise visually indicated. To the extent that the length of the list of items in the pop-up menu180allows, the height of the pop-up menu180may be scaled to display all items in the list. If this is infeasible due to the length of the list, the list of options shown in the pop-up menu180may instead allow a user to scroll through or otherwise navigate the list of items. In the depicted example, the pop-up menu180, when invoked for a given cell94, initially indicates what selection in the pop-up menu180is already displayed as the content of the selected cell94, such as via a visual indicator182(e.g., a check mark, highlighting, text color, and so forth).

Turning toFIG. 14, in this example, the user selects an option from the pop-up menu180, such as indicated by contact point186of a touch-screen implementation. Upon selection of the different option in the pop-up menu180, the content of the selected cell is updated to display the selected content and the pop-up menu180is removed from display, as depicted inFIG. 15. The user may then proceed to select other cells94and update the contents of these cells using the pop-up menu180. While the preceding example relates to using a pop-up menu to select contents for a cell of a table or database, it should be appreciated that a pop-up menu as described herein may also be used to enter data into a form that may be constructed to facilitate entry into an underlying spreadsheet or database. That is, the field selected by a user and prompting display and use of a pop-up menu180may be displayed as part of a form that may in turn be constructed as an interface for entering data into an underlying spreadsheet or database.