Sort of intended for Madou, but anyone interested is welcome to join
in and help with the ooDialog doc.

Madou, if you are interested in trying something a little more
challenging, and maybe more interesting, I though I'd explain how you
can find the documentation for most things that are currently not
written.

Remember you can always get the most recent build of oodialog.pdf from
the build machine.  Go to:

http://build.oorexx.org/builds/docs/

Look for the directory with the highest number, say it is 6673.  In
that directory grab the oodialog.pdf. If there is no oodialog.pdf then
look in the previous highest numbered directory.


If you look in oodialog.pdf at the chapter on Menus and go to: Menus
-> The Menu Object -> isPopup  (25.3.8. isPopup) you will see it says:

Arguments:
xx
TERM
xx

So, the documentation for this method has not been written for
oodialog.pdf.  There is just a template in menus.xml for this entry.
But, I have written the documentation.  It is in the C++ code in
comments.  All that needs to be done is to fill in the template with
the text from the C++ code file.

This is really not very hard to do, once you do a couple.  To start
you need to use SVN to grab the source code for ooDialog.  This is the
same process as you use for the doc book source code.  Pick a spot to
put it on your system and then use this URL to just get the ooDialog
source:

https://oorexx.svn.sourceforge.net/svnroot/oorexx/main/trunk/extensions/platform/windows/oodialog

For any class in ooDialog we'll have 2 files.  The Rexx code file and
the C++ implementation file.  For the Menu classes we have Menu.cls
for the Rexx code and oodMenus.cpp for the implementation code.

1.) First look in Menu.cls for the isPopup method.  You will see this line:

::method isPopup external "LIBRARY oodialog menu_isPopup"

That essentially says the isPopup method is implemented externally in
the menu_isPopup function.  You might not know where the menu_isPopup
function is, but all externally named functions in Menu.cls are in
oodMenu.cpp.

2.) Look in oodMenu.cpp for menu_isPopup.  You will find it in only 1
line that looks like this:

RexxMethod3(logical_t, menu_isPopup, RexxObjectPtr, rxItemID,
OPTIONAL_logical_t, byPosition, CSELF, cMenuPtr)

3.) Don't be intimidated if you don't understand C++ code.  C++ uses
/* */ for comments just like Rexx does, so the C++ comments will look
familiar.

4.) You will see that the code around that one line looks like this:
(Hopefully it doesn't wrap in your e-mail client.  If it does, look at
the actual code in oodMenu.cpp.)

/** Menu::isPopup()
 *
 * Determines if the specified menu item is a submenu.
 *
 * @param rxItemID    The item ID to query.  This can be a position ID or a
 *                    resource ID, depending on the value of byPosition.
 *
 * @param byPosition  [optional]  If true, rxItemID is a positional ID,
 *                    otherwise it is a resource ID. The default is false.
 *
 * @return  True if the item is is a submenu, otherwise false.
 *
 * @note  Sets .SystemErrorCode on error and also raises a syntax error, since
 *        there is no way to indicate failure in the return.
 *
 *        The isValidItemID() can be used to check if the item id is valid prior
 *        to invoking this method or the condition could be trapped.  If the
 *        condition is trapped or if isValidItemID() returns false, the
 *        .SystemErrorCode can then be examined for the reason why the item ID
 *        is not valid.
 */
RexxMethod3(logical_t, menu_isPopup, RexxObjectPtr, rxItemID,
OPTIONAL_logical_t, byPosition, CSELF, cMenuPtr)
{
    CppMenu *cMenu = (CppMenu *)cMenuPtr;
    cMenu->setContext(context, TheFalseObj);

    return isType(cMenu, rxItemID, byPosition, 1, MF_POPUP);
}

5.)  The area in the comments is the documentation for the isPopup()
method of the .Menu class.

6.) Now it is just a matter of recognizing what the codes mean and
transferring the text to menu.xml.

@param means an argument to the method.  The arguments are listed in
the correct order.  I usually indicate which arguments are optional
using the [optional] in the text, and by naming the default.

@return is the return value

The text at the top, in this case: Determines if the specified menu
item is a submenu.  Is the short description of what the method does.

@note  Is what should go in the "Remarks:" section in oodialog.pdf.
And in this case the "Sets .SystemErrorCode on error and also raises a
syntax error," is the stuff I've been putting in the "Details:"
section in the doc.

Most of the doc that needs to be transferred is in these chapters:
Menus, MonthCalendar Controls, DateTimePicker Controls, and UpDown
Controls.

As I said, a little more challenging, but probably more interesting.
If you want to give it a try and have any questions then just ask.

What I'm going to do is finish out the isPopup section in the doc now
since I'm there.  I'll commit that and you can see what I did by
getting the oodialog.pdf build tonight.  (I think the builds are done
around 1:00 am  Central Time in the U.S.A, so it will be tomorrow for
many people.)

--
Mark Miesfeld

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Oorexx-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-users

Reply via email to