System for application independent programming of controls
First Claim
1. In a computer system, which comprises a host processor having an operating system that presents an interface to a plurality of application programs installed on the host processor, a method for providing users with a capability for providing controls in plurality of application programs, where a control provides properties in at least one of the plurality of application programs acting on a document object, comprising the steps of:
- storing data, external to the plurality of application programs, that defines a plurality of controls;
providing a programming layer, for the plurality of application programs, that enables users to create an application program specific control, which provides properties for the document object, by inputting control customization data comprising control extender data for a selected one of the plurality of controls, into a selected one of the plurality of application programs; and
using a container corresponding to the application program to merge control extender data associated with the one of the plurality of application program with the selected one of the plurality of controls to form the application program specific control without recompiling the application program.
1 Assignment
0 Petitions
Accused Products
Abstract
The present system for application independent programming of controls functions to provide a common set of controls across a plurality of application programs, such as those typically included in an office suite installed on a processor, while also enabling users to customize these controls for each application program. This is accomplished by producing an interface in the underlying common programming model which enables the user to access a set of controls, with their standard properties, methods and events, in a consistent manner. The user can then create a user defined control in a particular application program without having to replicate the underlying common programming model on which the customization is based. The user creates an extender file to add to and/or modify the standard properties, methods and events of a control to thereby produce an extended control for use in the selected application program. The system for application independent programming of controls merges, at run time, the standard control and the extender file to create the customized control. This enables users to create customized controls without having to replicate the common programming model and also enables consistency of control implementation. The control can also be uniformly updated across the plurality of application programs by simply updating the underlying control on which the customized instances are based.
-
Citations
29 Claims
-
1. In a computer system, which comprises a host processor having an operating system that presents an interface to a plurality of application programs installed on the host processor, a method for providing users with a capability for providing controls in plurality of application programs, where a control provides properties in at least one of the plurality of application programs acting on a document object, comprising the steps of:
-
storing data, external to the plurality of application programs, that defines a plurality of controls;
providing a programming layer, for the plurality of application programs, that enables users to create an application program specific control, which provides properties for the document object, by inputting control customization data comprising control extender data for a selected one of the plurality of controls, into a selected one of the plurality of application programs; and
using a container corresponding to the application program to merge control extender data associated with the one of the plurality of application program with the selected one of the plurality of controls to form the application program specific control without recompiling the application program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
compiling at run time the user input control customization data with the selected one of the plurality of controls to create the application program specific control.
-
-
3. The method of claim 1 wherein the step of providing comprises:
-
storing control customization data comprising a definition of an appearance and location of the application specific control in a selected document in the selected one of the plurality of application programs; and
storing control customization data comprising programmatic event data comprising at least one of executable code, an executable command, identification of some activatable element associated with the computer system.
-
-
4. The method of claim 3 further comprising:
-
displaying the appearance of the application specific control at the location in the selected document in the selected one of the plurality of application programs; and
executing the programmatic event defined by the stored programmatic event data in response to a user activating the application specific control.
-
-
5. The method of claim 1 further comprising the steps of:
-
creating a control container in the selected one of the plurality of application programs; and
creating at least one container in the programming layer which interconnects with the control container in the selected one of the plurality of application programs for exchanging data therebetween.
-
-
6. The method of claim 1 wherein the step of providing comprises:
-
defining a set of extender properties and methods for the application specific control in a selected document in the selected one of the plurality of application programs; and
transmitting a pointer from the control container in the selected one of the plurality of application programs to a container in the programming layer, the pointer identifying an extender type library entry in the selected one of the plurality of application programs that contains the set of extender properties and methods.
-
-
7. The method of claim 1 wherein the step of providing further comprises:
linking the pointer to the selected one of the plurality of controls.
-
8. The method of claim 1 wherein the step of providing further comprises:
storing in the selected document in the selected one of the plurality of application programs a set of event handlers comprising code executable in response to activation of the control by a user.
-
9. The method of claim 1 wherein the step of providing further comprises
transmitting a pointer from the control container in the selected one of the plurality of application programs to a container in the programming layer, the pointer identifying the set of event handlers. -
10. The method of claim 1 wherein the step of merging comprises:
-
accessing, in the programming layer, the set of extender properties and methods via the extender type library entry in the selected one of the plurality of application programs that contains the set of extender properties and methods;
accessing, in the programming layer, the set of event handlers stored in the selected document in the selected one of the plurality of application programs; and
compiling the set of event handlers, the set of extender properties and methods, the selected one of the plurality of controls to create the application program specific control for the selected one of the plurality of application program.
-
-
11. In a computer system, which comprises a host processor having an operating system and a plurality of application programs installed on the host processor, a method for providing a document object specific control programming capability to users of the plurality of application programs, where a control provides properties in at least one of the plurality of application programs acting on the document object, comprising the steps of:
-
providing a Visual Basic module in computer system;
implementing a controls generation system in the Visual Basic module;
storing data in the controls generation system that defines a plurality of controls, which provide properties for the document object;
coupling an application program from the plurality of application programs to the controls generation system;
enabling users to create a control for the application program by inputting control customization data comprising control extender data from the application program; and
using a container corresponding to the application program to merge control extender data associated with the application program with the selected one of the plurality of controls to form the application program specific control without recompiling the application program. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
compiling, in the Visual Basic controls generation module at run time, the user input control extender data with the selected one of the plurality of controls to create the application program specific control.
-
-
13. The method of claim 11 wherein the step of enabling comprises:
-
storing control extender data comprising a definition of an appearance and location of the application specific control in a selected document in the selected one of the plurality of application programs; and
storing control extender data comprising programmatic event data comprising at least one of executable code, an executable command, identification of an activatable element associated with the computer system.
-
-
14. The method of claim 13 further comprising:
-
displaying the appearance of the application specific control at the location in the selected document in the selected one of the plurality of application programs; and
executing the programmatic event defined by the stored programmatic event data in the selected one of the plurality of application programs in response to a user activating the application specific control.
-
-
15. The method of claim 11 further comprising the steps of:
-
creating a control container in the selected one of the plurality of application programs; and
creating at least one container in the controls generation system which interconnects with the control container in the selected one of the plurality of application programs for exchanging data therebetween.
-
-
16. The method of claim 11 wherein the step of enabling comprises:
-
defining a set of extender properties and methods for the application specific control in a selected document in the selected one of the plurality of application programs; and
transmitting a pointer from the control container in the selected one of the plurality of application programs to a container in the controls generation system, the pointer identifying an extender type library entry in the selected one of the plurality of application programs that contains the set of extender properties and methods.
-
-
17. The method of claim 11 wherein the step of enabling further comprises:
linking the pointer to the selected one of the plurality of controls.
-
18. The method of claim 11 wherein the step of enabling further comprises:
storing in the selected document in the selected one of the plurality of application programs a set of event handlers comprising code executable in response to activation of the control by a user.
-
19. The method of claim 11 wherein the step of enabling further comprises:
transmitting a pointer from the control container in the selected one of the plurality of application programs to a container in the controls generation system, the pointer identifying the set of event handlers.
-
20. The method of claim 11 wherein the step of merging comprises:
-
accessing, in the controls generation system, the set of extender properties and methods via the extender type library entry in the selected one of the plurality of application programs that contains the set of extender properties and methods;
accessing, in the controls generation system, the set of event handlers stored in the selected document in the selected one of the plurality of application programs; and
compiling, in the controls generation system, the set of event handlers, the set of extender properties and methods, the selected one of the plurality of controls to create the application program specific control for the selected one of the plurality of application programs.
-
-
21. A method of providing an extended control, the extended control adding a property and/or behavior and/or handling events, in one of a plurality of application programs acting on a document object, each of the plurality of programs having access to a common programming tool via a controls programming interface, the method comprising:
-
using a plurality of interfaces, each interface in the plurality of interfaces including a pointer to a table of pointers and wherein, furthermore, at least one pointer in the table of pointers accesses a function for discovering additional interfaces;
providing, for the application, at least one of the plurality of interfaces;
providing a plurality of controls, which provide properties for the document object, in association with the application programming layer, wherein furthermore each of the controls corresponds to at least one of the plurality of interfaces;
providing a plurality of extender objects in association with the application program wherein furthermore each of the extender objects corresponds to at least one of the plurality of interfaces and wherein furthermore at least one of the plurality of extender objects adds properties, methods, or events to a chosen control through corresponding interfaces; and
using a container corresponding to the application to merge a first extender object associated with the application program with a first control from the plurality of controls using the interfaces from the plurality of interfaces associated with the first control and the first extender object to form a first extended control without recompiling the application program. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A computer-readable medium containing computer executable instructions for carrying out the steps in a method for providing an extended control in one of a plurality of application programs having access to a common programming tool via a controls programming interface, where the extended control provides properties in at least one of the plurality of application programs acting on a document object, the method comprising steps of:
-
using a plurality of interfaces, each interface in the plurality of interfaces comprising a pointer to a table of pointers pointing to the location of objects and wherein furthermore at least one pointer in the table of pointers accesses a function object for discovering interfaces;
providing, for the application, at least one of the plurality of interfaces;
providing a plurality of controls in association with the common programming tool, wherein furthermore each of the controls corresponds to at least one of the plurality of interfaces;
providing a plurality of extender objects in association with the application program wherein furthermore each of the extender objects corresponds to at least one of the plurality of interfaces and wherein furthermore at least one of the plurality of extender objects add properties, methods, or events to a chosen control through corresponding interfaces; and
using a container corresponding to the application to merge a first extender object associated with the application program from the application with a first control from the plurality of controls using the interfaces from the plurality of interfaces associated with the first control, the first extender object and the application to form a first extended control, where the first extended control provides customized properties to the document object without recompiling the application program. - View Dependent Claims (28, 29)
-
Specification