Author: tkreuzer
Date: Sat Oct 27 05:41:23 2007
New Revision: 29907
URL: http://svn.reactos.org/svn/reactos?rev=29907&view=rev
Log:
try to fix linux build
Modified:
trunk/reactos/base/applications/screensavers/3dtext/3dtext.c
Modified: trunk/reactos/base/applications/screensavers/3dtext/3dtext.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/screensa…
==============================================================================
--- trunk/reactos/base/applications/screensavers/3dtext/3dtext.c (original)
+++ trunk/reactos/base/applications/screensavers/3dtext/3dtext.c Sat Oct 27 05:41:23 2007
@@ -20,8 +20,8 @@
#include <windows.h> // Header File For Windows
#include <math.h> // Header File For Windows Math Library
-#include <gl\gl.h> // Header File For The OpenGL32 Library
-#include <gl\glu.h> // Header File For The GLu32 Library
+#include <gl/gl.h> // Header File For The OpenGL32 Library
+#include <gl/glu.h> // Header File For The GLu32 Library
#include <tchar.h>
#include "resource.h"
Author: mpiulachs
Date: Sat Oct 27 02:34:42 2007
New Revision: 29904
URL: http://svn.reactos.org/svn/reactos?rev=29904&view=rev
Log:
Very simple OpenGL 3D text screensaver similar to the windows one.
Original work by Jeff Molofee tutorials (http://nehe.gamedev.net)
basically converted from C++ to C and adapted as a windows screensaver
Not added to reactos.dff for now because opengl seems to be broken again
See issue #2755 for more details.
Added:
trunk/reactos/base/applications/screensavers/3dtext/
trunk/reactos/base/applications/screensavers/3dtext/3dtext.c (with props)
trunk/reactos/base/applications/screensavers/3dtext/3dtext.h (with props)
trunk/reactos/base/applications/screensavers/3dtext/3dtext.rbuild (with props)
trunk/reactos/base/applications/screensavers/3dtext/lang/
trunk/reactos/base/applications/screensavers/3dtext/lang/en-US.rc (with props)
trunk/reactos/base/applications/screensavers/3dtext/lang/es-ES.rc (with props)
trunk/reactos/base/applications/screensavers/3dtext/resource.h (with props)
trunk/reactos/base/applications/screensavers/3dtext/rsrc.rc (with props)
trunk/reactos/base/applications/screensavers/3dtext/settings.c (with props)
Added: trunk/reactos/base/applications/screensavers/3dtext/3dtext.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/screensa…
==============================================================================
--- trunk/reactos/base/applications/screensavers/3dtext/3dtext.c (added)
+++ trunk/reactos/base/applications/screensavers/3dtext/3dtext.c Sat Oct 27 02:34:42 2007
@@ -1,0 +1,426 @@
+/*
+ * Copyright 2000 Jeff Molofee http://nehe.gamedev.net/ (Original code)
+ * Copyright 2006 Eric Kohl
+ * Copyright 2007 Marc Piulachs (marc.piulachs(a)codexchange.net) - minor modifications , converted to screensaver
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <windows.h> // Header File For Windows
+#include <math.h> // Header File For Windows Math Library
+#include <gl\gl.h> // Header File For The OpenGL32 Library
+#include <gl\glu.h> // Header File For The GLu32 Library
+#include <tchar.h>
+
+#include "resource.h"
+#include "3dtext.h"
+
+static HGLRC hRC; // Permanent Rendering Context
+static HDC hDC; // Private GDI Device Context
+
+GLuint base; // Base Display List For The Font Set
+GLfloat rot; // Used To Rotate The Text
+
+#define APPNAME _T("3DText")
+
+HINSTANCE hInstance;
+BOOL fullscreen = FALSE;
+
+GLvoid BuildFont(GLvoid) // Build Our Bitmap Font
+{
+ GLYPHMETRICSFLOAT gmf[256]; // Address Buffer For Font Storage
+ HFONT font; // Windows Font ID
+
+ base = glGenLists(256); // Storage For 256 Characters
+
+ font = CreateFont( -12, // Height Of Font
+ 0, // Width Of Font
+ 0, // Angle Of Escapement
+ 0, // Orientation Angle
+ FW_BOLD, // Font Weight
+ FALSE, // Italic
+ FALSE, // Underline
+ FALSE, // Strikeout
+ ANSI_CHARSET, // Character Set Identifier
+ OUT_TT_PRECIS, // Output Precision
+ CLIP_DEFAULT_PRECIS, // Clipping Precision
+ ANTIALIASED_QUALITY, // Output Quality
+ FF_DONTCARE|DEFAULT_PITCH, // Family And Pitch
+ "Tahoma"); // Font Name
+
+ SelectObject(hDC, font); // Selects The Font We Created
+
+ wglUseFontOutlines( hDC, // Select The Current DC
+ 0, // Starting Character
+ 255, // Number Of Display Lists To Build
+ base, // Starting Display Lists
+ 0.0f, // Deviation From The True Outlines
+ 0.2f, // Font Thickness In The Z Direction
+ WGL_FONT_POLYGONS, // Use Polygons, Not Lines
+ gmf); // Address Of Buffer To Recieve Data
+}
+
+GLvoid KillFont(GLvoid) // Delete The Font
+{
+ glDeleteLists(base, 256); // Delete All 256 Characters
+}
+
+GLvoid glPrint(char *text) // Custom GL "Print" Routine
+{
+ if (text == NULL) // If There's No Text
+ return; // Do Nothing
+
+ glPushAttrib(GL_LIST_BIT); // Pushes The Display List Bits
+ glListBase(base); // Sets The Base Character to 32
+ glCallLists(strlen(text), GL_UNSIGNED_BYTE, text); // Draws The Display List Text
+ glPopAttrib(); // Pops The Display List Bits
+}
+
+GLvoid InitGL(GLsizei Width, GLsizei Height) // Will Be Called Right After The GL Window Is Created
+{
+ glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Clear The Background Color To Black
+ glClearDepth(1.0); // Enables Clearing Of The Depth Buffer
+ glDepthFunc(GL_LESS); // The Type Of Depth Test To Do
+ glEnable(GL_DEPTH_TEST); // Enables Depth Testing
+ glShadeModel(GL_SMOOTH); // Enables Smooth Color Shading
+
+ 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,0.1f,100.0f);
+
+ glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
+
+ BuildFont(); // Build The Font
+ glEnable(GL_LIGHT0); // Enable Default Light (Quick And Dirty)
+ glEnable(GL_LIGHTING); // Enable Lighting
+ glEnable(GL_COLOR_MATERIAL); // Enable Coloring Of Material
+}
+
+GLvoid ReSizeGLScene(GLsizei Width, GLsizei Height) // Handles Window Resizing
+{
+ if (Height==0) // Is Window Too Small (Divide By Zero Error)
+ Height=1; // If So Make It One Pixel Tall
+
+ // Reset The Current Viewport And Perspective Transformation
+ glViewport(0, 0, Width, Height);
+
+ 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,0.1f,100.0f);
+ glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
+}
+
+GLvoid DrawGLScene(GLvoid) // Handles Rendering
+{
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
+ glLoadIdentity(); // Reset The View
+ glTranslatef(0.0f,0.0f,-10.0f); // Move One Unit Into The Screen
+ glRotatef(rot,1.0f,0.0f,0.0f); // Rotate On The X Axis
+ glRotatef(rot*1.2f,0.0f,1.0f,0.0f); // Rotate On The Y Axis
+ glRotatef(rot*1.4f,0.0f,0.0f,1.0f); // Rotate On The Z Axis
+ glTranslatef(-3.5f,0.0f,0.0f); // Move To The Left Before Drawing
+ // Pulsing Colors Based On The Rotation
+ glColor3f(
+ (1.0f*(cos(rot/20.0f))),
+ (1.0f*(sin(rot/25.0f))),
+ (1.0f-0.5f*(cos(rot/17.0f))));
+ glPrint(m_Text); // Print GL Text To The Screen
+ glColor3f(0.0f,0.0f,1.0f); // Make The Text Blue
+ rot+=0.1f; // Increase The Rotation Variable
+}
+
+LRESULT CALLBACK WndProc( HWND hWnd,
+ UINT message,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ static POINT ptLast;
+ static POINT ptCursor;
+ static BOOL fFirstTime = TRUE;
+ RECT Screen; // Used Later On To Get The Size Of The Window
+ GLuint PixelFormat; // Pixel Format Storage
+ static PIXELFORMATDESCRIPTOR pfd= // Pixel Format Descriptor
+ {
+ sizeof(PIXELFORMATDESCRIPTOR), // Size Of This Pixel Format Descriptor
+ 1, // Version Number (?)
+ PFD_DRAW_TO_WINDOW | // Format Must Support Window
+ PFD_SUPPORT_OPENGL | // Format Must Support OpenGL
+ PFD_DOUBLEBUFFER, // Must Support Double Buffering
+ PFD_TYPE_RGBA, // Request An RGBA Format
+ 16, // Select A 16Bit Color Depth
+ 0, 0, 0, 0, 0, 0, // Color Bits Ignored (?)
+ 0, // No Alpha Buffer
+ 0, // Shift Bit Ignored (?)
+ 0, // No Accumulation Buffer
+ 0, 0, 0, 0, // Accumulation Bits Ignored (?)
+ 16, // 16Bit Z-Buffer (Depth Buffer)
+ 0, // No Stencil Buffer
+ 0, // No Auxiliary Buffer (?)
+ PFD_MAIN_PLANE, // Main Drawing Layer
+ 0, // Reserved (?)
+ 0, 0, 0 // Layer Masks Ignored (?)
+ };
+
+ switch (message) // Tells Windows We Want To Check The Message
+ {
+ case WM_CREATE: // Window Creation
+ hDC = GetDC(hWnd); // Gets A Device Context For The Window
+ PixelFormat = ChoosePixelFormat(hDC, &pfd); // Finds The Closest Match To The Pixel Format We Set Above
+
+ if (!PixelFormat) // No Matching Pixel Format?
+ {
+ MessageBox(0,"Can't Find A Suitable PixelFormat.","Error",MB_OK|MB_ICONERROR);
+ PostQuitMessage(0); // This Sends A 'Message' Telling The Program To Quit
+ break; // Prevents The Rest Of The Code From Running
+ }
+
+ if(!SetPixelFormat(hDC,PixelFormat,&pfd)) // Can We Set The Pixel Mode?
+ {
+ MessageBox(0,"Can't Set The PixelFormat.","Error",MB_OK|MB_ICONERROR);
+ PostQuitMessage(0); // This Sends A 'Message' Telling The Program To Quit
+ break; // Prevents The Rest Of The Code From Running
+ }
+
+ hRC = wglCreateContext(hDC); // Grab A Rendering Context
+ if(!hRC) // Did We Get One?
+ {
+ MessageBox(0,"Can't Create A GL Rendering Context.","Error",MB_OK|MB_ICONERROR);
+ PostQuitMessage(0); // This Sends A 'Message' Telling The Program To Quit
+ break; // Prevents The Rest Of The Code From Running
+ }
+
+ if(!wglMakeCurrent(hDC, hRC)) // Can We Make The RC Active?
+ {
+ MessageBox(0,"Can't Activate GLRC.","Error",MB_OK|MB_ICONERROR);
+ PostQuitMessage(0); // This Sends A 'Message' Telling The Program To Quit
+ break; // Prevents The Rest Of The Code From Running
+ }
+
+ GetClientRect(hWnd, &Screen); // Grab Screen Info For The Current Window
+ InitGL(Screen.right, Screen.bottom); // Initialize The GL Screen Using Screen Info
+ break;
+
+ case WM_DESTROY: // Windows Being Destroyed
+ case WM_CLOSE: // Windows Being Closed
+ {
+ ChangeDisplaySettings(NULL, 0); // Disable Fullscreen Mode
+ KillFont(); // Deletes The Font Display List
+
+ wglMakeCurrent(hDC,NULL); // Make The DC Current
+ wglDeleteContext(hRC); // Kill The RC
+ ReleaseDC(hWnd,hDC); // Free The DC
+
+ PostQuitMessage(0); // Quit The Program
+ }
+ break;
+ case WM_PAINT:
+ {
+ DrawGLScene();
+ SwapBuffers(hDC);
+ break;
+ }
+ case WM_NOTIFY:
+ case WM_SYSKEYDOWN:
+ PostMessage(hWnd, WM_CLOSE, 0, 0);
+ break;
+ case WM_LBUTTONDOWN:
+ case WM_LBUTTONUP:
+ case WM_RBUTTONDOWN:
+ case WM_RBUTTONUP:
+ case WM_MBUTTONDOWN:
+ case WM_MBUTTONUP:
+ case WM_MOUSEMOVE:
+ {
+ // If we've got a parent then we must be a preview
+ if(GetParent(hWnd) != 0)
+ return 0;
+
+ if(fFirstTime)
+ {
+ GetCursorPos(&ptLast);
+ fFirstTime = FALSE;
+ }
+
+ GetCursorPos(&ptCursor);
+
+ // if the mouse has moved more than 3 pixels then exit
+ if(abs(ptCursor.x - ptLast.x) >= 3 || abs(ptCursor.y - ptLast.y) >= 3)
+ PostMessage(hWnd, WM_CLOSE, 0, 0);
+
+ ptLast = ptCursor;
+
+ return 0;
+ }
+ case WM_SIZE: // Resizing The Screen
+ ReSizeGLScene(LOWORD(lParam),HIWORD(lParam)); // Resize To The New Window Size
+ break;
+
+ default:
+ return (DefWindowProc(hWnd, message, wParam, lParam)); // Pass Windows Messages
+ }
+return (0);
+}
+
+void InitSaver(HWND hwndParent)
+{
+ WNDCLASS wc;
+ ZeroMemory(&wc, sizeof(wc));
+ wc.style = CS_HREDRAW | CS_VREDRAW;
+ wc.lpfnWndProc = WndProc;
+ wc.lpszClassName = APPNAME;
+ RegisterClass(&wc);
+
+ if (hwndParent != 0)
+ {
+ RECT rect;
+ GetClientRect(hwndParent, &rect);
+ CreateWindow(APPNAME, APPNAME,
+ WS_VISIBLE | WS_CHILD,
+ 0, 0,
+ rect.right,
+ rect.bottom,
+ hwndParent, 0,
+ hInstance, NULL);
+ fullscreen = FALSE;
+ } else {
+ HWND hwnd;
+ hwnd = CreateWindow(APPNAME, APPNAME,
+ WS_VISIBLE | WS_POPUP | WS_EX_TOPMOST,
+ 0, 0,
+ GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),
+ HWND_DESKTOP, 0,
+ hInstance, NULL);
+ ShowWindow(hwnd, SW_SHOWMAXIMIZED);
+ ShowCursor(FALSE);
+ fullscreen = TRUE;
+ }
+}
+
+void ParseCommandLine(PSTR szCmdLine, int *chOption, HWND *hwndParent)
+{
+ int ch;
+
+ if (!strlen(szCmdLine))
+ return;
+
+ ch = *szCmdLine++;
+
+ if(ch == '-' || ch == '/')
+ ch = *szCmdLine++;
+
+ if(ch >= 'A' && ch <= 'Z')
+ ch += 'a' - 'A';
+
+ *chOption = ch;
+
+ if (ch == 's' || ch == 'c')
+ return;
+
+ ch = *szCmdLine++;
+
+ if(ch == ':')
+ ch = *szCmdLine++;
+
+ while(ch == ' ' || ch == '\t')
+ ch = *szCmdLine++;
+
+ if(isdigit(ch))
+ {
+ unsigned int i = atoi(szCmdLine - 1);
+ *hwndParent = (HWND)i;
+ }
+ else
+ *hwndParent = 0;
+}
+
+//
+// Dialogbox procedure for Configuration window
+//
+BOOL CALLBACK ConfigDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ SetDlgItemText(hwnd, IDC_MESSAGE_TEXT, m_Text);
+ return TRUE;
+ case WM_COMMAND:
+ switch(LOWORD(wParam))
+ {
+ case IDOK:
+ GetDlgItemText(hwnd, IDC_MESSAGE_TEXT, m_Text, MAX_PATH);
+ SaveSettings();
+ EndDialog(hwnd, IDOK);
+ break;
+ case IDCANCEL:
+ EndDialog(hwnd, IDCANCEL);
+ break;
+ }
+ return FALSE;
+ case WM_CLOSE:
+ EndDialog(hwnd, 0);
+ break;
+ default:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+void Configure(void)
+{
+ DialogBox(hInstance, MAKEINTRESOURCE(IDD_CONFIG), NULL , (DLGPROC)ConfigDlgProc);
+}
+
+int WINAPI WinMain (HINSTANCE hInst,
+ HINSTANCE hPrev,
+ LPSTR lpCmdLine,
+ int iCmdShow)
+{
+ HWND hwndParent = 0;
+ int chOption = 0;
+ MSG Message;
+
+ hInstance = hInst;
+
+ ParseCommandLine(lpCmdLine, &chOption, &hwndParent);
+
+ LoadSettings();
+
+ switch(chOption)
+ {
+ case 's':
+ InitSaver(0);
+ break;
+
+ case 'p':
+ InitSaver(hwndParent);
+ break;
+
+ case 'c':
+ default:
+ Configure();
+ return 0;
+ }
+
+ while (GetMessage(&Message, 0, 0, 0))
+ DispatchMessage(&Message);
+
+ return Message.wParam;
+}
+
Propchange: trunk/reactos/base/applications/screensavers/3dtext/3dtext.c
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/base/applications/screensavers/3dtext/3dtext.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/screensa…
==============================================================================
--- trunk/reactos/base/applications/screensavers/3dtext/3dtext.h (added)
+++ trunk/reactos/base/applications/screensavers/3dtext/3dtext.h Sat Oct 27 02:34:42 2007
@@ -1,0 +1,26 @@
+/*
+ * 3D Text OpenGL Screensaver (3dtext.h)
+ *
+ * Copyright 2007 Marc Piulachs
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+//////////////////////////////////////////////////////////////////
+
+TCHAR m_Text[MAX_PATH];
+
+void LoadSettings();
+void SaveSettings();
Propchange: trunk/reactos/base/applications/screensavers/3dtext/3dtext.h
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/base/applications/screensavers/3dtext/3dtext.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/screensa…
==============================================================================
--- trunk/reactos/base/applications/screensavers/3dtext/3dtext.rbuild (added)
+++ trunk/reactos/base/applications/screensavers/3dtext/3dtext.rbuild Sat Oct 27 02:34:42 2007
@@ -1,0 +1,17 @@
+<?xml version="1.0"?>
+<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
+<module name="3dtext" type="win32scr" installbase="system32" installname="3dtext.scr">
+ <define name="__USE_W32API" />
+ <library>kernel32</library>
+ <library>user32</library>
+ <library>gdi32</library>
+ <library>opengl32</library>
+ <library>glu32</library>
+ <library>advapi32</library>
+
+ <file>3dtext.c</file>
+ <file>settings.c</file>
+ <file>rsrc.rc</file>
+
+ <metadata description="3D text OpenGL screensaver" />
+</module>
Propchange: trunk/reactos/base/applications/screensavers/3dtext/3dtext.rbuild
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/base/applications/screensavers/3dtext/lang/en-US.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/screensa…
==============================================================================
--- trunk/reactos/base/applications/screensavers/3dtext/lang/en-US.rc (added)
+++ trunk/reactos/base/applications/screensavers/3dtext/lang/en-US.rc Sat Oct 27 02:34:42 2007
@@ -1,0 +1,19 @@
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+IDD_CONFIG DIALOGEX 0, 0, 273, 178
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "3D Text Screensaver Settings"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,216,7,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,216,24,50,14
+ EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
+ LTEXT "Custom text",IDC_STATIC_TEXT,18,17,40,8
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_DESCRIPTION "3D Text ScreenSaver"
+ IDS_TITLE "About"
+ IDS_TEXT "No options need to be set."
+END
Propchange: trunk/reactos/base/applications/screensavers/3dtext/lang/en-US.rc
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/base/applications/screensavers/3dtext/lang/es-ES.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/screensa…
==============================================================================
--- trunk/reactos/base/applications/screensavers/3dtext/lang/es-ES.rc (added)
+++ trunk/reactos/base/applications/screensavers/3dtext/lang/es-ES.rc Sat Oct 27 02:34:42 2007
@@ -1,0 +1,19 @@
+LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
+
+IDD_CONFIG DIALOGEX 0, 0, 273, 178
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "3D Text Screensaver Settings"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "Aceptar",IDOK,216,7,50,14
+ PUSHBUTTON "Cancelar",IDCANCEL,216,24,50,14
+ EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
+ LTEXT "Texto personalizado",IDC_STATIC_TEXT,18,17,40,8
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_DESCRIPTION "3D Text ScreenSaver"
+ IDS_TITLE "Acerca de.."
+ IDS_TEXT "No options need to be set."
+END
Propchange: trunk/reactos/base/applications/screensavers/3dtext/lang/es-ES.rc
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/base/applications/screensavers/3dtext/resource.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/screensa…
==============================================================================
--- trunk/reactos/base/applications/screensavers/3dtext/resource.h (added)
+++ trunk/reactos/base/applications/screensavers/3dtext/resource.h Sat Oct 27 02:34:42 2007
@@ -1,0 +1,23 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by en-US.rc
+//
+#define IDD_CONFIG 9
+#define IDD_DIALOG1 101
+#define IDC_MESSAGE_TEXT 1001
+#define IDC_STATIC_TEXT 1002
+
+#define IDS_DESCRIPTION 1
+#define IDS_TITLE 2
+#define IDS_TEXT 3
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 102
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1003
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
Propchange: trunk/reactos/base/applications/screensavers/3dtext/resource.h
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/base/applications/screensavers/3dtext/rsrc.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/screensa…
==============================================================================
--- trunk/reactos/base/applications/screensavers/3dtext/rsrc.rc (added)
+++ trunk/reactos/base/applications/screensavers/3dtext/rsrc.rc Sat Oct 27 02:34:42 2007
@@ -1,0 +1,14 @@
+#include <windows.h>
+#include "resource.h"
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION "OpenGL 3DText ScreenSaver\0"
+#define REACTOS_STR_INTERNAL_NAME "ss3dtext\0"
+#define REACTOS_STR_ORIGINAL_FILENAME "ss3dtext.scr\0"
+
+#include <reactos/version.rc>
+
+#include "lang/en-US.rc"
+#include "lang/es-ES.rc"
Propchange: trunk/reactos/base/applications/screensavers/3dtext/rsrc.rc
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/base/applications/screensavers/3dtext/settings.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/screensa…
==============================================================================
--- trunk/reactos/base/applications/screensavers/3dtext/settings.c (added)
+++ trunk/reactos/base/applications/screensavers/3dtext/settings.c Sat Oct 27 02:34:42 2007
@@ -1,0 +1,55 @@
+/*
+ * 3D Text OpenGL Screensaver (settings.c)
+ *
+ * Copyright 2007 Marc Piulachs
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+//////////////////////////////////////////////////////////////////
+
+#include <windows.h>
+#include <tchar.h>
+#include "3dtext.h"
+
+TCHAR m_Text[MAX_PATH];
+
+void LoadSettings()
+{
+ HKEY hkey;
+ DWORD len = MAX_PATH;
+
+ RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\ScreenSavers\\Text3D"), 0,
+ _T(""), 0, KEY_READ, NULL, &hkey, NULL);
+
+ if(RegQueryValueEx(hkey, _T("DisplayString"), 0, 0, (LPBYTE)m_Text, &len) != ERROR_SUCCESS)
+ {
+ strcpy(m_Text , "ReactOS Rocks!");
+ }
+
+ RegCloseKey(hkey);
+}
+
+void SaveSettings()
+{
+ HKEY hkey;
+
+ RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\ScreenSavers\\Text3D"), 0,
+ _T(""), 0, KEY_WRITE, NULL, &hkey, NULL);
+
+ RegSetValueEx(hkey, _T("DisplayString"), 0, REG_SZ, (BYTE *)&m_Text, sizeof (m_Text));
+
+ RegCloseKey(hkey);
+}
Propchange: trunk/reactos/base/applications/screensavers/3dtext/settings.c
------------------------------------------------------------------------------
svn:eol-style = native