![]() |
Main Page
Class Hierarchy
Alphabetical List
Compound List
File List
Compound Members
![]() |
00001 /***********************************-*- mode: c++; tab-width: 2 -*-*\ 00002 * 00003 * NAME: 00004 * FXSplashWindow - Show a splash screen for app startup/about/etc 00005 * 00006 * AUTHOR: 00007 * Daniel Gehriger (gehriger@linkcad.com) 00008 * 00009 * Updates: 00010 * Mathew Robertson <mathew@users.sourceforge.net> 00011 * 00012 * Copyright (c) 1999 by Daniel Gehriger. All Rights Reserved. 00013 * 00014 * PUPROSE: 00015 * Display a splash window 00016 * 00017 * NOTE 00018 * 00019 * This library is free software; you can redistribute it and/or 00020 * modify it under the terms of the GNU Library General Public 00021 * License as published by the Free Software Foundation; either 00022 * version 2 of the License, or (at your option) any later version. 00023 * 00024 * This library is distributed in the hope that it will be useful, 00025 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00026 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00027 * Library General Public License for more details. 00028 * 00029 * You should have received a copy of the GNU Library General Public 00030 * License along with this library; if not, write to the Free 00031 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00032 * 00033 * HISTORY: 00034 * dgehrige - Dec, 10 1999: Created. 00035 * 00036 \*******************************************************************/ 00037 #ifndef FXSPLASHWINDOW_H 00038 #define FXSPLASHWINDOW_H 00039 00040 #ifndef FXTOPWINDOW_H 00041 #include <fox/FXTopWindow.h> 00042 using namespace FX; 00043 #endif 00044 namespace FXEX { 00045 00046 // SplashWindow options 00047 enum { 00048 SPLASH_NORAISE = 0, // Dont keep splash window on top 00049 SPLASH_AUTORAISE = 0x02000000, // Keep splash window on top 00050 SPLASH_AUTODESTROY = 0x04000000, // Delete itself on timeout 00051 SPLASH_HIDEDESTROY = 0x08000000 // Delete itself when hidden 00052 }; 00053 00054 /** 00055 * Application splash-window; something you might display to annoy the user 00056 * 00057 * Notes: 00058 * - just call execute() to show the window 00059 * - you are meant to derive from this and fill the contents of the window 00060 * with your application info 00061 */ 00062 class FXAPI FXSplashWindow : public FXTopWindow { 00063 FXDECLARE(FXSplashWindow) 00064 00065 protected: 00066 FXuint timeout; // the amount of time specified 00067 FXImage *image; // image to show 00068 00069 private: 00070 FXSplashWindow(const FXSplashWindow&); 00071 FXSplashWindow &operator=(const FXSplashWindow&); 00072 00073 protected: 00074 FXSplashWindow(){} 00075 00076 public: 00077 long onTimeout(FXObject*,FXSelector,void*); 00078 long onFocusOut(FXObject*,FXSelector,void*); 00079 00080 public: 00081 enum { 00082 ID_SPLASH=FXTopWindow::ID_LAST, 00083 ID_LAST 00084 }; 00085 00086 public: 00087 // Create a splash window - default for 3 seconds delay 00088 FXSplashWindow(FXApp* a,const FXString& title="",FXint to=3000,FXuint opts=SPLASH_AUTORAISE|DECOR_BORDER,FXint w=0,FXint h=0,FXint hs=DEFAULT_SPACING,FXint vs=DEFAULT_SPACING); 00089 00090 /** 00091 * Runs the splash window modally; saves calling create() then show() 00092 * returns, when no more events left to process, so that you can continue 00093 * loading your application 00094 */ 00095 virtual FXuint execute(FXuint placement=PLACEMENT_SCREEN); 00096 00097 /// show the splash dialog 00098 virtual void show(); 00099 00100 /// hide the splash dialog 00101 virtual void hide(); 00102 00103 /// display splash dialog with a given placement 00104 virtual void show(FXuint placement=PLACEMENT_SCREEN); 00105 00106 /// splash timeout (in miliseconds) 00107 void setTimeout(FXuint n) { timeout=n; } 00108 00109 /// set the icon (FXSplashWindow then owns it) 00110 void setImage(FXImage *img); 00111 00112 /// set the Image, from a file (supports most image formats, by file extension) 00113 void setImage(const FXString& file); 00114 00115 /** 00116 * Call this occasionally in your startup routine, so as to ensure the splashwindow 00117 * get repainted. 00118 */ 00119 void flush(); 00120 00121 /// save to stream 00122 virtual void save(FXStream& store) const; 00123 00124 /// load from stream 00125 virtual void load(FXStream& store); 00126 00127 /// dtor 00128 virtual ~FXSplashWindow(); 00129 }; 00130 00131 } // namespace FXEX 00132 #endif // FXSPLASHWINDOW_H