From: <mie...@us...> - 2012-12-18 03:22:46
|
Revision: 8715 http://sourceforge.net/p/oorexx/code-0/8715 Author: miesfeld Date: 2012-12-18 03:22:43 +0000 (Tue, 18 Dec 2012) Log Message: ----------- Feature request: #504 It would be nice to be able to store a user value as part of the LvFullRow object. See ticket [Feature-Requests:#504] Modified Paths: -------------- ooDialog/trunk/doc/ReleaseNotes.txt ooDialog/trunk/ooDialog/ListView.cls ooDialog/trunk/ooDialog/oodControl.hpp ooDialog/trunk/ooDialog/oodListView.cpp ooDialog/trunk/ooDialog/oodPackageEntry.cpp Modified: ooDialog/trunk/doc/ReleaseNotes.txt =================================================================== --- ooDialog/trunk/doc/ReleaseNotes.txt 2012-12-17 19:04:19 UTC (rev 8714) +++ ooDialog/trunk/doc/ReleaseNotes.txt 2012-12-18 03:22:43 UTC (rev 8715) @@ -53,6 +53,8 @@ Feature Requests in ooDialog: ----------------------------- + * #504 It would be nice to be able to store a user value as part of the + LvFullRow object New Functionality in ooDialog: @@ -80,7 +82,12 @@ --------------- +In the LvFullRow class: +userData The userData attribute allows the programmer to assign any + object to each full row object. + + Enhanced Methods: ----------------- Modified: ooDialog/trunk/ooDialog/ListView.cls =================================================================== --- ooDialog/trunk/ooDialog/ListView.cls 2012-12-17 19:04:19 UTC (rev 8714) +++ ooDialog/trunk/ooDialog/ListView.cls 2012-12-18 03:22:43 UTC (rev 8715) @@ -359,6 +359,9 @@ ::method init external "LIBRARY oodialog lvfr_init" ::method unInit external "LIBRARY oodialog lvfr_unInit" +::attribute userData get external "LIBRARY oodialog lvfr_userData" +::attribute userData set external "LIBRARY oodialog lvfr_setUserData" + ::method addSubItem external "LIBRARY oodialog lvfr_addSubitem" ::method insertSubitem external "LIBRARY oodialog lvfr_insertSubitem" ::method item external "LIBRARY oodialog lvfr_item" Modified: ooDialog/trunk/ooDialog/oodControl.hpp =================================================================== --- ooDialog/trunk/ooDialog/oodControl.hpp 2012-12-17 19:04:19 UTC (rev 8714) +++ ooDialog/trunk/ooDialog/oodControl.hpp 2012-12-18 03:22:43 UTC (rev 8715) @@ -144,6 +144,7 @@ RexxObjectPtr *rxSubItems; // The Rexx subitems rxSubItems[0] is a LvItem, the rest LvSubItems RexxObjectPtr rexxSelf; // The LvFullRow Rexx object RexxObjectPtr bagOfItems; // A Rexx bag to hold the Rexx items and protect from GC + RexxObjectPtr userData; // The user of this class can store an object with each row. HWND hList; // The list-view this full row has been inserted into. uint32_t subItemCount; // The number of subItems uint32_t size; // The allocated size of the subItem array. Modified: ooDialog/trunk/ooDialog/oodListView.cpp =================================================================== --- ooDialog/trunk/ooDialog/oodListView.cpp 2012-12-17 19:04:19 UTC (rev 8714) +++ ooDialog/trunk/ooDialog/oodListView.cpp 2012-12-18 03:22:43 UTC (rev 8715) @@ -5682,6 +5682,35 @@ return NULLOBJECT; } +/** LvFullRow::userData [attribute] + */ +RexxMethod1(RexxObjectPtr, lvfr_userData, CSELF, pCSelf) +{ + pCLvFullRow pclvfr = (pCLvFullRow)pCSelf; + if ( pclvfr->userData != NULLOBJECT ) + { + return pclvfr->userData; + } + return TheNilObj; +} +RexxMethod2(RexxObjectPtr, lvfr_setUserData, RexxObjectPtr, obj, CSELF, pCSelf) +{ + pCLvFullRow pclvfr = (pCLvFullRow)pCSelf; + + if ( obj == TheNilObj ) + { + pclvfr->userData = NULL; + context->SetObjectVariable("USERDATA", NULLOBJECT); + } + else + { + pclvfr->userData = obj; + context->SetObjectVariable("USERDATA", obj); + } + + return NULLOBJECT; +} + /** LvFullRow::addSubitem() * * Adds a subitem to this full row. Subitems are always added as the last Modified: ooDialog/trunk/ooDialog/oodPackageEntry.cpp =================================================================== --- ooDialog/trunk/ooDialog/oodPackageEntry.cpp 2012-12-17 19:04:19 UTC (rev 8714) +++ ooDialog/trunk/ooDialog/oodPackageEntry.cpp 2012-12-18 03:22:43 UTC (rev 8715) @@ -1112,6 +1112,10 @@ // LvFullRow REXX_METHOD_PROTOTYPE(lvfr_init); REXX_METHOD_PROTOTYPE(lvfr_unInit); +REXX_METHOD_PROTOTYPE(lvfr_userData); +REXX_METHOD_PROTOTYPE(lvfr_setUserData); +REXX_METHOD_PROTOTYPE(lvfr_userData); +REXX_METHOD_PROTOTYPE(lvfr_setUserData); REXX_METHOD_PROTOTYPE(lvfr_addSubitem); REXX_METHOD_PROTOTYPE(lvfr_insertSubitem); REXX_METHOD_PROTOTYPE(lvfr_item); @@ -2132,6 +2136,8 @@ // LvFullRow REXX_METHOD(lvfr_init, lvfr_init), REXX_METHOD(lvfr_unInit, lvfr_unInit), + REXX_METHOD(lvfr_userData, lvfr_userData), + REXX_METHOD(lvfr_setUserData, lvfr_setUserData), REXX_METHOD(lvfr_addSubitem, lvfr_addSubitem), REXX_METHOD(lvfr_insertSubitem, lvfr_insertSubitem), REXX_METHOD(lvfr_item, lvfr_item), |