1 /* 2 * Copyright 2001-2005, Haiku. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Rafael Romo 7 * Stefano Ceccherini (burton666@libero.it) 8 * Axel Dörfler, axeld@pinc-software.de 9 */ 10 11 #include "AlertWindow.h" 12 #include "AlertView.h" 13 #include "Constants.h" 14 15 #include <Window.h> 16 #include <Screen.h> 17 18 19 AlertWindow::AlertWindow(BMessenger target) 20 : BWindow(BRect(100.0, 100.0, 400.0, 193.0), "Revert", 21 B_MODAL_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL, 22 B_NOT_RESIZABLE | B_NOT_ZOOMABLE, B_ALL_WORKSPACES), 23 fTarget(target) 24 { 25 fAlertView = new AlertView(Bounds(), "AlertView"); 26 AddChild(fAlertView); 27 28 // the view displays a decrementing counter (until the user must take action) 29 SetPulseRate(1000000); // every second 30 31 // center window on screen 32 BScreen screen(this); 33 MoveTo((screen.Frame().Width() - Frame().Width()) / 2, 34 (screen.Frame().Height() - Frame().Height()) / 2); 35 } 36 37 38 void 39 AlertWindow::MessageReceived(BMessage *message) 40 { 41 switch (message->what) { 42 case BUTTON_KEEP_MSG: 43 fTarget.SendMessage(MAKE_INITIAL_MSG); 44 PostMessage(B_QUIT_REQUESTED); 45 break; 46 47 case BUTTON_REVERT_MSG: 48 fTarget.SendMessage(SET_INITIAL_MODE_MSG); 49 PostMessage(B_QUIT_REQUESTED); 50 break; 51 52 default: 53 BWindow::MessageReceived(message); 54 break; 55 } 56 } 57