Changeset 11124


Ignore:
Timestamp:
Aug 16, 1999, 5:54:11 PM (26 years ago)
Author:
dengert
Message:

Client area mouse button messages improved.

Location:
tags/trunk/src/user32/new
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified tags/trunk/src/user32/new/win32wnd.cpp

    r11019 r11124  
    1 /* $Id: win32wnd.cpp,v 1.24 1999-07-26 20:03:49 sandervl Exp $ */
     1/* $Id: win32wnd.cpp,v 1.25 1999-08-16 15:54:11 dengert Exp $ */
    22/*
    33 * Win32 Window Code for OS/2
     
    55 *
    66 * Copyright 1998-1999 Sander van Leeuwen (sandervl@xs4all.nl)
     7 * Copyright 1999      Daniela Engert (dani@ngrt.de)
    78 *
    89 * Parts based on Wine Windows code (windows\win.c)
     
    842843//******************************************************************************
    843844//******************************************************************************
    844 ULONG Win32Window::MsgButton(ULONG msg, ULONG x, ULONG y)
     845ULONG Win32Window::MsgButton(ULONG msg, ULONG ncx, ULONG ncy, ULONG clx, ULONG cly)
    845846{
    846847 ULONG win32msg;
    847848 ULONG win32ncmsg;
    848849
    849     dprintf(("MsgButton to (%d,%d)", x, y));
     850    dprintf(("MsgButton to (%d,%d)", ncx, ncy));
    850851    switch(msg) {
    851852        case BUTTON_LEFTDOWN:
     
    894895        }
    895896    }
    896     SendInternalMessageA(win32ncmsg, lastHitTestVal, MAKELONG(x, y)); //TODO:
    897     return SendInternalMessageA(win32msg, 0, MAKELONG(x, y));
     897    SendInternalMessageA(win32ncmsg, lastHitTestVal, MAKELONG(ncx, ncy)); //TODO:
     898    return SendInternalMessageA(win32msg, 0, MAKELONG(clx, cly));
    898899}
    899900//******************************************************************************
  • TabularUnified tags/trunk/src/user32/new/win32wnd.h

    r11019 r11124  
    1 /* $Id: win32wnd.h,v 1.21 1999-07-26 20:03:49 sandervl Exp $ */
     1/* $Id: win32wnd.h,v 1.22 1999-08-16 15:53:04 dengert Exp $ */
    22/*
    33 * Win32 Window Code for OS/2
     
    55 *
    66 * Copyright 1998-1999 Sander van Leeuwen (sandervl@xs4all.nl)
     7 * Copyright 1999      Daniela Engert (dani@ngrt.de)
    78 *
    89 *
     
    2223class Win32Window;
    2324
    24 #define OFFSET_WIN32WNDPTR      0
    25 #define OFFSET_WIN32PM_MAGIC    4
    26 
    27 #define WIN32PM_MAGIC           0x12345678
    28 #define CheckMagicDword(a)      (a==WIN32PM_MAGIC)
     25#define OFFSET_WIN32WNDPTR      0
     26#define OFFSET_WIN32PM_MAGIC    4
     27
     28#define WIN32PM_MAGIC           0x12345678
     29#define CheckMagicDword(a)      (a==WIN32PM_MAGIC)
    2930
    3031typedef struct {
    31         USHORT          cb;
    32         Win32Window    *win32wnd;
    33         ULONG           win32CreateStruct;      //or dialog create dword
     32        USHORT          cb;
     33        Win32Window    *win32wnd;
     34        ULONG           win32CreateStruct;      //or dialog create dword
    3435} CUSTOMWNDDATA;
    3536
    3637typedef struct
    3738{
    38         ULONG           Msg;
    39         ULONG           wParam;
    40         ULONG           lParam;
     39        ULONG           Msg;
     40        ULONG           wParam;
     41        ULONG           lParam;
    4142} POSTMSG_PACKET;
    4243
    43 #define WM_WIN32_POSTMESSAGEA   0x4000
    44 #define WM_WIN32_POSTMESSAGEW   0x4001
    45 
    46 #define MAX_WINDOW_NAMELENGTH   256
     44#define WM_WIN32_POSTMESSAGEA   0x4000
     45#define WM_WIN32_POSTMESSAGEW   0x4001
     46
     47#define MAX_WINDOW_NAMELENGTH   256
    4748
    4849class Win32Window : private GenericObject, private ChildWindow
    4950{
    5051public:
    51         DWORD   magic;
    52 
    53                 Win32Window(DWORD objType);
    54                 Win32Window(CREATESTRUCTA *lpCreateStructA, ATOM classAtom, BOOL isUnicode);
     52        DWORD   magic;
     53
     54                Win32Window(DWORD objType);
     55                Win32Window(CREATESTRUCTA *lpCreateStructA, ATOM classAtom, BOOL isUnicode);
    5556virtual        ~Win32Window();
    5657
    5758virtual  ULONG  MsgCreate(HWND hwndOS2, ULONG initParam);
    58         ULONG  MsgQuit();
    59         ULONG  MsgClose();
     59        ULONG  MsgQuit();
     60        ULONG  MsgClose();
    6061         ULONG  MsgDestroy();
    61         ULONG  MsgEnable(BOOL fEnable);
    62         ULONG  MsgShow(BOOL fShow);
    63         ULONG  MsgMove(ULONG x, ULONG y);
    64         ULONG  MsgHitTest(ULONG x, ULONG y);
    65         ULONG  MsgSize(ULONG width, ULONG height, BOOL fMinimize, BOOL fMaximize);
     62        ULONG  MsgEnable(BOOL fEnable);
     63        ULONG  MsgShow(BOOL fShow);
     64        ULONG  MsgMove(ULONG x, ULONG y);
     65        ULONG  MsgHitTest(ULONG x, ULONG y);
     66        ULONG  MsgSize(ULONG width, ULONG height, BOOL fMinimize, BOOL fMaximize);
    6667         ULONG  MsgActivate(BOOL fActivate, HWND hwnd);
    67         ULONG  MsgSetFocus(HWND hwnd);
    68         ULONG  MsgKillFocus(HWND hwnd);
    69         ULONG  MsgCommand(ULONG cmd, ULONG Id, HWND hwnd);
    70         ULONG  MsgSysCommand(ULONG win32sc, ULONG x, ULONG y);
    71         ULONG  MsgChar(ULONG cmd, ULONG repeatcnt, ULONG scancode, ULONG vkey, ULONG keyflags);
    72          ULONG  MsgButton(ULONG msg, ULONG x, ULONG y);
    73         ULONG  MsgMouseMove(ULONG keystate, ULONG x, ULONG y);
    74         ULONG  MsgPaint(ULONG tmp1, ULONG tmp2);
    75         ULONG  MsgEraseBackGround(ULONG hps);
    76         ULONG  MsgSetText(LPSTR lpsz, LONG cch);
    77         ULONG  MsgGetTextLength();
    78         char  *MsgGetText();
    79 
    80 virtual  LONG   SetWindowLongA(int index, ULONG value);
    81 virtual  ULONG  GetWindowLongA(int index);
    82 virtual  WORD   SetWindowWord(int index, WORD value);
    83 virtual  WORD   GetWindowWord(int index);
    84 
    85          DWORD  getStyle()                      { return dwStyle; };
    86          DWORD  getExStyle()                    { return dwExStyle; };
    87          HWND   getWindowHandle()               { return Win32Hwnd; };
    88          HWND   getOS2WindowHandle()            { return OS2Hwnd; };
    89          HWND   getOS2FrameWindowHandle()       { return OS2HwndFrame; };
    90         BOOL   isFrameWindow()                 { return OS2Hwnd != OS2HwndFrame; };
    91    Win32Window *getParent()                     { return (Win32Window *)ChildWindow::GetParent(); };
    92         void   setParent(Win32Window *pwindow) { ChildWindow::SetParent((ChildWindow *)pwindow); };
     68        ULONG  MsgSetFocus(HWND hwnd);
     69        ULONG  MsgKillFocus(HWND hwnd);
     70        ULONG  MsgCommand(ULONG cmd, ULONG Id, HWND hwnd);
     71        ULONG  MsgSysCommand(ULONG win32sc, ULONG x, ULONG y);
     72        ULONG  MsgChar(ULONG cmd, ULONG repeatcnt, ULONG scancode, ULONG vkey, ULONG keyflags);
     73         ULONG  MsgButton(ULONG msg, ULONG ncx, ULONG ncy, ULONG clx, ULONG cly);
     74        ULONG  MsgMouseMove(ULONG keystate, ULONG x, ULONG y);
     75        ULONG  MsgPaint(ULONG tmp1, ULONG tmp2);
     76        ULONG  MsgEraseBackGround(ULONG hps);
     77        ULONG  MsgSetText(LPSTR lpsz, LONG cch);
     78        ULONG  MsgGetTextLength();
     79        char  *MsgGetText();
     80
     81virtual  LONG   SetWindowLongA(int index, ULONG value);
     82virtual  ULONG  GetWindowLongA(int index);
     83virtual  WORD   SetWindowWord(int index, WORD value);
     84virtual  WORD   GetWindowWord(int index);
     85
     86         DWORD  getStyle()                      { return dwStyle; };
     87         DWORD  getExStyle()                    { return dwExStyle; };
     88         HWND   getWindowHandle()               { return Win32Hwnd; };
     89         HWND   getOS2WindowHandle()            { return OS2Hwnd; };
     90         HWND   getOS2FrameWindowHandle()       { return OS2HwndFrame; };
     91        BOOL   isFrameWindow()                 { return OS2Hwnd != OS2HwndFrame; };
     92   Win32Window *getParent()                     { return (Win32Window *)ChildWindow::GetParent(); };
     93        void   setParent(Win32Window *pwindow) { ChildWindow::SetParent((ChildWindow *)pwindow); };
    9394       WNDPROC  getWindowProc()                 { return win32wndproc; };
    9495         void   setWindowProc(WNDPROC newproc)  { win32wndproc = newproc; };
    9596        DWORD   getWindowId()                   { return windowId; };
    9697         void   setWindowId(DWORD id)           { windowId = id; };
    97          ULONG  getWindowHeight()               { return rectClient.bottom - rectClient.top; };
    98         BOOL   isChild();
    99          PRECT  getClientRect()                 { return &rectClient; };
    100          PRECT  getWindowRect()                 { return &rectWindow; };
    101 
    102          DWORD  getFlags()                      { return flags; };
    103          void   setFlags(DWORD newflags)        { flags = newflags; };
    104 
    105          HACCEL GetAccelTable()                     { return (HACCEL) acceltableResource; };
    106         BOOL   SetAccelTable(ULONG hAccel);
    107 
    108          HMENU  GetMenu()                           { return (HMENU) menuResource; };
    109         BOOL   SetMenu(ULONG hMenu);
    110 
    111          BOOL   SetIcon(HICON hIcon);
    112         HICON  GetIcon()                           { return (HICON) iconResource; };
    113 
    114         BOOL   ShowWindow(ULONG nCmdShow);
    115         BOOL   SetWindowPos(HWND hwndInsertAfter, int x, int y, int cx, int cy, UINT fuFlags);
    116         BOOL   DestroyWindow();
    117         HWND   SetActiveWindow();
    118         HWND   GetParent();
    119         HWND   SetParent(HWND hwndNewParent);
    120         BOOL   IsChild(HWND hwndParent);
    121         HWND   GetTopWindow();
    122         BOOL   UpdateWindow();
    123         BOOL   IsIconic();
     98         ULONG  getWindowHeight()               { return rectClient.bottom - rectClient.top; };
     99        BOOL   isChild();
     100         PRECT  getClientRect()                 { return &rectClient; };
     101         PRECT  getWindowRect()                 { return &rectWindow; };
     102
     103         DWORD  getFlags()                      { return flags; };
     104         void   setFlags(DWORD newflags)        { flags = newflags; };
     105
     106         HACCEL GetAccelTable()                     { return (HACCEL) acceltableResource; };
     107        BOOL   SetAccelTable(ULONG hAccel);
     108
     109         HMENU  GetMenu()                           { return (HMENU) menuResource; };
     110        BOOL   SetMenu(ULONG hMenu);
     111
     112         BOOL   SetIcon(HICON hIcon);
     113        HICON  GetIcon()                           { return (HICON) iconResource; };
     114
     115        BOOL   ShowWindow(ULONG nCmdShow);
     116        BOOL   SetWindowPos(HWND hwndInsertAfter, int x, int y, int cx, int cy, UINT fuFlags);
     117        BOOL   DestroyWindow();
     118        HWND   SetActiveWindow();
     119        HWND   GetParent();
     120        HWND   SetParent(HWND hwndNewParent);
     121        BOOL   IsChild(HWND hwndParent);
     122        HWND   GetTopWindow();
     123        BOOL   UpdateWindow();
     124        BOOL   IsIconic();
    124125         HWND   GetWindow(UINT uCmd);
    125         BOOL   EnableWindow(BOOL fEnable);
    126         BOOL   CloseWindow();
     126        BOOL   EnableWindow(BOOL fEnable);
     127        BOOL   CloseWindow();
    127128  static HWND   GetActiveWindow();
    128         BOOL   IsWindow();
    129         BOOL   IsWindowEnabled();
    130         BOOL   IsWindowVisible();
    131         BOOL   IsUnicode()  { return isUnicode; };
    132 
    133         BOOL   GetWindowRect(PRECT pRect);
    134         int    GetWindowTextLengthA();
    135         int    GetWindowTextA(LPSTR lpsz, int cch);
    136          BOOL   SetWindowTextA(LPCSTR lpsz);
     129        BOOL   IsWindow();
     130        BOOL   IsWindowEnabled();
     131        BOOL   IsWindowVisible();
     132        BOOL   IsUnicode()  { return isUnicode; };
     133
     134        BOOL   GetWindowRect(PRECT pRect);
     135        int    GetWindowTextLengthA();
     136        int    GetWindowTextA(LPSTR lpsz, int cch);
     137         BOOL   SetWindowTextA(LPCSTR lpsz);
    137138
    138139       LRESULT  SendMessageA(ULONG msg, WPARAM wParam, LPARAM lParam);
     
    152153
    153154  if(window) {
    154         return window->getOS2WindowHandle();
     155        return window->getOS2WindowHandle();
    155156  }
    156   else  return hwnd;    //OS/2 window handle
     157  else  return hwnd;    //OS/2 window handle
    157158}
    158159
     
    162163
    163164  if(window) {
    164         return window->getWindowHandle();
     165        return window->getWindowHandle();
    165166  }
    166   else  return hwnd;    //OS/2 window handle
     167  else  return hwnd;    //OS/2 window handle
    167168}
    168169
     
    173174       LRESULT  SendInternalMessageA(ULONG msg, WPARAM wParam, LPARAM lParam);
    174175       LRESULT  SendInternalMessageW(ULONG msg, WPARAM wParam, LPARAM lParam);
    175         void    Init();
    176 
    177         HWND    OS2Hwnd;
    178         HWND    OS2HwndFrame;
    179         HWND    OS2HwndMenu;
    180         HWND    Win32Hwnd;
    181         BOOL    isUnicode;
    182 
    183         int     posx, posy, width, height;
    184 
    185         // values normally contained in the standard window words
    186         ULONG   dwExStyle;              //GWL_EXSTYLE
    187         ULONG   dwStyle;                //GWL_STYLE
    188       WNDPROC   win32wndproc;           //GWL_WNDPROC
    189         ULONG   hInstance;              //GWL_HINSTANCE
     176        void    Init();
     177
     178        HWND    OS2Hwnd;
     179        HWND    OS2HwndFrame;
     180        HWND    OS2HwndMenu;
     181        HWND    Win32Hwnd;
     182        BOOL    isUnicode;
     183
     184        int     posx, posy, width, height;
     185
     186        // values normally contained in the standard window words
     187        ULONG   dwExStyle;              //GWL_EXSTYLE
     188        ULONG   dwStyle;                //GWL_STYLE
     189      WNDPROC   win32wndproc;           //GWL_WNDPROC
     190        ULONG   hInstance;              //GWL_HINSTANCE
    190191//Moved in ChildWindow class
    191 /////   Win32Window *parent;                    //GWL_HWNDPARENT
    192         ULONG   windowId;               //GWL_ID
    193         ULONG   userData;               //GWL_USERDATA
     192/////   Win32Window *parent;                    //GWL_HWNDPARENT
     193        ULONG   windowId;               //GWL_ID
     194        ULONG   userData;               //GWL_USERDATA
    194195
    195196         HWND   hwndLinkAfter;
    196197        DWORD   flags;
    197         DWORD   lastHitTestVal;         //Last value returned by WM_NCHITTEST handler
    198 
    199         BOOL    isIcon;
    200         BOOL    fCreated;
    201         BOOL    fFirstShow;
    202 
    203    Win32Window *owner;                 
     198        DWORD   lastHitTestVal;         //Last value returned by WM_NCHITTEST handler
     199
     200        BOOL    isIcon;
     201        BOOL    fCreated;
     202        BOOL    fFirstShow;
     203
     204   Win32Window *owner;                 
    204205
    205206 Win32Resource *acceltableResource;
     
    207208 Win32Resource *iconResource;
    208209
    209         char    windowNameA[MAX_WINDOW_NAMELENGTH];
    210         WCHAR   windowNameW[MAX_WINDOW_NAMELENGTH];
    211         ULONG   wndNameLength;
    212 
    213         ULONG  *userWindowLong;
    214         ULONG   nrUserWindowLong;
    215 
    216         RECT    rectWindow;
    217         RECT    rectClient;
     210        char    windowNameA[MAX_WINDOW_NAMELENGTH];
     211        WCHAR   windowNameW[MAX_WINDOW_NAMELENGTH];
     212        ULONG   wndNameLength;
     213
     214        ULONG  *userWindowLong;
     215        ULONG   nrUserWindowLong;
     216
     217        RECT    rectWindow;
     218        RECT    rectClient;
    218219
    219220Win32WndClass  *windowClass;
     
    223224private:
    224225#ifndef OS2_INCLUDED
    225         BOOL  CreateWindowExA(CREATESTRUCTA *lpCreateStruct, ATOM classAtom);
    226 
    227         void  GetMinMaxInfo(POINT *maxSize, POINT *maxPos, POINT *minTrack, POINT *maxTrack );
    228 
    229         LONG  SendNCCalcSize(BOOL calcValidRect,
     226        BOOL  CreateWindowExA(CREATESTRUCTA *lpCreateStruct, ATOM classAtom);
     227
     228        void  GetMinMaxInfo(POINT *maxSize, POINT *maxPos, POINT *minTrack, POINT *maxTrack );
     229
     230        LONG  SendNCCalcSize(BOOL calcValidRect,
    230231                             RECT *newWindowRect, RECT *oldWindowRect,
    231232                             RECT *oldClientRect, WINDOWPOS *winpos,
     
    234235     LRESULT  SendInternalMessage(ULONG msg, WPARAM wParam, LPARAM lParam)
    235236     {
    236         if(isUnicode)
    237                 return SendInternalMessageW(msg, wParam, lParam);
    238         else    return SendInternalMessageA(msg, wParam, lParam);
     237        if(isUnicode)
     238                return SendInternalMessageW(msg, wParam, lParam);
     239        else    return SendInternalMessageA(msg, wParam, lParam);
    239240     }
    240241#endif
     
    242243
    243244
    244 #define BUTTON_LEFTDOWN         0
    245 #define BUTTON_LEFTUP           1
    246 #define BUTTON_LEFTDBLCLICK     2
    247 #define BUTTON_RIGHTUP          3
    248 #define BUTTON_RIGHTDOWN        4
    249 #define BUTTON_RIGHTDBLCLICK    5
    250 #define BUTTON_MIDDLEUP         6
    251 #define BUTTON_MIDDLEDOWN       7
    252 #define BUTTON_MIDDLEDBLCLICK   8
    253 
    254 #define WMMOVE_LBUTTON          1
    255 #define WMMOVE_MBUTTON          2
    256 #define WMMOVE_RBUTTON          4
    257 #define WMMOVE_CTRL             8
    258 #define WMMOVE_SHIFT            16
    259 
    260 
    261 #define CMD_MENU                1
    262 #define CMD_CONTROL             2
    263 #define CMD_ACCELERATOR         3
     245#define BUTTON_LEFTDOWN         0
     246#define BUTTON_LEFTUP           1
     247#define BUTTON_LEFTDBLCLICK     2
     248#define BUTTON_RIGHTUP          3
     249#define BUTTON_RIGHTDOWN        4
     250#define BUTTON_RIGHTDBLCLICK    5
     251#define BUTTON_MIDDLEUP         6
     252#define BUTTON_MIDDLEDOWN       7
     253#define BUTTON_MIDDLEDBLCLICK   8
     254
     255#define WMMOVE_LBUTTON          1
     256#define WMMOVE_MBUTTON          2
     257#define WMMOVE_RBUTTON          4
     258#define WMMOVE_CTRL             8
     259#define WMMOVE_SHIFT            16
     260
     261
     262#define CMD_MENU                1
     263#define CMD_CONTROL             2
     264#define CMD_ACCELERATOR         3
    264265
    265266#define WIN32SC_SIZE         0xf000
     
    280281#define WIN32SC_HOTKEY       0xf150
    281282
    282 #define KEY_ALTDOWN             1
    283 #define KEY_PREVDOWN            2
    284 #define KEY_UP                  4
    285 #define KEY_DEADKEY             8
     283#define KEY_ALTDOWN             1
     284#define KEY_PREVDOWN            2
     285#define KEY_UP                  4
     286#define KEY_DEADKEY             8
    286287
    287288#endif //__cplusplus
Note: See TracChangeset for help on using the changeset viewer.