Author: mpiulachs Date: Mon Nov 19 04:11:35 2007 New Revision: 30570
URL: http://svn.reactos.org/svn/reactos?rev=30570&view=rev Log: Cool flying butterflies screen saver. It uses the new scrnsave library. All screen savers *should* be modified to use this library inset of replicating a large amount of code
Original work by Jeff Molofee tutorials (http://nehe.gamedev.net) basically converted from C++ to C and adapted as a windows screensaver
Added: trunk/rosapps/applications/screensavers/butterflies/ trunk/rosapps/applications/screensavers/butterflies/butterflies.c (with props) trunk/rosapps/applications/screensavers/butterflies/butterflies.def (with props) trunk/rosapps/applications/screensavers/butterflies/butterflies.rbuild (with props) trunk/rosapps/applications/screensavers/butterflies/butterflies.rc (with props) trunk/rosapps/applications/screensavers/butterflies/lang/ trunk/rosapps/applications/screensavers/butterflies/lang/en-US.rc (with props) trunk/rosapps/applications/screensavers/butterflies/res/ trunk/rosapps/applications/screensavers/butterflies/res/butterfly1.bmp (with props) trunk/rosapps/applications/screensavers/butterflies/res/butterfly2.bmp (with props) trunk/rosapps/applications/screensavers/butterflies/res/butterfly3.bmp (with props) trunk/rosapps/applications/screensavers/butterflies/resource.h (with props)
Added: trunk/rosapps/applications/screensavers/butterflies/butterflies.c URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/b... ============================================================================== --- trunk/rosapps/applications/screensavers/butterflies/butterflies.c (added) +++ trunk/rosapps/applications/screensavers/butterflies/butterflies.c Mon Nov 19 04:11:35 2007 @@ -1,0 +1,336 @@ +#include <windows.h> +#include <scrnsave.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <GL/gl.h> +#include <GL/glu.h> +#include "resource.h" + +/* missing declare from gl.h */ +#define GL_BGR_EXT 0x80E0 + +HINSTANCE hInstance; // Holds The Instance Of The Application + +GLuint texture[3]; //stores texture objects and display list + +LPCTSTR registryPath = ("Software\tHaPuTeRProductions\Lesson38Saver"); +BOOL dRotate; + + +struct object // Create A Structure Called Object +{ + int tex; // Integer Used To Select Our Texture + float x; // X Position + float y; // Y Position + float z; // Z Position + float yi; // Y Increase Speed (Fall Speed) + float spinz; // Z Axis Spin + float spinzi; // Z Axis Spin Speed + float flap; // Flapping Triangles :) + float fi; // Flap Direction (Increase Value) +}; + +struct object obj[50]; +//object obj[50]; // Create 50 Objects Using The Object Structure + +void SetDefaults() +{ + dRotate = TRUE; +} + +void ReadRegistry(){ + LONG result; + HKEY skey; + DWORD valtype, valsize, val; + + SetDefaults(); + + result = RegOpenKeyEx(HKEY_CURRENT_USER, registryPath, 0, KEY_READ, &skey); + if(result != ERROR_SUCCESS) + return; + + valsize=sizeof(val); + + result = RegQueryValueEx(skey, "Rotate", 0, &valtype, (LPBYTE)&val, &valsize); + if(result == ERROR_SUCCESS) + dRotate = val; + RegCloseKey(skey); +} + +void WriteRegistry(){ + LONG result; + HKEY skey; + DWORD val, disp; + + result = RegCreateKeyEx(HKEY_CURRENT_USER, registryPath, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &skey, &disp); + if(result != ERROR_SUCCESS) + return; + + val = dRotate; + RegSetValueEx(skey, "Rotate", 0, REG_DWORD, (CONST BYTE*)&val, sizeof(val)); + + RegCloseKey(skey); +} + +void SetObject(int loop) // Sets The Initial Value Of Each Object (Random) +{ + obj[loop].tex=rand()%3; // Texture Can Be One Of 3 Textures + obj[loop].x=rand()%34-17.0f; // Random x Value From -17.0f To 17.0f + obj[loop].y=18.0f; // Set y Position To 18 (Off Top Of Screen) + obj[loop].z=-((rand()%30000/1000.0f)+10.0f); // z Is A Random Value From -10.0f To -40.0f + obj[loop].spinzi=(rand()%10000)/5000.0f-1.0f; // spinzi Is A Random Value From -1.0f To 1.0f + obj[loop].flap=0.0f; // flap Starts Off At 0.0f; + obj[loop].fi=0.05f+(rand()%100)/1000.0f; // fi Is A Random Value From 0.05f To 0.15f + obj[loop].yi=0.001f+(rand()%1000)/10000.0f; // yi Is A Random Value From 0.001f To 0.101f +} + +void LoadGLTextures() // Creates Textures From Bitmaps In The Resource File +{ + HBITMAP hBMP; // Handle Of The Bitmap + BITMAP BMP; // Bitmap Structure + int loop; + + // The ID Of The 3 Bitmap Images We Want To Load From The Resource File + byte Texture[]={ IDB_BUTTERFLY1, IDB_BUTTERFLY2, IDB_BUTTERFLY3 }; + + glGenTextures(sizeof(Texture), &texture[0]); // Generate 3 Textures (sizeof(Texture)=3 ID's) + for (loop=0; loop<sizeof(Texture); loop++) // Loop Through All The ID's (Bitmap Images) + { + hBMP=(HBITMAP)LoadImage(GetModuleHandle(NULL),MAKEINTRESOURCE(Texture[loop]), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION); + if (hBMP) // Does The Bitmap Exist? + { // If So... + GetObject(hBMP,sizeof(BMP), &BMP); // Get The Object + // hBMP: Handle To Graphics Object + // sizeof(BMP): Size Of Buffer For Object Information + // Buffer For Object Information + glPixelStorei(GL_UNPACK_ALIGNMENT,4); // Pixel Storage Mode (Word Alignment / 4 Bytes) + glBindTexture(GL_TEXTURE_2D, texture[loop]); // Bind Our Texture + glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); // Linear Filtering + glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR); // Mipmap Linear Filtering + + // Generate Mipmapped Texture (3 Bytes, Width, Height And Data From The BMP) + gluBuild2DMipmaps(GL_TEXTURE_2D, 3, BMP.bmWidth, BMP.bmHeight, GL_BGR_EXT, GL_UNSIGNED_BYTE, BMP.bmBits); + } + } +} + +HGLRC InitOGLWindow(HWND hWnd) +{ + HDC hDC = GetDC(hWnd); + HGLRC hRC = 0; + PIXELFORMATDESCRIPTOR pfd; + int nFormat; + + ZeroMemory(&pfd, sizeof(PIXELFORMATDESCRIPTOR)); + + pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR); + pfd.nVersion = 1; + pfd.dwFlags = PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW | PFD_DOUBLEBUFFER; + pfd.cColorBits = 24; + pfd.cDepthBits = 24; + + nFormat = ChoosePixelFormat(hDC, &pfd); + DescribePixelFormat(hDC, nFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd); + SetPixelFormat(hDC, nFormat, &pfd); + + hRC = wglCreateContext(hDC); + wglMakeCurrent(hDC, hRC); + + ReleaseDC(hWnd, hDC); + + return hRC; +} + +void InitOpenGL(GLsizei width, GLsizei height) +{ + int loop; + + if (height==0) // Prevent A Divide By Zero By + { + height=1; // Making Height Equal One + } + + glViewport(0,0,width,height); // Reset The Current Viewport + + glMatrixMode(GL_PROJECTION); // Select The Projection Matrix + glLoadIdentity(); // Reset The Projection Matrix + + // Calculate The Aspect Ratio Of The Window + gluPerspective (45.0f, (GLfloat)(width)/(GLfloat)(height),1.0f, 1000.0f); + + glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix + glLoadIdentity(); + // Start Of User Initialization + LoadGLTextures(); // Load The Textures From Our Resource File + + glClearColor (0.0f, 0.0f, 0.0f, 0.5f); // Black Background + glClearDepth (1.0f); // Depth Buffer Setup + glDepthFunc (GL_LEQUAL); // The Type Of Depth Testing (Less Or Equal) + glDisable(GL_DEPTH_TEST); // Disable Depth Testing + glShadeModel (GL_SMOOTH); // Select Smooth Shading + glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Set Perspective Calculations To Most Accurate + glEnable(GL_TEXTURE_2D); // Enable Texture Mapping + glBlendFunc(GL_ONE,GL_SRC_ALPHA); // Set Blending Mode (Cheap / Quick) + glEnable(GL_BLEND); + + + for (loop=0; loop<50; loop++) // Loop To Initialize 50 Objects + { + SetObject(loop); // Call SetObject To Assign New Random Values + } + +} + +void Display() +{ + int loop; + glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer + + for (loop=0; loop<50; loop++) // Loop Of 50 (Draw 50 Objects) + { + glLoadIdentity (); // Reset The Modelview Matrix + glBindTexture(GL_TEXTURE_2D, texture[obj[loop].tex]); // Bind Our Texture + glTranslatef(obj[loop].x,obj[loop].y,obj[loop].z); // Position The Object + glRotatef(45.0f,1.0f,0.0f,0.0f); // Rotate On The X-Axis + if (dRotate) + { + glRotatef((obj[loop].spinz),0.0f,0.0f,1.0f); // Spin On The Z-Axis + } + glBegin(GL_TRIANGLES); // Begin Drawing Triangles + // First Triangle _____ + glTexCoord2f(1.0f,1.0f); glVertex3f( 1.0f, 1.0f, 0.0f); // (2)| / (1) + glTexCoord2f(0.0f,1.0f); glVertex3f(-1.0f, 1.0f, obj[loop].flap); // | / + glTexCoord2f(0.0f,0.0f); glVertex3f(-1.0f,-1.0f, 0.0f); // (3)|/ + + // Second Triangle + glTexCoord2f(1.0f,1.0f); glVertex3f( 1.0f, 1.0f, 0.0f); // /|(1) + glTexCoord2f(0.0f,0.0f); glVertex3f(-1.0f,-1.0f, 0.0f); // / | + glTexCoord2f(1.0f,0.0f); glVertex3f( 1.0f,-1.0f, obj[loop].flap); // (2)/____|(3) + + glEnd(); // Done Drawing Triangles + + obj[loop].y-=obj[loop].yi; // Move Object Down The Screen + obj[loop].spinz+=obj[loop].spinzi; // Increase Z Rotation By spinzi + obj[loop].flap+=obj[loop].fi; // Increase flap Value By fi + + if (obj[loop].y<-18.0f) // Is Object Off The Screen? + { + SetObject(loop); // If So, Reassign New Values + } + + if ((obj[loop].flap>1.0f) || (obj[loop].flap<-1.0f)) // Time To Change Flap Direction? + { + obj[loop].fi=-obj[loop].fi; // Change Direction By Making fi = -fi + } + } + + Sleep(15); // Create A Short Delay (15 Milliseconds) + + glFlush (); + +} + +BOOL AboutProc(HWND hdlg, UINT msg, WPARAM wpm, LPARAM lpm){ + /* + switch(msg){ + case WM_CTLCOLORSTATIC: + if(HWND(lpm) == GetDlgItem(hdlg, WEBPAGE1)) + { + SetTextColor(HDC(wpm), RGB(0,0,255)); + SetBkColor(HDC(wpm), COLORREF(GetSysColor(COLOR_3DFACE))); + return(int(GetSysColorBrush(COLOR_3DFACE))); + } + if(HWND(lpm) == GetDlgItem(hdlg, WEBPAGE2)) + { + SetTextColor(HDC(wpm), RGB(0,0,255)); + SetBkColor(HDC(wpm), COLORREF(GetSysColor(COLOR_3DFACE))); + return(int(GetSysColorBrush(COLOR_3DFACE))); + } + break; + case WM_COMMAND: + switch(LOWORD(wpm)){ + case IDOK: + EndDialog(hdlg, LOWORD(wpm)); + break; + case WEBPAGE1: + ShellExecute(NULL, "open", "http://nehe.gamedev.net", NULL, NULL, SW_SHOWNORMAL); + break; + case WEBPAGE2: + ShellExecute(NULL, "open", "http://www.thaputer.com", NULL, NULL, SW_SHOWNORMAL); + break; + } + }*/ + return FALSE; +} + +LRESULT WINAPI ScreenSaverProc(HWND hWnd, UINT message, + WPARAM wParam, LPARAM lParam) +{ + static HGLRC hRC; + static DWORD timer = 1; + HDC hDC; + RECT WindowRect; + int width; + int height; + + switch (message) + { + case WM_CREATE: + ReadRegistry(); + hRC = InitOGLWindow(hWnd); + GetClientRect (hWnd, &WindowRect); + width = WindowRect.right - WindowRect.left; + height = WindowRect.bottom - WindowRect.top; + InitOpenGL(width,height); + SetTimer(hWnd, timer, 5, NULL); + break; + case WM_TIMER: + hDC = GetDC(hWnd); + Display(); + SwapBuffers(hDC); + ReleaseDC(hWnd, hDC); + break; + case WM_DESTROY: + wglMakeCurrent(NULL, NULL); + wglDeleteContext(hRC); + break; + } + + return DefScreenSaverProc(hWnd, message, wParam, lParam); +} + +BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT message, + WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_INITDIALOG: + ReadRegistry(); + CheckDlgButton(hDlg, ROTATE, dRotate); + return TRUE; + case WM_COMMAND: + switch (LOWORD(wParam)) + { + case IDOK: + dRotate = (IsDlgButtonChecked(hDlg, ROTATE) == BST_CHECKED); + WriteRegistry(); + EndDialog(hDlg, TRUE); + return TRUE; + case IDCANCEL: + EndDialog(hDlg, TRUE); + break; + case IDABOUT: + //DialogBox(hInstance, MAKEINTRESOURCE(IDD_DLG_ABOUT), hDlg, DLGPROC(AboutProc)); + break; + } + } + + return FALSE; +} + +BOOL WINAPI RegisterDialogClasses(HANDLE hInst) +{ + return TRUE; +} +
Propchange: trunk/rosapps/applications/screensavers/butterflies/butterflies.c ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/rosapps/applications/screensavers/butterflies/butterflies.def URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/b... ============================================================================== --- trunk/rosapps/applications/screensavers/butterflies/butterflies.def (added) +++ trunk/rosapps/applications/screensavers/butterflies/butterflies.def Mon Nov 19 04:11:35 2007 @@ -1,0 +1,10 @@ +NAME LESSON38SAVER.SCR + +DESCRIPTION 'Lesson38Saver screen saver' + +HEAPSIZE 1024 +STACKSIZE 4096 + +EXPORTS + ScreenSaverProc + ScreenSaverConfigureDialog
Propchange: trunk/rosapps/applications/screensavers/butterflies/butterflies.def ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/rosapps/applications/screensavers/butterflies/butterflies.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/b... ============================================================================== --- trunk/rosapps/applications/screensavers/butterflies/butterflies.rbuild (added) +++ trunk/rosapps/applications/screensavers/butterflies/butterflies.rbuild Mon Nov 19 04:11:35 2007 @@ -1,0 +1,18 @@ +<?xml version="1.0"?> +<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd"> +<module name="butterflies" type="win32scr" installbase="system32" installname="butterflies.scr" allowwarnings="true"> + <importlibrary definition="butterflies.def" /> + <include base="butterflies">.</include> + <library>scrnsavelib</library> + <library>kernel32</library> + <library>user32</library> + <library>gdi32</library> + <library>opengl32</library> + <library>glu32</library> + <library>advapi32</library> + + <metadata description = "Butterflies screensaver" /> + + <file>butterflies.c</file> + <file>butterflies.rc</file> +</module>
Propchange: trunk/rosapps/applications/screensavers/butterflies/butterflies.rbuild ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/rosapps/applications/screensavers/butterflies/butterflies.rc URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/b... ============================================================================== --- trunk/rosapps/applications/screensavers/butterflies/butterflies.rc (added) +++ trunk/rosapps/applications/screensavers/butterflies/butterflies.rc Mon Nov 19 04:11:35 2007 @@ -1,0 +1,13 @@ +#include <windows.h> +#include "resource.h" + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +#define REACTOS_VERSION_DLL +#define REACTOS_STR_FILE_DESCRIPTION "Butterflies ScreenSaver\0" +#define REACTOS_STR_INTERNAL_NAME "butterflies\0" +#define REACTOS_STR_ORIGINAL_FILENAME "butterflies.scr\0" + +#include <reactos/version.rc> + +#include "lang/en-US.rc"
Propchange: trunk/rosapps/applications/screensavers/butterflies/butterflies.rc ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/rosapps/applications/screensavers/butterflies/lang/en-US.rc URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/b... ============================================================================== --- trunk/rosapps/applications/screensavers/butterflies/lang/en-US.rc (added) +++ trunk/rosapps/applications/screensavers/butterflies/lang/en-US.rc Mon Nov 19 04:11:35 2007 @@ -1,0 +1,144 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_DLG_SCREEN DIALOG DISCARDABLE 0, 0, 172, 57 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Butterflies Screen Saver Settings" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,7,35,50,14 + PUSHBUTTON "Cancel",IDCANCEL,61,35,50,14 + CONTROL "Rotate Butterflies",ROTATE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,56,15,70,8 + PUSHBUTTON "About",IDABOUT,115,35,50,14 +END + +IDD_DLG_ABOUT DIALOG DISCARDABLE 0, 0, 149, 79 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About " +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,48,58,56,14 + CTEXT "Lesson38Saver",IDC_STATIC,7,7,135,9 + CTEXT "Demo by: NeHe ",IDC_STATIC,7,20,135,8 + CTEXT "http://nehe.gamedev.net%22,WEBPAGE1,7,29,135,8,SS_NOTIFY | + NOT WS_GROUP + CTEXT "ScreenSaver by: tHaPuTeR",IDC_STATIC,7,38,135,8,NOT + WS_GROUP + CTEXT "http://www.thaputer.com%22,WEBPAGE2,7,47,135,8,SS_NOTIFY | + NOT WS_GROUP +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_DLG_SCREEN, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 165 + TOPMARGIN, 7 + BOTTOMMARGIN, 50 + END + + IDD_DLG_ABOUT, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 142 + TOPMARGIN, 7 + BOTTOMMARGIN, 72 + END +END +#endif // APSTUDIO_INVOKED + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_BUTTERFLY1 BITMAP DISCARDABLE "res/butterfly1.bmp" +IDB_BUTTERFLY2 BITMAP DISCARDABLE "res/butterfly2.bmp" +IDB_BUTTERFLY3 BITMAP DISCARDABLE "res/butterfly3.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_STR_DESCRIP "Lesson38Saver" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED +
Propchange: trunk/rosapps/applications/screensavers/butterflies/lang/en-US.rc ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/rosapps/applications/screensavers/butterflies/res/butterfly1.bmp URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/b... ============================================================================== Binary file - no diff available.
Propchange: trunk/rosapps/applications/screensavers/butterflies/res/butterfly1.bmp ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream
Added: trunk/rosapps/applications/screensavers/butterflies/res/butterfly2.bmp URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/b... ============================================================================== Binary file - no diff available.
Propchange: trunk/rosapps/applications/screensavers/butterflies/res/butterfly2.bmp ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream
Added: trunk/rosapps/applications/screensavers/butterflies/res/butterfly3.bmp URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/b... ============================================================================== Binary file - no diff available.
Propchange: trunk/rosapps/applications/screensavers/butterflies/res/butterfly3.bmp ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream
Added: trunk/rosapps/applications/screensavers/butterflies/resource.h URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/b... ============================================================================== --- trunk/rosapps/applications/screensavers/butterflies/resource.h (added) +++ trunk/rosapps/applications/screensavers/butterflies/resource.h Mon Nov 19 04:11:35 2007 @@ -1,0 +1,27 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by Lesson38Saver.rc +// +#define IDS_STR_DESCRIP 1 +#define IDABOUT 3 +#define IDI_ICON_SCREEN 100 +#define IDB_BUTTERFLY1 103 +#define IDB_BUTTERFLY2 104 +#define IDB_BUTTERFLY3 105 +#define IDI_ICON 106 +#define IDD_DLG_ABOUT 107 +#define ROTATE 1000 +#define WEBPAGE1 1001 +#define WEBPAGE2 1002 +#define IDD_DLG_SCREEN 2003 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 108 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1003 +#define _APS_NEXT_SYMED_VALUE 106 +#endif +#endif
Propchange: trunk/rosapps/applications/screensavers/butterflies/resource.h ------------------------------------------------------------------------------ svn:eol-style = native