Claims
- 1. In a graphical user interface, a method for drawing objects comprising the steps of:
receiving, by a first layer, a command from an application to draw an object on said user interface; translating, by said first layer, said command into a drawing primitive which includes a pointer to data associated with said object; sending said drawing primitive to a layout engine; retrieving, by said layout engine, said data associated with said object; and drawing, by said layout engine, said object on said user interface.
- 2. The method of claim 1, wherein said first layer is a window definition object and said object is a window.
- 3. The method of claim 1, wherein said first layer is a menu definition object and said object is a menu.
- 4. A method for drawing an object on a user interface comprising the steps of:
placing, on said user interface, boundaries within which parts of said object can be drawn; selecting a part from a list of parts associated with said object; determining if said part is valid; and drawing said part on said user interface within said boundaries if said part is valid.
- 5. The method of claim 4, wherein said step of determining further comprises the step of:
determining if said part is a member of a current set of parts.
- 6. The method of claim 4, wherein said step of determining further comprises the step of:
determining if said part is invalid by evaluating an exclusion bit.
- 7. A computer readable medium encoded with a layout resource that can be used to draw an object on a user interface, said layout resource comprising a plurality of data structures comprising:
a list of parameters including:
a first sublist of parameters associated with boundaries of said object; and a second sublist of parameters associated with parts of said object.
- 8. The computer readable medium of claim 7, wherein said first sublist of parameters includes a data structure having a value that indicates a number of boundaries defined within said layout resource.
- 9. The computer readable medium of claim 7, wherein said first sublist of parameters includes at least one boundary data structure which defines a boundary associated with said object, said boundary data structure including a start boundary parameter which identifies a first previously placed boundary relative to which said boundary is to be placed on said user interface.
- 10. The computer readable medium of claim 9, wherein said boundary data structure further includes an offset parameter having a value which is used to determine a relative positioning of said boundary to said previously placed boundary.
- 11. The computer readable medium of claim 10, wherein said boundary data structure further includes an offsettype parameter having a value which indicates a manner in which said offset parameter is used to determine a relative positioning of said boundary to said previously placed boundary.
- 12. The computer readable medium of claim 11, wherein if said offsettype parameter equals a predetermined parameter then said offset parameter is added to said previously placed boundary to obtain said boundary's location.
- 13. The computer readable medium of claim 11, wherein if said offsettype parameter equals a predetermined parameter then said offset parameter is used as an index into an array and a value stored at said array index is added to said previously placed boundary to obtain said boundary's location.
- 14. The computer readable medium of claim 11, wherein if said offsettype parameter equals a predetermined parameter then said offset parameter is ignored and said boundary is placed halfway between said previously placed boundary and a limit boundary.
- 15. The computer readable medium of claim 7, wherein said first sublist includes a first set of data structures associated with boundary placement relative to one or more existing boundaries and a second set of data structures associated with boundary limits.
- 16. The computer readable medium of claim 9, said boundary data structure includes a limit boundary parameter which identifies a second previously placed boundary relative to which said boundary is to be placed on said user interface.
- 17. The computer readable medium of claim 16, wherein said at least one boundary data structure further includes a limittype parameter which constrains placement of said boundary relative to said start boundary.
- 18. The computer readable medium of claim 17, wherein if said limittype parameter is set to a predetermined parameter and said boundary is to be placed beyond a threshold, then said boundary is instead placed at said limit boundary.
- 19. The computer readable medium of claim 17, wherein if said limittype parameter is set to a predetermined parameter and said boundary is to be placed beyond a threshold, then said boundary is instead placed at said start boundary.
- 20. The computer readable medium of claim 7, wherein said second sublist of parameters includes a data structure having a value that indicates a number of parts defined within said layout resource.
- 21. The computer readable medium of claim 7, wherein said second sublist of parameters includes at least one part data structure which defines a part associated with said object, said part data structure including an inclusion attribute mask which specifies drawing of said part based upon a presence of at least one attribute.
- 22. The computer readable medium of claim 21, wherein said part data structure further includes an exclusion attribute mask which specifies drawing of said part based upon an absence of at least one attribute.
- 23. The computer readable medium of claim 22, wherein said inclusion attribute mask and said exclusion attribute mask both have bits associated with a same attribute.
- 24. The computer readable medium of claim 23, wherein, if neither of said associated bits in said inclusion attribute mask and said exclusion attribute mask are set, then said part will be drawn regardless of whether said object includes said same attribute.
- 25. The computer readable medium of claim 23, wherein if said associated bit of said inclusion attribute mask is set and said associated bit of said exclusion attribute mask is not set, then said part will be drawn only if said object has said same attribute.
- 26. The computer readable medium of claim 23, wherein if said associated bit of said inclusion attribute mask is not set and said associated bit of said exclusion attribute mask is set, then said part will be drawn only if said object does not have said same attribute.
- 27. The computer readable medium of claim 23, wherein if said associated bit of said inclusion attribute mask is not set and said associated bit of said exclusion attribute mask is not set, then said part will be drawn regardless of whether said object has said same attribute.
- 28. The computer readable medium of claim 7, wherein said second sublist of parameters includes at least one part data structure which defines a part associated with said object, said part data structure including a regionset parameter which identifies at least one set to which said part belongs.
- 29. The computer readable medium of claim 7, wherein said second sublist of parameters includes at least one part data structure which defines a part associated with said object, said part data structure including a plurality of parameters which identify boundaries within which said part is to be drawn.
- 30. The computer readable medium of claim 7, wherein said second sublist of parameters includes at least one part data structure which defines a part associated with said object, said part data structure including at least one parameter which identifies a manner in which said part is to be filled.
- 31. The computer readable medium of claim 30, wherein said at least one parameter identifies a color pattern to be used to fill said part.
- 32. The computer readable medium of claim 31, said part data structure further includes a parameter which identifies an orientation for said color pattern relative to said part.
- 33. A computer system comprising:
a processor for performing control functions and processing data; a display for outputting data received from said processor and for receiving input from a user of said computer system via a graphical user interface; and a data driven layout engine for drawing an object on said graphical user interface, wherein said layout engine receives a command from said processor to draw said object that includes a pointer to a layout resource, said layout resource including a list of boundary and part information that is traversed only once by said layout engine to draw said object.
- 34. The computer system of claim 33, wherein said object is a window.
- 35. The computer system of claim 33, wherein said object is a menu.
- 36. The computer system of claim 33, wherein said layout resource comprises a data structure including:
a list of parameters including:
a first sublist of parameters associated with boundaries of said object; and a second sublist of parameters associated with parts of said object.
- 37. The computer readable medium of claim 36, wherein said first sublist of parameters includes a data structure having a value that indicates a number of boundaries defined within said layout resource.
- 38. The computer system of claim 36, wherein said first sublist of parameters includes at least one boundary data structure which defines a boundary associated with said object, said boundary data structure including a start boundary parameter which identifies a first previously placed boundary relative to which said boundary is to be placed on said user interface.
- 39. The computer system claim 38, wherein said boundary data structure further includes an offset parameter having a value which is used to determine a relative positioning of said boundary to said previously placed boundary.
- 40. The computer system of claim 39, wherein said boundary data structure further includes an offsettype parameter having a value which indicates a manner in which said offset parameter is used to determine a relative positioning of said boundary to said previously placed boundary.
- 41. The computer system of claim 40, wherein if said offsettype parameter equals a predetermined parameter then said offset parameter is added to said previously placed boundary to obtain said boundary's location.
- 42. The computer system of claim 40, wherein if said offsettype parameter equals a predetermined parameter then said offset parameter is used as an index into an array and a value stored at said array index is added to said previously placed boundary to obtain said boundary's location.
- 43. The computer system of claim 40, wherein if said offsettype parameter equals a predetermined parameter then said offset parameter is ignored and said boundary is placed halfway between said previously placed boundary and a limit boundary.
- 44. The computer system of claim 36, wherein said first sublist includes a first set of data structures associated with boundary placement relative to one or more existing boundaries and a second set of data structures associated with boundary limits.
- 45. The computer system of claim 38, said boundary data structure includes a limit boundary parameter which identifies a second previously placed boundary relative to which said boundary is to be placed on said user interface.
- 46. The computer system of claim 45, wherein said at least one boundary data structure further includes a limittype parameter which constrains placement of said boundary relative to said start boundary.
- 47. The computer system of claim 46, wherein if said limittype parameter is set to a predetermined parameter and said boundary is to be placed beyond a threshold, then said boundary is instead placed at said limit boundary.
- 48. The computer system of claim 45, wherein if said limittype parameter is set to a predetermined parameter and said boundary is to be placed beyond a threshold, then said boundary is instead placed at said start boundary.
- 49. The computer system of claim 36 wherein said second sublist of parameters includes a data structure having a value that indicates a number of parts defined within said layout resource.
- 50. The computer system of claim 36, wherein said second sublist of parameters includes at least one part data structure which defines a part associated with said object, said part data structure including an inclusion attribute mask which specifies drawing of said part based upon a presence of at least one attribute.
- 51. The computer system of claim 50, wherein said part data structure further includes an exclusion attribute mask which specifies drawing of said part based upon an absence of at least one attribute.
- 52. The computer system of claim 51, wherein said inclusion attribute mask and said exclusion attribute mask both have bits associated with a same attribute.
- 53. The computer system of claim 52, wherein, if neither of said associated bits in said inclusion attribute mask and said exclusion attribute mask are set, then said part will be drawn regardless of whether said object includes said same attribute.
- 54. The computer system of claim 52, wherein if said associated bit of said inclusion attribute mask is set and said associated bit of said exclusion attribute mask is not set, then said part will be drawn only if said object has said same attribute.
- 55. The computer system of claim 52, wherein if said associated bit of said inclusion attribute mask is not set and said associated bit of said exclusion attribute mask is set, then said part will be drawn only if said object does not have said same attribute.
- 56. The computer system of claim 52, wherein if said associated bit of said inclusion attribute mask is not set and said associated bit of said exclusion attribute mask is not set, then said part will be drawn regardless of whether said object has said same attribute.
- 57. The computer system of claim 36, wherein said second sublist of parameters includes at least one part data structure which defines a part associated with said object, said part data structure including a regionset parameter which identifies at least one set to which said part belongs.
- 58. The computer system of claim 36, wherein said second sublist of parameters includes at least one part data structure which defines a part associated with said object, said part data structure including a plurality of parameters which identify boundaries within which said part is to be drawn.
- 59. The computer system of claim 36, wherein said second sublist of parameters includes at least one part data structure which defines a part associated with said object, said part data structure including at least one parameter which identifies a manner in which said part is to be filled.
- 60. The computer system of claim 59, wherein said at least one parameter identifies a color pattern to be used to fill said part.
- 61. The computer system of claim 60, said part data structure further includes a parameter which identifies an orientation for said color pattern relative to said part.
- 62. A computer system comprising:
a processor for performing control functions and processing data; a display for outputting data received from said processor and for receiving input from a user of said computer system via a graphical user interface; and an appearance control panel provided as part of said graphical user interface, said appearance control panel providing user selectability of an object's appearance for inclusion in a user-defined theme.
- 63. The computer system of claim 62, further comprising:
a library containing a plurality of different representations for the same user interface object from among which said user can select using said appearance control panel.
- 64. The computer system of claim 63, wherein said appearance control panel includes a panel item which, when selected by said user, stores selected object representations under a theme name, whereby said user can subsequently invoke said theme name to redraw objects being currently displayed on said graphical user interface using corresponding, selected object representations.
- 65. The computer system of claim 62, further comprising:
an appearance object editor which permits said user to create objects using a library of object parts.
- 66. The computer system of claim 63, further comprising:
an appearance object editor which permits said user to create objects using a library of object parts, wherein said created objects are then stored in said library of object representations.
RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 08/242,963 entitled “Pattern and Color Abstraction in a Graphical User Interface”, U.S. patent application Ser. No. 08/243,368 entitled “Switching Between Appearance/Behavior Themes in Graphical User Interfaces” and U.S. patent application Ser. No. 08/243,327 entitled “A System and Method for Customizing Appearance and Behavior of Graphical User Interfaces”, all of which were filed on May 16, 1994 and all of which are hereby incorporated by reference.
Continuations (2)
|
Number |
Date |
Country |
| Parent |
09425738 |
Oct 1999 |
US |
| Child |
09864391 |
May 2001 |
US |
| Parent |
08644360 |
May 1996 |
US |
| Child |
09425738 |
Oct 1999 |
US |
Continuation in Parts (3)
|
Number |
Date |
Country |
| Parent |
08242963 |
May 1994 |
US |
| Child |
08644360 |
May 1996 |
US |
| Parent |
08243268 |
May 1994 |
US |
| Child |
08644360 |
May 1996 |
US |
| Parent |
08243327 |
May 1994 |
US |
| Child |
08644360 |
May 1996 |
US |