Mobile computing devices, such as smart phones, may provide various processing capabilities. For example, mobile devices may provide personal digital assistant (PDA) features, including word processing, spreadsheets, synchronization of information (e.g., e-mail) with a desktop computer, and so forth.
In addition, such devices may have wireless communications capabilities. More particularly, mobile devices may employ various communications technologies to provide features, such as mobile telephony, mobile e-mail access, web browsing, and content (e.g., video and radio) reception. Exemplary wireless communications technologies include cellular, satellite, and mobile data networking technologies.
Such devices are often adapted for handheld operation. However, due to their compact size, various user interactions, such as scrolling, may be difficult at times. Scrolling may be employed to change which portions of a content item are being output on a display or screen. Examples of content items include word processing documents, e-mails, web pages, lists, menu selections, contents of a folder, and so forth.
Unfortunately, for handheld devices, scrolling is typically a two-handed operation. More particularly, scrolling typically requires one hand to hold the device and another hand to push buttons or operate a touch screen with a stylus. Also, while some handheld devices provide mechanisms (e.g., up/down buttons, track balls, and/or side wheels) to provide single-handed scrolling, such mechanisms are often inconvenient.
Thus, scrolling operations may be inconvenient, awkward, or impractical in certain situations, such as in moving or unstable environments like crowded buses or trains.
Embodiments may be generally directed to techniques for scrolling through displayed information. For instance, an apparatus may include a scrolling management module to set one or more automatic scrolling preferences, and an application to output a content item in accordance with the one or more automatic scrolling preferences. Exemplary content items include word processing documents, e-mails, web pages, lists (e.g., photo thumbnails), menu selections, contents of a folder, and so forth.
Examples of such scrolling preferences include scrolling speeds, designated input mechanism(s) to adjust scrolling, and the activation/deactivation of orientation-based scrolling. The embodiments, however, are not limited to these examples. Various advantages may be obtained through the techniques disclosed herein. For example, viewing information may become more convenient and less difficult.
Various embodiments may comprise one or more elements. An element may comprise any structure arranged to perform certain operations. Each element may be implemented as hardware, software, or any combination thereof, as desired for a given set of design parameters or performance constraints. Although an embodiment may be described with a limited number of elements in a certain topology by way of example, the embodiment may include other combinations of elements in alternate arrangements as desired for a given implementation. It is worthy to note that any reference to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in an embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Host processor 102 may perform various operations. For instance, host processor 102 may execute applications, such as text messaging, e-mail, web browsing, word processing, file browsers, utilities and so forth. Such applications may be operated or employed by a user through user interface 104.
Also, host processor 102 may perform operations in accordance with various communications protocols to provide for the exchange of information with remote devices. Moreover, host processor 102 may provide one or more functional utilities. Such utilities may be available to application(s), communications protocol(s), etc. Exemplary utilities include operating systems, graphical user interfaces, device drivers, and so forth. Examples of operating systems include various versions of Palm OS by Palm, Inc. of Sunnyvale, Calif., and various versions of Windows Mobile by Microsoft Corporation of Redmond, Wash. The embodiments, however, are not limited to these examples.
User interface 104 facilitates user interaction with apparatus 100. This interaction may involve the input of information from a user and/or the output of information to a user. Accordingly, user interface 104 may include one or more devices, such as a keyboard (e.g., a full QWERTY keyboard), a keypad, a touch screen, a microphone, and/or an audio speaker. The embodiments are not limited to these examples. An exemplary user interface is described below with reference to
Storage medium 106 may store information in the form of data. For instance, memory 106 may contain application documents, e-mails, sound files, and/or images in either encoded or unencoded formats. Also, storage medium 106 may store information contained and managed by configuration database 204.
Moreover, as described above, storage medium 106 may store control logic or instructions (e.g., software) that may be executed by processors, such as host processor 106. Moreover, such control logic or instructions may provide functionality for one or more elements, such as user interface 104 and/or radio module 108. The embodiments, however, are not limited to these examples.
For example,
Scrolling management module 114 facilitates automatic scrolling features. In embodiments, scrolling management module 114 may be implemented within a graphical user interface utility or operating system (not shown). An exemplary implementation of scrolling management module 114 is described below with reference to
Storage medium 106 may be implemented using any machine-readable or computer-readable media capable of storing data, including both volatile and non-volatile memory. Examples of such media are provided below.
Orientation determination module 107 determines the orientation of apparatus 100. For instance, orientation determination module 107 may determine azimuth and/or elevation (or “tilting”) orientations of apparatus 100. Accordingly, in embodiments, scrolling may be adjusted or set based on the orientation of apparatus 100. For example, scrolling speed and/or direction may be based on the degree and direction to which apparatus 100 is tilted. However, in further embodiments, orientation determination module 107 may be implemented in other ways. For instance, orientation determination module 107 may comprise a global positioning system (GPS). In such embodiments, orientations may be based on positions (or changes in position) of apparatus 100.
Orientation determination module 107 may be implemented in various ways. For instance, this module may be implemented with solid state compass. Such a compass may comprise multiple magnetic field sensors that provide data upon which calculations may be performed. Such calculations may be performed by orientation determination module 107 or other elements, such as host processor 102.
Radio module 108 (through an antenna 109) may provide communications with remote devices across different types of wireless links. For example, radio module 108 may communicate across data networking links. Alternatively or additionally, radio module 108 may communicate across wireless links provided by one or more cellular systems. Examples of wireless links are provided below.
Interconnection medium 110 provides for couplings among elements, such as host processor 102, user interface 104, storage medium 106, orientation determination module 107, and radio module 108. Thus, interconnection medium 110 may include, for example, one or more bus interfaces. Exemplary interfaces include Universal Serial Bus (USB) interfaces, as well as various computer system bus interfaces. Additionally or alternatively, interconnection medium 110 may include one or more point-to-point connections (e.g., parallel interfaces, serial interfaces, etc.) between various element pairings. Such connections may comprise one or more signal lines. Moreover, interconnection medium 110 may include non-physical aspects. For instance, such interconnectivity may be implemented through messages passed between processes or software modules.
In embodiments, interconnection medium 110 may provide for the exchange of information between user interface 104, scrolling management module 114, and various applications 112 and/or utilities, as described herein.
Furthermore, one or more applications may include scrolling management modules 114. For example,
Through such arrangements, each application may have specific scrolling configurations. Such application-specific scrolling preferences are referred to herein as local scrolling preferences. However, in embodiments, global scrolling preferences (which apply to multiple applications) may be employed. In such cases, a single scrolling management module 114 (as in
As shown in
A data item 206b establishes a sequence of scrolling speeds and directions that may be selected through user interaction with a particular interface mechanism that is specified by data item 206c. Scrolling directions include forward (scrolling down) and reverse (or scrolling up). However, other directions, such as sideways (e.g., sideways left and sideways right) may also be specified.
With reference to
A push button mechanism may allow a user to cycle through a sequence of scrolling speeds and/or directions. These speeds and/or directions may be specified by data item 206b. For example,
As described above, such sequences may be traversed through an interface mechanism, such as the one specified by data item 206c. For instance, a single button push may change the employed scrolling speed from a first speed to a second speed specified by data item 206c. Additionally two button pushes in quick succession may change the scrolling in an opposite direction in the sequence specified by data 206c. For example, two such button pushes may change the employed scrolling speed from the second speed to the first speed. The sequence specified by data item may be traversed in a circular manner. Thus, successive button pushes may continually cause changes in the employed scrolling speed.
As shown in
Configuration interface module 203 provides for the exchange of information with various applications. For example,
As described above, instantiations of scrolling management module 114 may be implemented (or embedded) within applications. Thus, implementation 200 may be included within a corresponding application. Accordingly, configuration data 224 may be sent to the corresponding application or utility. Additionally or alternatively, other information (e.g., scrolling preference selections 220, current scrolling configuration 222, and/or query 223) may be exchanged with the user interface via the corresponding application or utility.
Operations for embodiments may be further described with reference to the following figures and accompanying examples. Some of the figures may include a logic flow. Although such figures presented herein may include a particular logic flow, it can be appreciated that the logic flow merely provides an example of how the general functionality as described herein can be implemented. Further, the given logic flow does not necessarily have to be executed in the order presented, unless otherwise indicated. In addition, the given logic flow may be implemented by a hardware element, a software element executed by a processor, or any combination thereof. The embodiments are not limited in this context.
At a block 304, the one or more scrolling preferences are stored. In the contexts of
Blocks 302 and 304 may be performed by an entity such as scrolling management module 114. As described above, instantiations of scrolling management module 114 may be implemented (or embedded) within applications. Thus, blocks 302 and 304 may be performed by a scrolling management module within a particular application. For instance, the reception of scrolling preferences in block 302 may occur after the particular application has been opened (e.g., once its execution has commenced).
Also, the scrolling preferences stored in block 304 may be constrained to the particular application (local scrolling preferences). Alternatively, such preferences may be applied globally or to multiple applications or utilities (global scrolling preferences).
At a block 306, a content item is displayed in accordance with the one or more scrolling preferences. For instance, an application or utility displaying the content item may employ corresponding local scrolling preferences that were established through its embedded scrolling management module. Alternatively, the application or utility displaying the content item may employ global scrolling preferences. As described above, examples of content items include word processing documents, e-mails, web pages, lists (e.g., photo thumbnails), menu selections, contents of a folder, and so forth.
The user scrolling selection(s) received at block 308 may be in various forms. For instance, the selection(s) may be one or more actions (e.g., button depressions) on a designated input mechanism. As a example, a designated device button may be depressed one or more times to traverse a cycle of specified scrolling speeds and/or directions. As described above with reference to
Additionally or alternatively, the selection(s) may be the establishment of a device orientation. For instance, the device may be tilted to adjust the scrolling speed and/or direction applied to the displayed content item. In the contexts of
The views of
As described above, embodiments may employ orientation-based scrolling. Such scrolling may be based, for example, on the tilting orientation of a device.
The views of
As shown in
Also, device 602 may include a wired communications interface 612, a power supply (e.g., a battery) 614, and an expansion interface 616. These elements may be implemented in hardware, software, firmware, or any combination thereof.
Power supply 614 provides operational power to elements of device 602. Accordingly, power supply 614 may include a battery. Such a battery may be rechargeable and/or removable. Alternatively or additionally, power supply 614 may include an interface to an external power source, such as an alternating current (AC) source. However, the embodiments are not limited to these examples.
Wired communications interface 612 provides for the exchange of information with a device 606c (e.g., a proximate device), such as a personal computer. This exchange of information may be across one or more wired connections. Examples of such connections include USB interfaces, parallel interfaces, and/or serial interfaces. In addition, interface 612 may provide for such exchanges across wireless connections(s). An infrared interface is an example of such a connection. The information exchanged with such proximate devices, may include e-mail, calendar entries, contact information, as well as other information associated with personal information management applications. In addition, such information may include various application files, and content (e.g., audio, image, and/or video).
Wired communications interface 612 may include various components, such as a transceiver and control logic to perform operations according to one or more communications protocols. In addition, communications interface 612 may include input/output (I/O) adapters, as well as physical connectors to connect the I/O adapter with a corresponding communications medium.
Such wireless communications allow device 602 to communicate with various remote devices. For instance,
Expansion interface 616 may be in the form of an expansion slot, such as a secure digital (SD) slot. Accordingly, expansion interface 616 may accept memory, external radios (e.g., global positioning system (GPS), Bluetooth, WiFi radios, etc.), content, hard drives, and so forth. The embodiments, however, are not limited to SD slots. Other expansion interface or slot technology may include memory stick, compact flash (CF), as well as others.
As described above, embodiments may communicate across various types of wireless links, such as data networking links and/or links provided by cellular systems.
Examples of data networking links include wireless local area network (WLAN) links, such as IEEE 802.11 WiFi links. Further examples include wireless metropolitan area (WMAN) links, such as IEEE 802.16 WIMAX links, and personal area networks (PAN) links such as Bluetooth links. The embodiments, however, are not limited to these examples.
Exemplary cellular systems include Code Division Multiple Access (CDMA) systems, Global System for Mobile Communications (GSM) systems, North American Digital Cellular (NADC) systems, Time Division Multiple Access (TDMA) systems, Extended-TDMA (E-TDMA) systems, Digital Advanced Mobile Phone Service (IS-136/TDMA), Narrowband Advanced Mobile Phone Service (NAMPS) systems, third generation (3G) systems such as Wide-band CDMA (WCDMA), CDMA-2000, Universal Mobile Telephone System (UMTS), cellular radiotelephone systems compliant with the Third-Generation Partnership Project (3GPP), and so forth. However, the embodiments are not limited to these examples. For instance, radio module 108 may additionally or alternatively communicate across non-cellular communications links.
Further, embodiments may include storage media, such as storage medium 106. Such storage media may be implemented in various ways. For example, such storage media may include read-only memory (ROM), random-access memory (RAM), dynamic RAM (DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, polymer memory such as ferroelectric polymer memory, ovonic memory, phase change or ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, magnetic or optical cards, or any other type of media suitable for storing information. It is worthy to note that some portion or all of storage medium 106 may be included in other elements of apparatus 100. For instance, some or all of storage medium 106 may be included on a same integrated circuit or chip with elements of apparatus 100 (e.g., host processor 106). Alternatively, some portion or all of storage medium 106 may be disposed on an integrated circuit or other medium (e.g., a hard disk drive) that is external. The embodiments are not limited in this context.
Numerous specific details have been set forth herein to provide a thorough understanding of the embodiments. It will be understood by those skilled in the art, however, that the embodiments may be practiced without these specific details. In other instances, well-known operations, components and circuits have not been described in detail so as not to obscure the embodiments. It can be appreciated that the specific structural and functional details disclosed herein may be representative and do not necessarily limit the scope of the embodiments.
Various embodiments may be implemented using hardware elements, software elements, or a combination of both. Examples of hardware elements may include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. Examples of software may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Determining whether an embodiment is implemented using hardware elements and/or software elements may vary in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints.
Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. These terms are not intended as synonyms for each other. For example, some embodiments may be described using the terms “connected” and/or “coupled” to indicate that two or more elements are in direct physical or electrical contact with each other. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
Some embodiments may be implemented, for example, using a machine-readable medium or article which may store an instruction or a set of instructions that, if executed by a machine, may cause the machine to perform a method and/or operations in accordance with the embodiments. Such a machine may include, for example, any suitable processing platform, computing platform, computing device, processing device, computing system, processing system, computer, processor, or the like, and may be implemented using any suitable combination of hardware and/or software. The machine-readable medium or article may include, for example, any suitable type of memory unit, memory device, memory article, memory medium, storage device, storage article, storage medium and/or storage unit, for example, memory, removable or non-removable media, erasable or non-erasable media, writeable or re-writeable media, digital or analog media, hard disk, floppy disk, Compact Disk Read Only Memory (CD-ROM), Compact Disk Recordable (CD-R), Compact Disk Rewriteable (CD-RW), optical disk, magnetic media, magneto-optical media, removable memory cards or disks, various types of Digital Versatile Disk (DVD), a tape, a cassette, or the like. The instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, encrypted code, and the like, implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language.
Operations for embodiments have been described with reference to various figures and examples. Some of the figures may include a logic flow or operational sequence. Although such figures presented herein may include a particular logic flow or operational sequence, it can be appreciated that these merely provide an example of how general functionality as described herein can be implemented. Further, given logic flows and operational sequences does not necessarily have to be executed in the order presented, unless otherwise indicated. In addition, the given logic flow may be implemented by a hardware element, a software element executed by a processor, or any combination thereof. The embodiments are not limited in this context.
Moreover, the scrolling features described herein are not limited to word processing applications, e-mail applications text messaging applications, web browser applications. For instance, other applications may employ such features. Examples of such other applications include spreadsheets, file browsers, presentation applications, and applications providing content in lists, menus or other scrollable forms. The embodiments, however, are not limited to these further examples.
Further, although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.