bool UserScreen() { if( ScreenState == USER_SCREEN ) return( FALSE ); if( _IsOn( SW_POWERBUILDER ) ) return( FALSE ); if( WndMain ) { ScreenState = USER_SCREEN; if( _IsOn( SW_POWERBUILDER ) ) { WndMinimizeWindow( WndMain ); } else { if( IsWindow( HwndFore ) ) { SetForegroundWindow( HwndFore ); } else { HwndFore = NULL; } } } return( FALSE ); }
static void ProcSize( wnd_class_wv wndclass ) { gui_rect size; disp_optn optn; a_window *wnd; a_window *next; gui_coord min; bool coord_specified; gui_rect def_rect; optn = GetOption(); if( optn == FLOATING || optn == FIXED ) { Error( ERR_LOC, LIT_ENG( ERR_BAD_OPTION ), GetCmdName( CMD_DISPLAY ) ); } size.x = OptExpr( -1 ); size.y = -1; size.width = -1; size.height = -1; if( CurrToken == T_COMMA ) { Scan(); size.y = OptExpr( -1 ); if( CurrToken == T_COMMA ) { Scan(); size.width = OptExpr( -1 ); if( CurrToken == T_COMMA ) { Scan(); size.height = OptExpr( -1 ); } } } ReqEOC(); GUIGetMinSize( &min ); if( size.x != -1 || size.y != -1 || size.width != -1 || size.height != -1 ) { coord_specified = true; } else { coord_specified = false; } WndPosToRect( &WndPosition[wndclass], &def_rect, &WndScreen ); size.x = range( size.x, 0, WndScreen.x, def_rect.x ); size.y = range( size.y, 0, WndScreen.y, def_rect.y ); if( size.x + size.width > WndScreen.x ) size.width = WndScreen.x - size.x; if( size.y + size.height > WndScreen.y ) size.height = WndScreen.y - size.y; size.width = range( size.width, min.x, WndScreen.x, def_rect.width ); size.height = range( size.height, min.y, WndScreen.y, def_rect.height ); if( coord_specified ) { WndRectToPos( &size, &WndPosition[wndclass], &WndScreen ); } if( wndclass == WND_CURRENT ) { wnd = WndFindActive(); } else { wnd = WndFindClass( NULL, wndclass ); } switch( optn ) { case OPEN: case NEW: if( optn == NEW || wnd == NULL ) { WndOpenTab[wndclass](); } else { WndRestoreToFront( wnd ); WndPosToRect( &WndPosition[wndclass], &size, WndMainClientSize() ); WndResizeWindow( wnd, &size ); } break; case CLOSE: if( wndclass == WND_ALL ) { for( wnd = WndNext( NULL ); wnd != NULL; wnd = next ) { next = WndNext( wnd ); if( WndHasClass( wnd ) ) WndClose( wnd ); } } else { if( wnd != NULL ) { WndClose( wnd ); } } break; case MINIMIZE: if( wnd == NULL ) wnd = WndOpenTab[wndclass](); WndMinimizeWindow( wnd ); break; case MAXIMIZE: if( wnd == NULL ) wnd = WndOpenTab[wndclass](); WndMaximizeWindow( wnd ); break; case RESTORE: if( wnd == NULL ) wnd = WndOpenTab[wndclass](); WndRestoreWindow( wnd ); break; } }