From: <mie...@us...> - 2012-09-16 16:39:48
|
Revision: 8412 http://sourceforge.net/p/oorexx/code-0/8412 Author: miesfeld Date: 2012-09-16 16:39:44 +0000 (Sun, 16 Sep 2012) Log Message: ----------- ooDialog - for background color, it is easier to remember if is symetrical with control color Modified Paths: -------------- ooDialog/trunk/ooDialog/APICommon.cpp ooDialog/trunk/ooDialog/APICommon.hpp ooDialog/trunk/ooDialog/PlainBaseDialog.cls ooDialog/trunk/ooDialog/ooDialog.cpp ooDialog/trunk/ooDialog/oodDeviceGraphics.cpp Modified: ooDialog/trunk/ooDialog/APICommon.cpp =================================================================== --- ooDialog/trunk/ooDialog/APICommon.cpp 2012-09-16 04:56:12 UTC (rev 8411) +++ ooDialog/trunk/ooDialog/APICommon.cpp 2012-09-16 16:39:44 UTC (rev 8412) @@ -631,16 +631,21 @@ return wrongRangeException(c, pos, min, max, c->WholeNumber(actual)); } -RexxObjectPtr wrongRangeException(RexxThreadContext *c, size_t pos, uint32_t min, uint32_t max, uint32_t actual) +RexxObjectPtr wrongRangeException(RexxThreadContext *c, size_t pos, uint32_t min, uint32_t max, RexxObjectPtr actual) { c->RaiseException(Rexx_Error_Invalid_argument_range, c->ArrayOfFour(c->StringSize(pos), c->UnsignedInt32(min), c->UnsignedInt32(max), - c->UnsignedInt32(actual))); + actual)); return NULLOBJECT; } +RexxObjectPtr wrongRangeException(RexxThreadContext *c, size_t pos, uint32_t min, uint32_t max, uint32_t actual) +{ + return wrongRangeException(c, pos, min, max, c->UnsignedInt32(actual)); +} + RexxObjectPtr wrongArgValueException(RexxThreadContext *c, size_t pos, const char *list, RexxObjectPtr actual) { c->RaiseException(Rexx_Error_Invalid_argument_list, Modified: ooDialog/trunk/ooDialog/APICommon.hpp =================================================================== --- ooDialog/trunk/ooDialog/APICommon.hpp 2012-09-16 04:56:12 UTC (rev 8411) +++ ooDialog/trunk/ooDialog/APICommon.hpp 2012-09-16 16:39:44 UTC (rev 8412) @@ -93,6 +93,7 @@ extern RexxObjectPtr wrongArgKeywordsException(RexxThreadContext *c, size_t pos, CSTRING list, RexxObjectPtr actual); extern RexxObjectPtr wrongRangeException(RexxThreadContext *c, size_t pos, int min, int max, RexxObjectPtr actual); extern RexxObjectPtr wrongRangeException(RexxThreadContext *c, size_t pos, int min, int max, int actual); +extern RexxObjectPtr wrongRangeException(RexxThreadContext *c, size_t pos, uint32_t min, uint32_t max, RexxObjectPtr actual); extern RexxObjectPtr wrongRangeException(RexxMethodContext *c, size_t pos, uint32_t min, uint32_t max, uint32_t actual); extern RexxObjectPtr notBooleanException(RexxThreadContext *c, size_t pos, RexxObjectPtr actual); extern RexxObjectPtr wrongArgOptionException(RexxThreadContext *c, size_t pos, CSTRING list, RexxObjectPtr actual); Modified: ooDialog/trunk/ooDialog/PlainBaseDialog.cls =================================================================== --- ooDialog/trunk/ooDialog/PlainBaseDialog.cls 2012-09-16 04:56:12 UTC (rev 8411) +++ ooDialog/trunk/ooDialog/PlainBaseDialog.cls 2012-09-16 16:39:44 UTC (rev 8412) @@ -449,6 +449,7 @@ ::method backgroundBitmap external "LIBRARY oodialog pbdlg_backgroundBitmap" ::method tiledBackgroundBitmap external "LIBRARY oodialog pbdlg_tiledBackgroundBitmap" ::method backgroundColor external "LIBRARY oodialog pbdlg_backgroundColor" +::method backgroundSysColor external "LIBRARY oodialog pbdlg_backgroundColor" ::method ensureVisible unguarded return self~sendWinIntMsg(self~DM_REPOSITION, 0, 0) Modified: ooDialog/trunk/ooDialog/ooDialog.cpp =================================================================== --- ooDialog/trunk/ooDialog/ooDialog.cpp 2012-09-16 04:56:12 UTC (rev 8411) +++ ooDialog/trunk/ooDialog/ooDialog.cpp 2012-09-16 16:39:44 UTC (rev 8412) @@ -4302,6 +4302,7 @@ } /** PlainBaseDialog::backgroundColor() + * PlainBaseDialog::backgroundSysColor() * * Sets a custom background color for the dialog. * @@ -4311,13 +4312,10 @@ * * @param colorIndex The color index. * - * @param isSys If used, _colorIndex can be a COLORREF or a system color - * index. If isSys is true colorIndex refers to a system color, - * if false colorIndex is a COLORREF. When a system color is - * indicated, colorIndex can be the numeric index, or a keyword. + * @param isClr [optional] For backgroundColor() only. If isClr is true + * colorIndex refers to a COLORREF color, if false colorIndex is + * a palette index. The default is fase. * - * If omitted, colorIndex is a palette index. - * * @return True on success, false for some error. * * @note Sets the .SystemErrorCode. @@ -4330,48 +4328,46 @@ * it did not return a value. When it was moved to PlainBaseDialog * after 4.0.1, the return was added. */ -RexxMethod3(RexxObjectPtr, pbdlg_backgroundColor, RexxObjectPtr, _colorIndex, OPTIONAL_logical_t, _isSys, CSELF, pCSelf) +RexxMethod4(RexxObjectPtr, pbdlg_backgroundColor, RexxObjectPtr, _colorIndex, OPTIONAL_logical_t, isClr, + NAME, methName, CSELF, pCSelf) { oodResetSysErrCode(context->threadContext); pCPlainBaseDialog pcpbd = (pCPlainBaseDialog)pCSelf; uint32_t colorIndex; HBRUSH hBrush = NULL; - bool isSys = false; + bool isSys = (methName[10] == 'S'); - RexxMethodContext *c = context; - if ( argumentOmitted(2) ) + if ( isSys ) { - if ( ! c->UnsignedInt32(_colorIndex, &colorIndex) ) + if ( argumentExists(2) ) { - oodSetSysErrCode(context->threadContext, ERROR_NOT_SUPPORTED); + tooManyArgsException(context->threadContext, 1); return TheFalseObj; } - hBrush = CreateSolidBrush(PALETTEINDEX(colorIndex)); + if ( ! getSystemColor(context, _colorIndex, &colorIndex, 1) ) + { + return TheFalseObj; + } + + hBrush = GetSysColorBrush(colorIndex); } else { - isSys = _isSys ? true : false; - - if ( isSys ) + if ( ! context->UnsignedInt32(_colorIndex, &colorIndex) ) { - if ( ! getSystemColor(context, _colorIndex, &colorIndex, 1) ) - { - return TheFalseObj; - } + wrongRangeException(context->threadContext, 1, (uint32_t)0, UINT32_MAX, _colorIndex); + return TheFalseObj; + } - hBrush = GetSysColorBrush(colorIndex); + if ( isClr ) + { + hBrush = CreateSolidBrush(colorIndex); } else { - if ( ! c->UnsignedInt32(_colorIndex, &colorIndex) ) - { - wrongRangeException(c->threadContext, 1, 0, UINT32_MAX, _colorIndex); - return TheFalseObj; - } - - hBrush = CreateSolidBrush(colorIndex); + hBrush = CreateSolidBrush(PALETTEINDEX(colorIndex)); } } Modified: ooDialog/trunk/ooDialog/oodDeviceGraphics.cpp =================================================================== --- ooDialog/trunk/ooDialog/oodDeviceGraphics.cpp 2012-09-16 04:56:12 UTC (rev 8411) +++ ooDialog/trunk/ooDialog/oodDeviceGraphics.cpp 2012-09-16 16:39:44 UTC (rev 8412) @@ -3351,9 +3351,9 @@ return -1; } - bool useSysColor = (method[10] == 'S'); - uint32_t bkColor = CLR_DEFAULT; - uint32_t fgColor = CLR_DEFAULT; + uint32_t bkColor = CLR_DEFAULT; + uint32_t fgColor = CLR_DEFAULT; + bool useSysColor = (method[10] == 'S'); RexxMethodContext *c = context; if ( useSysColor ) |