1198090Srdivacky/* -*-C++-*- $NetBSD: rootwindow.h,v 1.8 2005/12/11 12:17:28 christos Exp $ */ 2198090Srdivacky 3198090Srdivacky/*- 4198090Srdivacky * Copyright (c) 2001 The NetBSD Foundation, Inc. 5198090Srdivacky * All rights reserved. 6198090Srdivacky * 7198090Srdivacky * This code is derived from software contributed to The NetBSD Foundation 8198090Srdivacky * by UCHIYAMA Yasushi. 9198090Srdivacky * 10198090Srdivacky * Redistribution and use in source and binary forms, with or without 11198090Srdivacky * modification, are permitted provided that the following conditions 12198090Srdivacky * are met: 13198090Srdivacky * 1. Redistributions of source code must retain the above copyright 14198090Srdivacky * notice, this list of conditions and the following disclaimer. 15249423Sdim * 2. Redistributions in binary form must reproduce the above copyright 16249423Sdim * notice, this list of conditions and the following disclaimer in the 17198090Srdivacky * documentation and/or other materials provided with the distribution. 18198090Srdivacky * 19198090Srdivacky * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20198090Srdivacky * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21234353Sdim * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22234353Sdim * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23198090Srdivacky * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24280031Sdim * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25198090Srdivacky * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26198090Srdivacky * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27198090Srdivacky * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28198090Srdivacky * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29249423Sdim * POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32#ifndef _HPCBOOT_ROOTWINDOW_H_ 33#define _HPCBOOT_ROOTWINDOW_H_ 34 35class TabWindow; 36class TabBaseWindow; 37 38class RootWindow : public Window { 39public: 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 51private: 52 HWND _saved_focus; 53 void SaveFocus(); 54 void RestoreFocus(); 55 void WMCreate(HWND, LPCREATESTRUCT); 56 void WMPaint(HWND, LPCREATESTRUCT); 57 58public: 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 72class BootButton : public Window 73{ 74private: 75 RootWindow &_root; 76public: 77 BootButton(HpcBootApp &app, RootWindow &root, RECT &rect) 78 : Window(app, root._window), _root(root) { 79 _rect = rect; 80 } 81 virtual ~BootButton(void) { /* NO-OP */ } 82 virtual BOOL create(LPCREATESTRUCT aux); 83}; 84 85class CancelButton : public Window 86{ 87private: 88 RootWindow &_root; 89public: 90 CancelButton(HpcBootApp &app, RootWindow &root, RECT &rect) 91 : Window(app, root._window), _root(root) { 92 _rect = rect; 93 } 94 virtual ~CancelButton(void) { /* NO-OP */ } 95 virtual BOOL create(LPCREATESTRUCT aux); 96}; 97 98class ProgressBar : public Window 99{ 100private: 101 RootWindow &_root; 102public: 103 ProgressBar(HpcBootApp &app, RootWindow &root, RECT &rect) 104 : Window(app, root._window), _root(root) { 105 _rect = rect; 106 } 107 virtual ~ProgressBar(void) { /* NO-OP */ } 108 virtual BOOL create(LPCREATESTRUCT aux); 109}; 110 111#endif // _HPCBOOT_TABWINDOW_H_ 112