The marriage of mobile phones and wireless networking, as currently embodied in mobile devices such as smartphones and tablet computers, has revolutionized the way, and frequency at which, people access and use the Internet. The convenience and availability of a browser and data connectivity in a single mobile device allows people to access information available over the Internet at nearly any time and from nearly any place, providing nearly instant gratification of receipt of information and accomplishing tasks that are achievable via a web browser.
The number of people accessing the Internet via mobile devices is outpacing those accessing the Internet from traditional desktop and even laptop devices. With the explosion in the frequency of smartphone and tablet computer usage, there has been a simultaneous increase in e-commerce transactions conducted via such mobile devices versus via traditional desktop and laptop computing devices. For retail businesses, it is therefore critical to have a mobile website with a simple-to-use aesthetically pleasing graphical user interface in order to prevent customer drop-off and to facilitate sales.
Embodiments of the invention include a user interface, systems, and methods for customizing a product design from an electronic device.
One embodiment includes a user interface for customizing a product design. The user interface includes a container containing a visual representation of the design displayed on an electronic display. The visual representation of the design depicts the design in its current form in a What-You-See-Is-What-You-Get (WYSIWYG) depiction, and includes a plurality of customizable elements that are individually selectable by a user via direct touch on a corresponding area of the electronic display. The user interface further includes a plurality of user interface controls. The user interface controls include a form control responsive to user input to set the form control into one of a plurality of form control states including at least an expanded state, a contracted state, and a partially contracted state. The expanded state is configured to expose for display on the electronic display a plurality of user-editable form fields corresponding to the plurality of customizable elements of the visual representation of the design and wherein each user-editable field is configured to receive content from the user whereby the received content corresponds to corresponding visual content of the corresponding element in the visual representation of the design. The contracted state is configured to hide the user-editable form fields from view on the electronic display. The partially contracted state is configured to display on the electronic display only the user-editable form fields corresponding to currently selected elements in the visual representation of the design.
The user interface further includes a customization control responsive to user input to set the customization control into one of a plurality of customization control states including at least a contracted customization control state in which an expanded set of customization option controls is hidden from view on the electronic display and an expanded customization control state in which the expanded set of customization option controls is exposed for view on the electronic display and for user interaction, the set of customization controls configured to allow the user to configure different visual features of the visual content of the respective elements in the visual representation of the design. The container is configured to allow a user to scroll and zoom the visual representation of the design within the container without simultaneously scrolling or zooming user interface controls on the electronic display. Furthermore, direct touch selection of an individual customizable element on the visual representation of the design triggers display of the form control configured in the partially contracted state.
One embodiment includes a method for enabling a user of an electronic device to customize a product design via a user interface displayed on an electronic device. The method includes displaying in the user interface a design within a container, the design comprising a plurality of individually selectable elements, the container configured to allow zooming and scrolling of the design within the container. The method further includes displaying, within the user interface and outside the container, a plurality of design editing controls. The method further includes receiving at least one of a zoom event and a scroll event associated with the container and performing corresponding zooming or scrolling action to zoom or scroll the design within the container, wherein the design editing controls are unaffected by zooming or scrolling action. The method further includes receiving at least one selection event within the container, the at least one selection event corresponding to use selection of an individual element of the design. The method further includes receiving at least one design editing control events and performing a corresponding design edit action associated with the received design editing control event, the action performed on the selected individual element of the design. Optionally, the at least one selection event triggers display of a partially contracted form field control which displays a user editable input field for editing content of the selected individual element of the design.
A more complete appreciation of this invention, and many of the attendant advantages thereof, will be readily apparent as the same becomes better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings in which like reference symbols indicate the same or similar components, wherein:
The challenge for designing websites optimized for mobile devices lies in the smaller screen size of mobile devices versus the screen size typically available from desktop or laptop computer monitors. Key to the amount of information that can be displayed on an electronic display, or “screen”, is the electronic display screen resolution—that is, the number of pixels available for rendering content on the screen of the electronic display. A traditional desktop monitor may include 1280 pixels across by 1024 pixels top-to-bottom (in typical nomenclature, 1280×1024 pixels). Even the lowest resolution desktop monitor will typically have a resolution of at least 640×480 pixels. In contrast, a typical smartphone has a screen resolution of 300×480 pixels. Thus, not only is the orientation different (portrait orientation versus landscape orientation), more importantly there are fewer pixels available on a smartphone to impart information. Thus, less content can be displayed at any given time on a smartphone screen than on a desktop or laptop monitor.
The lower-resolution screen must be accounted for when designing mobile websites. To address this issue of limited resolution, many mobile websites are designed to include fewer text and image elements, limited user functionality, and/or to take more advantage of window scrolling. Some mobile website designers break up the functionality of a traditional website page into two or more mobile website pages, and some mobile websites provide zoom functionality to allow the user of the mobile device to zoom in on a smaller portion of content on the web page in order to inspect the smaller portion of the web page in higher resolution. All of the above techniques are employed to improve the user experience of the website when accessed from a mobile device.
Some retailers, such as Vistaprint which operates a website for example associated with the domain name www.vistaprint.com, sell products which may be customized or designed by a customer/user visiting the website. When a customer/user (hereinafter “user”), is allowed to make design selections and/or add customization to a product, it can be important to provide a preview of the product prior to user purchase of the product in order to ensure that the user understands what the product will look like and how the user's selections and/or customizations affect the appearance of the base product.
When a website provides design functionality, user input is often captured by way of a form presented in a web page. In the case of a product that will include text and/or image customization, individual text and/or image elements of the product design may correspond to individual fields of the form. Users may set the text and/or image content on the product by entering corresponding text and/or image content (or referencing a location of the image to be incorporated into the corresponding image element on the product) into the respective form fields associated with the text and/or image elements of the product. For an improved user experience, a visual representation of the current product design is displayed simultaneously with the form so that as the user enters text or image information into the form field input boxes, the corresponding elements in the visual representation of the current product design are updated to match the field content or style modifications.
On a mobile device, display of a form simultaneously with a visual representation of the current product design (as customized by the user) is difficult due to the limited resolution of the screen, yet the need for a visual representation of the current product design does not decrease.
Accordingly, the present invention provides a unique design experience available inside a browser on a mobile device that includes both form functionality and visual representation functionality, with the further ability for users to view and perform design editing directly on the visual representation of the current product design to modify the underlying product design itself. In order to assist the user in visualizing the overall product, an editable visual representation of the current product design is displayed on the mobile website product design page in addition to other page elements such as a form control, a product design approval control, one or more product editing control(s), navigation element(s), and, if appropriate, additional text and/or image elements. The editable visual representation of the current product design is contained within a container which includes a separate zoom control and/or scroll control configured to allow a user to zoom and scroll the editable visual representation within the container. Individual elements in the editable visual representation of the current product design (corresponding to form fields in the form element) are user editable. This allows a user to edit the product design from either or both of the form field(s) and/or the editable visual representation of the current product design in order to make actual changes to the product design document.
System
In general, embodiments described below feature a design application which allows a user to select a template and customize it with personalized content and style selections from a mobile device such as a smartphone or tablet/pad device. A product design page or application is downloaded to the device by a server. The product design page/app includes script implementing functionality that allows dynamic WYSIWYG display rendering as user-made selections and edits are made to a user-selected template. Features such as in-container scrolling and zooming, touch-based element selection directly from a design preview, control expansion/contraction, and partial form display based on element selection context enables detailed design of document products on a small form-factor screen
An introduction to Internet-related technology is helpful in understanding the present invention. The Internet is a vast and expanding network of computers and other devices linked together by various telecommunications media, enabling the various components to exchange and share data. Web pages and websites (collections of related web pages organized under a particular domain), accessible through Internet, provide information about numerous businesses, products and services, as well as education, research, and entertainment.
An integral component of the system is a computer server. Servers are computer programs that provide some service to other programs, called clients. A client and server communicate by means of message passing often over a network, and use some protocol, a set of formal rules describing how to transmit data, to encode the client's requests and/or responses and the server's responses and/or requests. The server may run continually waiting for client's requests and/or responses to arrive or it may be invoked by some higher-level continually running server that controls a number of specific servers.
A resource that is attached to the Internet is often referred to as a “host.” Examples of such resources include conventional computer systems that are made up of one or more processors, associated memory and other storage devices and peripherals, such as modems, networks interfaces and the like that allow for connection to the Internet or other networks. In most cases, the hosting resource may be embodied as hardware and/or software components of a server or other computer system that includes an interface module, which allows for some dialog with users and that may process information input by the user. Generally, such a server will be accessed through the Internet's graphical user interface, the World Wide Web, (e.g., via Web browsers) in the conventional fashion.
In order to facilitate communications between hosts, each host has a numerical Internet Protocol (IP) address. The IP address of a hypothetical host computer might be 69.17.223.11. Each host also has a unique “fully qualified domain name.” In the case of the hypothetical host 69.17.223.11, the “fully qualified domain name” might be “computer.domain.com”, the three elements of which are the hostname (“computer”), a domain name (“domain”) and a top-level domain (“com”). A given host looks up the IP address of other hosts on the Internet through a system known as domain name service.
A page of a website is addressable by way of a Uniform Resource Locator, or “URL”. A URL specifies three elements: (1) a transfer protocol; (2) a web server name or domain name; and (3) a path. The first element of the URL is a transfer protocol, most commonly “http” standing for hypertext transfer protocol, but others include “mailto” for electronic mail, “ftp” for file transfer protocol, and “nntp” for network news transfer protocol. The domain name indicates the name of the web server that stores the web page. The path indicates the location of web page on the named web server.
In order to access the Internet most users rely on computer programs known as “Web browsers.” Commercially available Web browsers include such well-known programs as Microsoft Corporation's Internet Explorer®, Apple Inc.'s Safari®, Google Inc.'s Chrome®, and Mozilla Foundation's Firefox®, to name a few. If an Internet user desires to view a Web page hosted at www.domain.com, the Internet user might enter into a Web browser program the uniform resource locator (URL) “http://www.domain.com”.
Once a URL is entered into the browser, the request is routed to a Domain Name System (DNS) server capable of matching the domain name specified in the URL to a corresponding IP address of a web server hosting the requested web page. Thus, the DNS server ultimately matches an alphanumeric name such as www.domain.com with its numeric IP address 69.17.223.11.
When a host receives a request from the Internet, it returns the data in the file pointed to by the request to the client making the request. Such data may make up a Web page, which may include a text message, sound, image, video, or a combination of such elements. A user can move between Web pages through the use of hyperlinks, which are links to other pages or locations on pages on the Internet.
A traditional website is a set of one or more web pages served by a web server at a particular domain name. A web page is typically a text document containing text and browser-interpretable instructions, such as the well-known HyperText Markup Language (HTML), eXtensible HyperText Markup Language (XHTML), Dynamic HTML (DHTML), Document Object Model (DOM), etc. A web browser running on a client machine requests a web page by specifying the Universal Resource Locator (URL) of the specific page, and upon receiving the requested page from the server, renders the page on the user's display screen by processing and executing the browser-interpretable instructions. Web pages may be linked to other web pages by way of hyperlinks placed within the page(s). Typically, a hyperlink specifies a URL of a web page, a position in the web page, or a resource accessible by the server serving the web page.
A typical website consists of a home page that is served when the URL specifies the domain name without specifying a particular path (e.g., www.mycompany.com). Additional pages belonging to a website may be specified by way of the path following the domain name in the URL. For example, a “Contact” web page for the www.mycompany.com website may be specified as “www.mycompany.com/Contact”, where the path “/Contact” in the URL indicates the location at the web server of the “Contact” web page.
With reference now to
A website 202 may include design studio functionality which is generally available to a client device 210a, 210b upon the user navigating to a website 202 hosted by the server(s) 201 and activating a control (for example, by clicking on a button or link displayed in a web page) on the website 202 to request download of a design studio application 212a, 212b (referred to generally hereinafter as 212) to the requesting client device 210a, 210b, to execute in a browser 211a, 211b running under the control of at least one processor 215a, 215b on the client device.
The design studio application 212 detects the type of the client device. Preferably, at a minimum, the design studio application 212 determines whether the device type is a mobile device or a traditional computing device. Preferably, the design studio application 212 determines much more than merely whether the requesting device is a mobile device or a traditional device, including the device make and model, operating system, and hardware configuration. In an embodiment, the design studio application 212 reads the operating system configuration to determine the device type and operating system type and version. Other device type, system and hardware configuration may be obtainable by reading configuration information stored in one or more configuration locations in static device memory (e.g., device Read-Only Memory (ROM) or static Random Access Memory (RAM)).
In an embodiment, the design studio application 212 is one or more set(s) of JavaScript code that is downloaded by the server(s) 201 to a requesting client device 210a, 210b. In an embodiment, when the design studio application 212 is downloaded to the client device 210a, 210b, the design studio application 212 presents a gallery of different template designs from which the user may select using a graphical user interface control on the display device of the client device 210a, 210b. Upon receipt of a user's template selection, the design studio application 212 sends the identifier of the selected template to the server(s) 201, which retrieves the template preview 310 (comprising a plurality of different template assets associated with the selected template) from the template assets database 205 and downloads the template to the client device 210a, 210b.
As mentioned, the design studio application 212, 212a, 212b is downloaded to a requesting device 210a, 210b. In an embodiment, the active functionality for the product design page is implemented in one or more sets of JavaScript, which may be downloaded to execute locally within the client browser. The page functionality appears to the user as a set of web pages that naturally sequence from page to page. However, unlike a traditional navigation of a website, graphical user interface screens of the design studio application 212, 212a, 212b need not in fact be separate web pages and are therefore are not necessarily served by the server(s) 201 when navigating from what appears to be “page” to “page”. This significantly reduces the back and forth communication between the server(s) 201 and client device 210a, 210b during the creation and editing of a client user's product design.
Upon receipt of a user's template selection, the design studio application 212, 212a, 212b sends the identifier of the selected template to the server(s) 201, which retrieves the template preview 310 (comprising a plurality of different template assets associated with the selected template) from the template assets database 205 and downloads the template to the client device 210a, 210b.
User Interface
In an embodiment, the design studio application 212, 212a, 212b displays a graphical user interface which includes a product design page 1.
The source code of the design page 1 defines the position and style each of the elements to be rendered and displayed on the electronic display screen of the electronic device. The design page may include a number of different elements, such as text elements, image elements, title elements, heading elements, paragraph elements, container elements (e.g., <DIV> elements), etc. While most of the page elements may be positioned relatively, the elements of the selected template (i.e., the HTML representation of the editable visual representation 3) are defined absolutely within the template element. Absolute positioning of the nested elements within the template element is required because the template element is rendered as a visual representation of the product design and must be accurately represented—that is, the editable visual representation 3 of the current product design must look exactly like the final actual product design that is printed, attached, displayed, engraved, embroidered, adhered, attached, etc., to the physical product. The editable visual representation 3 is thus a WYSIWYG representation.
The selected template is typically selected by the user because the user desires to take advantage of previous design work done by a professional designer. Thus, many of the template elements may be locked to user editing to prevent the customization of the design by the user from straying too far from the intent of the original designer. For example, a template may comprise a layout, a background image, a number of text components, a number of foreground image components, a color scheme, and a font scheme. The provider of the template may desire to allow editing of only certain ones of the total number of template components, or may desire to allow only certain attributes of the components (e.g., color, font) to be editable while locking other attributes (e.g., position). Each of the element attributes and style properties can be made editable (unlocked to user modification) or non-editable (locked to user modification) by the template designer.
The template element may be the selected template converted into an HTML representation and discussed herein as the editable visual representation of the design 3.
In an embodiment, the container 2 in the product design page 1 which contains the visual representation of the design 3 is implemented as an HTML <DIV> element (or “container” element) which inherits its styles from a style sheet (typically a CSS) which selects the particular <DIV> element to declare its overflow property to be hidden (i.e., the overflow property of the <DIV> element is configured as overflow-hidden). In this embodiment, the container element is configured to contain the template element (i.e., the editable visual representation 3).
When a user navigates to a website 202 that offers templates for selection and customization by the users, the website 202 will typically include one or more gallery pages which display images of templates available for use by the user. When a user selects a template image, an HTML representation of the template design, including individual editable component elements (e.g., text and image elements) is passed as an input to the design page source code. In an embodiment, an identifier indicating the selected template is passed as a parameter to the server within the URL of the requested web page. This triggers the server to look up the requested template, convert it if necessary to an HTML representation, and have it placed as the content of the container 2 element within the design page 1.
In an embodiment, the active functionality of the design page 1 is implemented via script. In an embodiment, the scripting is implemented using JavaScript. In an embodiment, the zooming and scrolling control as applied to the editable visual representation of the design 3 (i.e., at the individual element level vs. the page level) operates to initialize the template element (e.g., visual representation of the design 3) as a zoomable/scrollable element. The zoom/scroll control listens for and is triggered by a start gesture event (e.g., a tap start whereby a screen touch is detected and has not been let go). Upon detection of a “start” gesture event, the zoom/scroll control determines whether it is a single touch or double touch event, listens for a “move” event, and determines the amount and direction to move based on input from a detected “move” event. If a double touch is detected, then this is classified as a “pinch” event and the focal point of the pinch is calculated as the midway point between the two screen touch locations, and the zoom level of the template element is changed in accordance with the direction and value of the pinch event. If the touch event is a single touch event, then the event is classified as a scroll event and the position of the template element is changed in accordance with the direction and value of the move event.
Zoom and scroll actions are cascaded through each of the elements nested within the template element (i.e., visual representation of the design 3). In an embodiment, the zoom and scroll functionality is implemented as an iScroll using a library of JavaScript scrolling and zooming functions called iScroll 4, available from cubiq.org. Specifically, an instance of an iScroll element is instantiated with the template element passed as the target element. When the product design page loads, JavaScript listens for DOM loaded event and then instantiates an instance of an iscroll passing the canvas as the target element.
The product design page 1 is configured with a product preview area, or container, 2 which contains an editable visual representation 3 of the current product design. The editable visual representation 3 is a What-You-See-Is-What-You-Get (WYSIWYG) representation of the product design as currently customized by the user. That is, the editable visual representation 3 depicts how the product design will physically look like when manufactured/rendered, including all customizations made by the user.
The container element 2 is configured to contain therein the editable visual representation element 3. The editable visual representation of the design 3 contained therein also includes individual elements 4a, 4b, . . . , 4n corresponding to text and image elements in the represented design. For example, the editable visual representation element 3 contains nested individual elements including text fields 4a, 4b, . . . , 4k, and background image 4l.
Returning to
As further illustrated in
In general, the container 2 contains a visual representation of the design under construction, in its current form. Generally, the individual elements are rendered and displayed to depict the design in its current form in a What-You-See-Is-What-You-Get (WYSIWYG) depiction. Although each element is rendered to appear as it will appear in the final product, many if not all of the individual elements of the design are customizable. That is, the size, font, color, position, etc., of a given element may be user-configurable. Accordingly, many if not all of the individual elements in the visual representation of the design are configured to be individually selectable by a user via direct touch on a corresponding area of the electronic display. Thus, if a user desires to select the element 4a corresponding to the “Phone Number” field, the user can simply tap on the screen in the area where the element 4a is rendered. In order to assist the user in understanding where each element lies in the current design, the system may automatically fill in sample text for each of the fields. That is, initially, when a template is selected and loaded into the container 2 as the visual representation of the design 3 on the design page 1 for subsequent user customization, the user will not have yet entered content into the form fields 9a, 9b, . . . , 9k. In an embodiment, the system inserts sample text into the form fields 9a, 9b, . . . , 9k so that the sample text will appear in the visual representation 3 of the current product design. This may be performed in order to present an example of what type of text should be entered in each field, and to give the user an idea of how the overall layout looks when all fields are filled out. In an embodiment, as shown in
A user can modify the text contained in the current product design by entering text into one or more of the form text fields 9a, 9b, . . . , 9k. Depending on the type of electronic device on which the user interface is implemented, text entry may be input by way of a keyboard, either a physical keyboard or keypad, or a virtual keypad. A virtual keypad may be invoked, for example, by the user tapping into one of the form fields 9a, 9b, . . . , 9k. Generally, the operating system of the electronic device handles detection of user input such as finger taps/gestures and processing of the user input to allow the user input to be processed by the user interface into its appropriate meaning. For example, if a user taps on a form field 9a, the operating system detects the tap event and location of the tap, determines which element corresponds to the location, and invokes the method associated with the tap event which corresponds to the object associated with the location. For example, the tap event may invoke a display of the form control 9 in a partially contracted state, as discussed hereinafter. The tap event may further invoke a listening method which accepts and processes text input received from the input device of the electronic device via the operating system. In an embodiment, when the user enters text in the one or more of the form text fields 9a, 9b, . . . , 9k, for example via a browser-invoked keypad, the text is sent to the server to be rendered in the font associated with the field. Alternatively, the text fonts are downloaded and stored locally to allow the text to be rendered locally.
Turning to
As previously mentioned, the visual representation 3 of the current product design itself is at least partially editable. That is, certain elements, such as text elements 4a, 4b, . . . , 4k may be selected and customized directly from the visual representation 3. For example, customization options may include text styling options such as fonts, style, color, size, etc. At least in a web-browser based implementation of the user interface, elements that are editable from the editable visual representation 3 are defined as such in the HTML code used to render the representation 3. A user can select such editable elements by one of a number of gestures or user inputs recognized by the operating system of the mobile device and passed through to the appropriate page script of the design page 1. For example, in an embodiment, a user's finger tap anywhere within the boundaries of an editable element in the displayed portion of the editable visual representation on the screen of the mobile device results in selection of that particular element. As illustrated in
To assist the user in performing customization options directly from the visual representation 3, the design page 1 includes a customization control 6. In an embodiment, the customization control 6 can be in either a contracted state (as shown in
Each icon 15a, 15b, . . . , 15e is associated with different page script to provide different functionality. For example, if the user taps on the font selection icon 15e, a list 18 of available fonts is displayed, as shown in
As an additional feature, the color 23 (see
In an embodiment, the color picker control 19 also includes a palette area 20 which displays the current color and a set of recently used colors from the available colors. This allows the user to “test” a color by selecting a new color from the color picker control 19, viewing the selected element with the “new” color applied, returning to the color picker 19 if the user desires to try yet another new color or to return to the old color. Although not shown, preferably the color picker control 19 provides a scrolling functionality to allow more colors to be displayed via scrolling. In an embodiment, in order to save space on the screen for content rendering rather than control rendering, the scroll is implied, meaning that the scrolling functionality exists without the visible scrollbar so that when the user performs a scrolling gesture (such as a tap and slide in the downward (or upward) direction, the content of the color picker control 19 scrolls downward (or upward) to reveal more available colors.
Any editable element can be selected and customized in a manner similar to that illustrated via
The scrolling control allows a user to move the underlying editable visual representation 3 of the current product design so as to position an area of interest of the editable visual representation 3 so as to be displayed within the defined dimensions of the container 2. Thus, in reference to
Returning now to
In sum, the design page 1 includes features that are particular optimal for designing customized products from mobile devices. By integrating form control with WYWIWYG presentation and including zoom and edit control directly on the visual presentation element itself, users of mobile device experience a cleaner simplified design process, leading to more satisfied customers.
Any number of customers operating client devices 610 may access the website hosted by the Generate Demand server(s) 630 to view products and product templates and to select, design, and/or customize various design components of a selected product prior to ordering. For example, multiple templates for a product such as a business card may be selectable by the customer for further customization such as adding customer-personalized information such as name, business name, address, phone number, website URL, taglines, etc. Furthermore, the template may include image containers allowing the user to upload images into the product design. Once a customer is satisfied with their selections/customizations, they can place an order 603 through the server 630. Orders 603 are stored in an order database 604 and/or sent directly to a fulfillment center. A server 640 at a fulfillment center may retrieve orders 603 from the order database 604, extract individual item documents 601 from the retrieved orders 603, convert the individual item documents 601 into a set of related individual postscript files which are then aggregated into a set of related gangs files containing the individual items to be manufactured. The gang files are sent to a printing system and the items are simultaneously manufactured a “gang” at a time. Manufactured items are sorted by a sorting system back into their individual orders, packaged and shipped or otherwise delivered to the respective individual customers.
In general, the orders 603 submitted by customers are short run manufacturing jobs, i.e., manufacturing jobs of products of a particular design and shape of less than 40,000 units, typically 1-5,000 units). Through a network 650, each customer can access a website comprising a plurality of related web pages 633 configured to allow a customer to select and customize a graphical design or template to be printed, etched, engraved, stamped, affixed, or otherwise embodied on a product (e.g., business cards, brochures, invitations, announcements, promotional products such as keychains, mousepads, magnets, decals, etc.). Design tool(s) 633 including the user interface software may execute directly on the Generate Demand/Order Pipeline server 630, or may be downloaded 614 from the server 630 as part of web pages 633 displayed to the user to run in the user's browser 613 on the customer's electronic device 610. In an embodiment, the design tool(s) 614, 635 enable the user to perform simple design functions by completing a selected template using the user interface of the present invention. In an embodiment, the templates are embodied using an XML format or other appropriate format.
Computer 710 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 710 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer 710. Computer storage media typically embodies computer readable instructions, data structures, program modules or other data.
The system memory 730 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 731 and random access memory (RAM) 732. A basic input/output system 733 (BIOS), containing the basic routines that help to transfer information between elements within computer 710, such as during start-up, is typically stored in ROM 731. RAM 732 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 720. By way of example, and not limitation, FIG. F illustrates operating system 734, application programs 735, other program modules 736, and program data 737.
The computer 710 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only, FIG. F illustrates a hard disk drive 740 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 751 that reads from or writes to a removable, nonvolatile magnetic disk 752, and an optical disk drive 755 that reads from or writes to a removable, nonvolatile optical disk 756, such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 741 is typically connected to the system bus 721 through a non-removable memory interface such as interface 740, and magnetic disk drive 751 and optical disk drive 755 are typically connected to the system bus 721 by a removable memory interface, such as interface 750.
The drives and their associated computer storage media discussed above and illustrated in FIG. F provide storage of computer readable instructions, data structures, program modules and other data for the computer 710. In FIG. F, for example, hard disk drive 741 is illustrated as storing operating system 744, application programs 745, other program modules 746, and program data 747. Note that these components can either be the same as or different from operating system 734, application programs 735, other program modules 736, and program data 737. Operating system 744, application programs 745, other program modules 746, and program data 747 are given different numbers here to illustrate that, at a minimum, they are different copies. A user may enter commands and information into the computer 710 through input devices such as a keyboard 762 and pointing device 761, commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 720 through a user input interface 760 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor 791 or other type of display device is also connected to the system bus 721 via an interface, such as a video interface 790. In addition to the monitor, computers may also include other peripheral output devices such as speakers 797 and printer 796, which may be connected through an output peripheral interface 790.
The computer 710 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 780. The remote computer 780 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 710, although only a memory storage device 781 has been illustrated in FIG. F. The logical connections depicted in FIG. F include a local area network (LAN) 771 and a wide area network (WAN) 773, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
When used in a LAN networking environment, the computer 710 is connected to the LAN 771 through a network interface or adapter 770. When used in a WAN networking environment, the computer 710 typically includes a modem 772 or other means for establishing communications over the WAN 773, such as the Internet. The modem 772, which may be internal or external, may be connected to the system bus 721 via the user input interface 760, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 710, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation, FIG. F illustrates remote application programs 785 as residing on memory device 781. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
Although the present invention is described above by way of various embodiments that include specific structures and methods, embodiments that include alternative structures and methods may be employed without departing from the principles of the invention described herein.
This application claims priority under 35 U.S.C. §119(e) of U.S. Patent Application No. 61/838,865, filed Jun. 24, 2013, which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61838865 | Jun 2013 | US |