Ignore:
Timestamp:
Sep 3, 1999, 5:09:46 PM (26 years ago)
Author:
sandervl
Message:

MDI child/client changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/new/win32wmdichild.cpp

    r760 r808  
    1 /* $Id: win32wmdichild.cpp,v 1.2 1999-08-31 17:14:51 sandervl Exp $ */
     1/* $Id: win32wmdichild.cpp,v 1.3 1999-09-03 15:09:46 sandervl Exp $ */
    22/*
    33 * Win32 MDI Child Window Class for OS/2
     
    6262    {
    6363    case WM_SETTEXT:
    64             DefWindowProcA(Msg, wParam, lParam);
    65             menuModifyItem();
    66 #if 0   
     64        DefWindowProcA(Msg, wParam, lParam);
     65        menuModifyItem();
    6766        if( client->getMaximizedChild() == this )
    68                     MDI_UpdateFrameText( clientWnd->parent, ci->self, MDI_REPAINTFRAME, NULL );
    69 #endif 
    70             return 0;
     67                client->updateFrameText(MDI_REPAINTFRAME, NULL);
     68        return 0;
    7169
    7270    case WM_GETMINMAXINFO:
     
    7775
    7876    case WM_MENUCHAR:
    79             /* MDI children don't have menu bars */
    80             client->PostMessageA(WM_SYSCOMMAND, (WPARAM)SC_KEYMENU, (LPARAM)LOWORD(wParam) );
     77        /* MDI children don't have menu bars */
     78        client->PostMessageA(WM_SYSCOMMAND, (WPARAM)SC_KEYMENU, (LPARAM)LOWORD(wParam) );
    8179        return 0x00010000L;
    8280
    8381    case WM_CLOSE:
    84             client->SendMessageA(WM_MDIDESTROY,(WPARAM16)getWindowHandle(), 0L);
    85             return 0;
     82        client->SendMessageA(WM_MDIDESTROY,(WPARAM16)getWindowHandle(), 0L);
     83        return 0;
    8684
    8785    case WM_SETFOCUS:
    88             if(client->getActiveChild() != this )
    89                 client->childActivate(this);
     86        if(client->getActiveChild() != this )
     87            client->childActivate(this);
    9088        break;
    9189
    9290    case WM_CHILDACTIVATE:
    93             client->childActivate(this);
     91        client->childActivate(this);
    9492        return 0;
    9593
     
    9896
    9997    case WM_SYSCOMMAND:
    100             switch( wParam )
    101             {
    102                 case SC_MOVE:
     98        switch( wParam )
     99        {
     100        case SC_MOVE:
    103101            if( client->getMaximizedChild() == this)
    104102            {
     
    106104            }
    107105            break;
    108             case SC_RESTORE:
    109             case SC_MINIMIZE:
    110                 setStyle(getStyle() | WS_SYSMENU);
     106        case SC_RESTORE:
     107        case SC_MINIMIZE:
     108            setStyle(getStyle() | WS_SYSMENU);
    111109            break;
    112110
    113                 case SC_MAXIMIZE:
     111        case SC_MAXIMIZE:
    114112            if( client->getMaximizedChild() == this)
    115113            {
    116                           return client->SendMessageA(Msg, wParam, lParam);
     114                  return client->SendMessageA(Msg, wParam, lParam);
    117115            }
    118                 setStyle(getStyle() & ~WS_SYSMENU);
     116            setStyle(getStyle() & ~WS_SYSMENU);
    119117            break;
    120118
    121                 case SC_NEXTWINDOW:
    122                      client->SendMessageA(WM_MDINEXT, 0, 0);
    123                      return 0;
    124 
    125                 case SC_PREVWINDOW: //WM_MDINEXT??
    126                      client->SendMessageA(WM_MDINEXT, 0, 0);
    127                      return 0;
    128             }
     119        case SC_NEXTWINDOW:
     120             client->SendMessageA(WM_MDINEXT, 0, 0);
     121             return 0;
     122
     123        case SC_PREVWINDOW: //WM_MDINEXT??
     124             client->SendMessageA(WM_MDINEXT, 0, 0);
     125             return 0;
     126        }
    129127        break;
    130128
    131129    case WM_SETVISIBLE:
     130        if( client->getMaximizedChild()) {
     131                client->setMdiFlags(client->getMdiFlags() & ~MDIF_NEEDUPDATE);
     132        }
     133        else    client->postUpdate(SB_BOTH+1);
     134        break;
     135
     136    case WM_SIZE:
     137        /* do not change */
     138        if( client->getActiveChild() == this && wParam != SIZE_MAXIMIZED )
     139        {
     140            client->setActiveChild(NULL);
    132141#if 0
    133         if( client->getMaximizedChild()) ci->mdiFlags &= ~MDIF_NEEDUPDATE;
    134             else
    135             MDI_PostUpdate(clientWnd->hwndSelf, ci, SB_BOTH+1);
     142            MDI_RestoreFrameMenu( clientWnd->parent, hwnd);
    136143#endif
    137         break;
    138 
    139 #if 0           
    140     case WM_SIZE:
    141             /* do not change */
    142 
    143             if( ci->hwndActiveChild == hwnd && wParam != SIZE_MAXIMIZED )
    144             {
    145                 ci->hwndChildMaximized = 0;
    146        
    147                 MDI_RestoreFrameMenu( clientWnd->parent, hwnd);
    148             MDI_UpdateFrameText( clientWnd->parent, ci->self,
    149                                  MDI_REPAINTFRAME, NULL );
    150             }
    151 
    152             if( wParam == SIZE_MAXIMIZED )
    153             {
    154                 HWND16 hMaxChild = ci->hwndChildMaximized;
    155 
    156                 if( hMaxChild == hwnd ) break;
    157 
    158                 if( hMaxChild)
    159                 {       
    160                     SendMessage16( hMaxChild, WM_SETREDRAW, FALSE, 0L );
    161 
    162                     MDI_RestoreFrameMenu( clientWnd->parent, hMaxChild);
    163                     ShowWindow16( hMaxChild, SW_SHOWNOACTIVATE);
    164 
    165                     SendMessage16( hMaxChild, WM_SETREDRAW, TRUE, 0L );
    166                 }
    167 
    168                 ci->hwndChildMaximized = hwnd; /* !!! */
    169                 ci->hwndActiveChild = hwnd;
    170 
    171                 MDI_AugmentFrameMenu( ci, clientWnd->parent, hwnd);
    172                 MDI_UpdateFrameText( clientWnd->parent, ci->self,
    173                                  MDI_REPAINTFRAME, NULL );
    174             }
    175 
    176             if( wParam == SIZE_MINIMIZED )
    177             {
    178                 HWND16 switchTo = MDI_GetWindow(clientWnd, hwnd, TRUE, WS_MINIMIZE);
    179 
    180                 if( switchTo )
    181                     SendMessage16( switchTo, WM_CHILDACTIVATE, 0, 0L);
    182             }
    183        
    184             MDI_PostUpdate(clientWnd->hwndSelf, ci, SB_BOTH+1);
    185             break;
     144            client->updateFrameText(MDI_REPAINTFRAME, NULL );
     145        }
     146
     147        if( wParam == SIZE_MAXIMIZED )
     148        {
     149            Win32MDIChildWindow *maxChild = client->getMaximizedChild();
     150
     151            if( maxChild == this ) break;
     152
     153            if( maxChild)
     154            {
     155                maxChild->SendMessageA(WM_SETREDRAW, FALSE, 0L );
     156#if 0
     157                MDI_RestoreFrameMenu( clientWnd->parent, hMaxChild);
    186158#endif
     159                maxChild->ShowWindow(SW_SHOWNOACTIVATE);
     160
     161                maxChild->SendMessageA(WM_SETREDRAW, TRUE, 0L );
     162            }
     163
     164            client->setMaximizedChild(this);
     165            client->setActiveChild(this);
     166
     167#if 0
     168            MDI_AugmentFrameMenu( ci, clientWnd->parent, hwnd);
     169#endif
     170            client->updateFrameText(MDI_REPAINTFRAME, NULL );
     171        }
     172
     173        if( wParam == SIZE_MINIMIZED )
     174        {
     175            Win32MDIChildWindow *switchTo = client->getWindow(this, TRUE, WS_MINIMIZE);
     176
     177            if( switchTo )
     178                switchTo->SendMessageA(WM_CHILDACTIVATE, 0, 0L);
     179        }
     180
     181        client->postUpdate(SB_BOTH+1);
     182        break;
    187183
    188184#if 0
    189185    case WM_NEXTMENU:
    190             if( wParam == VK_LEFT )             /* switch to frame system menu */
     186        if( wParam == VK_LEFT )     /* switch to frame system menu */
    191187        {
    192188            return MAKELONG( GetSubMenu(clientWnd->parent->hSysMenu, 0),
    193                            clientWnd->parent->hwndSelf );
     189               clientWnd->parent->hwndSelf );
    194190            goto END;
    195191        }
    196             if( wParam == VK_RIGHT )    /* to frame menu bar */
     192        if( wParam == VK_RIGHT )    /* to frame menu bar */
    197193        {
    198194            retvalue = MAKELONG( clientWnd->parent->wIDmenu,
    199                            clientWnd->parent->hwndSelf );
     195               clientWnd->parent->hwndSelf );
    200196            goto END;
    201197        }
    202198#endif
    203199    case WM_SYSCHAR:
    204             if (wParam == '-')
    205             {
    206                     SendMessageA(WM_SYSCOMMAND, (WPARAM)SC_KEYMENU, (LPARAM)(DWORD)VK_SPACE);
    207                     return 0;
    208             }
     200        if (wParam == '-')
     201        {
     202            SendMessageA(WM_SYSCOMMAND, (WPARAM)SC_KEYMENU, (LPARAM)(DWORD)VK_SPACE);
     203            return 0;
     204        }
    209205    }
    210206    return DefWindowProcA(Msg, wParam, lParam);
     
    214210LRESULT Win32MDIChildWindow::DefMDIChildProcW(UINT Msg, WPARAM wParam, LPARAM lParam)
    215211{
     212 Win32MDIClientWindow *client = (Win32MDIClientWindow *)getParent();
     213
    216214    switch (Msg)
    217215    {
    218216    case WM_SETTEXT:
    219             DefWindowProcW(Msg, wParam, lParam);
    220             menuModifyItem();
    221 #if 0   
    222             if( client->getMaximizedChild() == this )
    223                     MDI_UpdateFrameText( clientWnd->parent, ci->self, MDI_REPAINTFRAME, NULL );
    224 #endif 
    225             return 0;
    226        
     217        DefWindowProcW(Msg, wParam, lParam);
     218        menuModifyItem();
     219        if( client->getMaximizedChild() == this )
     220                client->updateFrameText(MDI_REPAINTFRAME, NULL );
     221
     222        return 0;
     223
    227224    case WM_GETMINMAXINFO:
    228225    case WM_MENUCHAR:
     
    236233    case WM_NEXTMENU:
    237234        return DefMDIChildProcA(Msg, wParam, lParam );
    238        
     235
    239236    case WM_SYSCHAR:
    240237        if (wParam == '-')
    241             {
    242                     SendMessageW(WM_SYSCOMMAND, SC_KEYMENU, (LPARAM)(DWORD)VK_SPACE);
    243                     return 0;
    244             }
    245             break;
     238        {
     239            SendMessageW(WM_SYSCOMMAND, SC_KEYMENU, (LPARAM)(DWORD)VK_SPACE);
     240            return 0;
     241        }
     242        break;
    246243    }
    247244    return DefWindowProcW(Msg, wParam, lParam);
     
    338335#if 0
    339336                    MDI_AugmentFrameMenu( ci, w->parent, hwnd );
    340                     MDI_UpdateFrameText( w->parent, ci->self, MDI_REPAINTFRAME, NULL );
     337                    client->updateFrameText(MDI_REPAINTFRAME, NULL );
    341338#endif
    342339                }
Note: See TracChangeset for help on using the changeset viewer.