1 /* -*-C++-*- $NetBSD: rootwindow.h,v 1.9 2008/04/28 20:23:20 martin Exp $ */ 2 3 /*- 4 * Copyright (c) 2001 The NetBSD Foundation, Inc. 5 * All rights reserved. 6 * 7 * This code is derived from software contributed to The NetBSD Foundation 8 * by UCHIYAMA Yasushi. 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32 #ifndef _HPCBOOT_ROOTWINDOW_H_ 33 #define _HPCBOOT_ROOTWINDOW_H_ 34 35 class TabWindow; 36 class TabBaseWindow; 37 38 class RootWindow : public Window { 39 public: 40 BootButton *_boot_button; 41 CancelButton *_cancel_button; 42 ProgressBar *_progress_bar; 43 TabWindowBase *_base; 44 TabWindow *_main; 45 TabWindow *_option; 46 TabWindow *_console; 47 48 int _button_width; 49 int _button_height; 50 51 private: 52 HWND _saved_focus; 53 void SaveFocus(); 54 void RestoreFocus(); 55 void WMCreate(HWND, LPCREATESTRUCT); 56 void WMPaint(HWND, LPCREATESTRUCT); 57 58 public: 59 RootWindow(HpcBootApp &); 60 virtual ~RootWindow(void); 61 virtual BOOL create(LPCREATESTRUCT); 62 virtual BOOL proc(HWND, UINT, WPARAM, LPARAM); 63 64 void disableTimer(void); 65 BOOL isDialogMessage(MSG &); 66 BOOL focusManagerHook(MSG &, HWND); 67 68 void progress(const char * = NULL); 69 void unprogress(); 70 }; 71 72 class BootButton : public Window 73 { 74 private: 75 RootWindow &_root; 76 public: BootButton(HpcBootApp & app,RootWindow & root,RECT & rect)77 BootButton(HpcBootApp &app, RootWindow &root, RECT &rect) 78 : Window(app, root._window), _root(root) { 79 _rect = rect; 80 } ~BootButton(void)81 virtual ~BootButton(void) { /* NO-OP */ } 82 virtual BOOL create(LPCREATESTRUCT aux); 83 }; 84 85 class CancelButton : public Window 86 { 87 private: 88 RootWindow &_root; 89 public: CancelButton(HpcBootApp & app,RootWindow & root,RECT & rect)90 CancelButton(HpcBootApp &app, RootWindow &root, RECT &rect) 91 : Window(app, root._window), _root(root) { 92 _rect = rect; 93 } ~CancelButton(void)94 virtual ~CancelButton(void) { /* NO-OP */ } 95 virtual BOOL create(LPCREATESTRUCT aux); 96 }; 97 98 class ProgressBar : public Window 99 { 100 private: 101 RootWindow &_root; 102 public: ProgressBar(HpcBootApp & app,RootWindow & root,RECT & rect)103 ProgressBar(HpcBootApp &app, RootWindow &root, RECT &rect) 104 : Window(app, root._window), _root(root) { 105 _rect = rect; 106 } ~ProgressBar(void)107 virtual ~ProgressBar(void) { /* NO-OP */ } 108 virtual BOOL create(LPCREATESTRUCT aux); 109 }; 110 111 #endif // _HPCBOOT_TABWINDOW_H_ 112