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/…
==============================================================================
--- 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/…
==============================================================================
--- 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/…
==============================================================================
--- 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/…
==============================================================================
--- 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/…
==============================================================================
--- 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",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",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/…
==============================================================================
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/…
==============================================================================
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/…
==============================================================================
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/…
==============================================================================
--- 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