US20040237049A1 - Undockable sub-windows - Google Patents
Undockable sub-windows Download PDFInfo
- Publication number
- US20040237049A1 US20040237049A1 US10/878,543 US87854304A US2004237049A1 US 20040237049 A1 US20040237049 A1 US 20040237049A1 US 87854304 A US87854304 A US 87854304A US 2004237049 A1 US2004237049 A1 US 2004237049A1
- Authority
- US
- United States
- Prior art keywords
- window
- content
- undockable
- container
- undocked
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Definitions
- the present invention relates to interacting with documents, and more particularly to undocking sections from HTML (hypertext markup language) documents.
- HTML hypertext markup language
- HTML is limited in that it fails to provide application designers with a complex design language for applications.
- the current state of browsers or the HTML language itself fails to provide the needed underlying framework for these applications.
- e-mail clients and NetMeetingTM incorporate a limited ability to undock windows from each other, a developer familiar only with HTML is prevented from providing even this limited functionality to a web page or an HTML document.
- the disclosed invention allows a user a greater amount of interactivity with displayed information. For example, the user may undock a desired portion from a parent window and manipulate the undocked desired portion apart from the parent window. Further, the undocked window may exist on its own after closing the parent application.
- Controls may include Java-based scripts (developed by Sun Microsystems) and ActiveX® controls (developed by Microsoft® Corporation of Redmond, Wash.). ActiveX® controls are a popular and effective way of encapsulating functionality and distributing this functionality across a variety of platforms. Unlike Java applets and certain plug-ins, ActiveX® controls may be written in any number of programming languages. ActiveX® controls, based on OLE controls or OCX controls, are components (or objects) which can be inserted into a web page or other application to reuse packaged functionality that someone else programmed. For example, Microsoft's Internet Explorer 3.0 contains ActiveX® controls that allow users to enhance web pages with sophisticated formatting features and animation.
- ActiveX® controls are an enhancement over Java applets and certain web browser plug-ins since ActiveX® controls may also be used in applications written in any number of programming languages. Web authors may also write their own ActiveX® controls using Visual Basic 5.0 or Visual C++ and an ActiveX® control framework such as Microsoft Foundation Class Library (MFC), the ActiveX® Template Library (ATL), or the BaseClt framework. ActiveX® controls are designated within a web page by use of a standard HTML ⁇ OBJECT> tag.
- object tags include a set of parameters that include name value pairs, which are the persistence information of the control.
- the object tag includes a set of parameters that specify which control should be used and control the appearance and behavior of the control.
- the invention relates to a control placed on a web page that supports contained text (or images or other data) in which a displayed window containing the text may be undocked from the displayed page.
- the undocked window (that is, the sub-content window) may remain open after a user closes the browser.
- the undocked window may close with the parent application.
- Various applications of the invention relate to how an undocked window is re-docked to the web page including the handling of updates to the information contained in the window.
- the invention may be applied to support information being ported from one application to another.
- portions of an HTML document may be encapsulated by a script-based control according to the invention.
- the script-based control may be an ActiveX® Control (by the Microsoft® Corporation) similar to an IFRAME.
- the control then allows the user to “undock” a selected portion from a main content window (e.g., a browser window). The selected portion would then appear in a separate window that can be positioned and viewed independent of the original content window.
- the user can then navigate the browser away from the original document without affecting the undocked sub-content window.
- a further implementation of the invention allows the browser application to even be closed while leaving the undocked sub-content window open.
- the invention includes aspects related to user interfaces for providing the user with an environment for undocking and docking sub-content windows, data structures for supporting the claims, (relating to the data structure as including different controls), system and method claims (relating to the support of the windows and coordination of events between the different windows), and computer-readable medium claims (related to a program for creating the undockable windows and for handling the windows once created).
- FIG. 1 shows a schematic diagram depicting a computing environment according to embodiments of the present invention
- FIG. 2 shows the undocking of a window according to embodiments of the present invention
- FIG. 3 shows a control object creation flow diagram according to embodiments of the present invention
- FIG. 4 shows nesting container and control windows according to embodiments of the present invention
- FIG. 5 shows parallel container and control windows according to embodiments of the present invention.
- FIGS. 6A and 6B show control object relationships according to embodiments of the present invention.
- FIG. 7 shows control object relationships according to additional embodiments of the present invention.
- the present invention is described as it would be used for Internet applications, which is one embodiment of the invention.
- the present invention may be implemented generally within any number of computer applications including any software development tool for authoring text and computer-executable code.
- the present invention provides a tool for efficiently interacting with hypertext markup language (HTML) documents.
- the present invention may be authored within an authoring tool such as, for example, Visual C++, Visual InterDev and Visual J++ by Microsoft® Corporation of Redmond, Wash.
- the interaction with the dockable and undockable windows may occur in Internet Explorer 4.0, also by the Microsoft® Corporation.
- HTML script is intended to include the various scripting languages available for execution on browsers.
- the actual scripting language used when converting from the following programming environment into the HTML environment may vary based on the browsers to which the HTML code is to be eventually sent. Since the language, JavaScript is common to both Internet Explorer 4 (from Microsoft® Corporation) and Netscape Navigator 4 (from Netscape Corporation), this language may be used. Other languages (as are well known in the art) are also becoming available for use in browsers and are considered within the scope of the invention.
- program modules include routines, programs, objects, scripts, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
- program modules may be located in both local and remote memory storage devices.
- the present invention may also be practiced in personal computers (PCs), hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like.
- Undock generally refers to the ability to separate a portion of a window into a separate window for independent movement and interaction.
- “Dock” refers to the ability to incorporate the contents of a separate window into another window or portion of a window.
- FIG. 1 is a schematic diagram of a computing environment in which the present invention may be implemented.
- the present invention may be implemented within a general purpose computing device in the form of a conventional personal computer 200 , including a processing unit 210 , a system memory 220 , and a system bus 230 that couples various system components including the system memory to the processing unit 210 .
- the system bus 230 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- the system memory includes read only memory (ROM) 240 and random access memory (RAM) 250 .
- ROM read only memory
- RAM random access memory
- a basic input/output system 260 (BIOS), containing the basic routines that help to transfer information between elements within the personal computer 200 , such as during start-up, is stored in ROM 240 .
- the personal computer 200 further includes a hard disk drive 270 for reading from and writing to a hard disk, not shown, a magnetic disk drive 280 for reading from or writing to a removable magnetic disk 290 , and an optical disk drive 291 for reading from or writing to a removable optical disk 292 such as a CD ROM or other optical media.
- the hard disk drive 270 , magnetic disk drive 280 , and optical disk drive 291 are connected to the system bus 230 by a hard disk drive interface 299 , a magnetic disk drive interface 293 , and an optical disk drive interface 294 , respectively.
- the drives and their associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for the personal computer 200 .
- a number of program modules may be stored on the hard disk, magnetic disk 290 , optical disk 292 , ROM 240 or RAM 250 , including an operating system 295 , one or more application programs 296 , other program modules 297 , and program data 298 .
- a user may enter commands and information into the personal computer 200 through input devices such as a keyboard 201 and pointing device 202 .
- Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
- These and other input devices are often connected to the processing unit 210 through a serial port interface 206 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or a universal serial bus (USB).
- a monitor 207 or other type of display device is also connected to the system bus 230 via an interface, such as a video adapter 208 .
- personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
- the personal computer 200 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 209 .
- the remote computer 209 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the personal computer 200 , although only a memory storage device 211 has been illustrated in FIG. 1.
- the logical connections depicted in FIG. 1 include a local area network (LAN) 212 and a wide area network (WAN) 213 .
- LAN local area network
- WAN wide area network
- the personal computer 200 When used in a LAN networking environment, the personal computer 200 is connected to the local network 212 through a network interface or adapter 214 . When used in a WAN networking environment, the personal computer 200 typically includes a modem 215 or other means for establishing a communications over the wide area network 213 , such as the Internet.
- the modem 215 which may be internal or external, is connected to the system bus 230 via the serial port interface 206 .
- program modules depicted relative to the personal computer 200 may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
- FIG. 2 represents one embodiment of the ability to support undockable content windows on a page.
- FIG. 2 shows a browser window A 101 with title window 102 .
- Browser window A 101 also includes two buttons Undock 113 and Dock 114 .
- the programmer incorporates the content to be displayed in an undockable sub-window.
- the programmer can wrap the content to be displayed in HTML delimiters that specify the content may be undocked.
- the programmer may include a reference to an undocking control followed by a pointer to the location of the content. Similar to an IFRAME interface, this approach allows the programmer to easily specify that the content window is an undockable content window without having to incorporate the content itself.
- buttons 113 and 114 may be replaced by a script control that monitors the user's mouse input, in which a double click on the content signifies a request to undock the content window.
- the undock and/or dock features may be under script control monitoring the elapsed time an end user spends on a page. After a predetermined elapsed time, the specified content portion may be undocked.
- buttons may be shown: an undock button 113 and a dock button 114 .
- the script underlying the buttons undocks and docks a designated docked sub-content window 116 .
- This undocking can keep the sub-content window B 116 in place over the browser window A 101 or move it to another location (as represented by arrow 117 ) to suggest the undocking nature of the window as represented by undocked sub-content window B 115 .
- How the undocked window is represented is a matter of scripting the specific commands to move a window to a new location.
- FIG. 3 shows a flow diagram of the undocking of a content window.
- Browser window 601 includes undock button 603 and dock button 602 .
- Undockable content window 604 is shown in a dotted line to represent that the undockable content may appear part of the general content displayed in browser window 601 . While described in reference to ActiveX®, it is also appreciated that the invention may be practiced in Java or in any programming language that may control the formation and creation of windows.
- the undockable content window 604 may be otherwise identified as undockable.
- window 604 may be shaded differently than the rest of window 601 , the type face of the font used may be different, the size of the font may be different, and a border may exist around the window 604 . It is noted that these are only a few examples of the many alternative ways of representing the window 604 to a user. Variations thereof are considered within the scope of the invention described herein.
- Browser window 601 relies on an HTML renderer component 605 to determine how to display received HTML content.
- this renderer 605 is instantiated when browser window 601 is opened.
- the browser window 601 determines how to display the new HTML content (or related displayable content or data including images) as, represented by the information exchange 611 .
- the renderer 605 may be part of a browser application 601 . Here, there may be no clear distinction between the renderer and the browser.
- a user instructs the underlying computer system (for example, a local computer, a network computer, and those as know in the art) to undock undockable content window 604 from browser window 601
- an event is sent 612 (or “fired” as is know in the art) to an Undock ActiveX® control 606 .
- the Undock ActiveX® control then separates browser window 601 and undockable content window 604 into two windows (the browser window 610 and the undocked content window 608 ) through actions 614 and 615 , respectively.
- the name or identity of the undocked content window 608 may be specified automatically.
- the undockable content window 604 remains in browser window 610 and an instance of undockable content window 604 is instantiated as undocked content window 608 . Recursively performing this operation results in multiple child windows from browser window 610 .
- the names of the various child windows are named by the naming function described above.
- Browser window 610 remains connected to the instance 605 of the HTML renderer component as shown by path 613 .
- a new instance of the HTML render component is instantiated as HTML render component 607 to support the undocked window 608 as shown via path 616 .
- the HTML renderer 607 may not be instantiated and undocked content window 608 may be supported by the HTML renderer 605 .
- undocked content window 608 When undocked, undocked content window 608 remains in contact with browser window 610 at least to its current content as shown via path 617 . To this end, the undocked content window may fire and receive events from browser window 610 for related events. For example, if browser window 601 included a home financing script or program with the result displayed in undockable content window 604 , when undocked, the undocked content window 608 would still be able to receive updated calculations from the calculating script behind the displayed browser window 610 (post-undocking).
- the undocked content window 608 may be severed from the parent browser window 610 once undocked. In this case, updates in parent browser window 610 would not be conveyed to the undocked window 608 .
- One advantage of not linking the undocked content window 608 to browser window 610 is that, when multiple copies of the undocked content window 608 are made, each copy may be distinct. This allows a comparison between the different child windows 608 . For example, in the calculation example given above, an end user may wish to perform the calculations using various criteria. Instead of printing out multiple copies of the results from the calculations, the end user may undock the results of the calculation every time a new calculation is made. Thus, the results of the calculations may be compared on-screen without printing out each new result.
- the new location may not include a separable content window.
- the undocked window retains the same state despite browser window 610 navigating away. If the browser is navigated back to the original location that eventually resulted in the creation of undocked content window 608 , four alternatives may occur. These four alternatives are dependent on the script creating the undocked content window. First, the undocked content window 608 may be updated with the content from the re-navigated to location by browser window 610 . Second, the undocked content window 608 may retain its current state and not be updated by the new state of the re-navigated to location.
- the undocked content window 608 may be re-incorporated (docked) into browser window 610 and the new content of the re-navigated to location replace the content of undocked content window 608 .
- the undocked content window 608 may be re-incorporated (docked) into browser window 610 and the content of the undocked content window 608 replace the content of the re-navigated to location as displayed in browser 610 .
- FIGS. 4 and 5 show various windows and the supporting objects.
- FIG. 4 shows browser window A 101 with title window 102 .
- an undock button 113 and a dock button 114 are displayed in browser window A 101 .
- the functions of these buttons may be incorporated into mouse commands or keystrokes.
- a number of objects are contained in browser window A.
- First is containable control window B 103 .
- Within containable control window B 103 is container C 104 .
- container C 104 Within container C 104 is control window D 105 .
- Control window D is what an end user sees when navigating to the page.
- both container window C and control window D are undocked as shown by arrow 112 .
- Arrow 112 is bi-directional indicating that a window may be docked and undocked.
- control window D exists as contained in container window C.
- the undocked versions of container window C and control window D are represented by windows 108 and 109 , respectively.
- containable control window B 103 may remain on the page displayed in browser window A as a place holder.
- the undockable windows may be included on a page. When separate from each other, the undockable windows have distinct containable control windows B 103 . When combined, a single containable control window B 103 may support multiple container windows C. At least two variations on how the container windows are supported exist. First, as shown in FIG. 4, the container windows are nested in higher-level container windows. Here, container window E 106 (supporting control window F 107 ) is nested into container window C 104 . When undocked, container window C 108 includes control window 109 and container window E 110 (which includes control window F 111 ). While not shown in FIG. 4, container window E 110 may be undocked from container window C 108 . Container window C 108 resizes to hold control window D 109 .
- FIG. 5 shows an alternative scheme for supporting container and control windows.
- FIG. 5 shows containable control window B 303 having container window C 304 (containing control window D 305 ) and container window E 306 (containing control window F 307 ).
- containable control window B 308 stores both container window C 304 and container window E 306 at the same level. Similar to FIG. 4 described above, undock/dock arrow 312 is shown. After undocking, container window C 308 includes control window D 309 . Juxtaposed to container window C 308 is container window E 310 (containing control window F 311 ).
- the invention may be practiced by adding additional script callable methods to the IFRAME object that is present in the Internet Explorer 4.0 “Document Object Model”.
- the additional methods may allow the contents of the IFRAME to be undocked or docked, the creation of additional instances of sub document objects, and the ability to route events to or from the parent document and the IFRAME sub document.
- the invention may be practiced through the use of script including Java, ActiveX® controls, and other known scripting languages. While the following relates to the implementation of the invention in an ActiveX® control, implementations in other languages as described above is considered to be within the scope of the present invention.
- An ActiveX® control allows script in an HTML document to create sub-windows that can be docked or undocked by script control and, thus, by user control.
- sub-windows can host any ActiveX® control, they can also independently host the HTML renderer control (also referred to as the WebBrowser ActiveX® control. Using this technique, the sub-windows can render received HTML documents.
- script in the HTML document may prompt the control to create a sub-window.
- the control is identified as “DockCtl”. This control is asked to create a sub-window (containable control window) and host the control identified. It also specifies that the sub-window (containable control window) should have a caption of “Caption” and a name of “Name”. Further, it specifies that a new sub-window (container window) should be created and immediately docked in the control's first sub-window (containable control window). In response, the control creates the container window inside the containable control window. Finally, the system instantiates the identified control and initializes it by telling it to draw a control window inside of the newly created container window.
- HTML renderer control HTML renderer control
- main HTML document can present a user interface (e.g., a button described above) to allow the user to undock the child window.
- the script action that results from the user indicating that it wants the window to be undocked needs to tell the sub-window object to undock.
- An example code is as follows:
- a container window C 104 in FIG. 4 is undocked by calling, for example, USER API's to switch the container window from being a child window to being a top-level window.
- the container window can also be re-docked by switching the window back to being a child window of the containable control window B 103 .
- the control can create any number of sub-windows; with only one being docked at a time. This may be used for implementing individual instances of tear-off data such a notes or calculation results, etc. as described above. Also, the control may maintain a list of created sub-windows that can be searched by the Name specified in a HostControl list of sub-windows. This allows script in an HTML document to find the object pointer to an earlier created sub-window.
- Control object 401 is the main object for the ActiveX control; it provides an interface that is script callable (ITOCntrCtl), which allows containers to be created and located by name.
- the control object 401 include the following members: m_pInprocServer 402 (which holds a reference to the container server object 405 ), m_pDockedCntr 403 (which holds a reference to a container automation object 414 , if one is docked), and m_hWndCD 404 (a handle to its containable control window 417 , or B 103 in FIG. 4).
- the container server object 405 is responsible for creating and maintaining a list of created container objects. It provides an interface for the control object 401 to create and locate container objects (ITOContainerServer).
- Container server object 405 , 505 maintains a list of created container objects 407 , 507 in g_ContainerList 406 (FIG. 6A).
- Each container object 407 , 507 includes three members: m_sinks 410 , 510 (which hold references to the container automation object 414 , so that event notifications can be sent to the container automation object 414 shown in FIG. 6A), m_hwnd 411 (a handle to its container window 418 , or C 104 in FIG.
- Each container object 407 , 507 also contains a container 408 , 508 that is the host for a hosted control, so its member m_punk 409 , 509 holds a reference to the hosted control object 413 , 513 .
- the hosted control object 413 owns a control window 419 , or D 105 in FIG. 4, which is a child window of the container window 418 .
- each container object 407 exists a container automation object 414 ; it provides the script callable interface (ITOCntr) which allows containers to be docked, to be undocked, to be closed, and to fire events.
- the member m_pContainer 415 holds a reference to the container object 407 , and, for the most part, it wraps the non-script callable interface (ITOContainer) with it script callable one (ITOCntr). It also has a member m_pSite that holds a reference back to the control object 401 , if the container is currently docked.
- container window 418 which is the container window related to container 408 , is considered a child window of the control window 417 .
- container window is considered not a child window of the control window.
- container window 418 is in the docked state, so m_pDockedCntr 403 holds a reference to the container automation object 414 , m_pSite 416 holds a reference to the control object 401 , m_pDockedCntr 403 holds a reference to 414 , and container window 418 is a child window of the control window 417 .
- FIG. 6B shows a container window 504 in the undocked state.
- m_pSite 502 does not hold a reference to the control object 401
- container window 504 is considered a top-level window.
- FIG. 7 reflects alternative embodiments of the present invention.
- FIG. 7 includes a global container server object 405 G.
- This server object contains a global container list 406 G that includes a list of the container objects and to which local container server object (for example, 405 L) is related.
- Control object 401 may include m_pGlobalServer 422 that holds a reference to the global container server object 405 G.
- control object 401 may hold references to both an in-process server and an out-of-process server.
- Each local container server object (for example, 405 L) contains a list (ContainerList 406 L, for example) of containers created and supported by the local server object 405 L and as further described with reference to FIG. 6A above.
- One automation object may exist for every container object. For example, if one wants to display a stock ticker in an application, the container object would contain the information to be displayed and the container automation object would contain the settings on how to display the subject information. In some cases, it may be desirable to display the stock ticker in two separate applications (for example, in two separate browser windows). As the information to be displayed for the two applications is the same, one container object may be used. As the display settings may be different, two automation objects may be used. For instance, if one instance of the information is to be displayed at a fast rate and the other at a slow rate, two container automation objects 414 A and 414 B may be used.
- the two container automation objects 414 A and 414 B include member m_pContainer, 415 A, 415 B and member m_psSite 416 A and 416 B, respectively.
- FIG. 7 shows the two container objects both in a docked state pointing to container object 407 A.
- a separate container object may be use for each application. It is understood that additional information contents may be used including images, databases, sounds, active or interactive sub application, etc.
- each container object pointed to the next container object in the list g_ContainerList 406 through pointer m_pnext 412 .
- each container object 407 A also points to a nested container object (for example the object supporting container window E 106 as nested in container window C 104 of FIG. 4) using m_psubcont 420 .
- a similar pointer may be used that represents that the next container object is a parallel depth window, not a nested window.
- this pointer is not shown for simplicity.
- a hosted control object 413 may not always point back to the object or container that referenced it.
- the hosted control object 413 may require script to determine a self-automation object 421 exists to allow a hosted control to determine information about itself.
- the hosted control object may be an application (a browser) in which the application requires additional information on how to function (what methods it can implement, etc.).
- the self-automation object 421 implements interface ITOSelf that allows script hosted by hosted control object 413 to control container 407 A.
- self-automation object 421 may also include a reference p_cont back to container object 407 A through interface ITOContainer.
- Another implementation of the invention is to add an extension of script callable methods to the IFRAME object, which provides control over an IFRAME element of HTML. While not described in detail, this alternative implementation is considered within the scope of invention and realizable by one of ordinary skill in the art based on the above disclosure.
- the above-described invention may be applied to various applications.
- the invention may be used to create a new application inside of another application.
- the new application would operate within the original application yet be separable from it when desired.
- a collection of sub-applications may be combined to form a general application, for example a general desktop application including user interfaces for email, a data base program, a word processor program, a spreadsheet program, a notebook, and the like.
- the various components may be separable from each other as each is represented as an undockable object.
- a user may create a tool bar containing a variety of user-specific applications.
- the toolbar may have relevance to a number of different applications.
- the toolbar may be instantiated in conjunction with one application, undocked from the first application (which is then closed), then docked to a new application, here preserving any changes made to the toolbar when originally instantiated by the first application.
- a disk defragmentor application would include a separable status bar, which may be placed on a desktop apart from the more inclusive general defragmentor user interface.
- a docking/undocking invention has been disclosed.
- the docking and undocking techniques allow a developer to encapsulate content in undockable and dockable elements (including scripts, controls, or related delimiters as an extension to the IFRAME of HTML).
- application of the present invention is not restricted to HTML as found on the Internet.
- the techniques of the present invention apply to any network using HTTP, including HTTPS-compliant networks, intranets and extranets.
- the techniques of the present invention apply in any text-authoring context where complex scripts require detailed knowledge of databases as well as related pages.
- embodiments of the present invention contemplate the use of the disclosed undocking/docking system in conjunction with other systems including spreadsheets and other related environments.
- the present invention may also be implemented in a peer-to-peer computing environment or in a multi-user host system with a mainframe or a minicomputer, allowing the porting of data from one application to another.
- the computer network in which the invention is implemented, should be broadly construed to include any client/server computer network from which a client can retrieve a remote document on a server (even if that document is available on the same machine or system).
Abstract
A system, method, and medium are disclosed for undocking content from a window into sub-windows. The undocked sub-windows may be redocked to the parent window. The sub-windows may continue to exist after an application providing the window has been closed.
Description
- A. Technical Field
- In general, the present invention relates to interacting with documents, and more particularly to undocking sections from HTML (hypertext markup language) documents.
- B. Background of the Invention
- The Internet has experienced tremendous growth. Through various HTML programming techniques (including tables and frames, for example), information may be presented to end users in visually appealing forms. However, one of the difficulties with these presentation techniques is that, once the table or form is coded, the end user has little ability by which to interact with the presented information. For instance, if a user is viewing an article in a frame as displayed in a browser (for example, Internet Explorer (IE) 4.0 by the Microsoft® Corporation or Netscape Navigator (NN) 4.0 by the Netscape Corporation), the user may scroll up or down the article. However, the user cannot read the article once the browser is closed. Further, the article cannot be moved apart from the window supported by the browser. The viewing interactivity experienced by the end user remains at a low level.
- The ability to undock one display window from another allows a user to separate the two windows. However, current undocking solutions fail to provide an end user with freedom to navigate beyond the displayed windows. At least one Internet video-conferencing application (i.e., NetMeeting™) provides the ability to undock viewing windows. However, these “undocked” windows, while independently positionable, remain part of the parent video-conferencing application. Closing the parent video-conferencing application also closes the undocked windows.
- Further, current separable windows in browsers fail to provide any sort of docking. In the current version of browsers (IE 4.0 or NN 4.0), instead of navigating to a new window with the current instance of the browser, an end user may open a new browser window and navigate it separately from the original instance of the browser. However, the user is always aware of the two separate instances of the browser. There is no ability to dock the two windows together to provide a browser window that is unified in appearance and navigation. Also, the two windows effectively remain independent of each other. In this regard, navigation of the first window does not effect the content of the second window. Current browsers do not allow incorporated content to be undocked from a main application.
- In short, while providing simple textual markups and related display characteristics, HTML is limited in that it fails to provide application designers with a complex design language for applications. The current state of browsers or the HTML language itself fails to provide the needed underlying framework for these applications. While e-mail clients and NetMeeting™ incorporate a limited ability to undock windows from each other, a developer familiar only with HTML is prevented from providing even this limited functionality to a web page or an HTML document.
- In order to overcome the drawbacks mentioned above, the disclosed invention allows a user a greater amount of interactivity with displayed information. For example, the user may undock a desired portion from a parent window and manipulate the undocked desired portion apart from the parent window. Further, the undocked window may exist on its own after closing the parent application.
- Controls, as used by the invention, may include Java-based scripts (developed by Sun Microsystems) and ActiveX® controls (developed by Microsoft® Corporation of Redmond, Wash.). ActiveX® controls are a popular and effective way of encapsulating functionality and distributing this functionality across a variety of platforms. Unlike Java applets and certain plug-ins, ActiveX® controls may be written in any number of programming languages. ActiveX® controls, based on OLE controls or OCX controls, are components (or objects) which can be inserted into a web page or other application to reuse packaged functionality that someone else programmed. For example, Microsoft's Internet Explorer 3.0 contains ActiveX® controls that allow users to enhance web pages with sophisticated formatting features and animation. ActiveX® controls are an enhancement over Java applets and certain web browser plug-ins since ActiveX® controls may also be used in applications written in any number of programming languages. Web authors may also write their own ActiveX® controls using Visual Basic 5.0 or Visual C++ and an ActiveX® control framework such as Microsoft Foundation Class Library (MFC), the ActiveX® Template Library (ATL), or the BaseClt framework. ActiveX® controls are designated within a web page by use of a standard HTML <OBJECT> tag. Typically, object tags include a set of parameters that include name value pairs, which are the persistence information of the control. The object tag includes a set of parameters that specify which control should be used and control the appearance and behavior of the control.
- In one embodiment, the invention relates to a control placed on a web page that supports contained text (or images or other data) in which a displayed window containing the text may be undocked from the displayed page. The undocked window (that is, the sub-content window) may remain open after a user closes the browser. In an alternative embodiment, the undocked window may close with the parent application. Various applications of the invention relate to how an undocked window is re-docked to the web page including the handling of updates to the information contained in the window. Also, the invention may be applied to support information being ported from one application to another.
- Applied to a browser platform, portions of an HTML document may be encapsulated by a script-based control according to the invention. For instance, the script-based control may be an ActiveX® Control (by the Microsoft® Corporation) similar to an IFRAME. The control then allows the user to “undock” a selected portion from a main content window (e.g., a browser window). The selected portion would then appear in a separate window that can be positioned and viewed independent of the original content window. In the browser example, the user can then navigate the browser away from the original document without affecting the undocked sub-content window. A further implementation of the invention allows the browser application to even be closed while leaving the undocked sub-content window open.
- The invention includes aspects related to user interfaces for providing the user with an environment for undocking and docking sub-content windows, data structures for supporting the claims, (relating to the data structure as including different controls), system and method claims (relating to the support of the windows and coordination of events between the different windows), and computer-readable medium claims (related to a program for creating the undockable windows and for handling the windows once created).
- These and other novel advantages, details, embodiments, features and objects of the present invention will be apparent to those skilled in the art from following the detailed description of the invention, the attached claims and accompanying drawings, listed herein, which are useful in explaining the invention.
- In the following text and drawings, wherein similar reference numerals denote similar elements throughout the several views thereof, the present invention is explained with reference to illustrative embodiments, in which:
- FIG. 1 shows a schematic diagram depicting a computing environment according to embodiments of the present invention;
- FIG. 2 shows the undocking of a window according to embodiments of the present invention;
- FIG. 3 shows a control object creation flow diagram according to embodiments of the present invention;
- FIG. 4 shows nesting container and control windows according to embodiments of the present invention;
- FIG. 5 shows parallel container and control windows according to embodiments of the present invention; and,
- FIGS. 6A and 6B show control object relationships according to embodiments of the present invention.
- FIG. 7 shows control object relationships according to additional embodiments of the present invention.
- The present invention is described as it would be used for Internet applications, which is one embodiment of the invention. The present invention, however, may be implemented generally within any number of computer applications including any software development tool for authoring text and computer-executable code. In the context of developing web pages, the present invention provides a tool for efficiently interacting with hypertext markup language (HTML) documents. In this context, the present invention may be authored within an authoring tool such as, for example, Visual C++, Visual InterDev and Visual J++ by Microsoft® Corporation of Redmond, Wash. The interaction with the dockable and undockable windows may occur in Internet Explorer 4.0, also by the Microsoft® Corporation.
- As used herein, HTML script is intended to include the various scripting languages available for execution on browsers. The actual scripting language used when converting from the following programming environment into the HTML environment may vary based on the browsers to which the HTML code is to be eventually sent. Since the language, JavaScript is common to both Internet Explorer 4 (from Microsoft® Corporation) and Netscape Navigator 4 (from Netscape Corporation), this language may be used. Other languages (as are well known in the art) are also becoming available for use in browsers and are considered within the scope of the invention.
- Although not required, the invention will be described in the general context of computer-executable instructions, such as program modules. Generally, program modules include routines, programs, objects, scripts, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with any number of computer system configurations including, but not limited to, distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. The present invention may also be practiced in personal computers (PCs), hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like.
- A. Order of Description
- In order to comprehend more readily the embodiments of the invention contained herein, the following lists the order of the contents of the detailed description:
- Terms;
- General Purpose Computer;
- Docking and Undocking;
- Objects and Object Relationships; and
- Summary.
- B. Terms
- The following terms are used throughout the specification to relate to various concepts.
- “Undock”—generally refers to the ability to separate a portion of a window into a separate window for independent movement and interaction.
- “Dock”—refers to the ability to incorporate the contents of a separate window into another window or portion of a window.
- C. General Purpose Computer
- FIG. 1 is a schematic diagram of a computing environment in which the present invention may be implemented. The present invention may be implemented within a general purpose computing device in the form of a conventional
personal computer 200, including aprocessing unit 210, asystem memory 220, and asystem bus 230 that couples various system components including the system memory to theprocessing unit 210. Thesystem bus 230 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory includes read only memory (ROM) 240 and random access memory (RAM) 250. - A basic input/output system260 (BIOS), containing the basic routines that help to transfer information between elements within the
personal computer 200, such as during start-up, is stored inROM 240. Thepersonal computer 200 further includes ahard disk drive 270 for reading from and writing to a hard disk, not shown, amagnetic disk drive 280 for reading from or writing to a removablemagnetic disk 290, and anoptical disk drive 291 for reading from or writing to a removableoptical disk 292 such as a CD ROM or other optical media. Thehard disk drive 270,magnetic disk drive 280, andoptical disk drive 291 are connected to thesystem bus 230 by a harddisk drive interface 299, a magneticdisk drive interface 293, and an opticaldisk drive interface 294, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for thepersonal computer 200. - Although the exemplary environment described herein employs a hard disk, a removable
magnetic disk 290 and a removableoptical disk 292, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read only memories (ROMs), and the like, may also be used in the exemplary operating environment. - A number of program modules may be stored on the hard disk,
magnetic disk 290,optical disk 292,ROM 240 orRAM 250, including anoperating system 295, one ormore application programs 296,other program modules 297, andprogram data 298. A user may enter commands and information into thepersonal computer 200 through input devices such as akeyboard 201 and pointing device 202. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to theprocessing unit 210 through aserial port interface 206 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or a universal serial bus (USB). Amonitor 207 or other type of display device is also connected to thesystem bus 230 via an interface, such as avideo adapter 208. In addition to the monitor, personal computers typically include other peripheral output devices (not shown), such as speakers and printers. - The
personal computer 200 may operate in a networked environment using logical connections to one or more remote computers, such as aremote computer 209. Theremote computer 209 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to thepersonal computer 200, although only amemory storage device 211 has been illustrated in FIG. 1. The logical connections depicted in FIG. 1 include a local area network (LAN) 212 and a wide area network (WAN) 213. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. - When used in a LAN networking environment, the
personal computer 200 is connected to thelocal network 212 through a network interface oradapter 214. When used in a WAN networking environment, thepersonal computer 200 typically includes amodem 215 or other means for establishing a communications over thewide area network 213, such as the Internet. Themodem 215, which may be internal or external, is connected to thesystem bus 230 via theserial port interface 206. In a networked environment, program modules depicted relative to thepersonal computer 200, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used. - D. Docking and Undocking
- FIG. 2 represents one embodiment of the ability to support undockable content windows on a page. FIG. 2 shows a
browser window A 101 withtitle window 102.Browser window A 101 also includes two buttons Undock 113 andDock 114. When coding a page to be downloaded into a browser, the programmer incorporates the content to be displayed in an undockable sub-window. In one embodiment, the programmer can wrap the content to be displayed in HTML delimiters that specify the content may be undocked. Alternatively, the programmer may include a reference to an undocking control followed by a pointer to the location of the content. Similar to an IFRAME interface, this approach allows the programmer to easily specify that the content window is an undockable content window without having to incorporate the content itself. Alternatively,buttons - On the displayed page, two buttons may be shown: an
undock button 113 and adock button 114. As their names suggest, the script underlying the buttons undocks and docks a designated dockedsub-content window 116. This undocking can keep thesub-content window B 116 in place over thebrowser window A 101 or move it to another location (as represented by arrow 117) to suggest the undocking nature of the window as represented by undockedsub-content window B 115. How the undocked window is represented is a matter of scripting the specific commands to move a window to a new location. - FIG. 3 shows a flow diagram of the undocking of a content window.
Browser window 601 includesundock button 603 anddock button 602.Undockable content window 604 is shown in a dotted line to represent that the undockable content may appear part of the general content displayed inbrowser window 601. While described in reference to ActiveX®, it is also appreciated that the invention may be practiced in Java or in any programming language that may control the formation and creation of windows. - Alternatively, the
undockable content window 604 may be otherwise identified as undockable. For example,window 604 may be shaded differently than the rest ofwindow 601, the type face of the font used may be different, the size of the font may be different, and a border may exist around thewindow 604. It is noted that these are only a few examples of the many alternative ways of representing thewindow 604 to a user. Variations thereof are considered within the scope of the invention described herein. -
Browser window 601 relies on anHTML renderer component 605 to determine how to display received HTML content. - In one example, this
renderer 605 is instantiated whenbrowser window 601 is opened. When new information arrives atbrowser window 601, thebrowser window 601 determines how to display the new HTML content (or related displayable content or data including images) as, represented by theinformation exchange 611. Alternatively, therenderer 605 may be part of abrowser application 601. Here, there may be no clear distinction between the renderer and the browser. - When a user instructs the underlying computer system (for example, a local computer, a network computer, and those as know in the art) to undock
undockable content window 604 frombrowser window 601, an event is sent 612 (or “fired” as is know in the art) to an UndockActiveX® control 606. The Undock ActiveX® control then separatesbrowser window 601 andundockable content window 604 into two windows (thebrowser window 610 and the undocked content window 608) throughactions content window 608 may be specified automatically. - In another embodiment, the
undockable content window 604 remains inbrowser window 610 and an instance ofundockable content window 604 is instantiated as undockedcontent window 608. Recursively performing this operation results in multiple child windows frombrowser window 610. The names of the various child windows are named by the naming function described above. -
Browser window 610 remains connected to theinstance 605 of the HTML renderer component as shown bypath 613. A new instance of the HTML render component is instantiated as HTML rendercomponent 607 to support the undockedwindow 608 as shown viapath 616. Alternatively, theHTML renderer 607 may not be instantiated and undockedcontent window 608 may be supported by theHTML renderer 605. - When undocked, undocked
content window 608 remains in contact withbrowser window 610 at least to its current content as shown viapath 617. To this end, the undocked content window may fire and receive events frombrowser window 610 for related events. For example, ifbrowser window 601 included a home financing script or program with the result displayed inundockable content window 604, when undocked, the undockedcontent window 608 would still be able to receive updated calculations from the calculating script behind the displayed browser window 610 (post-undocking). - In an alternative embodiment, the undocked
content window 608 may be severed from theparent browser window 610 once undocked. In this case, updates inparent browser window 610 would not be conveyed to the undockedwindow 608. One advantage of not linking the undockedcontent window 608 tobrowser window 610 is that, when multiple copies of the undockedcontent window 608 are made, each copy may be distinct. This allows a comparison between thedifferent child windows 608. For example, in the calculation example given above, an end user may wish to perform the calculations using various criteria. Instead of printing out multiple copies of the results from the calculations, the end user may undock the results of the calculation every time a new calculation is made. Thus, the results of the calculations may be compared on-screen without printing out each new result. - When
browser window 610 is navigated to another location, the new location may not include a separable content window. In this regard, the undocked window retains the same state despitebrowser window 610 navigating away. If the browser is navigated back to the original location that eventually resulted in the creation of undockedcontent window 608, four alternatives may occur. These four alternatives are dependent on the script creating the undocked content window. First, the undockedcontent window 608 may be updated with the content from the re-navigated to location bybrowser window 610. Second, the undockedcontent window 608 may retain its current state and not be updated by the new state of the re-navigated to location. Third, the undockedcontent window 608 may be re-incorporated (docked) intobrowser window 610 and the new content of the re-navigated to location replace the content of undockedcontent window 608. Finally, fourth, the undockedcontent window 608 may be re-incorporated (docked) intobrowser window 610 and the content of the undockedcontent window 608 replace the content of the re-navigated to location as displayed inbrowser 610. Each of these four variations has its advantages as determined by the content on the navigated to page. - E. Objects and Object Relationships
- Objects are used to create and control the windows described above. FIGS. 4 and 5 show various windows and the supporting objects. FIG. 4 shows
browser window A 101 withtitle window 102. As described above, anundock button 113 and adock button 114 are displayed inbrowser window A 101. Alternatively, the functions of these buttons may be incorporated into mouse commands or keystrokes. A number of objects are contained in browser window A. First is containablecontrol window B 103. Within containablecontrol window B 103 iscontainer C 104. Withincontainer C 104 iscontrol window D 105. Control window D is what an end user sees when navigating to the page. When the end user initiates a command (for example through clicking on undock button 113) to undock thecontrol window D 105, both container window C and control window D are undocked as shown byarrow 112.Arrow 112 is bi-directional indicating that a window may be docked and undocked. Here, control window D exists as contained in container window C. The undocked versions of container window C and control window D are represented bywindows container window C 104 andcontrol window D 105 are undocked frombrowser window A 101, containablecontrol window B 103 may remain on the page displayed in browser window A as a place holder. - Multiple undockable windows may be included on a page. When separate from each other, the undockable windows have distinct containable
control windows B 103. When combined, a single containablecontrol window B 103 may support multiple container windows C. At least two variations on how the container windows are supported exist. First, as shown in FIG. 4, the container windows are nested in higher-level container windows. Here, container window E 106 (supporting control window F 107) is nested intocontainer window C 104. When undocked,container window C 108 includescontrol window 109 and container window E 110 (which includes control window F 111). While not shown in FIG. 4,container window E 110 may be undocked fromcontainer window C 108.Container window C 108 resizes to holdcontrol window D 109. - FIG. 5 shows an alternative scheme for supporting container and control windows. FIG. 5 shows containable
control window B 303 having container window C 304 (containing control window D 305) and container window E 306 (containing control window F 307). In FIG. 5, containablecontrol window B 308 stores bothcontainer window C 304 andcontainer window E 306 at the same level. Similar to FIG. 4 described above, undock/dock arrow 312 is shown. After undocking,container window C 308 includescontrol window D 309. Juxtaposed tocontainer window C 308 is container window E 310 (containing control window F 311). - The invention may be practiced by adding additional script callable methods to the IFRAME object that is present in the Internet Explorer 4.0 “Document Object Model”. The additional methods may allow the contents of the IFRAME to be undocked or docked, the creation of additional instances of sub document objects, and the ability to route events to or from the parent document and the IFRAME sub document. Also, the invention may be practiced through the use of script including Java, ActiveX® controls, and other known scripting languages. While the following relates to the implementation of the invention in an ActiveX® control, implementations in other languages as described above is considered to be within the scope of the present invention.
- An ActiveX® control allows script in an HTML document to create sub-windows that can be docked or undocked by script control and, thus, by user control. As sub-windows can host any ActiveX® control, they can also independently host the HTML renderer control (also referred to as the WebBrowser ActiveX® control. Using this technique, the sub-windows can render received HTML documents.
- To use a control, it needs to be instantiated. An example HTML tag section to instantiate the control is as follows:
<OBJECT ID=“DockCtl” height=90 width=300 CLASSID=“CLSID: 3fb6ccc7-2af2-11d2-bc63-00aa00a13c86”> </OBJECT> - This also is used to identify where the “docked” location and what its size is in a main HTML document. Once instantiated, the control will create a child window of the browser application's window.
- Next, script in the HTML document may prompt the control to create a sub-window. A sample statement is as follows:
<script language=javascript> mysub = DockCtl.HostControl(“{8856F961-340A-11D0-A9GB- 00C04FD705A2}”, “Caption”, “Name”, true) ; </script> - Here, the control is identified as “DockCtl”. This control is asked to create a sub-window (containable control window) and host the control identified. It also specifies that the sub-window (containable control window) should have a caption of “Caption” and a name of “Name”. Further, it specifies that a new sub-window (container window) should be created and immediately docked in the control's first sub-window (containable control window). In response, the control creates the container window inside the containable control window. Finally, the system instantiates the identified control and initializes it by telling it to draw a control window inside of the newly created container window. Once the control window is created and the identified control is instantiated, an object pointer is returned to the script. This object pointer allows one to reference the instantiated control. In the following lines of script, the object pointer is named “mysub”. Now script can call methods implemented by the hosted control such as Navigate in the case of the WebBrowser control with:
- mysub.Ctl.Navigate(“http://test.htm”);
- This will cause the WebBrowser control (HTML renderer control) to render the specified document inside of the newly created child window. Now the main HTML document can present a user interface (e.g., a button described above) to allow the user to undock the child window. The script action that results from the user indicating that it wants the window to be undocked needs to tell the sub-window object to undock. An example code is as follows:
- mysub.Undock( )
- In a Windows32 implementation of the invention, a
container window C 104 in FIG. 4 is undocked by calling, for example, USER API's to switch the container window from being a child window to being a top-level window. The container window can also be re-docked by switching the window back to being a child window of the containablecontrol window B 103. - Through using the nesting scheme described in FIG. 4, a number of advantages are provided. First, the control can create any number of sub-windows; with only one being docked at a time. This may be used for implementing individual instances of tear-off data such a notes or calculation results, etc. as described above. Also, the control may maintain a list of created sub-windows that can be searched by the Name specified in a HostControl list of sub-windows. This allows script in an HTML document to find the object pointer to an earlier created sub-window. This would be useful, if the HTML document only wants one version of a sub-window to exist; if the user undocks a sub-window and then navigates the browser away from the main document and later returns to the same main document, then script in the document could find the original undocked sub-window and force it to dock again, or leave it undocked without creating another sub-window.
- FIGS. 6A and 6B show the objects used in an ActiveX control as an implementation of this invention.
Control object 401 is the main object for the ActiveX control; it provides an interface that is script callable (ITOCntrCtl), which allows containers to be created and located by name. Thecontrol object 401 include the following members: m_pInprocServer 402 (which holds a reference to the container server object 405), m_pDockedCntr 403 (which holds a reference to acontainer automation object 414, if one is docked), and m_hWndCD 404 (a handle to itscontainable control window 417, orB 103 in FIG. 4). Thecontainer server object 405 is responsible for creating and maintaining a list of created container objects. It provides an interface for thecontrol object 401 to create and locate container objects (ITOContainerServer).Container server object container object container automation object 414, so that event notifications can be sent to thecontainer automation object 414 shown in FIG. 6A), m_hwnd 411 (a handle to itscontainer window 418, orC 104 in FIG. 4), andm_pnext 412, 512 (which points to thenext container object 407 listed inlist g_ContainerList 406 shown in FIG. 6A). Eachcontainer object container member m_punk control object control object 413 owns acontrol window 419, orD 105 in FIG. 4, which is a child window of thecontainer window 418. For eachcontainer object 407 exists acontainer automation object 414; it provides the script callable interface (ITOCntr) which allows containers to be docked, to be undocked, to be closed, and to fire events. Themember m_pContainer 415 holds a reference to thecontainer object 407, and, for the most part, it wraps the non-script callable interface (ITOContainer) with it script callable one (ITOCntr). It also has a member m_pSite that holds a reference back to thecontrol object 401, if the container is currently docked. - When docked,
container window 418, which is the container window related tocontainer 408, is considered a child window of thecontrol window 417. When undocked, the container window is considered not a child window of the control window. - As shown in FIG. 6A,
container window 418 is in the docked state, som_pDockedCntr 403 holds a reference to thecontainer automation object 414,m_pSite 416 holds a reference to thecontrol object 401,m_pDockedCntr 403 holds a reference to 414, andcontainer window 418 is a child window of thecontrol window 417. FIG. 6B shows acontainer window 504 in the undocked state. Here, there is no reference to thecontainer automation object 503 from thecontrol object 401,m_pSite 502 does not hold a reference to thecontrol object 401, andcontainer window 504 is considered a top-level window. - FIG. 7 reflects alternative embodiments of the present invention. For example, FIG. 7 includes a global
container server object 405G. This server object contains aglobal container list 406G that includes a list of the container objects and to which local container server object (for example, 405L) is related.Control object 401 may includem_pGlobalServer 422 that holds a reference to the globalcontainer server object 405G. Here,control object 401 may hold references to both an in-process server and an out-of-process server. Each local container server object (for example, 405L) contains a list (ContainerList 406L, for example) of containers created and supported by thelocal server object 405L and as further described with reference to FIG. 6A above. - One automation object may exist for every container object. For example, if one wants to display a stock ticker in an application, the container object would contain the information to be displayed and the container automation object would contain the settings on how to display the subject information. In some cases, it may be desirable to display the stock ticker in two separate applications (for example, in two separate browser windows). As the information to be displayed for the two applications is the same, one container object may be used. As the display settings may be different, two automation objects may be used. For instance, if one instance of the information is to be displayed at a fast rate and the other at a slow rate, two container automation objects414A and 414B may be used. The two container automation objects 414A and 414B include member m_pContainer, 415A, 415B and
member m_psSite - In FIG. 6A, each container object pointed to the next container object in the
list g_ContainerList 406 throughpointer m_pnext 412. In FIG. 7, each container object 407A also points to a nested container object (for example the object supportingcontainer window E 106 as nested incontainer window C 104 of FIG. 4) usingm_psubcont 420. - To implement the parallel containers as shown in FIG. 5, a similar pointer may be used that represents that the next container object is a parallel depth window, not a nested window. Here, this pointer is not shown for simplicity.
- Further, in some instances, a hosted
control object 413 may not always point back to the object or container that referenced it. For example, the hostedcontrol object 413 may require script to determine a self-automation object 421 exists to allow a hosted control to determine information about itself. For instance, the hosted control object may be an application (a browser) in which the application requires additional information on how to function (what methods it can implement, etc.). The self-automation object 421 implements interface ITOSelf that allows script hosted by hostedcontrol object 413 to controlcontainer 407A. To complete the information flow path between hostedcontrol object 413, self-automation object 421, and container object 407A, self-automation object 421 may also include a reference p_cont back to container object 407A through interface ITOContainer. - As discussed above, another implementation of the invention is to add an extension of script callable methods to the IFRAME object, which provides control over an IFRAME element of HTML. While not described in detail, this alternative implementation is considered within the scope of invention and realizable by one of ordinary skill in the art based on the above disclosure.
- The above-described invention may be applied to various applications. The invention may be used to create a new application inside of another application. Here, the new application would operate within the original application yet be separable from it when desired. Also, a collection of sub-applications may be combined to form a general application, for example a general desktop application including user interfaces for email, a data base program, a word processor program, a spreadsheet program, a notebook, and the like. In each application, the various components may be separable from each other as each is represented as an undockable object. For example, a user may create a tool bar containing a variety of user-specific applications. The toolbar may have relevance to a number of different applications. By using the above invention, the toolbar may be instantiated in conjunction with one application, undocked from the first application (which is then closed), then docked to a new application, here preserving any changes made to the toolbar when originally instantiated by the first application.
- Further, the invention allows for greater customization of the desktop user interface as various display information may be provided in an undockable form. For example, a disk defragmentor application would include a separable status bar, which may be placed on a desktop apart from the more inclusive general defragmentor user interface.
- F. Summary
- A docking/undocking invention has been disclosed. The docking and undocking techniques allow a developer to encapsulate content in undockable and dockable elements (including scripts, controls, or related delimiters as an extension to the IFRAME of HTML). Further, it will be apparent to those skilled in the art that application of the present invention is not restricted to HTML as found on the Internet. It is also envisioned that the techniques of the present invention apply to any network using HTTP, including HTTPS-compliant networks, intranets and extranets. It is further envisioned that the techniques of the present invention apply in any text-authoring context where complex scripts require detailed knowledge of databases as well as related pages. For example, embodiments of the present invention contemplate the use of the disclosed undocking/docking system in conjunction with other systems including spreadsheets and other related environments.
- Further, the present invention may also be implemented in a peer-to-peer computing environment or in a multi-user host system with a mainframe or a minicomputer, allowing the porting of data from one application to another. Thus, the computer network, in which the invention is implemented, should be broadly construed to include any client/server computer network from which a client can retrieve a remote document on a server (even if that document is available on the same machine or system).
- In the foregoing specification, the present invention has been described with reference to specific exemplary embodiments thereof. Although the invention has been described in terms of a preferred embodiment, those skilled in the art will recognize that various modifications, embodiments or variations of the invention can be practiced within the spirit and scope of the invention as set forth in the appended claims. All are considered within the sphere, spirit, and scope of the invention. The specification and drawings are, therefore, to be regarded in an illustrated rather than restrictive sense. Accordingly, it is not intended that the invention be limited except as may be necessary in view of the appended claims.
Claims (20)
1. A graphical user interface for undocking content from a window, comprising:
a first display portion representing said window of an open application, said window containing a first content section;
a second display portion comprising a containable control window and a container window including said first content section, said second display portion being displayed in response to a user input requesting separation of said first content section from said window,
wherein said second display portion retains said first content section after said open application has been closed.
2. The user interface according to claim 1 , further comprising:
a third display portion representing a button, wherein said user input is an activation of said button.
3. The user interface according to claim 1 , wherein said first display portion including said window containing said first content section includes at least a second content section.
4. The user interface according to claim 3 , wherein said at least second content section remains in said window after said second display portion is displayed with said first content section.
5. The user interface according to claim 1 , wherein said first content section remains in said window and said second display portion includes a copy of said first content section.
6. The user interface according to claim 1 , wherein said application is a web browser.
7. A method for undocking content from a window in an application, said window displaying a document in HTML, including:
displaying said document in said window, said document being associated with a host address location and said document including at least an HTML delimiter designating undockable content therein;
receiving a user input indicating that said undockable content is to be undocked from said window;
creating a containable control window for said undockable content;
undocking said undockable content of said document from said window into a container window so as to display said undockable content for independent movement and manipulation from said window; and
altering said window.
8. The method according to claim 7 , including the step of:
docking said container window back into said window.
9. The method according to claim 7 , wherein said application is a web browser and said altering step includes navigating said web browser to a new host address location including additional undockable content different from said undockable content.
10. The method according to claim 9 , wherein said altering step includes closing said web browser while maintaining said container window with said additional undockable content.
11. A computer-readable medium having computer-executable instructions for performing steps for undocking content from a window in an application, said window
displaying a document in HTML, said steps comprising: displaying said content in said window;
receiving a user input indicating that said content is to be undocked from said window;
undocking said content from said window into a container window; and
altering said window.
12. The computer-readable medium method according to claim 11 , including the step of:
docking said container window into a different instance of said application.
13. A system of computer executable modules for undocking content from a display window in a graphical environment, the system comprising:
a control object module configurable to undocked content from a display window and to create a container window for independent movement and user interaction within said graphical environment different from said display window;
a rendering control module configurable to receive and display said undocked content in said container window; and
an automation object module configurable to interact with said undocked content responsive to said control object module.
14. The system of claim 13 , wherein said automation object module includes a plurality of settings for displaying said undocked content in container window.
15. The system of claim 13 , wherein said undockable content is selected from a group comprising computer readable images, text, and sounds.
16. The system of claim 13 , wherein said control object module is configured to dock a previously undocked content into said display window.
17. A computer-readable medium having computer-executable instructions for undocking content from a window in an application, said window displaying a document in HTML, the steps comprising:
displaying said document in said window, said document being associated with a host address location and said document including at least an HTML delimiter designating undockable content therein;
receiving a user input indicating that said undockable content is to be undocked from said window;
creating a containable window for said undockable content;
undocking said undockable content of said document from said window into a sub-window so as to display said undockable content for independent movement and manipulation from said window; and
altering said window.
18. The computer-readable medium method according to claim 17 , wherein said application is a web browser and said altering step includes navigating said web browser to a new host address location including additional undockable content different from said undockable content.
19. The computer-readable medium method according to claim 18 , wherein said altering step includes closing said web browser while maintaining said container window with said additional undockable content.
20. The computer-readable medium method according to claim 18 , including the step of:
docking said container window back into said window.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/878,543 US20040237049A1 (en) | 1999-04-30 | 2004-06-29 | Undockable sub-windows |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/302,476 US6765592B1 (en) | 1999-04-30 | 1999-04-30 | Undockable sub-windows |
US10/878,543 US20040237049A1 (en) | 1999-04-30 | 2004-06-29 | Undockable sub-windows |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/302,476 Continuation US6765592B1 (en) | 1999-04-30 | 1999-04-30 | Undockable sub-windows |
Publications (1)
Publication Number | Publication Date |
---|---|
US20040237049A1 true US20040237049A1 (en) | 2004-11-25 |
Family
ID=32680674
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/302,476 Expired - Lifetime US6765592B1 (en) | 1999-04-30 | 1999-04-30 | Undockable sub-windows |
US10/878,543 Abandoned US20040237049A1 (en) | 1999-04-30 | 2004-06-29 | Undockable sub-windows |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/302,476 Expired - Lifetime US6765592B1 (en) | 1999-04-30 | 1999-04-30 | Undockable sub-windows |
Country Status (1)
Country | Link |
---|---|
US (2) | US6765592B1 (en) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030210274A1 (en) * | 2002-05-07 | 2003-11-13 | Corel Corporation | Dockable drop-down dialogs |
US7142196B1 (en) * | 1999-10-12 | 2006-11-28 | Autodesk, Inc. | Geographical data markup on a personal digital assistant (PDA) |
US20060277499A1 (en) * | 2005-06-07 | 2006-12-07 | Britt Clinton D | Enhanced speed interface method and system |
US20070055386A1 (en) * | 2004-11-03 | 2007-03-08 | Rockwell Automation Technologies, Inc. | Abstracted display building method and system |
US20080059433A1 (en) * | 2006-08-30 | 2008-03-06 | Econiq Ltd. | System and method for communicating between graphical user interfaces |
US20080077936A1 (en) * | 2006-09-22 | 2008-03-27 | Amit Goel | Method and apparatus for automatically launching an application from a browser |
US20080235618A1 (en) * | 2007-03-23 | 2008-09-25 | Siarhei Sadouski | System and method for dialog position management |
US7439969B2 (en) | 2000-03-29 | 2008-10-21 | Autodesk, Inc. | Single gesture map navigation graphical user interface for a thin client |
US8245154B2 (en) | 2006-11-03 | 2012-08-14 | International Business Machines Corporation | Most-recently-used task switching among parent and child windows |
US20120304200A1 (en) * | 2011-05-27 | 2012-11-29 | Oliver Daniel J | Application Activation Framework |
US8508532B1 (en) * | 2011-08-24 | 2013-08-13 | Google Inc. | Positioning of display elements |
CN103294767A (en) * | 2013-04-22 | 2013-09-11 | 腾讯科技(深圳)有限公司 | Multimedia information display method and device for browser |
US20140195952A1 (en) * | 2013-01-10 | 2014-07-10 | Tyco Safety Products Canada Ltd. | Security system and method with modular display of information |
US9015603B1 (en) | 2003-12-29 | 2015-04-21 | Google Inc. | Secondary selection highlighting of e-mail item listing |
US20150160846A1 (en) * | 2009-03-31 | 2015-06-11 | Iii Holdings 1, Llc | Providing dynamic widgets in a browser |
US20150199085A1 (en) * | 2014-01-13 | 2015-07-16 | Microsoft Corporation | Resuming Items in their Last-Used Presentation Modes |
US20160110477A1 (en) * | 2014-10-16 | 2016-04-21 | Oracle International Corporation | Managing multiple records in a workgroup through secondary navigation buttons |
US20180284956A1 (en) * | 2017-04-03 | 2018-10-04 | Sap Se | Fragmentation and messaging across web applications |
US10140198B1 (en) | 2012-10-30 | 2018-11-27 | Google Llc | Networked desktop environment |
US11886678B2 (en) * | 2021-03-30 | 2024-01-30 | Salesforce, Inc. | Multiple windows for a group-based communication system |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256356B2 (en) * | 2001-03-29 | 2016-02-09 | International Business Machines Corporation | Method and system for providing feedback for docking a content pane in a host window |
US20060200779A1 (en) * | 2001-04-30 | 2006-09-07 | Taylor Steve D | Cell based end user interface having action cells |
US7165228B2 (en) * | 2001-04-30 | 2007-01-16 | Broadband Graphics, Llc | Cell based end user interface |
CN1662952B (en) * | 2002-04-25 | 2011-04-20 | 汤姆森许可公司 | Video resolution control for a web browser and video display |
US20080040675A1 (en) * | 2002-04-30 | 2008-02-14 | Aol Llc | Instant messaging interface having a tear-off element |
US7421661B1 (en) | 2002-04-30 | 2008-09-02 | Aol Llc | Instant messaging interface having an informational tool tip |
US20040030697A1 (en) * | 2002-07-31 | 2004-02-12 | American Management Systems, Inc. | System and method for online feedback |
US7681112B1 (en) | 2003-05-30 | 2010-03-16 | Adobe Systems Incorporated | Embedded reuse meta information |
US20050050301A1 (en) * | 2003-08-29 | 2005-03-03 | Yahoo!, Inc. | Extensible user interface |
US7506260B2 (en) * | 2003-10-31 | 2009-03-17 | Yahoo! Inc. | Method and system of providing browser functionality through a browser button |
US7490295B2 (en) | 2004-06-25 | 2009-02-10 | Apple Inc. | Layer for accessing user interface elements |
US7761800B2 (en) | 2004-06-25 | 2010-07-20 | Apple Inc. | Unified interest layer for user interface |
US8453065B2 (en) | 2004-06-25 | 2013-05-28 | Apple Inc. | Preview and installation of user interface elements in a display environment |
US8302020B2 (en) | 2004-06-25 | 2012-10-30 | Apple Inc. | Widget authoring and editing environment |
US8566732B2 (en) | 2004-06-25 | 2013-10-22 | Apple Inc. | Synchronization of widgets and dashboards |
US7546543B2 (en) * | 2004-06-25 | 2009-06-09 | Apple Inc. | Widget authoring and editing environment |
US8239749B2 (en) | 2004-06-25 | 2012-08-07 | Apple Inc. | Procedurally expressing graphic objects for web pages |
US8046712B2 (en) | 2004-06-29 | 2011-10-25 | Acd Systems International Inc. | Management of multiple window panels with a graphical user interface |
US8140975B2 (en) | 2005-01-07 | 2012-03-20 | Apple Inc. | Slide show navigation |
US8543931B2 (en) | 2005-06-07 | 2013-09-24 | Apple Inc. | Preview including theme based installation of user interface elements in a display environment |
US9268867B2 (en) * | 2005-08-03 | 2016-02-23 | Aol Inc. | Enhanced favorites service for web browsers and web applications |
US8543824B2 (en) | 2005-10-27 | 2013-09-24 | Apple Inc. | Safe distribution and use of content |
US7954064B2 (en) | 2005-10-27 | 2011-05-31 | Apple Inc. | Multiple dashboards |
US9104294B2 (en) | 2005-10-27 | 2015-08-11 | Apple Inc. | Linked widgets |
US7752556B2 (en) | 2005-10-27 | 2010-07-06 | Apple Inc. | Workflow widgets |
US7743336B2 (en) | 2005-10-27 | 2010-06-22 | Apple Inc. | Widget security |
US7707514B2 (en) | 2005-11-18 | 2010-04-27 | Apple Inc. | Management of user interface elements in a display environment |
US7487465B2 (en) * | 2006-01-06 | 2009-02-03 | International Business Machines Corporation | Application clippings |
US8155682B2 (en) * | 2006-05-05 | 2012-04-10 | Research In Motion Limited | Handheld electronic device including automatic mobile phone number management, and associated method |
US8869027B2 (en) | 2006-08-04 | 2014-10-21 | Apple Inc. | Management and generation of dashboards |
US20080120570A1 (en) * | 2006-11-22 | 2008-05-22 | Bluetie, Inc. | Methods for managing windows within an internet environment and systems thereof |
US8954871B2 (en) | 2007-07-18 | 2015-02-10 | Apple Inc. | User-centric widgets and dashboards |
US8667415B2 (en) | 2007-08-06 | 2014-03-04 | Apple Inc. | Web widgets |
US8156467B2 (en) | 2007-08-27 | 2012-04-10 | Adobe Systems Incorporated | Reusing components in a running application |
US8176466B2 (en) | 2007-10-01 | 2012-05-08 | Adobe Systems Incorporated | System and method for generating an application fragment |
US7925988B2 (en) * | 2007-11-13 | 2011-04-12 | International Business Machines Corporation | System and method for providing sticky applications |
US9619304B2 (en) | 2008-02-05 | 2017-04-11 | Adobe Systems Incorporated | Automatic connections between application components |
US8656293B1 (en) | 2008-07-29 | 2014-02-18 | Adobe Systems Incorporated | Configuring mobile devices |
US8286199B1 (en) * | 2008-08-22 | 2012-10-09 | SmartVault Corporation | Automated method for creating a graphical user interface for a document management system that is visually integrated with an application having limited native GUI-integration capabilities |
US9354899B2 (en) | 2011-04-18 | 2016-05-31 | Google Inc. | Simultaneous display of multiple applications using panels |
US10761673B2 (en) * | 2013-03-12 | 2020-09-01 | Oracle International Corporation | Managing display of detachable windows in a GUI computing environment |
US9619115B2 (en) * | 2013-03-15 | 2017-04-11 | Tableau Software Inc. | Visualization of multiple objects on a dashboard |
US10444846B2 (en) * | 2013-07-31 | 2019-10-15 | Google Llc | Adjustable video player |
KR101730315B1 (en) * | 2015-11-05 | 2017-04-27 | 엘지전자 주식회사 | Electronic device and method for image sharing |
US10409440B2 (en) * | 2016-10-14 | 2019-09-10 | Sap Se | Flexible-page layout |
Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4931783A (en) * | 1988-07-26 | 1990-06-05 | Apple Computer, Inc. | Method and apparatus for removable menu window |
US5596700A (en) * | 1993-02-17 | 1997-01-21 | International Business Machines Corporation | System for annotating software windows |
US5627960A (en) * | 1994-05-13 | 1997-05-06 | Apple Computer, Inc. | Unified hierarchical and tear off menus in a graphical event-driven computer system |
US5808610A (en) * | 1996-08-28 | 1998-09-15 | Macromedia, Inc. | Method and system of docking panels |
US5819055A (en) * | 1994-12-13 | 1998-10-06 | Microsoft Corporation | Method and apparatus for docking re-sizeable interface boxes |
US5821931A (en) * | 1994-01-27 | 1998-10-13 | Minnesota Mining And Manufacturing Company | Attachment and control of software notes |
US5870091A (en) * | 1996-11-07 | 1999-02-09 | Adobe Systems Incorporated | Combining palettes on a computer display |
US5883626A (en) * | 1997-03-31 | 1999-03-16 | International Business Machines Corporation | Docking and floating menu/tool bar |
US5933140A (en) * | 1997-06-30 | 1999-08-03 | Sun Microsystems, Inc. | Child window containing context-based help and a miniaturized web page |
US6232971B1 (en) * | 1998-09-23 | 2001-05-15 | International Business Machines Corporation | Variable modality child windows |
US6313854B1 (en) * | 1998-10-16 | 2001-11-06 | International Business Machines Corporation | Display mechanism for HTML frames |
US6401134B1 (en) * | 1997-07-25 | 2002-06-04 | Sun Microsystems, Inc. | Detachable java applets |
US6711739B1 (en) * | 1999-11-08 | 2004-03-23 | Sun Microsystems, Inc. | System and method for handling threads of execution |
US20040095397A1 (en) * | 2001-03-29 | 2004-05-20 | Nojima Kathleen Miyoko | Method and system for providing feedback for docking a content pane in a host window |
US6766349B1 (en) * | 1999-09-24 | 2004-07-20 | Sun Microsystems, Inc. | Mechanism for obtaining a thread from, and returning a thread to, a thread pool without attaching and detaching |
US20050091382A1 (en) * | 2002-02-15 | 2005-04-28 | Adams Michael C. | Application window closure in response to event in parent window |
US20050223081A1 (en) * | 2004-04-05 | 2005-10-06 | Mcmahan Paul F | Portal including detachable and reattachable portlets |
US20060036969A1 (en) * | 2004-08-13 | 2006-02-16 | International Business Machines Corporation | Detachable and reattachable portal pages |
US20060070002A1 (en) * | 2004-09-30 | 2006-03-30 | International Business Machines Corporation | Method and system to control operation of a portlet |
US7089278B1 (en) * | 1999-09-07 | 2006-08-08 | Fuji Xerox Co., Ltd. | Anchored conversations: adhesive, in-context, virtual discussion forums |
US7127685B2 (en) * | 2002-04-30 | 2006-10-24 | America Online, Inc. | Instant messaging interface having a tear-off element |
US7181698B2 (en) * | 2002-12-16 | 2007-02-20 | Sap Ag | Detachable tabs presenting accessed objects in a multi-tab interface |
US20070044029A1 (en) * | 2005-08-18 | 2007-02-22 | Microsoft Corporation | Sidebar engine, object model and schema |
US7634742B2 (en) * | 2004-04-07 | 2009-12-15 | Adobe Systems Incorporated | Graphical user interface buttons and toolbars |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5469536A (en) * | 1992-02-25 | 1995-11-21 | Imageware Software, Inc. | Image editing system including masking capability |
EP0820008A3 (en) * | 1992-12-01 | 2006-05-24 | Microsoft Corporation | A method and system for in-place interaction with embedded objects |
US5544300A (en) * | 1993-11-12 | 1996-08-06 | Intel Corporation | User interface for dynamically converting between a single top level window and multiple top level windows |
US6240444B1 (en) * | 1996-09-27 | 2001-05-29 | International Business Machines Corporation | Internet web page sharing |
US5923326A (en) * | 1997-06-13 | 1999-07-13 | International Business Machines Corporation | Edge docking foster window |
-
1999
- 1999-04-30 US US09/302,476 patent/US6765592B1/en not_active Expired - Lifetime
-
2004
- 2004-06-29 US US10/878,543 patent/US20040237049A1/en not_active Abandoned
Patent Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4931783A (en) * | 1988-07-26 | 1990-06-05 | Apple Computer, Inc. | Method and apparatus for removable menu window |
US5596700A (en) * | 1993-02-17 | 1997-01-21 | International Business Machines Corporation | System for annotating software windows |
US5821931A (en) * | 1994-01-27 | 1998-10-13 | Minnesota Mining And Manufacturing Company | Attachment and control of software notes |
US5627960A (en) * | 1994-05-13 | 1997-05-06 | Apple Computer, Inc. | Unified hierarchical and tear off menus in a graphical event-driven computer system |
US5819055A (en) * | 1994-12-13 | 1998-10-06 | Microsoft Corporation | Method and apparatus for docking re-sizeable interface boxes |
US5808610A (en) * | 1996-08-28 | 1998-09-15 | Macromedia, Inc. | Method and system of docking panels |
US5870091A (en) * | 1996-11-07 | 1999-02-09 | Adobe Systems Incorporated | Combining palettes on a computer display |
US5883626A (en) * | 1997-03-31 | 1999-03-16 | International Business Machines Corporation | Docking and floating menu/tool bar |
US5933140A (en) * | 1997-06-30 | 1999-08-03 | Sun Microsystems, Inc. | Child window containing context-based help and a miniaturized web page |
US6401134B1 (en) * | 1997-07-25 | 2002-06-04 | Sun Microsystems, Inc. | Detachable java applets |
US6232971B1 (en) * | 1998-09-23 | 2001-05-15 | International Business Machines Corporation | Variable modality child windows |
US6313854B1 (en) * | 1998-10-16 | 2001-11-06 | International Business Machines Corporation | Display mechanism for HTML frames |
US7089278B1 (en) * | 1999-09-07 | 2006-08-08 | Fuji Xerox Co., Ltd. | Anchored conversations: adhesive, in-context, virtual discussion forums |
US6766349B1 (en) * | 1999-09-24 | 2004-07-20 | Sun Microsystems, Inc. | Mechanism for obtaining a thread from, and returning a thread to, a thread pool without attaching and detaching |
US6711739B1 (en) * | 1999-11-08 | 2004-03-23 | Sun Microsystems, Inc. | System and method for handling threads of execution |
US6771292B2 (en) * | 2001-03-29 | 2004-08-03 | International Business Machines Corporation | Method and system for providing feedback concerning a content pane to be docked in a host window |
US20040095397A1 (en) * | 2001-03-29 | 2004-05-20 | Nojima Kathleen Miyoko | Method and system for providing feedback for docking a content pane in a host window |
US20050091382A1 (en) * | 2002-02-15 | 2005-04-28 | Adams Michael C. | Application window closure in response to event in parent window |
US7127685B2 (en) * | 2002-04-30 | 2006-10-24 | America Online, Inc. | Instant messaging interface having a tear-off element |
US7181698B2 (en) * | 2002-12-16 | 2007-02-20 | Sap Ag | Detachable tabs presenting accessed objects in a multi-tab interface |
US20050223081A1 (en) * | 2004-04-05 | 2005-10-06 | Mcmahan Paul F | Portal including detachable and reattachable portlets |
US7634742B2 (en) * | 2004-04-07 | 2009-12-15 | Adobe Systems Incorporated | Graphical user interface buttons and toolbars |
US20060036969A1 (en) * | 2004-08-13 | 2006-02-16 | International Business Machines Corporation | Detachable and reattachable portal pages |
US20060070002A1 (en) * | 2004-09-30 | 2006-03-30 | International Business Machines Corporation | Method and system to control operation of a portlet |
US20070044029A1 (en) * | 2005-08-18 | 2007-02-22 | Microsoft Corporation | Sidebar engine, object model and schema |
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7142196B1 (en) * | 1999-10-12 | 2006-11-28 | Autodesk, Inc. | Geographical data markup on a personal digital assistant (PDA) |
US7439969B2 (en) | 2000-03-29 | 2008-10-21 | Autodesk, Inc. | Single gesture map navigation graphical user interface for a thin client |
US20030210274A1 (en) * | 2002-05-07 | 2003-11-13 | Corel Corporation | Dockable drop-down dialogs |
US8397176B2 (en) * | 2002-05-07 | 2013-03-12 | Corel Corporation | Dockable drop-down dialogs |
US9015603B1 (en) | 2003-12-29 | 2015-04-21 | Google Inc. | Secondary selection highlighting of e-mail item listing |
US20070055386A1 (en) * | 2004-11-03 | 2007-03-08 | Rockwell Automation Technologies, Inc. | Abstracted display building method and system |
US20100146418A1 (en) * | 2004-11-03 | 2010-06-10 | Rockwell Automation Technologies, Inc. | Abstracted display building method and system |
US9740194B2 (en) | 2004-11-03 | 2017-08-22 | Rockwell Automation Technologies, Inc. | Abstracted display building method and system |
US20060277499A1 (en) * | 2005-06-07 | 2006-12-07 | Britt Clinton D | Enhanced speed interface method and system |
US8918733B2 (en) * | 2005-06-07 | 2014-12-23 | Rockwell Automation Technologies, Inc. | Interface method and system for enhanced data and memory management |
US20080059433A1 (en) * | 2006-08-30 | 2008-03-06 | Econiq Ltd. | System and method for communicating between graphical user interfaces |
US20080077936A1 (en) * | 2006-09-22 | 2008-03-27 | Amit Goel | Method and apparatus for automatically launching an application from a browser |
US8245154B2 (en) | 2006-11-03 | 2012-08-14 | International Business Machines Corporation | Most-recently-used task switching among parent and child windows |
US9032329B2 (en) * | 2007-03-23 | 2015-05-12 | Siemens Product Lifecycle Management Software Inc. | System and method for dialog position management |
US20080235618A1 (en) * | 2007-03-23 | 2008-09-25 | Siarhei Sadouski | System and method for dialog position management |
US20150160846A1 (en) * | 2009-03-31 | 2015-06-11 | Iii Holdings 1, Llc | Providing dynamic widgets in a browser |
US10073605B2 (en) * | 2009-03-31 | 2018-09-11 | Iii Holdings 1, Llc | Providing dynamic widgets in a browser |
KR101819266B1 (en) | 2011-05-27 | 2018-02-28 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Application activation framework |
US20120304200A1 (en) * | 2011-05-27 | 2012-11-29 | Oliver Daniel J | Application Activation Framework |
US9063776B2 (en) * | 2011-05-27 | 2015-06-23 | Microsoft Technology Licensing, Llc | Application activation framework |
US20150286499A1 (en) * | 2011-05-27 | 2015-10-08 | Microsoft Technology Licensing, Llc | Application Activation Framework |
US9519511B2 (en) * | 2011-05-27 | 2016-12-13 | Microsoft Technology Licensing, Llc | Application activation framework |
KR101907837B1 (en) | 2011-05-27 | 2018-10-12 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Application activation framework |
US8508532B1 (en) * | 2011-08-24 | 2013-08-13 | Google Inc. | Positioning of display elements |
US10140198B1 (en) | 2012-10-30 | 2018-11-27 | Google Llc | Networked desktop environment |
US10958878B2 (en) | 2013-01-10 | 2021-03-23 | Tyco Safety Products Canada Ltd. | Security system and method with help and login for customization |
US9615065B2 (en) | 2013-01-10 | 2017-04-04 | Tyco Safety Products Canada Ltd. | Security system and method with help and login for customization |
US9967524B2 (en) | 2013-01-10 | 2018-05-08 | Tyco Safety Products Canada Ltd. | Security system and method with scrolling feeds watchlist |
US20140195952A1 (en) * | 2013-01-10 | 2014-07-10 | Tyco Safety Products Canada Ltd. | Security system and method with modular display of information |
US10419725B2 (en) * | 2013-01-10 | 2019-09-17 | Tyco Safety Products Canada Ltd. | Security system and method with modular display of information |
CN103294767A (en) * | 2013-04-22 | 2013-09-11 | 腾讯科技(深圳)有限公司 | Multimedia information display method and device for browser |
US10642827B2 (en) | 2014-01-13 | 2020-05-05 | Microsoft Technology Licensing, Llc | Presenting items in particular presentation modes |
US9910884B2 (en) * | 2014-01-13 | 2018-03-06 | Microsoft Technology Licensing, Llc | Resuming items in their last-used presentation modes |
US20150199085A1 (en) * | 2014-01-13 | 2015-07-16 | Microsoft Corporation | Resuming Items in their Last-Used Presentation Modes |
US20160110477A1 (en) * | 2014-10-16 | 2016-04-21 | Oracle International Corporation | Managing multiple records in a workgroup through secondary navigation buttons |
US20180284956A1 (en) * | 2017-04-03 | 2018-10-04 | Sap Se | Fragmentation and messaging across web applications |
US11886678B2 (en) * | 2021-03-30 | 2024-01-30 | Salesforce, Inc. | Multiple windows for a group-based communication system |
Also Published As
Publication number | Publication date |
---|---|
US6765592B1 (en) | 2004-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6765592B1 (en) | Undockable sub-windows | |
US7216300B2 (en) | Method and apparatus for an applet to display multiple windows | |
US6278448B1 (en) | Composite Web page built from any web content | |
US7469302B2 (en) | System and method for ensuring consistent web display by multiple independent client programs with a server that is not persistently connected to client computer systems | |
US7325204B2 (en) | Slideout windows | |
US7395500B2 (en) | Space-optimizing content display | |
KR100953806B1 (en) | System and method for making user interface elements known to an application and user | |
US6313854B1 (en) | Display mechanism for HTML frames | |
US6101510A (en) | Web browser control for incorporating web browser functionality into application programs | |
US6493733B1 (en) | Method for inserting interactive HTML objects into an electronic file | |
EP1292875B1 (en) | Single window navigation methods and systems | |
US6978445B2 (en) | Method and system for supporting user navigation in a browser environment | |
US6021418A (en) | Apparatus and method for displaying control-objects | |
US5737560A (en) | Graphical method and system for accessing information on a communications network | |
US6446096B1 (en) | Method and system for providing device-specific key control using role-based HTML element tags | |
US6144377A (en) | Providing access to user interface elements of legacy application programs | |
US8365203B2 (en) | Method for creating a native application for mobile communications device in real-time | |
US20050050301A1 (en) | Extensible user interface | |
US20020023110A1 (en) | Document markup language and system and method for generating and displaying documents therein | |
US20060265662A1 (en) | System and method for generating and updating user interfaces of web-based applications | |
US20060031778A1 (en) | Computing platform for loading resources both synchronously and asynchronously | |
US20030081003A1 (en) | System and method to facilitate analysis and removal of errors from an application | |
US20090132956A1 (en) | Tree widget data population | |
US20040216056A1 (en) | System and method for supporting scrolling of contents in a display | |
WO2003005184A2 (en) | Web windowed graphical user interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034766/0001 Effective date: 20141014 |