Method for exposing graphical user interface layout logic and parameters

A method is disclosed for exposing graphical user interface layout logic and parameters. The method may be used with any language or tool capable of creating a graphical user interface. The equations affecting an element's properties in the graphical user interface are exposed to the designer. The designer is able to use the equations to anticipate what value is required to make a necessary adjustment. Further, the present invention emphasizes the values adjusted by the designer as well as the results from calculating the equation, so the designer can easily see adjustments made. As the designer makes changes, the changed values may be emphasized and the corresponding affect the value had on the element may also be displayed with a corresponding emphasis. The present invention eliminates graphical user interface designer's reliance on trial-and-error methods of element control by providing the designer with the knowledge of how the element will be affected before a value is arbitrarily applied.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to graphical user interface designing and more particularly relates to exposing graphical user interface layout logic and parameters to facilitate designing graphical user interfaces.

2. Description of the Related Art

Graphical user interface (GUI) designers are faced with a challenge when designing a GUI, they must design a GUI that typically includes elements such as buttons, images, text, and links without knowing the details of how the elements will be positioned on the GUI. The calculations which determine the properties of each element are not exposed to the designer. As a result, the designer is forced to use a guess-and-check method of inputting values then observing the layout and repeating if necessary.

There are many languages and development tools to facilitate and assist designers in developing a GUI. However, currently available tools do not help the designer to project the location of an element when a value is adjusted. In addition, it is left to the intuition of the designer to realize what adjustment is needed. Therefore, the designer proceeds with caution adjusting values in small increments to obtain the desired location.

From the foregoing discussion, it should be apparent that a need exists for a method that exposes graphical user interface layout logic and parameters to a user. Beneficially, such a method would save time and money by eliminating a wasteful guess-and-check method to position elements in a GUI and allow GUI designers to determine the values needed to lay out the elements in the intended manner.

SUMMARY OF THE INVENTION

A method of the present invention is presented for exposing graphical user interface layout logic and parameters. In one embodiment, the method includes providing an equation populated with numerical values. The equation corresponds to a property of an element. The calculation of the equation gives a result that directly affects the property of the element.

The method also includes accepting a replacement value and replacing one or more numerical value in the equation with the replacement value. The replacement value, if different from the value it replaced, alters the property of the element. The equation is calculated to produce a result. Finally, the value, the equation, and the result are displayed. Displaying this information provides a user with the information needed to know how a value adjustment will alter an element.

In a further embodiment, the method includes integrating a plug-in to extend functionality. The method may also include displaying a standardizing control which sets the numerical values of the equation to standardized values. In certain embodiments, the method includes displaying an augmenting control which, when activated, augments usability.

The method is not limited to only accepting one value or displaying information from just one calculation. The method may also comprise displaying a plurality of equations and results. The method may also include accepting and displaying a plurality of values. Once the information is displayed, in one embodiment, the method includes emphasizing the accepted values. Additionally, the method may include emphasizing how an accepted value affects an element.

DETAILED DESCRIPTION OF THE INVENTION

Many of the functional units described in this specification have been labeled as modules, in order to more particularly emphasize their implementation independence. For example, a modules may be implemented in software for execution by various types of processors. An identified module of executable code may, for instance, comprise one or more physical or logical blocks of computer instructions which may, for instance, be organized as an object, procedure, or function. Nevertheless, the executables of an identified module need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the module and achieve the stated purpose for the module.

FIG. 1depicts one method for exposing graphical user interface layout logic and parameters in accordance with the present invention. The method100includes providing110an equation, accepting120a value, replacing130a value within the equation, calculating140the equation, and displaying150information. The method100teaches exposing graphical user interface layout logic and parameters.

Providing110an equation may include utilizing an equation developed to affect one or more properties of an element. In one embodiment, the equation is populated with numerical values. The equation may include standard, numerical values which precisely define one or more properties of the element. Properties of the element affected by the equation, may be discernible properties such as vertical weighting, horizontal weighting, or the like. The element may be displayed on the graphical user interface. Similarly, the equation, populated with the numerical values, and the result from calculating the equation may initially be displayed in association with the graphical user interface.

Accepting120a value may include receiving a user-specified value, which is intended to affect one or more properties of the element. A user typically analyzes the initial layout of the element in the graphical user interface. In one embodiment, the user is capable of determining the affect that one or more properties have on the element because the affecting equation is displayed. The user may identify the value needed to adjust the at least one property of the element to the desired setting.

In one embodiment, replacing130the value within the equation may include substituting the accepted value for the previous value. Replacing130the value within the equation effectively alters one or more properties of the element. If the numerical equation and result was initially displayed, the user would be able to calculate the value needed to adjust one or more properties of the element to the desired setting.

Calculating140the equation may include utilizing the accepted value as the replacement and determining the new result. The numerical equation, if now different from the previous numerical equation, is calculated to return the new result. The new result effectively adjusts one or more properties of the element. The adjustment may be discernible as the element is displayed on the graphical user interface.

Displaying150information may facilitate alterations of one or more properties of the element. The numerical equation and result may be displayed in association with the graphical user interface. Displaying150information may be utilized on the same panel as the graphical user interface. In another embodiment, displaying150information is utilized on a separate panel such as a panel capable of being docked within the development software being used. Displaying150information may initially occur with standard values.

FIG. 2depicts another method for exposing graphical user interface layout logic and parameters in accordance with the present invention. The method200includes emphasizing210a new value in the equation, updating220the element, emphasizing230other values, ascertaining if using240standard values is desired, selecting250a standardizing control, and ascertaining if accepting260another value is desired. The method200teaches exposing graphical user interface layout logic and parameters.

Emphasizing210a new value in the equation includes identifying the new value. The new value may be the accepted value of step120. In one embodiment, a plurality of new values are accepted. It may be possible to have a new value for each coefficient of the equation. Emphasizing210a new value may include highlighting, underlining, bolding the type-face, or the like to set the value apart from other values. When there are a plurality of new values, each new value may be uniquely emphasized, identically emphasized, or any combination therebetween. Emphasizing210a new value allows a user to identify which value was inputted and accepted since standard values and subsequent accepted values may be the same.

Updating220an element includes calculating140the equation to receive a result that affects one or more properties of the element. In one embodiment, there may be multiple equations that affect a particular element. Once the equation or equations are calculated, the element may be adjusted accordingly. Updating229the element may include affecting a discernible quality of the element such as vertical weighting, horizontal weighting, or the like. Updating220the element may include emphasizing the affect the accepted value had on the element. This may be facilitated by highlighting the old element property or indicating the change via a discernible trait.

An equation may have a plurality of values that are adjusted. It may be essential to emphasize every value altered for visual purposes. The values that may be emphasized are any combination of accepted values, equations, or results. To facilitate discernment, emphasizing230other values may include using highlights of different colors to distinguish between accepted values, results, equations, or any combination of the preceding. Additionally, emphasizing230other values may use the emphasis associated with emphasizing how an accepted value affects the element.

At any point, standard values may be assigned to the equation to restore the element back to its original properties. The method continues by ascertaining240whether to use standard values. If using standard values is desired, then selecting250a standardizing control includes displaying a control that, when selected, standardizes the equation by returning the values to a predetermined, numerical state. The predetermined, numerical state may be set by the user, or may be set by the application used to design the graphical user interface. In one embodiment, selecting250a standardizing control can be used to standardize a plurality of selected equations.

If using standard values is not desired, or after selecting250the standardizing control, the method allows for accepting260another value. If accepting260another value is desired, then the sequence200proceeds to start205. If accepting260another value is not desired, then the sequence ends at step265.

FIG. 3depicts one embodiment of a computer program apparatus for exposing graphical user interface layout logic and parameters. The computer program apparatus300includes a calculating module310, a receiving module320, an augmenting module330, an emphasizing module340, a standardizing module350, and an integrating module360. The computer program apparatus300is one embodiment for exposing graphical user interface layout logic and parameters.

The calculating module310may calculate the equation, which is populated with numerical values. The calculating module310may produce a result which affects one or more properties of an element. After calculating the equation, in one embodiment, the calculating module returns the results to the application used to design the graphical user interface. The application may then be able to display the element with the adjustment of one or more properties of the element.

The receiving module320, in one embodiment, facilitates accepting a new value. The receiving module may facilitate accepting a new value for each coefficient of the equation. Once a new value is accepted, the receiving module320replaces the old value in the equation with the accepted value.

The augmenting module330may augment controls for customization. In one embodiment, the augmenting module330is a control that when selected allows a user to define a new operation of the present invention. For example, if a color selector was desired, the augmenting module330would be selected and the user would define the functionality of the augmented color control. Similarly, if a standardizing control was not included and a standardizing control was desired, the user would select the augmenting module330and define the augmented standardizing control.

The emphasizing module340may emphasize an accepted value to facilitate identification of the accepted value in the equation. In one embodiment, the emphasizing module340emphasizes each accepted value with a highlight, an underline, a bold type-face, or the like. In certain embodiments, the emphasizing module340emphasizes the accepted values and the result. The emphasizing module340may emphasize just the result.

The emphasizing module340may emphasize the effect an accepted value had on a element. In one embodiment, the emphasizing module340emphasizes the old property of the element to allow a user to discern the affect of the accepted value. The emphasis on the old property may be identical in type as the emphasis on the accepted value.

In one embodiment, the standardizing module350may standardize the numerical values in the equation. The standardizing module350may affect a plurality of equations. In one embodiment, the standard values of the standardizing module350may be assigned by the application used to design the graphical user interface, by the user, or preset by the method. The standardizing module350may be a control that when selected standardizes the values. In certain embodiments, the standardizing module350may consist of keystrokes that invoke standardizing the values. The integrating module360, may include facilitating integrating a plug-in. The plug-in may be designed to increase functionality.

FIG. 4depicts one example of a layout manager in accordance with the present invention. The layout manager400includes a layout editor410, a display field420, elements425, an emphasized element427, a first property field430, a first property calculation435, a second property field440, and a second property calculation445. The layout manager400is one embodiment for exposing graphical user interface layout logic and parameters.

The layout editor410may facilitate editing the graphical user interface. In certain embodiments, the layout editor410facilitates viewing the graphical user interface as the graphical user interface is being developed as well as viewing one or more calculations used to adjust element properties. The layout editor410may include an augmenting control to augment usability.

The display field420may display the graphical user interface as it is being developed. The elements425may comprise the graphical user interface. The elements425may be adjusted according to alterations in the calculation due to newly accepted values. The emphasized element427may be the element currently being adjusted. InFIG. 4, the emphasized element427is shown in its old position. In one embodiment (not shown), after being adjusted, the emphasized element427is displayed in both its new position and its old position, the old position may be deemphasized or be characterized by any other discernible quality.

The first property field430may contain a title that specifies a property of an element. In the depicted embodiment, the title of the first property field430is “Horizontal (x) Weighting.” In the depicted embodiment, the first property calculation435displays the equation used to adjust the horizontal weighting of the element. In the depicted embodiment, certain coefficients of the first property calculation are emphasized to distinguish standard values from user inputted values. The first property calculation435may display the result from calculating the equation. The first property calculation435may provide necessary information to a designer to determine what value is needed to precisely position an element.

The second property field440may contain a title that specifies a property of an element. In the depicted embodiment, the title of the second property field440is “Vertical (y) Weighting.” In the depicted embodiment, the second property calculation445displays the equation used to adjust the vertical weighting of the element. In the depicted embodiment, certain coefficients of the second property calculation are emphasized to distinguish standard values from user provided values. The second property calculation445may display the result from calculating the equation. The second property calculation445may provide necessary information to a designer to determine what value is needed to precisely position an element.

Referenced throughout this specification is the term “element” which is used in conjunction with a graphical user interface. It should be recognized that the present invention may apply to any control, image, text, field, or any other element applicable to a graphical user interface. The present invention exposes graphical user interface layout logic and parameters, so the layout can be anticipated by designers no matter what element they are designing into the graphical user interface.