From: <mie...@us...> - 2011-03-03 04:23:16
|
Revision: 6820 http://oorexx.svn.sourceforge.net/oorexx/?rev=6820&view=rev Author: miesfeld Date: 2011-03-03 04:23:10 +0000 (Thu, 03 Mar 2011) Log Message: ----------- ooDialog - a quick test of using GDI+, save for a future enhancement Modified Paths: -------------- main/trunk/extensions/platform/windows/oodialog/BaseDialog.cls main/trunk/extensions/platform/windows/oodialog/DialogControls.cls main/trunk/extensions/platform/windows/oodialog/oodPackageEntry.cpp main/trunk/extensions/platform/windows/oodialog/oodResources.cpp Modified: main/trunk/extensions/platform/windows/oodialog/BaseDialog.cls =================================================================== --- main/trunk/extensions/platform/windows/oodialog/BaseDialog.cls 2011-03-02 13:04:21 UTC (rev 6819) +++ main/trunk/extensions/platform/windows/oodialog/BaseDialog.cls 2011-03-03 04:23:10 UTC (rev 6820) @@ -154,6 +154,7 @@ ::method toID class external "LIBRARY oodialog image_toID_cls" ::method getImage class external "LIBRARY oodialog image_getImage_cls" ::method fromFiles class external "LIBRARY oodialog image_fromFiles_cls" +-- ::method getGDIImage class external "LIBRARY oodialog image_getGDIImage_cls" future enhancement ::method fromIDs class external "LIBRARY oodialog image_fromIDs_cls" ::method userIcon class external "LIBRARY oodialog image_userIcon_cls" Modified: main/trunk/extensions/platform/windows/oodialog/DialogControls.cls =================================================================== --- main/trunk/extensions/platform/windows/oodialog/DialogControls.cls 2011-03-02 13:04:21 UTC (rev 6819) +++ main/trunk/extensions/platform/windows/oodialog/DialogControls.cls 2011-03-03 04:23:10 UTC (rev 6820) @@ -1169,12 +1169,11 @@ ::method hasCheckBoxes unguarded external "LIBRARY oodialog lv_hasCheckBoxes" ::method getCheck unguarded external "LIBRARY oodialog lv_getCheck" --- Intent is to return directory item with normal names and in itemInfo convert to old stem return ::method getItemInfo unguarded external "LIBRARY oodialog lv_getItemInfo" ::method itemInfo use strict arg index, subItem = 0 d = .Directory~new - if getItemInfo(index, d, subItem) then do + if self~getItemInfo(index, d, subItem) then do itemInfo.!TEXT = d~text itemInfo.!IMAGE = d~image itemInfo.!STATE = d~state Modified: main/trunk/extensions/platform/windows/oodialog/oodPackageEntry.cpp =================================================================== --- main/trunk/extensions/platform/windows/oodialog/oodPackageEntry.cpp 2011-03-02 13:04:21 UTC (rev 6819) +++ main/trunk/extensions/platform/windows/oodialog/oodPackageEntry.cpp 2011-03-03 04:23:10 UTC (rev 6820) @@ -46,6 +46,7 @@ #include "ooDialog.hpp" // Must be first, includes windows.h, commctrl.h, and oorexxapi.h + HINSTANCE MyInstance = NULL; pCPlainBaseDialog DialogTable[MAXDIALOGS] = {NULL}; pCPlainBaseDialog TopDlg = NULL; @@ -84,6 +85,7 @@ // Initialized in the Rect class init method (rect_init_cls.) RexxClassObject TheRectClass = NULLOBJECT; + #ifdef __cplusplus extern "C" { #endif @@ -110,6 +112,40 @@ #endif +/* GdiplusStartupInput gdiplusStartupInput; +ULONG_PTR gdiplusToken; */ + +/** + * RexxPackageLoader function. This does nothing right now. + * + * In a future release it will be used for the GDI+ startup initialization, and + * some of the other startup function currently in DlgUtil init class will be + * moved here. Place holder for now. + * + * @param c Thread context pointer passed from the intepreter when this package + * is loaded. + * + * @return Nothing is returned + */ +void RexxEntry ooDialogLoad(RexxThreadContext *c) +{ + /* Initialize GDI+. + GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);*/ +} + +/** + * RexxPackageUnloader function. Place holder for now, see comments above. + * + * @param c Thread context pointer passed from the intepreter when this package + * is loaded. + * + * @return Nothing is returned + */ +void RexxEntry ooDialogUnload(RexxThreadContext *c) +{ + /* GdiplusShutdown(gdiplusToken); */ +} + REXX_TYPED_ROUTINE_PROTOTYPE(messageDialog_rtn); REXX_TYPED_ROUTINE_PROTOTYPE(fileNameDlg_rtn); REXX_TYPED_ROUTINE_PROTOTYPE(findWindow_rtn); @@ -1575,8 +1611,8 @@ REXX_INTERPRETER_4_1_0, // needs at least the 4.1.0 interpreter "ooDialog", // name of the package "4.2.0", // package information - NULL, // no load/unload functions - NULL, + ooDialogLoad, // package load function + ooDialogUnload, // package unload function oodialog_functions, // the exported functions oodialog_methods // the exported methods }; Modified: main/trunk/extensions/platform/windows/oodialog/oodResources.cpp =================================================================== --- main/trunk/extensions/platform/windows/oodialog/oodResources.cpp 2011-03-02 13:04:21 UTC (rev 6819) +++ main/trunk/extensions/platform/windows/oodialog/oodResources.cpp 2011-03-03 04:23:10 UTC (rev 6820) @@ -44,6 +44,12 @@ */ #include "ooDialog.hpp" // Must be first, includes windows.h, commctrl.h, and oorexxapi.h +#if 0 +// Future enhancement. +#include <gdiplus.h> +using namespace Gdiplus; +#endif + #include "APICommon.hpp" #include "oodCommon.hpp" #include "oodControl.hpp" @@ -1187,6 +1193,39 @@ return result; } +#if 0 +// Place holder, future enhancement. +RexxMethod1(RexxObjectPtr, image_getGDIImage_cls, CSTRING, file) +{ + RexxObjectPtr result = NULLOBJECT; + + WCHAR *fileName = ansi2unicode(file); + + Bitmap bitmap(fileName, FALSE); + + Gdiplus::Color colorBackground = Gdiplus::Color(255, 255, 255); + + HBITMAP hImage = NULL; + bitmap.GetHBITMAP(colorBackground, &hImage); + if ( hImage == NULL ) + { + DWORD rc = GetLastError(); + oodSetSysErrCode(context->threadContext, rc); + result = rxNewEmptyImage(context, rc); + goto out; + } + + SIZE s; + s.cx = bitmap.GetHeight(); + s.cy = bitmap.GetWidth(); + + result = rxNewValidImage(context, hImage, IMAGE_BITMAP, &s, 0, true); + +out: + return result; +} +#endif + /** Image::userIcon() [class method] * * Retrieves a user icon. A user icon is added through This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |