Release 980215

Sun Feb 15 12:02:59 1998  Alexandre Julliard  <julliard@lrc.epfl.ch>

	* [graphics/x11drv/*.c] [objects/*.c]
	A few X11 critical section optimizations, mostly with XGet/PutPixel.

	* [scheduler/sysdeps.c] [misc/main.c]
	Make sure X11 critical section is available before any Xlib call.

	* [if1632/relay.c] [tools/build.c]
	Yet another attempt at fixing Catch/Throw.

	* [loader/pe_image.c]
	Fixed broken PE DLL loading.

	* [include/winnt.h] [scheduler/handle.c] [scheduler/*.c]
	Implemented handle access rights.
	Added Get/SetHandleInformation.

Sun Feb 15 09:45:23 1997  Andreas Mohr <100.30936@germany.net>

	* [misc/winsock.c]
	Fixed bug in WSACleanup which lead to crashes in WINSOCK_HandleIO.

	* [graphics/fontengine.c] [include/font.h]
	Minor improvements.

	* [memory/global.c]
	Implemented GlobalEntryHandle.

	* [misc/toolhelp.c]
	Fixed a memory bug in Notify*register.

	* [misc/w32scomb.c]
	Improved Get16DLLAddress.

	* [objects/gdiobj.c]
	Implemented GdiSeeGdiDo.


Sat Feb 14 14:57:39 1998  John Richardson <jrichard@zko.dec.com>

	* [win32/console.c]
	Added the console implementation, AllocConsole, FreeConsole,
	CONSOLE_InheritConsole.

	* [documentation/console]
	Some documentation on the console.

	* [include/winerror.h]
	Added some error defines.

	* [scheduler/k32obj.c]
	Registered the scheduler ops.

Fri Feb 13 19:35:35 1998  James Moody  <013263m@dragon.acadiau.ca>

	* [ole/ole2nls.c]
	Some English language fixes for missing values.

	* [controls/listbox.c]
	Fix to allow an empty listbox to deselect all items.

	* [relay32/user32.spec] [windows/keyboard.c]
	CreateAcceleratorTableA stub method.

	* [windows/sysmetrics.c]
	Added missing SM_CXCURSOR & SM_CYCURSOR initializers.

	* [windows/message.c]
	PostThreadMessage32A stub method.

Fri Feb 13 17:12:24 1998  Jim Peterson <jspeter@roanoke.infi.net>

	* [libtest/hello3res.rc] [libtest/hello3.c] [libtest/Makefile.in]
	Updated the 'hello3' test so that it functions properly again.

Fri Feb 13 14:08:07 1998  Martin Boehme  <boehme@informatik.mu-luebeck.de>
	
	* [graphics/mapping.c]
	Fixed the embarrassing bugs I introduced into DPtoLP and
	LPtoDP.

	* [windows/scroll.c]
	Prevent ScrollWindow32 from sending WM_ERASEBKGND.

Thu Feb 12 22:46:53 1998  Huw D M Davies <h.davies1@physics.oxford.ac.uk>

	* [objects/metafile] [include/ldt.h]
	Fix to cope with records longer than 64K.

	* [windows/clipboard.c]
	Clean up bitmaps and metapicts properly.

Mon Feb  3 21:52:18 1998  Karl Backström <karl_b@geocities.com>

	* [programs/winhelp/Sw.rc] [resources/sysres_Sw.rc]
	Minor update of Swedish language support.
diff --git a/programs/notepad/dialog.c b/programs/notepad/dialog.c
new file mode 100644
index 0000000..36167d9
--- /dev/null
+++ b/programs/notepad/dialog.c
@@ -0,0 +1,298 @@
+/*
+ * Notepad
+ *
+ * Copyright 1998 Marcel Baur <mbaur@g26.ethz.ch>
+ */
+
+#include <stdio.h>
+#include "windows.h"
+#include "commdlg.h"
+#ifdef WINELIB
+#include "shell.h"
+#include "options.h"
+#endif
+#include "main.h"
+#include "license.h"
+#include "dialog.h"
+#include "version.h"
+
+static LRESULT DIALOG_PAGESETUP_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
+
+VOID DIALOG_FileNew(VOID)
+{
+  fprintf(stderr, "FileNew()\n");
+}
+
+VOID DIALOG_FileOpen(VOID)
+{
+	  OPENFILENAME openfilename;
+	  CHAR szPath[MAX_PATHNAME_LEN];
+	  CHAR szDir[MAX_PATHNAME_LEN];
+	  CHAR szzFilter[2 * MAX_STRING_LEN + 100];
+	  LPSTR p = szzFilter;
+
+	  LoadString(Globals.hInstance, IDS_TEXT_FILES_TXT, p, MAX_STRING_LEN);
+	  p += strlen(p) + 1;
+	  lstrcpy(p, "*.txt");
+	  p += strlen(p) + 1;
+	  LoadString(Globals.hInstance, IDS_ALL_FILES, p, MAX_STRING_LEN);
+	  p += strlen(p) + 1;
+	  lstrcpy(p, "*.*");
+	  p += strlen(p) + 1;
+	  *p = '\0';
+
+	  GetWindowsDirectory(szDir, sizeof(szDir));
+
+	  openfilename.lStructSize       = 0;
+	  openfilename.hwndOwner         = Globals.hMainWnd;
+	  openfilename.hInstance         = Globals.hInstance;
+	  openfilename.lpstrFilter       = szzFilter;
+	  openfilename.lpstrCustomFilter = 0;
+	  openfilename.nMaxCustFilter    = 0;
+	  openfilename.nFilterIndex      = 0;
+	  openfilename.lpstrFile         = szPath;
+	  openfilename.nMaxFile          = sizeof(szPath);
+	  openfilename.lpstrFileTitle    = 0;
+	  openfilename.nMaxFileTitle     = 0;
+	  openfilename.lpstrInitialDir   = szDir;
+	  openfilename.lpstrTitle        = 0;
+	  openfilename.Flags             = 0;
+	  openfilename.nFileOffset       = 0;
+	  openfilename.nFileExtension    = 0;
+	  openfilename.lpstrDefExt       = 0;
+	  openfilename.lCustData         = 0;
+	  openfilename.lpfnHook          = 0;
+ 	  openfilename.lpTemplateName    = 0;
+
+  	  if (GetOpenFileName(&openfilename));
+}
+
+VOID DIALOG_FileSave(VOID)
+{
+  fprintf(stderr, "FileSave()\n");
+}
+
+VOID DIALOG_FileSaveAs(VOID)
+{
+          OPENFILENAME savefilename;
+          CHAR szPath[MAX_PATHNAME_LEN];
+          CHAR szDir[MAX_PATHNAME_LEN];
+          CHAR szzFilter[2 * MAX_STRING_LEN + 100];
+          LPSTR p = szzFilter;
+
+          LoadString(Globals.hInstance, IDS_TEXT_FILES_TXT, p, MAX_STRING_LEN);
+          p += strlen(p) + 1;
+          lstrcpy(p, "*.txt");
+          p += strlen(p) + 1;
+          LoadString(Globals.hInstance, IDS_ALL_FILES, p, MAX_STRING_LEN);
+          p += strlen(p) + 1;
+          lstrcpy(p, "*.*");
+          p += strlen(p) + 1;
+          *p = '\0';
+
+          GetWindowsDirectory(szDir, sizeof(szDir));
+
+          savefilename.lStructSize       = 0;
+          savefilename.hwndOwner         = Globals.hMainWnd;
+          savefilename.hInstance         = Globals.hInstance;
+          savefilename.lpstrFilter       = szzFilter;
+          savefilename.lpstrCustomFilter = 0;
+          savefilename.nMaxCustFilter    = 0;
+          savefilename.nFilterIndex      = 0;
+          savefilename.lpstrFile         = szPath;
+          savefilename.nMaxFile          = sizeof(szPath);
+          savefilename.lpstrFileTitle    = 0;
+          savefilename.nMaxFileTitle     = 0;
+          savefilename.lpstrInitialDir   = szDir;
+          savefilename.lpstrTitle        = 0;
+          savefilename.Flags             = 0;
+          savefilename.nFileOffset       = 0;
+          savefilename.nFileExtension    = 0;
+          savefilename.lpstrDefExt       = 0;
+          savefilename.lCustData         = 0;
+          savefilename.lpfnHook          = 0;
+          savefilename.lpTemplateName    = 0;
+
+          if (GetSaveFileName(&savefilename));
+}
+
+VOID DIALOG_FilePrint(VOID)
+{
+	PRINTDLG printer;
+	printer.lStructSize           = 0;
+        printer.hwndOwner             = Globals.hMainWnd;
+        printer.hInstance             = Globals.hInstance;
+        printer.hDevMode              = 0;
+	printer.hDevNames             = 0;
+	printer.hDC                   = 0;
+        printer.Flags                 = 0;
+	printer.nFromPage             = 0;
+        printer.nToPage               = 0;
+	printer.nMinPage              = 0;
+	printer.nMaxPage              = 0;
+	printer.nCopies               = 0;
+	printer.lCustData             = 0;
+	printer.lpfnPrintHook       = 0;
+	printer.lpfnSetupHook         = 0;
+	printer.lpPrintTemplateName   = 0;
+	printer.lpSetupTemplateName   = 0;
+	printer.hPrintTemplate        = 0;
+	printer.hSetupTemplate        = 0;
+	
+	if(PrintDlg16(&printer));
+}
+
+VOID DIALOG_FilePageSetup(VOID)
+{
+  DIALOG_PageSetup();
+}
+
+VOID DIALOG_FilePrinterSetup(VOID)
+{
+  fprintf(stderr, "FilePrinterSetup()\n");
+}
+
+VOID DIALOG_FileExit(VOID)
+{
+  PostQuitMessage(0);
+}
+
+VOID DIALOG_EditUndo(VOID)
+{
+  fprintf(stderr, "EditUndo()\n");
+}
+
+VOID DIALOG_EditCut(VOID)
+{
+  fprintf(stderr, "EditCut()\n");
+}
+
+VOID DIALOG_EditCopy(VOID)
+{
+  fprintf(stderr, "EditCopy()\n");
+}
+
+VOID DIALOG_EditPaste(VOID)
+{
+  fprintf(stderr, "EditPaste()\n");
+}
+
+VOID DIALOG_EditDelete(VOID)
+{
+  fprintf(stderr, "EditDelete()\n");
+}
+
+VOID DIALOG_EditSelectAll(VOID)
+{
+   fprintf(stderr, "EditSelectAll()\n");
+}
+
+VOID DIALOG_EditTimeDate(VOID)
+{
+  fprintf(stderr, "EditTimeDate()\n");
+}
+
+VOID DIALOG_EditWrap(VOID)
+{
+  Globals.bWrapLongLines = !Globals.bWrapLongLines;
+	CheckMenuItem(Globals.hEditMenu, NP_EDIT_WRAP, MF_BYCOMMAND | 
+        (Globals.bWrapLongLines ? MF_CHECKED : MF_UNCHECKED));
+}
+
+VOID DIALOG_Search(VOID)
+{
+          FINDREPLACE find;
+	  CHAR szFind[MAX_PATHNAME_LEN];
+	  find.lStructSize               = 0;
+          find.hwndOwner                 = Globals.hMainWnd;
+          find.hInstance                 = Globals.hInstance;
+          find.lpstrFindWhat             = szFind;
+          find.wFindWhatLen              = sizeof(szFind);
+          find.Flags                     = 0;
+          find.lCustData                 = 0;
+          find.lpfnHook                  = 0;
+          find.lpTemplateName            = 0;
+	  FindText(&find);
+}
+
+VOID DIALOG_SearchNext(VOID)
+{
+  fprintf(stderr, "SearchNext()\n");
+}
+
+VOID DIALOG_HelpContents(VOID)
+{
+  printf("NP_HELP_CONTENTS\n");
+  WinHelp(Globals.hMainWnd, HELPFILE, HELP_INDEX, 0);
+}
+
+VOID DIALOG_HelpSearch(VOID)
+{
+  fprintf(stderr, "HelpSearch()\n");
+}
+
+VOID DIALOG_HelpHelp(VOID)
+{
+  printf("NP_HELP_ON_HELP\n");
+  WinHelp(Globals.hMainWnd, HELPFILE, HELP_HELPONHELP, 0);
+}
+
+VOID DIALOG_HelpLicense(VOID)
+{
+  WineLicense(Globals.hMainWnd, Globals.lpszLanguage);
+}
+
+VOID DIALOG_HelpNoWarranty(VOID)
+{
+  printf("NP_ABOUT_NO_WARRANTY\n");
+        WineWarranty(Globals.hMainWnd, Globals.lpszLanguage);
+}
+
+VOID DIALOG_HelpAboutWine(VOID)
+{
+  printf("NP_ABOUT_WINE\n");
+  ShellAbout(Globals.hMainWnd, "Notepad", "Notepad\n" WINE_RELEASE_INFO, 0);
+}
+
+
+/***********************************************************************
+ *
+ *           DIALOG_PageSetup
+ */
+
+VOID DIALOG_PageSetup(VOID)
+{
+  WNDPROC lpfnDlg = MakeProcInstance(DIALOG_PAGESETUP_DlgProc, Globals.hInstance);
+  DialogBox(Globals.hInstance,  STRING_PAGESETUP_Xx,
+	    Globals.hMainWnd, lpfnDlg);
+  FreeProcInstance(lpfnDlg);
+}
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *           DIALOG_PAGESETUP_DlgProc
+ */
+
+static LRESULT DIALOG_PAGESETUP_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+  switch (msg)
+    {
+    case WM_COMMAND:
+      switch (wParam)
+	{
+	case IDOK:
+	  EndDialog(hDlg, IDOK);
+	  return TRUE;
+
+	case IDCANCEL:
+	  EndDialog(hDlg, IDCANCEL);
+	  return TRUE;
+	}
+    }
+  return FALSE;
+}
+
+/* Local Variables:    */
+/* c-file-style: "GNU" */
+/* End:                */