Changeset 3493 for trunk/src


Ignore:
Timestamp:
May 5, 2000, 1:32:38 PM (25 years ago)
Author:
sandervl
Message:

window property fixes/changes

Location:
trunk/src/user32
Files:
1 added
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/Makefile

    r3209 r3493  
    1 # $Id: Makefile,v 1.69 2000-03-23 23:06:50 sandervl Exp $
     1# $Id: Makefile,v 1.70 2000-05-05 11:32:35 sandervl Exp $
    22
    33#
     
    7474$(OBJDIR)\oslibdos.obj \
    7575$(OBJDIR)\win32wmdichild.obj \
    76 $(OBJDIR)\winprop.obj \
    7776$(OBJDIR)\oslibgdi.obj \
    7877$(OBJDIR)\winaccel.obj \
    7978$(OBJDIR)\win32wbasepos.obj \
     79$(OBJDIR)\win32wbaseprop.obj \
    8080$(OBJDIR)\oslibres.obj \
    8181$(OBJDIR)\dc.obj \
  • trunk/src/user32/dbglocal.cpp

    r3462 r3493  
    1 /* $Id: dbglocal.cpp,v 1.3 2000-04-29 18:28:35 sandervl Exp $ */
     1/* $Id: dbglocal.cpp,v 1.4 2000-05-05 11:32:36 sandervl Exp $ */
    22
    33/*
     
    8787"windlg",
    8888"win32wdesktop",
    89 "win32wbasenonclient"
     89"win32wbasenonclient",
     90"win32wbaseprop"
    9091};
    9192//******************************************************************************
  • trunk/src/user32/dbglocal.h

    r3462 r3493  
    1 /* $Id: dbglocal.h,v 1.3 2000-04-29 18:28:35 sandervl Exp $ */
     1/* $Id: dbglocal.h,v 1.4 2000-05-05 11:32:36 sandervl Exp $ */
    22
    33/*
     
    7070#define DBG_oslibdos             48
    7171#define DBG_win32wmdichild       49
    72 #define DBG_winprop              50
    73 #define DBG_wingdi               51
    74 #define DBG_oslibgdi             52
    75 #define DBG_winaccel             53
    76 #define DBG_win32wbasepos        54
    77 #define DBG_oslibres             55
    78 #define DBG_dc                   56
    79 #define DBG_timer                57
    80 #define DBG_caret                58
    81 #define DBG_resource             59
    82 #define DBG_winproc              60
    83 #define DBG_text                 61
    84 #define DBG_oslibmsgtranslate    62
    85 #define DBG_windlgmsg            63
    86 #define DBG_windlg               64
    87 #define DBG_win32wdesktop        65
    88 #define DBG_win32wbasenonclient  66
     72#define DBG_wingdi               50
     73#define DBG_oslibgdi             51
     74#define DBG_winaccel             52
     75#define DBG_win32wbasepos        53
     76#define DBG_oslibres             54
     77#define DBG_dc                   55
     78#define DBG_timer                56
     79#define DBG_caret                57
     80#define DBG_resource             58
     81#define DBG_winproc              59
     82#define DBG_text                 60
     83#define DBG_oslibmsgtranslate    61
     84#define DBG_windlgmsg            62
     85#define DBG_windlg               63
     86#define DBG_win32wdesktop        64
     87#define DBG_win32wbasenonclient  65
     88#define DBG_win32wbaseprop       66
    8989#define DBG_MAXFILES             67
    9090
  • trunk/src/user32/win32wbase.cpp

    r3488 r3493  
    1 /* $Id: win32wbase.cpp,v 1.183 2000-05-03 18:35:54 sandervl Exp $ */
     1/* $Id: win32wbase.cpp,v 1.184 2000-05-05 11:32:36 sandervl Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    143143  vertScrollInfo     = NULL;
    144144
     145  propertyList       = NULL;
     146
    145147  ownDC              = 0;
    146148  hWindowRegion      = 0;
     
    204206        free(horzScrollInfo);
    205207        horzScrollInfo = NULL;
     208    }
     209    if(propertyList) {
     210        removeWindowProps();
    206211    }
    207212}
  • trunk/src/user32/win32wbase.h

    r3419 r3493  
    1 /* $Id: win32wbase.h,v 1.93 2000-04-18 11:13:01 sandervl Exp $ */
     1/* $Id: win32wbase.h,v 1.94 2000-05-05 11:32:37 sandervl Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    3737        ULONG            win32CreateStruct;      //or dialog create dword
    3838} CUSTOMWNDDATA;
     39
     40typedef struct tagPROPERTY
     41{
     42    struct tagPROPERTY *next;     /* Next property in window list */
     43    HANDLE              handle;   /* User's data */
     44    LPSTR               string;   /* Property string (or atom) */
     45} PROPERTY;
    3946
    4047//PostThreadMessage is done through Open32; which means the message id will be translated
     
    281288         BOOL   isInTasklist()                  { return fTaskList; };
    282289
     290         //window property methods
     291         HANDLE getProp(LPCSTR str);
     292         BOOL   setProp(LPCSTR str, HANDLE handle);
     293         HANDLE removeProp(LPCSTR str);
     294         INT    enumPropsExA(PROPENUMPROCEXA func, LPARAM lParam);
     295         INT    enumPropsExW(PROPENUMPROCEXW func, LPARAM lParam);
     296
    283297    static HWND Win32ToOS2Handle(HWND hwnd);
    284298    static HWND Win32ToOS2FrameHandle(HWND hwnd);
     
    305319       LRESULT  SendInternalMessageW(ULONG msg, WPARAM wParam, LPARAM lParam);
    306320        void    Init();
     321
     322        //called in destructor to remove all (if any) window properties
     323        void    removeWindowProps();
     324    PROPERTY   *findWindowProperty(LPCSTR str);
    307325
    308326        HWND    OS2Hwnd;
     
    368386        RECT    rectWindow; //relative to screen
    369387        RECT    rectClient;  //relative to parent
     388
     389    PROPERTY   *propertyList;
    370390
    371391CREATESTRUCTA  *tmpcs; //temporary pointer to CREATESTRUCT used in CreateWindowEx
  • trunk/src/user32/window.cpp

    r3488 r3493  
    1 /* $Id: window.cpp,v 1.64 2000-05-03 18:35:55 sandervl Exp $ */
     1/* $Id: window.cpp,v 1.65 2000-05-05 11:32:38 sandervl Exp $ */
    22/*
    33 * Win32 window apis for OS/2
     
    77 * Copyright 2000 Christoph Bratschi (cbratschi@datacomm.ch)
    88 *
    9  * Parts based on Wine Windows code (windows\win.c)
     9 * Parts based on Wine Windows code (windows\win.c, windows\property.c)
    1010 *
    1111 * Copyright 1993, 1994 Alexandre Julliard
     
    14771477//******************************************************************************
    14781478//******************************************************************************
     1479HANDLE WINAPI GetPropA( HWND hwnd, LPCSTR str )
     1480{
     1481  Win32BaseWindow *window;
     1482
     1483    window = Win32BaseWindow::GetWindowFromHandle(hwnd);
     1484    if(!window) {
     1485        dprintf(("GetPropA, window %x not found", hwnd));
     1486        SetLastError(ERROR_INVALID_WINDOW_HANDLE);
     1487        return 0;
     1488    }
     1489    return window->getProp(str);
     1490}
     1491//******************************************************************************
     1492//******************************************************************************
     1493HANDLE WINAPI GetPropW( HWND hwnd, LPCWSTR str )
     1494{
     1495    LPSTR strA;
     1496    HANDLE ret;
     1497
     1498    if (!HIWORD(str)) return GetPropA( hwnd, (LPCSTR)(UINT)LOWORD(str) );
     1499    strA = HEAP_strdupWtoA( GetProcessHeap(), 0, str );
     1500    ret = GetPropA( hwnd, strA );
     1501    HeapFree( GetProcessHeap(), 0, strA );
     1502    return ret;
     1503}
     1504//******************************************************************************
     1505//******************************************************************************
     1506BOOL WINAPI SetPropA( HWND hwnd, LPCSTR str, HANDLE handle )
     1507{
     1508  Win32BaseWindow *window;
     1509
     1510    window = Win32BaseWindow::GetWindowFromHandle(hwnd);
     1511    if(!window) {
     1512        dprintf(("SetPropA, window %x not found", hwnd));
     1513        SetLastError(ERROR_INVALID_WINDOW_HANDLE);
     1514        return FALSE;
     1515    }
     1516    return window->setProp(str, handle);
     1517}
     1518//******************************************************************************
     1519//******************************************************************************
     1520BOOL WINAPI SetPropW( HWND hwnd, LPCWSTR str, HANDLE handle )
     1521{
     1522    BOOL ret;
     1523    LPSTR strA;
     1524
     1525    if (!HIWORD(str))
     1526        return SetPropA( hwnd, (LPCSTR)(UINT)LOWORD(str), handle );
     1527    strA = HEAP_strdupWtoA( GetProcessHeap(), 0, str );
     1528    ret = SetPropA( hwnd, strA, handle );
     1529    HeapFree( GetProcessHeap(), 0, strA );
     1530    return ret;
     1531}
     1532//******************************************************************************
     1533//******************************************************************************
     1534HANDLE WINAPI RemovePropA( HWND hwnd, LPCSTR str )
     1535{
     1536  Win32BaseWindow *window;
     1537
     1538    window = Win32BaseWindow::GetWindowFromHandle(hwnd);
     1539    if(!window) {
     1540        dprintf(("RemovePropA, window %x not found", hwnd));
     1541        SetLastError(ERROR_INVALID_WINDOW_HANDLE);
     1542        return 0;
     1543    }
     1544    return window->removeProp(str);
     1545}
     1546//******************************************************************************
     1547//******************************************************************************
     1548HANDLE WINAPI RemovePropW( HWND hwnd, LPCWSTR str )
     1549{
     1550    LPSTR strA;
     1551    HANDLE ret;
     1552
     1553    if (!HIWORD(str))
     1554        return RemovePropA( hwnd, (LPCSTR)(UINT)LOWORD(str) );
     1555    strA = HEAP_strdupWtoA( GetProcessHeap(), 0, str );
     1556    ret = RemovePropA( hwnd, strA );
     1557    HeapFree( GetProcessHeap(), 0, strA );
     1558    return ret;
     1559}
     1560//******************************************************************************
     1561//******************************************************************************
     1562INT WINAPI EnumPropsA( HWND hwnd, PROPENUMPROCA func )
     1563{
     1564    return EnumPropsExA( hwnd, (PROPENUMPROCEXA)func, 0 );
     1565}
     1566//******************************************************************************
     1567//******************************************************************************
     1568INT WINAPI EnumPropsW( HWND hwnd, PROPENUMPROCW func )
     1569{
     1570    return EnumPropsExW( hwnd, (PROPENUMPROCEXW)func, 0 );
     1571}
     1572//******************************************************************************
     1573//******************************************************************************
     1574INT WINAPI EnumPropsExA(HWND hwnd, PROPENUMPROCEXA func, LPARAM lParam)
     1575{
     1576  Win32BaseWindow *window;
     1577
     1578    window = Win32BaseWindow::GetWindowFromHandle(hwnd);
     1579    if(!window) {
     1580        dprintf(("EnumPropsExA, window %x not found", hwnd));
     1581        SetLastError(ERROR_INVALID_WINDOW_HANDLE);
     1582        return -1;
     1583    }
     1584    return window->enumPropsExA(func, lParam);
     1585}
     1586//******************************************************************************
     1587//******************************************************************************
     1588INT WINAPI EnumPropsExW(HWND hwnd, PROPENUMPROCEXW func, LPARAM lParam)
     1589{
     1590  Win32BaseWindow *window;
     1591
     1592    window = Win32BaseWindow::GetWindowFromHandle(hwnd);
     1593    if(!window) {
     1594        dprintf(("EnumPropsExA, window %x not found", hwnd));
     1595        SetLastError(ERROR_INVALID_WINDOW_HANDLE);
     1596        return -1;
     1597    }
     1598    return window->enumPropsExW(func, lParam);
     1599}
     1600//******************************************************************************
     1601//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.