Abstract:
Regulating user interface controls includes receiving a user identifier, associating a grouping with the user identifier by selecting a grouping from among different groupings and automatically providing a set of user interface controls corresponding to the identified grouping, the set of user interface controls including a toolbar. The groupings can correspond to the maturity levels (e.g., kids and teenagers) of different network service provider users.

Description:
TECHNICAL FIELD 
     This invention relates to customized user interfaces, for example, a graphical user interface (GUI). 
     BACKGROUND 
     A GUI can include a wide variety of user interface controls that respond to user manipulation. Referring to  FIG. 1 , a Microsoft Word™ word processing application GUI  100  includes a toolbar  102  that presents a row of user input controls  102   a - 102   j  positioned in a substantially regular pattern. The controls enable a user  102   a - 102   j  to quickly perform common tasks such as opening  102   b,  saving  102   c,  and printing  102   d  a document  106 . By collecting controls into an easily accessible area of the GUI  100 , the toolbar  102  enables a user to quickly find and access a particular control whenever the user wants the application to perform a task associated with the selected control. 
     The toolbar  102  can include button controls (buttons)  102   a - 102   g,    102   i  that feature pictorial representations of common tasks. When activated by a user (e.g., clicked on), a button  102   a - 102   g,    102   i  responds by causing a predetermined application function to occur. For example, button  102   c  includes a picture of a diskette. When a user clicks on the picture of a diskette  102   c  or anywhere within a bounding region that defines the button  102   c , the word processor saves a document  106 . 
     The toolbar  102  can include controls other than buttons  102   a - 102   e ,  102   j.  For example, as shown, the toolbar  102  includes a list control  102   h  and a pull-down menu control  102   i.  Referring also to  FIG. 2 , when activated by a user, the pull-down menu control  102   i  presents a list of menu choices  104   a - 104   c.    
     A control can be responsive to user input (i.e., enabled) or unresponsive (i.e., disabled). A control can be displayed differently if disabled. For example, because the user has not selected any document text  106 , the button  102   f  corresponding to a “cut” function is displayed in a muted gray-scale, indicating that the “cut” function is presently unavailable. As shown, although displayed differently, a disabled control (e.g.,  120   f  nevertheless occupies its normal amount of space on the GUI screen  100 . 
     The toolbar  102  can remain visible while a user performs other actions such as working on the document  106 . Additionally, a user can move the toolbar  102  to different regions of a screen  100 . Microsoft Word™ also allows a user to tailor the controls included in a toolbar  102  based on personal preference. For example, a user who does not have a printer can remove the print button  102   f  from the toolbar  102 . 
     The inventors have determined that it would be desirable to provide a customized user interface that includes different controls for users belonging to different groups. 
     SUMMARY 
     In general, in one aspect, a method of regulating user interface controls includes identifying a grouping from among a plurality of groupings and providing a set of user interface controls corresponding to the identified grouping. 
     Embodiments may include one or more of the following features. 
     The set of user interface controls may be displayed as a bank of controls. The controls can include buttons, pull-down menu controls, among other user interface controls. The user interface controls can be provided by controls changing an existing collection of user interface controls (e.g., adding or removing user interface controls in a default set of controls). 
     The groupings may be based on user maturity. For example, different groupings may be for children and/or teenagers. The groupings may also be used to identify access levels to network service provider services such as e-mail, chat rooms, and internet browsing. 
     Identifying a grouping may include receiving user information and based on the received information, determining the grouping. Such user information can be received via a network connection. The information may include a user identifier. The user identifier may be associated with a grouping by storing the associated grouping in a database. The grouping can be selected from a list or by identifying user characteristics such as a user&#39;s age. 
     In general, in another aspect, a method of producing a toolbar having user interface controls includes associating a grouping corresponding to a maturity level with a user identifier by receiving a selection of a grouping from a plurality of groupings, receiving a user identifier over a network connection, determining the grouping associated with the user identifier, and using the determined grouping to produce a toolbar having user interface controls. The user interface controls included in the toolbar are determined based on the grouping associated with the user identifier. 
     In general, in another aspect, a computer program, residing on a computer-readable medium, includes instructions for causing a computer to identify a grouping from among a plurality of groupings and provide a set of user interface controls corresponding to the identified grouping. 
     Advantages can include one or more of the following. By customizing the controls made available by a toolbar based on a user&#39;s group, different users can enjoy the benefits of a toolbar without the clutter of permanently disabled controls or controls not frequently accessed. When the groups correspond to different levels of maturity, an application can provide youngsters with a toolbar that limits access to certain functions, for example, by omitting buttons relating to forbidden functions, without calling these limitations to a child&#39;s attention. Additionally, a simplified toolbar—for example, a toolbar that includes buttons different than those available on a fall-access toolbar—can direct a child&#39;s attention to age-appropriate features that a child likely would enjoy. 
     When a network service provider furnishes group specific toolbars, adults can place a child in front of a networked computer without worrying that the child will stumble onto material intended for mature audiences. At the same time, the child is not frustrated or confused by interacting with a toolbar featuring a number of disabled controls. 
     The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims. 
    
    
     
       DESCRIPTION OF DRAWINGS 
         FIGS. 1-2  are screenshots of a graphical user interface (GUI). 
         FIG. 3  is a flowchart for producing a bank of controls based on an identified access level. 
         FIGS. 4A-4B  are screenshots of a GUI that can define an access level for a user. 
         FIGS. 5A-5B  are screenshots of toolbars that have different controls based on the different access-levels of different users. 
         FIG. 6  is a diagram of a system for producing a bank of controls based on an identified access level. 
         FIG. 7  is a diagram of a computer platform. 
     
    
    
     Like reference numbers and designations in the various drawings indicate like elements. 
     DETAILED DESCRIPTION 
     Referring to  FIG. 3 , producing a bank of user interface controls for a graphical user interface (GUI) includes identifying a user&#39;s grouping from a set of different groupings ( 110 ) and including controls in the bank of controls based on the identified grouping ( 112 ). Identifying a grouping can be achieved based on any combination of a wide variety of factors. For example, a grouping can be determined based on information describing user characteristics (e.g., age) or by using environmental information (e.g., when an application is launched). 
     This technique of producing a bank of user interface controls provides a user with a concentrated collection of controls tailored to a user&#39;s grouping. Thus, users belonging to a group having restricted-access do not experience the problem of toolbar clutter that results from permanently disabled controls reserved for more privileged users . Additionally, functions that a certain class of user (e.g., kid, elderly, mentally challenged) are likely to use more frequently can be presented more conspicuously (e.g., as a toolbar button instead of as a menu choice). 
     The technique described above has a wide variety of potential applications. For example, network services such as e-mail and Internet access offer adults a wealth of information and communication options. These services, however, can expose teenagers and children to subject matter aimed at more mature audiences. Some inappropriate material is actively sought by young users (e.g., via the Internet) while other material is inappropriately sent to young users (e.g., in chat rooms). Accordingly, one implementation employs maturity-based groupings to customize different toolbars for network service users of different ages. 
     Referring to  FIG. 4A , a network service provider GUI  114  can include one or more toolbars  118 . Tailoring a toolbar  118  to include a specific set of controls for users of different ages can help protect teenagers and younger children from inappropriate material and simplify use by eliminating otherwise disabled functions from representation on a GUI screen  114 . This tailoring also can steer younger users toward areas of potential interest. 
     In one implementation a user&#39;s grouping is defined by a “master” user such as an adult having an account with a network service provider. As shown, an adult can create an account for a child by selecting a screen name (i.e., a user identifier)  116 . Referring to  FIG. 4B , the adult then can select a grouping (e.g., 18+  120   a , mature teen  120   b , young teen  120   c , or kids  120   d ) from a list of groupings to associate the selected grouping with the user identifier. Different groupings also grant different levels of access to the Internet (e.g., browsing, newsgroups, FTP (file transfer protocol) downloads), e-mail, chat sessions, and other network services (e.g., account management). Network service software on a client or a host can use a selected grouping (e.g., as defined by a master user) to provide a toolbar tailored to services available to the members of the selected grouping. Selecting a grouping from a list of groupings enables an adult to quickly set up accounts for different youngsters that both provide appropriate limitations on access and provide a customized user interface. The groupings shown are merely illustrative. In another implementation, the network service software includes only two groupings: “Internet access” and “no Internet access.” 
     Referring to  FIGS. 5A-5D , a toolbar  118  produced for a user identified as having an “18+” grouping includes controls different from a toolbar  124  produced for a user identified as belonging to a “kids” group. As shown, both toolbars  118 ,  124  share a number of common controls such as controls for handling e-mail  118   a - 118   c ,  124   a - 124   c . Additionally, both toolbars  118 ,  124  share general characteristics. For example, buttons  118   a ,  118   b ,  118   k - 118   m  and pull-down menus  118   c ,  118   e - 118   j  both include pictures (e.g., a printer) and text (e.g., “Print”)describing the function(s) accessible with a control. A user can reduce the amount of screen space a toolbar  118 ,  124  occupies by configuring the toolbar  118 ,  124  to only display the text description (not shown). 
     As shown in  FIG. 5A , adult toolbar  118  includes a pull-down menu control  118   i  labeled “Channels” that lists menu choices  122  corresponding to different categories of information that a user can access. Some of the information included in these categories may be inappropriate for young children (e.g., magazine subscriptions that can be ordered using a “bill me later” option). As shown, the “Channels” pull-down menu  122  features a “Kids Only” menu choice  123  near the end of the listed choices  122 . 
     The kids toolbar  124  does not include a number of controls  118   j - 118   m  included in the adult toolbar  118  (e.g., controls for accessing stock quote information and for making purchases). Additionally, the kids toolbar  124  does not include the “Channels” menu control  118   i  included in the adult toolbar  118 . The kids toolbar  124  instead includes a “Kids Only” button  124   i  that presents a “Kids Only” window  126  when activated. Providing access to the “Kids Only” window  126  as a prominent button  124   i  in the kids toolbar  124 , instead of being buried in a list of choices provided by a pull-down menu control  118   i,  increases the likelihood a young child will navigate to the window  126 . 
     Referring to  FIG. 5B , the adult toolbar  118  also includes a “Favorites” pull-down menu control  118   g  that contains references to content frequently accessed by an adult. Many of the listed entries, for example, merchandise available for purchase on-line or bookmarked Internet sites, may be inappropriate for children. The kid&#39;s toolbar  124  does not include the “Favorites” pull-down menu control  118   g,  but instead offers a “Shortcuts” pull-down menu control  124   g  that lists choices that direct a child to areas of special interest to kids (e.g., school project ideas). 
     Referring to  FIG. 6 , in one implementation, a host  144  uses a table  154  to store the grouping assigned to a user identifier (ID). It should be understood that the host  144  may not be a single computer, but a collection of networked computers. A client, such as client  140   a , executing client software  141  (e.g., America Online 4.0) initializes a network session by sending a message including a user identifier  142  to the host  144 . The message may also include other information such as the client  140   a  platform (e.g., a PC or Macintosh computer). Software instructions  146  executing on the host  144  use the table  154  to determine the grouping corresponding to the received user ID  142  ( 150 ) and identify an associated set of toolbar controls based on the determined access level ( 152 ). The host  144  can transmit the toolbar information to the client  140   a , which will use the information to display a toolbar having the designated set of toolbar controls. 
     The host software  146  can prepare toolbar information in a number of ways. For example, the software  146  may begin with a default set of controls (e.g., the controls included in the adult toolbar) and modify the controls included in the toolbar transmitted to the client  140   a  by eliminating and/or adding controls to the default set. The default set of controls can reside on either the client  140   a  or host  144 . 
     The software  146  can also modify a control in the default set of controls to produce a different control. For example, the software  146  can produce a different pull-down menu control by removing or adding menu choices from an existing pull-down menu control. Additionally, a new button can be produced by modifying an existing button to have a different picture, descriptive text, and/or preprogrammed function. 
     The system shown in  FIG. 6  is merely illustrative. A wide number of different systems can also produce a toolbar customized for different groupings. For example, user information (e.g., user ID and grouping) can be stored on the client  140   a  instead of the host  144 . This configuration, while potentially faster than the system shown in  FIG. 6 , may run a risk that a clever youngster may figure out how to alter user information stored at the client and thereby obtain access to network services that may be inappropriate. In contrast, storing toolbar customization information at the host helps prevent against the unauthorized viewing of or access to the customization information. Other implementations, distribute system functions between the host  144  and clients  140   a - 140   n  differently. Further, in some implementations, the entire system resides on a single computer instead of a host  144  and client  140   a.    
     Referring to  FIG. 7 , a computer platform  160  suitable for executing instructions for producing a bank of controls based on an identified access level  176  includes a display  162 , a keyboard  164 , a pointing device  166  such as a mouse, and a digital computer  168 . The digital computer  168  includes memory  172 , a processor  174 , a mass storage device  170   a , and other customary components such as a memory bus and peripheral bus (not shown). The platform  160  may further include a network connection  180 . 
     Mass storage device  170   a  can store the instructions  176  for producing a bank of controls and instructions for an operating system  178  (e.g., Microsoft Windows 98™). The instructions  176  may be transferred to memory  172  and processor  174  in the course of operation. The instructions cause the display  162  to display images of a graphical user interface. The instructions  176  can be stored on a variety of mass storage devices such as a floppy disk  170   b , CD-ROM  170   c , or PROM (not shown). 
     The techniques, methods and systems described here may find applicability in any computing, processing or network environment in which a user interface provides users with access to content or functionality. Various implementations of these systems and techniques may be realized in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations thereof. 
     A system or other apparatus that uses one or more of the techniques and methods described here may be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer system to operate on input and/or generate output in a specific and predefined manner. Such a computer system may include one or more programmable processors that receive data and instructions from, and transmit data and instructions to, a data storage system, and suitable input and output devices. 
     Each computer program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language may be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. 
     Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. 
     Any of the foregoing may be supplemented by, or implemented in, specially-designed ASICs (application-specific integrated circuits). 
     A number of embodiments of the present invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.