1. Field
The disclosed concept relates generally to the rendering of content on an electronic device, and more particularly, refers to the dynamic usage of theme rendering parameters on an electronic device to render markup content that otherwise has its own rendering parameters.
2. Description of the Related Art
It is known that web application developers create web applications that are executed on servers and that include web content which is made available to clients via a network such as the worldwide web. The web application typically is deployed to a server, and the web content typically is stored in the form of web pages and other content that are made available to the application. Such web pages often include instructions in a markup language such as html, and the instructions are generally in the nature of instructions for a client, such as an instruction as to how certain content should be rendered on a display of the client device.
Certain content on an electronic device, such as web content in the form of web pages that are downloaded as data files to the electronic device via a network such as the worldwide web, may be rendered on a display of the electronic device in accordance with one or more rendering parameters that are provided with the content. For instance, a web page that is downloaded to an electronic device such as a desktop computer, a mobile electronic device, and the like, may include as part of the markup contents one or more rendering parameters that together make up a cascading style sheet (CSS). A CSS may contain parameters that indicate to a rendering engine on the electronic device certain parameters that the rendering engine is to employ when rendering the markup content such as a background color of the web page, a border color of the web page, and the like. Markup content can likewise exist on an electronic device without being received via the worldwide web, such as when a person creates html on the electronic device or when applications on the device generate html or other markup content that is to be rendered on the electronic device. The CSS of a web page is a part of the web page, and its parameters typically apply to all of the content of the page for the purpose of rendering the content on the electronic device. It is also known that in the absence of a CSS, html to be rendered will be rendered according to one or more default rendering parameters, such as of a browser.
It is further known to provide a feature on an electronic device whereby a theme can be selected for use in rendering certain content on the device. For instance, the selectable theme parameters can include a particular background color, a particular border color, and other parameters that are used as default rendering parameters for content that is rendered on the electronic device. As a general matter, when an application is executed on the electronic device, any rendering that is required by the application will be rendered in accordance with the theme properties of the device. However, when content such as the aforementioned web page or other markup includes its own rendering parameters, such as the aforementioned parameters in a CSS of the web page, or in the absence of a CSS wherein html is rendered according to one or more default rendering parameters of a browser, for example, those rendering parameters are used in rendering of the content of the web page rather than employing the theme parameters of the electronic device. As such, the theme parameters on an electronic device typically are used for only a portion of the rendering operations on an electronic device since markup content that possesses its own rendering parameters is rendered using those parameters, rather than the theme rendering parameters of the electronic device. By way of example, portions of a browser man themselves be rendered using the theme rendering parameters of the device while the markup content that is being rendered by the browser may itself be rendered using different colors. It thus would be desirable to provide an improved system wherein the inconsistent rendering of subject matter on a display of an electronic device is avoided.
A full understanding of the disclosed concept can be obtained from the following Description when read in conjunction with the accompanying drawings in which:
Similar numerals refer to similar parts throughout the specification.
An improved electronic device is depicted in
Also depicted in
The schematically represented electronic device 4 includes a processor apparatus 12 and an input/output apparatus 16 in operative connection. The processor apparatus 12 includes a processor 20 such as a microprocessor or other processor, a memory 24 that interfaces with the processor 20, and a number of routines 28 that are stored in the memory 24 and are executable on the processor 20. The broadly-characterized routines 28 would include, for instance, all of the instructions on the device platform and would include, for instance, an operating system and other applications such as a browser routine 28 that interface with the operating system. The memory 24 thus can also be said to be a machine readable storage medium. In the exemplary embodiment presented herein, the operating system creates a Java runtime within which the browser routine 28 is executed, although the concepts presented herein can be employed in other processing environments without departing from the present concept.
The input/output apparatus 16 is configured to provide input signals to the processor 20 and to receive output signals therefrom and can be said to include, for example, a display 32 and a keyboard 36 among other input and output components such as speakers, pointing devices, and other devices without limitation. It is understood that the input/output apparatus 16 could additionally or alternatively comprise a touch sensitive display.
The disclosed concept advantageously enables markup content, which may come with its own rendering parameters, to be rendered on the electronic device 4 according to one or more theme rendering parameters stored on the electronic device 4 rather than being rendered according to the rendering parameters received with the content or the default rendering parameters. In accordance with a first embodiment of the disclosed concept, this improved functionality is provided, at least in part, by an application programming interface (API) 44 that is depicted in a schematic fashion in
The theme library 56 is a repository wherein one or more device rendering parameters 60 may be stored. By way of example, the operating system of the electronic device 4 may provide a plurality of selectable themes that, for instance, specify one or more rendering parameters, for example, that will be used by the routines 28 in rendering output on the display 32. A selectable theme might, for instance, specify a particular background color, a particular border color, a particular text color, etc., by way of example and without limitation. As a general matter, when an application that is being executed in the runtime afforded on the electronic device 4 by the operating system generates content that is to be rendered on the display 32, such rendering is done in accordance with the device rendering parameters 60 stored in the theme library 56.
The exemplary web page 40 on the electronic device 4 is depicted in
However, the web page 40 depicted in
The browser JavaScript and rendering engine 48 receives the JavaScript instructions 72 from the web page 40 and executes them. The JavaScript instructions 72 may be in the nature of calls to the API 44 to cause the API 44 to obtain from the theme library 56 one or more of the device rendering parameters 60 stored therein. As such, the JavaScript instructions 72 may be something other than in JavaScript without departing from the disclosed concept. The JavaScript instructions 72 may, for instance, look something like the following:
var theme=window.getThemeBuilder( ):
var background=theme.getBackgroundColor( ):
element.setAttribute(“background-color”,background.
By way of example, “getThemeBuilder” may be the name of the JavaScript object in the API 44 that includes the list of names of the various subroutines that can be called by the API 44. By way of further example, “getBackgroundColor” may be the name of one of the subroutines which, when executed, returns from the theme library 56 the value of the device rendering parameter 60 which specifies the theme background color, and the variable “background” will be given this value.
At some point, the CSS parser 52 will parse the CSS to obtain the CSS rendering parameters 68 and will place them in temporary storage. The API 44 thereafter will revise the way in which the CSS rendering parameter 68 “background-color” will be represented internally within the electronic device 4. For instance, the CSS rendering parameter 68 “background-color” stored in temporary storage may be reset to the value of the variable “background”, i.e., the value of the theme background color device rendering parameter 60 that was returned to the API 44 from the theme library 56. Other ways of changing the internal representation of a parsed CSS rendering parameter 68 can be envisioned, and the example presented herein is not intended to be limiting.
It thus can be understood that the system depicted schematically in
The API 44 also enables the revised internal representation of the CSS rendering parameters 68 to be further revised in the event that the theme library 56 changes. This occurs by the web page 40, and more specifically the JavaScript instructions 72 thereof, registering with the browser JavaScript and rendering engine 48 to cause the API 44 to be informed if any of the device rendering parameters 60 in the theme library 56 are changed. In such an event, the browser routine 28 would detect a change in the theme library 56 and would push to the API 44 the updated device rendering parameters 60. The API 44 would then further revise the internal representation of the CSS rendering parameters 68 in temporary storage, as appropriate, to reflect the new theme stored in the theme library 56.
A second embodiment of the disclosed concept is depicted generally in
It thus can be seen that the disclosed concept involves two fashions in which theme data of the electronic device 4 can be employed to render the content of a web page 40 or 40A. In the example of
The CSS parser 52 passes, as at 124, the revised internal representation of the CSS rendering parameters 68 and the content of the web page 40 to the browser JavaScript and rendering engine 48 which renders the content on the display 32 in accordance with the revised CSS rendering parameters 68.
It is determined, as at 128, whether any change in the device rendering parameters 60 has occurred. If not, processing continuously loops back to 128 until it is determined that a change has, in fact, occurred to the device rendering parameters 60. Processing will thereafter continue, as at 132, where the updated device rendering parameters 60 are pushed to the API 44. Processing thereafter continues, as at 120, where the updated device rendering parameters 60 are employed to further revise the internal representation of the CSS rendering parameters 68. It is understood that the loop indicated generally at the numeral 128 can be represented and implemented in numerous fashions on the electronic device 4.
It thus can be seen that the disclosed concept enables markup content on the electronic device 4 that has its own rendering parameters or that uses default rendering parameters to be instead rendered on the electronic device 4 using the device rendering parameters 60 stored in the theme library 56. This can be achieved in any of a variety of fashions, two exemplary fashions of which are depicted in
While specific embodiments of the disclosed concept have been described in detail, it will be appreciated by those skilled in the art that various modifications and alternatives to those details can be developed in light of the overall teachings of the disclosure. Accordingly, the particular arrangements disclosed are meant to be illustrative only and not limiting as to the scope of the disclosed concept which is to be given the full breadth of the claims appended and any and all equivalents thereof.
The instant application claims priority from U.S. Provisional Patent Application Ser. No. 61/106,589 filed Oct. 19, 2008, the disclosures of which are incorporated herein by reference.