From: <mie...@us...> - 2009-02-10 15:55:36
|
Revision: 4119 http://oorexx.svn.sourceforge.net/oorexx/?rev=4119&view=rev Author: miesfeld Date: 2009-02-10 15:55:30 +0000 (Tue, 10 Feb 2009) Log Message: ----------- Break the Windows extensions book up into chapters Added Paths: ----------- docs/trunk/winextensions/clipboard.sgml docs/trunk/winextensions/menuobj.sgml docs/trunk/winextensions/windowmanager.sgml docs/trunk/winextensions/windowobj.sgml docs/trunk/winextensions/wineventlog.sgml docs/trunk/winextensions/winole.sgml docs/trunk/winextensions/winprogmanager.sgml docs/trunk/winextensions/winregistry.sgml Added: docs/trunk/winextensions/clipboard.sgml =================================================================== --- docs/trunk/winextensions/clipboard.sgml (rev 0) +++ docs/trunk/winextensions/clipboard.sgml 2009-02-10 15:55:30 UTC (rev 4119) @@ -0,0 +1,148 @@ +<!--######################################################################### + # + # Description: Open Object Rexx: Reference SGML file. + # + # Copyright (c) 2005-2007, Rexx Language Association. All rights reserved. + # Portions Copyright (c) 2004, IBM Corporation. All rights reserved. + # + # This program and the accompanying materials are made available under + # the terms of the Common Public License v1.0 which accompanies this + # distribution. A copy is also available at the following address: + # http://www.oorexx.org/license.html + # + # Redistribution and use in source and binary forms, with or + # without modification, are permitted provided that the following + # conditions are met: + # + # Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in + # the documentation and/or other materials provided with the distribution. + # + # Neither the name of Rexx Language Association nor the names + # of its contributors may be used to endorse or promote products + # derived from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + # OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + # OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + # + # Author(s): + # W. David Ashley <da...@us...> + # + ######################################################################### +--> + +<chapter id="clsWinClipboard"><title>The WindowsClipboard Class</title> +<indexterm><primary>WindowsClipboard class</primary></indexterm> +<indexterm><primary>class</primary> +<secondary>WindowsClipboard class</secondary></indexterm> +<para>The WindowsClipboard class provides methods to access the data in the +Windows clipboard.</para> +<para>The WindowsClipboard class is not a built-in class. It is defined +in the WINSYSTM.CLS file. This means, you must use a +::requires statement to activate its functionality, as follows:</para> +<programlisting> +<![CDATA[ +::requires "WINSYSTM.CLS" +]]> +</programlisting> +<para><emphasis role="bold">Methods the WindowsClipboard Class Defines</emphasis> +</para> +<itemizedlist> +<listitem><para>copy</para></listitem> +<listitem><para>makeArray</para></listitem> +<listitem><para>paste</para></listitem> +<listitem><para>empty</para></listitem> +<listitem><para>isDataAvailable</para></listitem></itemizedlist> + +<section id="copywc"><title>copy</title> +<indexterm><primary>copy method</primary> +<secondary>of WindowsClipboard class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>copy method</secondary> +<tertiary>of WindowsClipboard class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-copy--(--text--)-------------------------------------------->< +]]> +</programlisting> + +<para>Empties the clipboard and copies the specified text to it.</para> +</section> + +<section id="mkarwc"><title>makeArray</title> +<indexterm><primary>makeArray method</primary> +<secondary>of WindowsClipboard class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>makeArray method</secondary> +<tertiary>of WindowsClipboard class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-makeArray--------------------------------------------------->< +]]> +</programlisting> + +<para>If the content of the clipboard is a string with newline characters +in it, makeArray can be used to split up the string into individual +lines. An array is returned containing those lines.</para> +</section> + +<section id="pastewc"><title>paste</title> +<indexterm><primary>paste method</primary> +<secondary>of WindowsClipboard class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>paste method</secondary> +<tertiary>of WindowsClipboard class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-paste------------------------------------------------------->< +]]> +</programlisting> + +<para>Retrieves the text data stored on the clipboard.</para> +</section> + +<section id="emptywc"><title>empty</title> +<indexterm><primary>empty method</primary> +<secondary>of WindowsClipboard class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>empty method</secondary> +<tertiary>of WindowsClipboard class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-empty------------------------------------------------------->< +]]> +</programlisting> + +<para>Empties the clipboard.</para> +</section> + +<section id="isdataavailablewc"><title>isDataAvailable</title> +<indexterm><primary>isDataAvailable method</primary> +<secondary>of WindowsClipboard class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>isDataAvailable method</secondary> +<tertiary>of WindowsClipboard class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-isDataAvailable--------------------------------------------->< +]]> +</programlisting> + +<para>Returns 1 if the text data is available on the clipboard. If no data is +available, 0 is returned.</para> +</section> + +</chapter> + + Property changes on: docs/trunk/winextensions/clipboard.sgml ___________________________________________________________________ Added: svn:eol-style + native Added: docs/trunk/winextensions/menuobj.sgml =================================================================== --- docs/trunk/winextensions/menuobj.sgml (rev 0) +++ docs/trunk/winextensions/menuobj.sgml 2009-02-10 15:55:30 UTC (rev 4119) @@ -0,0 +1,299 @@ +<!--######################################################################### + # + # Description: Open Object Rexx: Reference SGML file. + # + # Copyright (c) 2005-2007, Rexx Language Association. All rights reserved. + # Portions Copyright (c) 2004, IBM Corporation. All rights reserved. + # + # This program and the accompanying materials are made available under + # the terms of the Common Public License v1.0 which accompanies this + # distribution. A copy is also available at the following address: + # http://www.oorexx.org/license.html + # + # Redistribution and use in source and binary forms, with or + # without modification, are permitted provided that the following + # conditions are met: + # + # Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in + # the documentation and/or other materials provided with the distribution. + # + # Neither the name of Rexx Language Association nor the names + # of its contributors may be used to endorse or promote products + # derived from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + # OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + # OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + # + # Author(s): + # W. David Ashley <da...@us...> + # + ######################################################################### +--> + +<section id="clsWinMenuObject"><title>The Windows MenuObject Class</title> +<indexterm><primary>MenuObject class</primary></indexterm> +<indexterm><primary>class</primary> +<secondary>MenuObject class</secondary></indexterm> +<para>The MenuObject class provides methods to query, manipulate, and interact +with the menu or submenu of a window.</para> +<para>Access to MenuObjects requires that the following directive +appear in the Rexx program.</para> +<programlisting> +::requires 'winsystm.cls' +</programlisting> +<para><emphasis role="bold">Methods the MenuObject Class Defines</emphasis> +</para> +<itemizedlist> +<listitem><para>findItem</para></listitem> +<listitem><para>findSubmenu</para></listitem> +<listitem><para>idOf</para></listitem> +<listitem><para>ischecked</para></listitem> +<listitem><para>isMenu</para></listitem> +<listitem><para>isSubMenu</para></listitem> +<listitem><para>isSeparator</para></listitem> +<listitem><para>items</para></listitem> +<listitem><para>processItem</para></listitem> +<listitem><para>submenu</para></listitem> +<listitem><para>textOf(id)</para></listitem> +<listitem><para>textOf(position)</para></listitem></itemizedlist> + +<section id="ismenumo"><title>isMenu</title> +<indexterm><primary>isMenu method</primary> +<secondary>of MenuObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>isMenu method</secondary> +<tertiary>of MenuObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-isMenu------------------------------------------------------>< +]]> +</programlisting> + +<para>Returns 1 if the associated window is a menu, otherwise 0.</para> +</section> + +<section id="issubmenumo"><title>isSubMenu</title> +<indexterm><primary>isSubMenu method</primary> +<secondary>of MenuObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>isSubMenu method</secondary> +<tertiary>of MenuObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-isSubMenu(--position--)------------------------------------->< +]]> +</programlisting> + +<para> + Returns <computeroutput>.true</computeroutput> if the menu item at the position specified is a submenu + of this menu, otherwise <computeroutput>.false</computeroutput>. Menu items are zero-based, so the + first menu item is at position 0. +</para> +</section> + +<section id="ischeckedmo"><title>isChecked</title> +<indexterm><primary>isChecked method</primary> +<secondary>of MenuObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>isChecked method</secondary> +<tertiary>of MenuObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-isChecked(--position--)------------------------------------->< +]]> +</programlisting> + +<para> + Returns <computeroutput>.true</computeroutput> if the menu item at the position specified is checked, + otherwise <computeroutput>.false</computeroutput>. Menu items are zero-based, so the first menu item is + at position 0. Submenus and separators can be be checked. +</para> +<para> + This method can not be 100% reliable. Some applications do not set the check mark for a menu item until + the menu is displayed. To be confident of the result, the programmer should first test how a specific + application behaves. +</para> +</section> + +<section id="isseparatormo"><title>isSeparator</title> +<indexterm><primary>isSeparator method</primary> +<secondary>of MenuObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>isSeparator method</secondary> +<tertiary>of MenuObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-isSeparator(--position--)----------------------------------->< +]]> +</programlisting> + +<para> + Returns <computeroutput>.true</computeroutput> if the menu item at the position specified is a + separator line,, otherwise <computeroutput>.false</computeroutput>. Menu items are zero-based, so the + first menu item is at position 0. +</para> +</section> + +<section id="itemsmo"><title>items</title> +<indexterm><primary>items method</primary> +<secondary>of MenuObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>items method</secondary> +<tertiary>of MenuObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-items------------------------------------------------------->< +]]> +</programlisting> + +<para>Returns the number of menu items contained in the associated menu.</para> +</section> + +<section id="idofmo"><title>idOf</title> +<indexterm><primary>idOf method</primary> +<secondary>of MenuObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>idOf method</secondary> +<tertiary>of MenuObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-idOf--(--position--)---------------------------------------->< +]]> +</programlisting> + +<para>Returns the ID of the menu item at the specified +<emphasis role="italic">position</emphasis>, starting with 0.</para> +</section> + +<section id="textofpositionmo"><title>textOf(position)</title> +<indexterm><primary>textOf(position) method</primary> +<secondary>of MenuObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>textOf(position) method</secondary> +<tertiary>of MenuObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-textOf--(--position--)-------------------------------------->< +]]> +</programlisting> + +<para>Returns the text of the menu item at the specified +<emphasis role="italic">position</emphasis>, starting +with 0. A mnemonic (underscored letter) is represented by a leading ampersand +(&). If the menu item contains an accelerator, it is separated by a tab. +</para> +</section> + +<section id="textofidmo"><title>textOf(id)</title> +<indexterm><primary>textOf(id) method</primary> +<secondary>of MenuObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>textOf(id) method</secondary> +<tertiary>of MenuObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-textOf--(--id--)-------------------------------------------->< +]]> +</programlisting> + +<para>Returns the text of menu item <emphasis role="italic">id</emphasis>. +A mnemonic is represented by a leading ampersand (&). If the menu item +contains an accelerator, it is separated by a tab.</para> +</section> + +<section id="submenumo"><title>submenu</title> +<indexterm><primary>submenu method</primary> +<secondary>of MenuObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>submenu method</secondary> +<tertiary>of MenuObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-submenu--(--position--)------------------------------------->< +]]> +</programlisting> + +<para>Returns an instance of the MenuObject class that is associated with the +submenu at the specified <emphasis role="italic">position</emphasis>, +starting with 0. If no submenu +exists at this position, the .Nil object is returned.</para> +<para><emphasis role="bold">Example:</emphasis></para> +<programlisting> +sub = menu~submenu(5) + if sub \= .Nil then do + say "Items:" sub~items + end +</programlisting> +</section> + +<section id="findsubmenumo"><title>findSubmenu</title> +<indexterm><primary>findSubmenu method</primary> +<secondary>of MenuObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>findSubmenu method</secondary> +<tertiary>of MenuObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-findSubmenu--(--label--)------------------------------------>< +]]> +</programlisting> + +<para>Returns an instance of the MenuObject class that is associated with the +submenu with the specified <emphasis role="italic">label</emphasis>. +If the associated menu does not +contain such a submenu, the .Nil object is returned.</para> +</section> + +<section id="finditemmo"><title>findItem</title> +<indexterm><primary>findItem method</primary> +<secondary>of MenuObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>findItem method</secondary> +<tertiary>of MenuObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-findItem--(--label--)--------------------------------------->< +]]> +</programlisting> + +<para>Returns the ID of the menu item <emphasis role="italic">label</emphasis>. +If the specified label +does not include an accelerator, the comparison excludes the accelerators +of the menu items. If no menu item is found that matches the specified label, +0 is returned.</para> +<para><emphasis role="bold">Example:</emphasis></para> +<programlisting> +f = menu~findItem("&Tools" || "9"x || "Ctrl+T") + if f \= 0 then menu~processItem(f) +</programlisting> +</section> + +<section id="processitemmo"><title>processItem</title> +<indexterm><primary>processItem method</primary> +<secondary>of MenuObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>processItem method</secondary> +<tertiary>of MenuObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-processItem--(--id--)--------------------------------------->< +]]> +</programlisting> + +<para>Selects the menu item <emphasis role="italic">id</emphasis>. This causes +a WM_COMMAND to be sent to the window owning the menu.</para> +</section> +</chapter> + Property changes on: docs/trunk/winextensions/menuobj.sgml ___________________________________________________________________ Added: svn:eol-style + native Added: docs/trunk/winextensions/windowmanager.sgml =================================================================== --- docs/trunk/winextensions/windowmanager.sgml (rev 0) +++ docs/trunk/winextensions/windowmanager.sgml 2009-02-10 15:55:30 UTC (rev 4119) @@ -0,0 +1,315 @@ +<!--######################################################################### + # + # Description: Open Object Rexx: Reference SGML file. + # + # Copyright (c) 2005-2007, Rexx Language Association. All rights reserved. + # Portions Copyright (c) 2004, IBM Corporation. All rights reserved. + # + # This program and the accompanying materials are made available under + # the terms of the Common Public License v1.0 which accompanies this + # distribution. A copy is also available at the following address: + # http://www.oorexx.org/license.html + # + # Redistribution and use in source and binary forms, with or + # without modification, are permitted provided that the following + # conditions are met: + # + # Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in + # the documentation and/or other materials provided with the distribution. + # + # Neither the name of Rexx Language Association nor the names + # of its contributors may be used to endorse or promote products + # derived from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + # OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + # OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + # + # Author(s): + # W. David Ashley <da...@us...> + # + ######################################################################### +--> + +<chapter id="clsWinManager"><title>The WindowsManager Class</title> +<indexterm><primary>WindowsManager class</primary></indexterm> +<indexterm><primary>class</primary> +<secondary>WindowsManager class</secondary></indexterm> +<para> + The WindowsManager class provides methods to query, manipulate, and interact with windows on your + desktop. This class is specifically for the Windows operating sytsem and is not available on other + operating systems. +</para> +<para>The WindowsManager class is not a built-in class; it is defined in the +file <computeroutput>WINSYSTM.CLS</computeroutput>. Use a +<computeroutput>::requires</computeroutput> statement to activate +its function: </para> +<programlisting> +::requires "winsystm.cls" +</programlisting> +<para><emphasis role="bold">Methods the WindowsManager Class Defines</emphasis> +</para> +<itemizedlist> +<listitem><para>desktopWindow</para></listitem> +<listitem><para>find</para></listitem> +<listitem><para>foregroundWindow</para></listitem> +<listitem><para>windowAtPosition</para></listitem> +<listitem><para>consoleTitle</para></listitem> +<listitem><para>consoleTitle=</para></listitem> +<listitem><para>sendTextToWindow</para></listitem> +<listitem><para>pushButtonInWindow</para></listitem> +<listitem><para>processWindowCommand</para></listitem> +<listitem><para>broadcastSettingChanged</para></listitem></itemizedlist> + +<section id="mthDesktopWindow"><title>desktopWindow</title> +<indexterm><primary>desktopWindow method</primary> +<secondary>of WindowsManager class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>desktopWindow method</secondary> +<tertiary>of WindowsManager class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-desktopWindow----------------------------------------------->< +]]> +</programlisting> + +<para> + Returns an instance of the <link linkend="clsWinObject">WindowObject</link> class that represents + the Desktop window. The Desktop window is the parent of all top-level windows and therefore the + ancestor of every window on the system. If some error happens, + <computeroutput>.nil</computeroutput> is returned. (This is extremely unlikely.) +</para> +</section> + +<section id="findwm"><title>find</title> +<indexterm><primary>find method</primary> +<secondary>of WindowsManager class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>find method</secondary> +<tertiary>of WindowsManager class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-find--(--title--)------------------------------------------->< +]]> +</programlisting> + +<para>Searches for a top-level window (not a child window) on your desktop with +the specified <emphasis role="italic">title</emphasis>.</para> +<para>If this window already exists, an instance of the WindowObject class is +returned. Otherwise, .Nil is returned.</para> +</section> + +<section id="foregroundwindowwm"><title>foregroundWindow</title> +<indexterm><primary>foregroundWindow method</primary> +<secondary>of WindowsManager class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>foregroundWindow method</secondary> +<tertiary>of WindowsManager class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-foregroundWindow-------------------------------------------->< +]]> +</programlisting> + +<para>Returns an instance of the WindowObject class that is associated with the +current foreground window.</para> +</section> + +<section id="windowatpositionwm"><title>windowAtPosition</title> +<indexterm><primary>windowAtPosition method</primary> +<secondary>of WindowsManager class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>windowAtPosition method</secondary> +<tertiary>of WindowsManager class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-windowAtPosition--(--x--,--y--)----------------------------->< +]]> +</programlisting> + +<para>Returns an instance of the WindowObject class that is associated with the +window at the specified position (<emphasis role="italic">x,y</emphasis>). The +coordinates are specified +in screen pixels. This method does not retrieve hidden or disabled windows. +If you are interested in a particular child window, use method +<link linkend="childatpositionwo">childAtPosition</link>.</para> +</section> + +<section id="consoletitlewm"><title>consoleTitle</title> +<indexterm><primary>consoleTitle method</primary> +<secondary>of WindowsManager class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>consoleTitle method</secondary> +<tertiary>of WindowsManager class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-consoleTitle------------------------------------------------>< +]]> +</programlisting> + +<para>Returns the title of the current console.</para> +</section> + +<section id="consoletitlenewwm"><title>consoleTitle=</title> +<indexterm><primary>consoleTitle= method</primary> +<secondary>of WindowsManager class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>consoleTitle= method</secondary> +<tertiary>of WindowsManager class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-consoleTitle=title------------------------------------------>< +]]> +</programlisting> + +<para>Sets the title of the current console.</para> +</section> + +<section id="sendtexttowindowwm"><title>sendTextToWindow</title> +<indexterm><primary>sendTextToWindow method</primary> +<secondary>of WindowsManager class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>sendTextToWindow method</secondary> +<tertiary>of WindowsManager class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-sendTextToWindow--(--title--,--text--)---------------------->< +]]> +</programlisting> + +<para>Sends a case-sensitive <emphasis role="italic">text</emphasis> to the +window with the specified <emphasis role="italic">title.</emphasis>.</para> +</section> + +<section id="pushbuttoninwindowwm"><title>pushButtonInWindow</title> +<indexterm><primary>pushButtonInWindow method</primary> +<secondary>of WindowsManager class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>pushButtonInWindow method</secondary> +<tertiary>of WindowsManager class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-pushButtonInWindow--(--title--,--text--)-------------------->< +]]> +</programlisting> + +<para>Selects the button with label <emphasis role="italic">text</emphasis> +in the window with the specified <emphasis role="italic">title</emphasis>. +If the button's label contains a mnemonic (underscored letter), +you must specify an ampersand (&) in front of it. You can also use this +method to select radio buttons and to check or uncheck check boxes.</para> +<para><emphasis role="bold">Example:</emphasis></para> +<programlisting> +winmgr~pushButtonInWindow("Testwindow","List &Employees") +</programlisting> +</section> + +<section id="processmenucommandwm"><title>processMenuCommand</title> +<indexterm><primary>processMenuCommand method</primary> +<secondary>of WindowsManager class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>processMenuCommand method</secondary> +<tertiary>of WindowsManager class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-processMenuCommand--(--+-------+--,--+-------+--,------------> + +-title-+ +-popup-+ + + +-,-------+ + V | +>----submenu-+--,--menuItem--)--------------------------------->< +]]> +</programlisting> + +<para>Selects an item of the menu or submenu of the specified window +<emphasis role="italic">title</emphasis>. You can specify as many submenus as +necessary to get to the required item.</para> +</section> + +<section id="broadcastsettingchanged"><title>broadcastSettingChanged</title> +<indexterm><primary>broadcastSettingChanged method</primary> +<secondary>of WindowsManager class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>broadcastSettingChanged method</secondary> +<tertiary>of WindowsManager class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-broadcastSettingChanged--+-----------+---------------------->< + +-(timeOut)-+ +]]> +</programlisting> + +<para>Causes the Windows operating system to send a message, (the +WM_SETTINGCHANGE message,) to every top-level window on the Desktop informing +them that a system-wide setting has changed. Well-written applications will +then reload any system settings that they use.</para> +<para>An example of one use for this might be an installer program setting an +environment variable, such as the PATH. Then a call to broadcastSettingChanged +would cause all open applications to update their reference to the environment, +without the necessity of a reboot.</para> +<para>There are two variations of calling this method. When called with no +arguments, the message is broadcast and returns immediately. When called with +the time out parameter, the message is broadcast and does not return until +every window on the Desktop has acknowledged the message, or timed out.</para> +<para>The problem with using a time out and waiting for acknowledgment is that, +if a window is not responding, or several windows are slow to respond, it +may take a very long time to return. The problem with not using a time out +and returning immediately is that the caller will have no way of knowing when +every window has received the message. Generally this is not a problem, but +it is up to the programmer to decide how she wants to use this method.</para> +<para>The time out value is specified in milliseconds. For each window, the +operating system will wait up to the time out for a response before going +on to the next window. Typically a time out value of 5000 (5 seconds) is +used, and this is the default.</para> +<para>The single optional argument is:</para> +<variablelist> +<varlistentry><term><emphasis role="italic">timeOut</emphasis></term> +<listitem><para>The time, in milliseconds, to wait for each window to +acknowledge it received the setting changed message. Specifying 0 or a negative +number will cause the default time out of 5000 to be used. (5000 is a typical +value used by applications.) +</para></listitem></varlistentry> +</variablelist> +<para>Return value:</para> +<variablelist> +<varlistentry><term>0</term> +<listitem><para>The setting changed message was broadcast successfully. If no +time out argument was used, then this is all it means. If a time out value was +used, then all top-level windows have acknowledged receiving the message. +</para></listitem></varlistentry> +<varlistentry><term>-1</term> +<listitem><para>The setting changed message was broadcast, but one or more +windows timed out. This return can only happen when the time out parameter +is used. +</para></listitem></varlistentry> +<varlistentry><term>-x</term> +<listitem><para>A number less than -1 indicates a system error occurred. +This value is the negation of the system error code. I.e., if the return is +-1400, the system error code was 1400. System error codes can be looked up in +the MSDN library or the Windows Platform SDK. Microsoft makes these references +available on the Internet. +</para></listitem></varlistentry> +<varlistentry><term>+x</term> +<listitem><para>A number greater than 0 would be a window result of broadcasting +the setting changed message and would not be an error. It is unlikely that this +would occur. +</para></listitem></varlistentry> +</variablelist> +<para><emphasis role="bold">Example:</emphasis></para> +<programlisting> +ret = winmgr~broadcastSettingChanged(1000) +</programlisting> +</section> +</chapter> + Property changes on: docs/trunk/winextensions/windowmanager.sgml ___________________________________________________________________ Added: svn:eol-style + native Added: docs/trunk/winextensions/windowobj.sgml =================================================================== --- docs/trunk/winextensions/windowobj.sgml (rev 0) +++ docs/trunk/winextensions/windowobj.sgml 2009-02-10 15:55:30 UTC (rev 4119) @@ -0,0 +1,1086 @@ +<!--######################################################################### + # + # Description: Open Object Rexx: Reference SGML file. + # + # Copyright (c) 2005-2007, Rexx Language Association. All rights reserved. + # Portions Copyright (c) 2004, IBM Corporation. All rights reserved. + # + # This program and the accompanying materials are made available under + # the terms of the Common Public License v1.0 which accompanies this + # distribution. A copy is also available at the following address: + # http://www.oorexx.org/license.html + # + # Redistribution and use in source and binary forms, with or + # without modification, are permitted provided that the following + # conditions are met: + # + # Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in + # the documentation and/or other materials provided with the distribution. + # + # Neither the name of Rexx Language Association nor the names + # of its contributors may be used to endorse or promote products + # derived from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + # OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + # OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + # + # Author(s): + # W. David Ashley <da...@us...> + # + ######################################################################### +--> + +<chapter id="clsWinObject"><title>The WindowObject Class</title> +<indexterm><primary>WindowsObject class</primary></indexterm> +<indexterm><primary>class</primary> +<secondary>WindowsObject class</secondary></indexterm> +<para> + The WindowObject class provides methods to query, manipulate, and interact with a particular window or + one of its child windows. +</para> +<para> + Access to WindowObjects requires that the following directive appear in the Rexx program. +</para> +<programlisting> +::requires 'winsystm.cls' +</programlisting> +<para> + <emphasis role="bold">Note.</emphasis> Prior to the release of ooRexx 4.0.0, the WindowsObject class + was implemented using the original external function API. That API required that the external functions + be registered with the interpreter. For the most part this was done transparently to the Rexx + programmer. However, with the WindowsObject class there was one scenario where the registration was not + done and prior documentation provided a work around. +</para> +<para> + Starting with ooRexx 4.0.0, that work around is not needed. There no longer is any need for the + programmer to register external functions at all. Requiring + <computeroutput>winsystm.cls</computeroutput> is all that is needed from ooRexx 4.0.0 and on. Disregard + the previous documentation concerning this. +</para> + +<para><emphasis role="bold">Methods the WindowObject Class Defines</emphasis> +</para> +<itemizedlist> +<listitem><para>assocWindow</para></listitem> +<listitem><para>childAtPosition</para></listitem> +<listitem><para>coordinates</para></listitem> +<listitem><para>disable</para></listitem> +<listitem><para>enable</para></listitem> +<listitem><para>enumerateChildren</para></listitem> +<listitem><para>findChild</para></listitem> +<listitem><para>first</para></listitem> +<listitem><para>firstChild</para></listitem> +<listitem><para>focusItem</para></listitem> +<listitem><para>focusNextItem</para></listitem> +<listitem><para>focusPreviousItem</para></listitem> +<listitem><para>getStyle</para></listitem> +<listitem><para>handle</para></listitem> +<listitem><para>hide</para></listitem> +<listitem><para>id</para></listitem> +<listitem><para>isMenu</para></listitem> +<listitem><para>last</para></listitem> +<listitem><para>maximize</para></listitem> +<listitem><para>menu</para></listitem> +<listitem><para>minimize</para></listitem> +<listitem><para>moveTo</para></listitem> +<listitem><para>next</para></listitem> +<listitem><para>owner</para></listitem> +<listitem><para>previous</para></listitem> +<listitem><para>processMenuCommand</para></listitem> +<listitem><para>pushButton</para></listitem> +<listitem><para>resize</para></listitem> +<listitem><para>restore</para></listitem> +<listitem><para>sendChar</para></listitem> +<listitem><para>sendCommand</para></listitem> +<listitem><para>sendKey</para></listitem> +<listitem><para>sendKeyDown</para></listitem> +<listitem><para>sendKeyUp</para></listitem> +<listitem><para>sendMenuCommand</para></listitem> +<listitem><para>sendMessage</para></listitem> +<listitem><para>sendMouseClick</para></listitem> +<listitem><para>sendSyscommand</para></listitem> +<listitem><para>sendText</para></listitem> +<listitem><para>state</para></listitem> +<listitem><para>systemMenu</para></listitem> +<listitem><para>title</para></listitem> +<listitem><para>title=</para></listitem> +<listitem><para>toForeground</para></listitem> +<listitem><para>wclass</para></listitem></itemizedlist> + +<section id="assocwindowwo"><title>assocWindow</title> +<indexterm><primary>assocWindow method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>assocWindow method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-assocWindow--(--handle--)----------------------------------->< +]]> +</programlisting> + +<para>Assigns a new window <emphasis role="italic">handle</emphasis> to the +WindowObject instance.</para> +</section> + +<section id="handlewo"><title>handle</title> +<indexterm><primary>handle method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>handle method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-handle------------------------------------------------------>< +]]> +</programlisting> + +<para>Returns the handle of the associated window.</para> +</section> + +<section id="titlewo"><title>title</title> +<indexterm><primary>title method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>title method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-title------------------------------------------------------->< +]]> +</programlisting> + +<para>Returns the title of the window.</para> +</section> + +<section id="titlenewwo"><title>title=</title> +<indexterm><primary>title= method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>title= method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-title=newTitle---------------------------------------------->< +]]> +</programlisting> + +<para>Sets a new title for the window.</para> +</section> + +<section id="wclasswo"><title>wclass</title> +<indexterm><primary>wclass method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>wclass method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-wclass------------------------------------------------------>< +]]> +</programlisting> + +<para>Returns the class of the window associated with the WindowObject instance. +</para> +</section> + +<section id="idwo"><title>id</title> +<indexterm><primary>id method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>id method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-id---------------------------------------------------------->< +]]> +</programlisting> + +<para>Returns the numeric ID of the window.</para> +</section> + +<section id="coordinateswo"><title>coordinates</title> +<indexterm><primary>coordinates method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>coordinates method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-coordinates------------------------------------------------->< +]]> +</programlisting> + +<para>Returns the upper left and the lower right corner positions of the window +in the format "left,top,right,bottom".</para> +</section> + +<section id="statewo"><title>state</title> +<indexterm><primary>state method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>state method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-state------------------------------------------------------->< +]]> +</programlisting> + +<para>Returns information about the window state. The returned state can contain +one or more of the following constants:</para> +<itemizedlist> +<listitem><para>"Enabled" or "Disabled"</para></listitem> +<listitem><para>"Visible" or "Invisible"</para></listitem> +<listitem><para>"Zoomed" or "Minimized"</para></listitem> +<listitem><para>"Foreground"</para></listitem></itemizedlist> +</section> + +<section id="getstylewo"><title>getStyle</title> +<indexterm><primary>getStyle method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>getStyle method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>--getStyle--------------------------------------------------->< +]]> +</programlisting> + +<para> + Returns the style and extended style flags of the window. This method is intended for use by + programmers that have some knowledge of the Windows API and would not be much use to Rexx programmers + that do not have any understanding of that API. +</para> +<para> + The styles are returned in a string of two words. The first word is the window style and the second + word is the extend window style. Each word is in the format: + <computeroutput>0xAAAAAAAA</computeroutput> where A represents any hexadecimal digit. If an error + happens, the numerical system error code is returned instead of a string with two words. +</para> +<para><emphasis role="bold">Example:</emphasis></para> +<programlisting> +<![CDATA[ + +-- This function will return an array with all matching windows. An empty array +-- signals no match. +windows = fuzzyFindWindows(deskTop, text) + +if windows~items > 0 then do wnd over windows + say 'Found this window.' + say ' Title: ' wnd~title + say ' Class: ' wnd~wClass + say ' Position:' wnd~coordinates + say ' Styles: ' wnd~getStyle + say +end + +/* Output might be: + +Found this window. + Title: GetMenuState Function - MSDN Library - Microsoft Document Explorer + Class: wndclass_desked_gsk + Position: 0,0,1152,800 + Styles: 0x16cf0000 0xc0040900 + +Found this window. + Title: C:\work.ooRexx\3.x\main + Class: ExploreWClass + Position: 0,25,1150,804 + Styles: 0x16cf0000 0xc0000900 + +*/ +]]> +</programlisting> + +</section> + +<section id="restorewo"><title>restore</title> +<indexterm><primary>restore method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>restore method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-restore----------------------------------------------------->< +]]> +</programlisting> + +<para>Activates and displays the associated window. If the window is minimized +or maximized, it is restored to its original size and position.</para> +</section> + +<section id="hidewo"><title>hide</title> +<indexterm><primary>hide method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>hide method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-hide-------------------------------------------------------->< +]]> +</programlisting> + +<para>Hides the associated window and activates another window.</para> +</section> + +<section id="minimizewo"><title>minimize</title> +<indexterm><primary>minimize method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>minimize method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-minimize---------------------------------------------------->< +]]> +</programlisting> + +<para>Minimizes the associated window and activates the next higher-level +window.</para> +</section> + +<section id="maximizewo"><title>maximize</title> +<indexterm><primary>maximize method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>maximize method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-maximize---------------------------------------------------->< +]]> +</programlisting> + +<para>Maximizes the associated window.</para> +</section> + +<section id="resizewo"><title>resize</title> +<indexterm><primary>resize method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>resize method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-resize--(--width--,--height--)------------------------------>< +]]> +</programlisting> + +<para>Resizes the associated window to the specified width and height. The width +and height are specified in screen coordinates.</para> +</section> + +<section id="enablewo"><title>enable</title> +<indexterm><primary>enable method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>enable method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-enable------------------------------------------------------>< +]]> +</programlisting> + +<para>Enables the associated window if it was disabled.</para> +</section> + +<section id="disablewo"><title>disable</title> +<indexterm><primary>disable method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>disable method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-disable----------------------------------------------------->< +]]> +</programlisting> + +<para>Disables the associated window.</para> +</section> + +<section id="movetowo"><title>moveTo</title> +<indexterm><primary>moveTo method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>moveTo method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-moveTo--(--x--,--y--)--------------------------------------->< +]]> +</programlisting> + +<para>Moves the associated window to the specified position +(<emphasis role="italic">x,y</emphasis>). Specify +the new position in screen pixels.</para> +</section> + +<section id="toforegroundwo"><title>toForeground</title> +<indexterm><primary>toForeground method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>toForeground method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-toForeground------------------------------------------------>< +]]> +</programlisting> + +<para>Makes the associated window the foreground window.</para> +</section> + +<section id="focusnextitemwo"><title>focusNextItem</title> +<indexterm><primary>focusNextItem method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>focusNextItem method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-focusNextItem----------------------------------------------->< +]]> +</programlisting> + +<para>Sets the input focus to the next child window of the associated window. +</para> +</section> + +<section id="focuspreviousitemwo"><title>focusPreviousItem</title> +<indexterm><primary>focusPreviousItem method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>focusPreviousItem method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-focusPreviousItem------------------------------------------->< +]]> +</programlisting> + +<para>Sets the input focus to the previous child window of the associated +window.</para> +</section> + +<section id="focusitemwo"><title>focusItem</title> +<indexterm><primary>focusItem method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>focusItem method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-focusItem--(--wndObject--)---------------------------------->< +]]> +</programlisting> + +<para>Sets the input focus to the child window associated with the specified +WindowObject instance <emphasis role="italic">wndObject</emphasis>.</para> +<para><emphasis role="bold">Example:</emphasis></para> +<para>The following example sets the input focus to the last child window: +</para> +<programlisting> + dlg = wndmgr~find("TestDialog") + if dlg \= .Nil then do + fChild = dlg~firstChild + lChild = fChild~last + dlg~focusItem(lChild) + end +</programlisting> +</section> + +<section id="findchildwo"><title>findChild</title> +<indexterm><primary>findChild method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>findChild method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-findChild--(--label--)-------------------------------------->< +]]> +</programlisting> + +<para>Returns an instance of the WindowObject class associated with the child +window with the specified <emphasis role="italic">label</emphasis>. If the +associated window does not +own such a window, the .Nil object is returned.</para> +</section> + +<section id="childatpositionwo"><title>childAtPosition</title> +<indexterm><primary>childAtPosition method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>childAtPosition method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-childAtPosition--(--x--,--y--)------------------------------>< +]]> +</programlisting> + +<para>Returns an instance of the WindowObject class associated with the child +window at the specified client position (<emphasis role="italic">x,y</emphasis>). +The coordinates that are relative to the upper left corner of the associated +window must be specified +in screen pixels. To retrieve top-level windows, +use method <link linkend="windowatpositionwm">windowAtPosition</link>.</para> +</section> + +<section id="nextwo"><title>next</title> +<indexterm><primary>next method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>next method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-next-------------------------------------------------------->< +]]> +</programlisting> + +<para>Returns an instance of the WindowObject class associated with the next +window of the same level as the associated window. If the associated window +is the last window of a level, the .Nil object is returned.</para> +</section> + +<section id="previouswo"><title>previous</title> +<indexterm><primary>previous method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>previous method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-previous---------------------------------------------------->< +]]> +</programlisting> + +<para>Returns an instance of the WindowObject class associated with the previous +window of the same level as the associated window. If the associated window +is the first window of a level, the .Nil object is returned.</para> +</section> + +<section id="firstwo"><title>first</title> +<indexterm><primary>first method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>first method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-first------------------------------------------------------->< +]]> +</programlisting> + +<para>Returns an instance of the WindowObject class associated with the first +window of the same level as the associated window.</para> +</section> + +<section id="lastwo"><title>last</title> +<indexterm><primary>last method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>last method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-last-------------------------------------------------------->< +]]> +</programlisting> + +<para>Returns an instance of the WindowObject class associated with the last +window of the same level as the associated window.</para> +</section> + +<section id="ownerwo"><title>owner</title> +<indexterm><primary>owner method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>owner method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-owner------------------------------------------------------->< +]]> +</programlisting> + +<para>Returns an instance of the WindowObject class associated with the window +that owns the associated window (parent). If the associated window is a +top-level window, the .Nil object is returned.</para> +</section> + +<section id="firstchildwo"><title>firstChild</title> +<indexterm><primary>firstChild method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>firstChild method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-firstChild-------------------------------------------------->< +]]> +</programlisting> + +<para>Returns an instance of the WindowObject class associated with the first +child window of the associated window. If no child window exists, the .NIL +object is returned.</para> +</section> + +<section id="enumeratechildrenwo"><title>enumerateChildren</title> +<indexterm><primary>enumerateChildren method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>enumerateChildren method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-enumerateChildren------------------------------------------->< +]]> +</programlisting> + +<para>Returns a stem that stores information about the +child windows of the associated +window. "Stem.0" contains the number of child windows. The returned +stem contains as many records as child windows. The first record is stored +at "Stem.1" continued by increments of 1. Each record contains the +following entries, where each entry starts with an exclamation mark (!):</para> +<variablelist> +<varlistentry><term>!Handle</term> +<listitem><para>The handle of the window. +</para></listitem></varlistentry> +<varlistentry><term>!Title</term> +<listitem><para> +</para></listitem></varlistentry> +<varlistentry><term>!Class</term> +<listitem><para>The window class. +</para></listitem></varlistentry> +<varlistentry><term>!State</term> +<listitem><para> +</para></listitem></varlistentry> +<varlistentry><term>!Coordinates</term> +<listitem><para> +</para></listitem></varlistentry> +<varlistentry><term>!Children</term> +<listitem><para>1 if the window has child windows, 0 if is has none. +</para></listitem></varlistentry> +<varlistentry><term>!Id</term> +<listitem><para> +</para></listitem></varlistentry> +</variablelist> +<para><emphasis role="bold">Example:</emphasis></para> +<programlisting> + wo = winmgr~find("TestDialog") + enum. = wo~enumerateChildren + do i = 1 to enum.0 /* number of children */ + say "---" + say "Handle:" enum.i.!Handle + say "Title:" enum.i.!Title + say "Class:" enum.i.!Class + say "Id:" enum.i.!Id + say "Children:" enum.i.!Children + say "State:" enum.i.!State + say "Rect:" enum.i.!Coordinates + end +</programlisting> +</section> + +<section id="sendmessagewo"><title>sendMessage</title> +<indexterm><primary>sendMessage method</primary> +<secondary>of WindowsObject class</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>sendMessage method</secondary> +<tertiary>of WindowsObject class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-sendMessage--(--message--,--wParam--,--lParam--)------------>< +]]> +</programlisting> + +<para>Sends a message to the associated window.</para> +</section> + +<section id="sendcommandwo"><tit... [truncated message content] |