mirror of
https://github.com/reactos/reactos
synced 2025-10-06 16:32:42 +02:00
Compare commits
30 Commits
backups/ca
...
ReactOS-0.
Author | SHA1 | Date | |
---|---|---|---|
|
afe6ae403f | ||
|
ae370a4450 | ||
|
5f10701d33 | ||
|
a5174941c0 | ||
|
4b849ab53c | ||
|
82c0a66ae3 | ||
|
5471218885 | ||
|
49adf40f58 | ||
|
e38ae1c541 | ||
|
e223a39432 | ||
|
c69e52a958 | ||
|
a90f503290 | ||
|
2d476f4547 | ||
|
d4634e5b42 | ||
|
3664ac813a | ||
|
8662d4fe90 | ||
|
6ea979170f | ||
|
2164a65682 | ||
|
a945de3043 | ||
|
69cceef72b | ||
|
f2f213e36e | ||
|
bb9414de68 | ||
|
c87db978f2 | ||
|
d4a3555442 | ||
|
abc01da30c | ||
|
7aeca22fed | ||
|
36e1bb60e8 | ||
|
74e77bb16f | ||
|
e3a75fb4da | ||
|
ce122bcdea |
@@ -1,2 +0,0 @@
|
||||
To build this branch apply the patch to trunk. And replace ntoskrnl/mm, ntoskrnl/cc with the folders from here.
|
||||
This branch currently applies against: 0.3.1 branch - r25940
|
120
cc/cacheman.c
120
cc/cacheman.c
@@ -1,120 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: ntoskrnl/cc/cacheman.c
|
||||
* PURPOSE: Cache manager
|
||||
*
|
||||
* PROGRAMMERS: David Welch (welch@cwcom.net)
|
||||
*/
|
||||
|
||||
/* INCLUDES *****************************************************************/
|
||||
|
||||
#include <ntoskrnl.h>
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
PFSN_PREFETCHER_GLOBALS CcPfGlobals;
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CcPfInitializePrefetcher(VOID)
|
||||
{
|
||||
/* Notify debugger */
|
||||
DbgPrintEx(DPFLTR_PREFETCHER_ID,
|
||||
DPFLTR_TRACE_LEVEL,
|
||||
"CCPF: InitializePrefetecher()\n");
|
||||
|
||||
/* Setup the Prefetcher Data */
|
||||
InitializeListHead(&CcPfGlobals.ActiveTraces);
|
||||
InitializeListHead(&CcPfGlobals.CompletedTraces);
|
||||
ExInitializeFastMutex(&CcPfGlobals.CompletedTracesLock);
|
||||
|
||||
/* FIXME: Setup the rest of the prefetecher */
|
||||
}
|
||||
|
||||
BOOLEAN NTAPI
|
||||
CcInitializeCacheManager (VOID)
|
||||
{
|
||||
CcInitView ();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
LARGE_INTEGER NTAPI
|
||||
CcGetFlushedValidData (IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
|
||||
IN BOOLEAN BcbListHeld)
|
||||
{
|
||||
LARGE_INTEGER i;
|
||||
|
||||
UNIMPLEMENTED;
|
||||
|
||||
i.QuadPart = 0;
|
||||
return i;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
PVOID NTAPI
|
||||
CcRemapBcb (IN PVOID Bcb)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcScheduleReadAhead (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER FileOffset,
|
||||
IN ULONG Length)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcSetAdditionalCacheAttributes (IN PFILE_OBJECT FileObject,
|
||||
IN BOOLEAN DisableReadAhead,
|
||||
IN BOOLEAN DisableWriteBehind)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcSetBcbOwnerPointer (IN PVOID Bcb,
|
||||
IN PVOID Owner)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcSetDirtyPageThreshold (IN PFILE_OBJECT FileObject,
|
||||
IN ULONG DirtyPageThreshold)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcSetReadAheadGranularity (IN PFILE_OBJECT FileObject,
|
||||
IN ULONG Granularity)
|
||||
{
|
||||
DPRINT("CcSetReadAheadGranularity(0x%p 0x%x)\n", FileObject, Granularity);
|
||||
}
|
616
cc/copy.c
616
cc/copy.c
@@ -1,616 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: ntoskrnl/cc/copy.c
|
||||
* PURPOSE: Implements cache managers copy interface
|
||||
*
|
||||
* PROGRAMMERS:
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include <ntoskrnl.h>
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* GLOBALS *******************************************************************/
|
||||
|
||||
static PFN_TYPE CcZeroPage = 0;
|
||||
|
||||
#define MAX_ZERO_LENGTH (256 * 1024)
|
||||
#define MAX_RW_LENGTH (256 * 1024)
|
||||
|
||||
#if defined(__GNUC__)
|
||||
/* void * alloca(size_t size); */
|
||||
#elif defined(_MSC_VER)
|
||||
void *_alloca (size_t size);
|
||||
#else
|
||||
#error Unknown compiler for alloca intrinsic stack allocation "function"
|
||||
#endif
|
||||
|
||||
ULONG CcFastMdlReadWait;
|
||||
ULONG CcFastMdlReadNotPossible;
|
||||
ULONG CcFastReadNotPossible;
|
||||
ULONG CcFastReadWait;
|
||||
ULONG CcFastReadNoWait;
|
||||
ULONG CcFastReadResourceMiss;
|
||||
|
||||
extern FAST_MUTEX CcCacheViewLock;
|
||||
extern LIST_ENTRY CcFreeCacheViewListHead;
|
||||
extern LIST_ENTRY CcInUseCacheViewListHead;
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
NTSTATUS NTAPI MmMapViewInSystemCache (PCACHE_VIEW);
|
||||
|
||||
|
||||
VOID NTAPI
|
||||
CcInitCacheZeroPage (VOID)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
|
||||
Status = MmRequestPageMemoryConsumer (MC_NPPOOL, TRUE, &CcZeroPage);
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
DbgPrint ("Can't allocate CcZeroPage.\n");
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
Status = MiZeroPage (CcZeroPage);
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
DbgPrint ("Can't zero out CcZeroPage.\n");
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
BOOLEAN NTAPI
|
||||
CcCanIWrite (IN PFILE_OBJECT FileObject,
|
||||
IN ULONG BytesToWrite,
|
||||
IN BOOLEAN Wait,
|
||||
IN BOOLEAN Retrying)
|
||||
{
|
||||
/* Our cache is always ready for writes */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN NTAPI
|
||||
CcCopyRead (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER FileOffset,
|
||||
IN ULONG Length,
|
||||
IN BOOLEAN Wait,
|
||||
OUT PVOID Buffer,
|
||||
OUT PIO_STATUS_BLOCK IoStatus)
|
||||
{
|
||||
|
||||
ULONG Index;
|
||||
PBCB Bcb;
|
||||
LARGE_INTEGER Offset;
|
||||
PLIST_ENTRY entry;
|
||||
PCACHE_VIEW current = NULL;
|
||||
ULONG CurrentLength;
|
||||
NTSTATUS Status;
|
||||
|
||||
DPRINT ("CcCopyRead(FileObject 0x%p, FileOffset %I64x, "
|
||||
"Length %d, Wait %d, Buffer 0x%p, IoStatus 0x%p)\n",
|
||||
FileObject, FileOffset->QuadPart, Length, Wait, Buffer, IoStatus);
|
||||
|
||||
|
||||
if (!Wait)
|
||||
{
|
||||
IoStatus->Information = 0;
|
||||
IoStatus->Status = STATUS_UNSUCCESSFUL;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
IoStatus->Information = Length;
|
||||
IoStatus->Status = STATUS_SUCCESS;
|
||||
|
||||
Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
|
||||
|
||||
if (FileOffset->QuadPart + Length > Bcb->FileSizes.FileSize.QuadPart)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
if (Bcb->FileSizes.AllocationSize.QuadPart > sizeof (Bcb->CacheView) / sizeof (Bcb->CacheView[0]) * CACHE_VIEW_SIZE)
|
||||
{
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
Offset = *FileOffset;
|
||||
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
while (Length)
|
||||
{
|
||||
Index = Offset.QuadPart / CACHE_VIEW_SIZE;
|
||||
if (Bcb->CacheView[Index] && Bcb->CacheView[Index]->Bcb == Bcb)
|
||||
{
|
||||
if (Bcb->CacheView[Index]->RefCount == 0)
|
||||
{
|
||||
RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
|
||||
InsertHeadList (&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
|
||||
}
|
||||
Bcb->CacheView[Index]->RefCount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IsListEmpty (&CcFreeCacheViewListHead))
|
||||
{
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
entry = CcFreeCacheViewListHead.Flink;
|
||||
while (entry != &CcFreeCacheViewListHead)
|
||||
{
|
||||
current = CONTAINING_RECORD (entry, CACHE_VIEW, ListEntry);
|
||||
entry = entry->Flink;
|
||||
if (current->Bcb == NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (entry == &CcFreeCacheViewListHead)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
if (current->Bcb)
|
||||
{
|
||||
current->Bcb->CacheView[current->SectionData.ViewOffset / CACHE_VIEW_SIZE] = NULL;
|
||||
}
|
||||
Bcb->CacheView[Index] = current;
|
||||
|
||||
|
||||
if (Bcb->CacheView[Index]->Bcb != NULL)
|
||||
{
|
||||
DPRINT1 ("%x\n", Bcb->CacheView[Index]->Bcb);
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
Bcb->CacheView[Index]->RefCount = 1;
|
||||
Bcb->CacheView[Index]->Bcb = Bcb;
|
||||
Bcb->CacheView[Index]->SectionData.ViewOffset = Index * CACHE_VIEW_SIZE;
|
||||
Bcb->CacheView[Index]->SectionData.Section = Bcb->Section;
|
||||
Bcb->CacheView[Index]->SectionData.Segment = Bcb->Section->Segment;
|
||||
|
||||
RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
|
||||
InsertHeadList (&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
|
||||
|
||||
Status = MmMapViewInSystemCache (Bcb->CacheView[Index]);
|
||||
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
}
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
|
||||
if (Offset.QuadPart % CACHE_VIEW_SIZE)
|
||||
{
|
||||
if (Length > CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE)
|
||||
{
|
||||
CurrentLength = CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentLength = Length;
|
||||
}
|
||||
memcpy (Buffer,
|
||||
(PVOID) ((ULONG_PTR) Bcb->CacheView[Index]->BaseAddress + Offset.u.LowPart % CACHE_VIEW_SIZE), CurrentLength);
|
||||
Buffer = (PVOID) ((ULONG_PTR) Buffer + CurrentLength);
|
||||
Length -= CurrentLength;
|
||||
Offset.QuadPart += CurrentLength;
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentLength = Length > CACHE_VIEW_SIZE ? CACHE_VIEW_SIZE : Length;
|
||||
memcpy (Buffer, Bcb->CacheView[Index]->BaseAddress, CurrentLength);
|
||||
Buffer = (PVOID) ((ULONG_PTR) Buffer + CurrentLength);
|
||||
Length -= CurrentLength;
|
||||
Offset.QuadPart += CurrentLength;
|
||||
}
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
|
||||
Bcb->CacheView[Index]->RefCount--;
|
||||
if (Bcb->CacheView[Index]->RefCount == 0)
|
||||
{
|
||||
RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
|
||||
InsertHeadList (&CcFreeCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
|
||||
}
|
||||
}
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
BOOLEAN NTAPI
|
||||
CcCopyWrite (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER FileOffset,
|
||||
IN ULONG Length,
|
||||
IN BOOLEAN Wait,
|
||||
IN PVOID Buffer)
|
||||
{
|
||||
|
||||
ULONG Index;
|
||||
PBCB Bcb;
|
||||
LARGE_INTEGER Offset;
|
||||
PLIST_ENTRY entry;
|
||||
PCACHE_VIEW current = NULL;
|
||||
ULONG CurrentLength;
|
||||
NTSTATUS Status;
|
||||
|
||||
DPRINT ("CcCopyWrite(FileObject 0x%p, FileOffset %I64x, "
|
||||
"Length %d, Wait %d, Buffer 0x%p)\n", FileObject, FileOffset->QuadPart, Length, Wait, Buffer);
|
||||
|
||||
if (!Wait)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
|
||||
|
||||
if (FileOffset->QuadPart + Length > Bcb->FileSizes.FileSize.QuadPart)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
if (Bcb->FileSizes.AllocationSize.QuadPart > sizeof (Bcb->CacheView) / sizeof (Bcb->CacheView[0]) * CACHE_VIEW_SIZE)
|
||||
{
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
Offset = *FileOffset;
|
||||
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
while (Length)
|
||||
{
|
||||
Index = Offset.QuadPart / CACHE_VIEW_SIZE;
|
||||
if (Bcb->CacheView[Index] && Bcb->CacheView[Index]->Bcb == Bcb)
|
||||
{
|
||||
if (Bcb->CacheView[Index]->RefCount == 0)
|
||||
{
|
||||
RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
|
||||
InsertHeadList (&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
|
||||
}
|
||||
Bcb->CacheView[Index]->RefCount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IsListEmpty (&CcFreeCacheViewListHead))
|
||||
{
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
entry = CcFreeCacheViewListHead.Flink;
|
||||
while (entry != &CcFreeCacheViewListHead)
|
||||
{
|
||||
current = CONTAINING_RECORD (entry, CACHE_VIEW, ListEntry);
|
||||
entry = entry->Flink;
|
||||
if (current->Bcb == NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (entry == &CcFreeCacheViewListHead)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
if (current->Bcb)
|
||||
{
|
||||
current->Bcb->CacheView[current->SectionData.ViewOffset / CACHE_VIEW_SIZE] = NULL;
|
||||
}
|
||||
|
||||
Bcb->CacheView[Index] = current;
|
||||
|
||||
if (Bcb->CacheView[Index]->Bcb != NULL)
|
||||
{
|
||||
DPRINT1 ("%x\n", Bcb->CacheView[Index]->Bcb);
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
Bcb->CacheView[Index]->RefCount = 1;
|
||||
Bcb->CacheView[Index]->Bcb = Bcb;
|
||||
Bcb->CacheView[Index]->SectionData.ViewOffset = Index * CACHE_VIEW_SIZE;
|
||||
Bcb->CacheView[Index]->SectionData.Section = Bcb->Section;
|
||||
Bcb->CacheView[Index]->SectionData.Segment = Bcb->Section->Segment;
|
||||
|
||||
RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
|
||||
InsertHeadList (&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
|
||||
|
||||
Status = MmMapViewInSystemCache (Bcb->CacheView[Index]);
|
||||
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
}
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
|
||||
if (Offset.QuadPart % CACHE_VIEW_SIZE)
|
||||
{
|
||||
if (Length > CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE)
|
||||
{
|
||||
CurrentLength = CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentLength = Length;
|
||||
}
|
||||
memcpy ((PVOID) ((ULONG_PTR) Bcb->CacheView[Index]->BaseAddress + Offset.u.LowPart % CACHE_VIEW_SIZE),
|
||||
Buffer, CurrentLength);
|
||||
Buffer = (PVOID) ((ULONG_PTR) Buffer + CurrentLength);
|
||||
Length -= CurrentLength;
|
||||
Offset.QuadPart += CurrentLength;
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentLength = Length > CACHE_VIEW_SIZE ? CACHE_VIEW_SIZE : Length;
|
||||
memcpy (Bcb->CacheView[Index]->BaseAddress, Buffer, CurrentLength);
|
||||
Buffer = (PVOID) ((ULONG_PTR) Buffer + CurrentLength);
|
||||
Length -= CurrentLength;
|
||||
Offset.QuadPart += CurrentLength;
|
||||
}
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
|
||||
Bcb->CacheView[Index]->RefCount--;
|
||||
if (Bcb->CacheView[Index]->RefCount == 0)
|
||||
{
|
||||
RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
|
||||
InsertHeadList (&CcFreeCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
|
||||
}
|
||||
}
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcDeferWrite (IN PFILE_OBJECT FileObject,
|
||||
IN PCC_POST_DEFERRED_WRITE PostRoutine,
|
||||
IN PVOID Context1,
|
||||
IN PVOID Context2,
|
||||
IN ULONG BytesToWrite,
|
||||
IN BOOLEAN Retrying)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcFastCopyRead (IN PFILE_OBJECT FileObject,
|
||||
IN ULONG FileOffset,
|
||||
IN ULONG Length,
|
||||
IN ULONG PageCount,
|
||||
OUT PVOID Buffer,
|
||||
OUT PIO_STATUS_BLOCK IoStatus)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcFastCopyWrite (IN PFILE_OBJECT FileObject,
|
||||
IN ULONG FileOffset,
|
||||
IN ULONG Length,
|
||||
IN PVOID Buffer)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
NTSTATUS NTAPI
|
||||
CcWaitForCurrentLazyWriterActivity (VOID)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
BOOLEAN NTAPI
|
||||
CcZeroData (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER StartOffset,
|
||||
IN PLARGE_INTEGER EndOffset,
|
||||
IN BOOLEAN Wait)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
LARGE_INTEGER WriteOffset;
|
||||
ULONG Length;
|
||||
ULONG CurrentLength;
|
||||
PMDL Mdl;
|
||||
ULONG i;
|
||||
IO_STATUS_BLOCK Iosb;
|
||||
KEVENT Event;
|
||||
LARGE_INTEGER Offset;
|
||||
ULONG Index;
|
||||
|
||||
DPRINT ("CcZeroData(FileObject 0x%p, StartOffset %I64x, EndOffset %I64x, "
|
||||
"Wait %d)\n", FileObject, StartOffset->QuadPart, EndOffset->QuadPart, Wait);
|
||||
|
||||
Length = EndOffset->u.LowPart - StartOffset->u.LowPart;
|
||||
WriteOffset.QuadPart = StartOffset->QuadPart;
|
||||
|
||||
if (FileObject->SectionObjectPointer->SharedCacheMap == NULL)
|
||||
{
|
||||
/* File is not cached */
|
||||
|
||||
Mdl = alloca (MmSizeOfMdl (NULL, MAX_ZERO_LENGTH));
|
||||
|
||||
while (Length > 0)
|
||||
{
|
||||
if (Length + WriteOffset.u.LowPart % PAGE_SIZE > MAX_ZERO_LENGTH)
|
||||
{
|
||||
CurrentLength = MAX_ZERO_LENGTH - WriteOffset.u.LowPart % PAGE_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentLength = Length;
|
||||
}
|
||||
MmInitializeMdl (Mdl, (PVOID) WriteOffset.u.LowPart, CurrentLength);
|
||||
Mdl->MdlFlags |= (MDL_PAGES_LOCKED | MDL_IO_PAGE_READ);
|
||||
for (i = 0; i < ((Mdl->Size - sizeof (MDL)) / sizeof (ULONG)); i++)
|
||||
{
|
||||
((PPFN_TYPE) (Mdl + 1))[i] = CcZeroPage;
|
||||
}
|
||||
KeInitializeEvent (&Event, NotificationEvent, FALSE);
|
||||
Status = IoSynchronousPageWrite (FileObject, Mdl, &WriteOffset, &Event, &Iosb);
|
||||
if (Status == STATUS_PENDING)
|
||||
{
|
||||
KeWaitForSingleObject (&Event, Executive, KernelMode, FALSE, NULL);
|
||||
Status = Iosb.Status;
|
||||
}
|
||||
MmUnmapLockedPages (Mdl->MappedSystemVa, Mdl);
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
return (FALSE);
|
||||
}
|
||||
WriteOffset.QuadPart += CurrentLength;
|
||||
Length -= CurrentLength;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* File is cached */
|
||||
PBCB Bcb;
|
||||
PCACHE_VIEW current = NULL;
|
||||
PLIST_ENTRY entry;
|
||||
|
||||
Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
|
||||
|
||||
if (!Wait)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (EndOffset->QuadPart > Bcb->FileSizes.FileSize.QuadPart)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
if (Bcb->FileSizes.AllocationSize.QuadPart > sizeof (Bcb->CacheView) / sizeof (Bcb->CacheView[0]) * CACHE_VIEW_SIZE)
|
||||
{
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
Offset = *StartOffset;
|
||||
Length = EndOffset->QuadPart - StartOffset->QuadPart;
|
||||
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
while (Length)
|
||||
{
|
||||
Index = Offset.QuadPart / CACHE_VIEW_SIZE;
|
||||
if (Bcb->CacheView[Index] && Bcb->CacheView[Index]->Bcb == Bcb)
|
||||
{
|
||||
if (Bcb->CacheView[Index]->RefCount == 0)
|
||||
{
|
||||
RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
|
||||
InsertHeadList (&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
|
||||
}
|
||||
Bcb->CacheView[Index]->RefCount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IsListEmpty (&CcFreeCacheViewListHead))
|
||||
{
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
entry = CcFreeCacheViewListHead.Flink;
|
||||
while (entry != &CcFreeCacheViewListHead)
|
||||
{
|
||||
current = CONTAINING_RECORD (entry, CACHE_VIEW, ListEntry);
|
||||
entry = entry->Flink;
|
||||
if (current->Bcb == NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (entry == &CcFreeCacheViewListHead)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
Bcb->CacheView[Index] = current;
|
||||
|
||||
if (Bcb->CacheView[Index]->Bcb != NULL)
|
||||
{
|
||||
DPRINT1 ("%x\n", Bcb->CacheView[Index]->Bcb);
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
Bcb->CacheView[Index]->RefCount = 1;
|
||||
Bcb->CacheView[Index]->Bcb = Bcb;
|
||||
Bcb->CacheView[Index]->SectionData.ViewOffset = Index * CACHE_VIEW_SIZE;
|
||||
Bcb->CacheView[Index]->SectionData.Section = Bcb->Section;
|
||||
Bcb->CacheView[Index]->SectionData.Segment = Bcb->Section->Segment;
|
||||
|
||||
RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
|
||||
InsertHeadList (&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
|
||||
|
||||
Status = MmMapViewInSystemCache (Bcb->CacheView[Index]);
|
||||
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
}
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
|
||||
if (Offset.QuadPart % CACHE_VIEW_SIZE)
|
||||
{
|
||||
if (Length > CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE)
|
||||
{
|
||||
CurrentLength = CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentLength = Length;
|
||||
}
|
||||
memset ((PVOID) ((ULONG_PTR) Bcb->CacheView[Index]->BaseAddress + Offset.u.LowPart % CACHE_VIEW_SIZE), 0,
|
||||
CurrentLength);
|
||||
Length -= CurrentLength;
|
||||
Offset.QuadPart += CurrentLength;
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentLength = Length > CACHE_VIEW_SIZE ? CACHE_VIEW_SIZE : Length;
|
||||
memset (Bcb->CacheView[Index]->BaseAddress, 0, CurrentLength);
|
||||
Length -= CurrentLength;
|
||||
Offset.QuadPart += CurrentLength;
|
||||
}
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
|
||||
Bcb->CacheView[Index]->RefCount--;
|
||||
if (Bcb->CacheView[Index]->RefCount == 0)
|
||||
{
|
||||
RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
|
||||
InsertHeadList (&CcFreeCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
|
||||
}
|
||||
}
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
}
|
||||
return (TRUE);
|
||||
}
|
189
cc/fs.c
189
cc/fs.c
@@ -1,189 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: ntoskrnl/cc/fs.c
|
||||
* PURPOSE: Implements cache managers functions useful for File Systems
|
||||
*
|
||||
* PROGRAMMERS: Alex Ionescu
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include <ntoskrnl.h>
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
|
||||
#ifndef ROUND_DOWN
|
||||
#define ROUND_DOWN(X,Y) ((X) & ~((Y) - 1))
|
||||
#endif
|
||||
|
||||
/* GLOBALS *****************************************************************/
|
||||
|
||||
extern PCACHE_VIEW CcCacheViewArray;
|
||||
extern ULONG CcCacheViewArrayCount;
|
||||
extern FAST_MUTEX CcCacheViewLock;
|
||||
|
||||
NTSTATUS NTAPI MmUnmapViewInSystemCache (PCACHE_VIEW);
|
||||
|
||||
NTSTATUS NTAPI MmChangeSectionSize (PSECTION_OBJECT Section, PLARGE_INTEGER NewMaxSize);
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
LARGE_INTEGER NTAPI
|
||||
CcGetDirtyPages (IN PVOID LogHandle,
|
||||
IN PDIRTY_PAGE_ROUTINE DirtyPageRoutine,
|
||||
IN PVOID Context1,
|
||||
IN PVOID Context2)
|
||||
{
|
||||
LARGE_INTEGER i;
|
||||
UNIMPLEMENTED;
|
||||
i.QuadPart = 0;
|
||||
return i;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
PFILE_OBJECT NTAPI
|
||||
CcGetFileObjectFromBcb (IN PVOID Bcb)
|
||||
{
|
||||
PINTERNAL_BCB iBcb = (PINTERNAL_BCB) Bcb;
|
||||
return iBcb->Bcb->FileObject;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
LARGE_INTEGER NTAPI
|
||||
CcGetLsnForFileObject (IN PFILE_OBJECT FileObject,
|
||||
OUT PLARGE_INTEGER OldestLsn OPTIONAL)
|
||||
{
|
||||
LARGE_INTEGER i;
|
||||
UNIMPLEMENTED;
|
||||
i.QuadPart = 0;
|
||||
return i;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
BOOLEAN NTAPI
|
||||
CcIsThereDirtyData (IN PVPB Vpb)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
BOOLEAN NTAPI
|
||||
CcPurgeCacheSection (IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
|
||||
IN PLARGE_INTEGER FileOffset OPTIONAL,
|
||||
IN ULONG Length,
|
||||
IN BOOLEAN UninitializeCacheMaps)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcSetFileSizes (IN PFILE_OBJECT FileObject,
|
||||
IN PCC_FILE_SIZES FileSizes)
|
||||
{
|
||||
PBCB Bcb;
|
||||
NTSTATUS Status;
|
||||
ULONG i;
|
||||
|
||||
DPRINT ("CcSetFileSizes(FileObject 0x%p, FileSizes 0x%p)\n", FileObject, FileSizes);
|
||||
DPRINT ("AllocationSize %d, FileSize %d, ValidDataLength %d\n",
|
||||
(ULONG) FileSizes->AllocationSize.QuadPart,
|
||||
(ULONG) FileSizes->FileSize.QuadPart, (ULONG) FileSizes->ValidDataLength.QuadPart);
|
||||
DPRINT ("%wZ\n", &FileObject->FileName);
|
||||
|
||||
Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
|
||||
if (Bcb == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
DPRINT ("AllocationSize %d, FileSize %d, ValidDataLength %d\n",
|
||||
(ULONG) Bcb->FileSizes.AllocationSize.QuadPart,
|
||||
(ULONG) Bcb->FileSizes.FileSize.QuadPart, (ULONG) Bcb->FileSizes.ValidDataLength.QuadPart);
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
|
||||
DPRINT ("%d\n", Bcb->FileSizes.FileSize.u.LowPart);
|
||||
|
||||
for (i = ROUND_DOWN (FileSizes->AllocationSize.QuadPart, CACHE_VIEW_SIZE) / CACHE_VIEW_SIZE;
|
||||
i < ROUND_UP (Bcb->FileSizes.AllocationSize.QuadPart, CACHE_VIEW_SIZE) / CACHE_VIEW_SIZE; i++)
|
||||
{
|
||||
if (Bcb->CacheView[i] != NULL)
|
||||
{
|
||||
if (Bcb->CacheView[i]->Bcb != Bcb)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
if (Bcb->CacheView[i]->RefCount > 0)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
Status = MmUnmapViewInSystemCache (Bcb->CacheView[i]);
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
Bcb->CacheView[i]->RefCount = 0;
|
||||
Bcb->CacheView[i]->Bcb = NULL;
|
||||
Bcb->CacheView[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
for (i = 0; i < CcCacheViewArrayCount; i++)
|
||||
{
|
||||
if (CcCacheViewArray[i].Bcb == Bcb)
|
||||
{
|
||||
if (PAGE_ROUND_UP (FileSizes->AllocationSize.QuadPart) <= CcCacheViewArray[i].SectionData.ViewOffset ||
|
||||
(PAGE_ROUND_UP (FileSizes->AllocationSize.QuadPart) > CcCacheViewArray[i].SectionData.ViewOffset &&
|
||||
PAGE_ROUND_UP (FileSizes->AllocationSize.QuadPart) <=
|
||||
CcCacheViewArray[i].SectionData.ViewOffset + CACHE_VIEW_SIZE))
|
||||
|
||||
{
|
||||
if (CcCacheViewArray[i].RefCount > 0)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
Status = MmUnmapViewInSystemCache (&CcCacheViewArray[i]);
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
CcCacheViewArray[i].RefCount = 0;
|
||||
CcCacheViewArray[i].Bcb = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Status = MmChangeSectionSize ((PSECTION_OBJECT)Bcb->Section, &FileSizes->FileSize);
|
||||
Bcb->FileSizes = *FileSizes;
|
||||
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcSetLogHandleForFile (IN PFILE_OBJECT FileObject,
|
||||
IN PVOID LogHandle,
|
||||
IN PFLUSH_TO_LSN FlushToLsnRoutine)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
169
cc/mdl.c
169
cc/mdl.c
@@ -1,169 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: ntoskrnl/cc/fs.c
|
||||
* PURPOSE: Implements MDL Cache Manager Functions
|
||||
*
|
||||
* PROGRAMMERS: Alex Ionescu
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include <ntoskrnl.h>
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcMdlRead (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER FileOffset,
|
||||
IN ULONG Length,
|
||||
OUT PMDL * MdlChain,
|
||||
OUT PIO_STATUS_BLOCK IoStatus)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* NAME INTERNAL
|
||||
* CcMdlReadCompleteDev@8
|
||||
*
|
||||
* DESCRIPTION
|
||||
*
|
||||
* ARGUMENTS
|
||||
* MdlChain
|
||||
* DeviceObject
|
||||
*
|
||||
* RETURN VALUE
|
||||
* None.
|
||||
*
|
||||
* NOTE
|
||||
* Used by CcMdlReadComplete@8 and FsRtl
|
||||
*
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcMdlReadCompleteDev (IN PMDL MdlChain,
|
||||
IN PFILE_OBJECT FileObject)
|
||||
{
|
||||
PMDL Mdl;
|
||||
|
||||
/* Free MDLs */
|
||||
while ((Mdl = MdlChain))
|
||||
{
|
||||
MdlChain = Mdl->Next;
|
||||
MmUnlockPages (Mdl);
|
||||
IoFreeMdl (Mdl);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* NAME EXPORTED
|
||||
* CcMdlReadComplete@8
|
||||
*
|
||||
* DESCRIPTION
|
||||
*
|
||||
* ARGUMENTS
|
||||
*
|
||||
* RETURN VALUE
|
||||
* None.
|
||||
*
|
||||
* NOTE
|
||||
* From Bo Branten's ntifs.h v13.
|
||||
*
|
||||
* @implemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcMdlReadComplete (IN PFILE_OBJECT FileObject,
|
||||
IN PMDL MdlChain)
|
||||
{
|
||||
PDEVICE_OBJECT DeviceObject = NULL;
|
||||
PFAST_IO_DISPATCH FastDispatch;
|
||||
|
||||
/* Get Fast Dispatch Data */
|
||||
DeviceObject = IoGetRelatedDeviceObject (FileObject);
|
||||
FastDispatch = DeviceObject->DriverObject->FastIoDispatch;
|
||||
|
||||
/* Check if we support Fast Calls, and check this one */
|
||||
if (FastDispatch && FastDispatch->MdlReadComplete)
|
||||
{
|
||||
/* Use the fast path */
|
||||
FastDispatch->MdlReadComplete (FileObject, MdlChain, DeviceObject);
|
||||
}
|
||||
|
||||
/* Use slow path */
|
||||
CcMdlReadComplete2 (MdlChain, FileObject);
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcMdlWriteComplete (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER FileOffset,
|
||||
IN PMDL MdlChain)
|
||||
{
|
||||
PDEVICE_OBJECT DeviceObject = NULL;
|
||||
PFAST_IO_DISPATCH FastDispatch;
|
||||
|
||||
/* Get Fast Dispatch Data */
|
||||
DeviceObject = IoGetRelatedDeviceObject (FileObject);
|
||||
FastDispatch = DeviceObject->DriverObject->FastIoDispatch;
|
||||
|
||||
/* Check if we support Fast Calls, and check this one */
|
||||
if (FastDispatch && FastDispatch->MdlWriteComplete)
|
||||
{
|
||||
/* Use the fast path */
|
||||
FastDispatch->MdlWriteComplete (FileObject, FileOffset, MdlChain, DeviceObject);
|
||||
}
|
||||
|
||||
/* Use slow path */
|
||||
CcMdlWriteComplete2 (FileObject, FileOffset, MdlChain);
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcMdlReadComplete2 (IN PMDL MemoryDescriptorList,
|
||||
IN PFILE_OBJECT FileObject)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcMdlWriteComplete2 (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER FileOffset,
|
||||
IN PMDL MdlChain)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcMdlWriteAbort (IN PFILE_OBJECT FileObject,
|
||||
IN PMDL MdlChain)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcPrepareMdlWrite (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER FileOffset,
|
||||
IN ULONG Length,
|
||||
OUT PMDL * MdlChain,
|
||||
OUT PIO_STATUS_BLOCK IoStatus)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
313
cc/pin.c
313
cc/pin.c
@@ -1,313 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: ntoskrnl/cc/pin.c
|
||||
* PURPOSE: Implements cache managers pinning interface
|
||||
*
|
||||
* PROGRAMMERS:
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include <ntoskrnl.h>
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* GLOBALS *******************************************************************/
|
||||
|
||||
extern NPAGED_LOOKASIDE_LIST iBcbLookasideList;
|
||||
|
||||
extern FAST_MUTEX CcCacheViewLock;
|
||||
extern LIST_ENTRY CcFreeCacheViewListHead;
|
||||
extern LIST_ENTRY CcInUseCacheViewListHead;
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
NTSTATUS NTAPI MmMapViewInSystemCache (PCACHE_VIEW);
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
BOOLEAN NTAPI
|
||||
CcMapData (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER FileOffset,
|
||||
IN ULONG Length,
|
||||
IN ULONG Flags,
|
||||
OUT PVOID * piBcb,
|
||||
OUT PVOID * pBuffer)
|
||||
{
|
||||
PINTERNAL_BCB iBcb;
|
||||
PBCB Bcb;
|
||||
ULONG Index;
|
||||
NTSTATUS Status;
|
||||
PLIST_ENTRY entry;
|
||||
PCACHE_VIEW current = NULL;
|
||||
|
||||
DPRINT ("CcMapData(FileObject 0x%p, FileOffset %I64x, Length %d,"
|
||||
" pBcb 0x%p, pBuffer 0x%p)\n", FileObject, FileOffset->QuadPart, Length, piBcb, pBuffer);
|
||||
|
||||
ASSERT (FileObject);
|
||||
ASSERT (FileObject->SectionObjectPointer);
|
||||
ASSERT (FileObject->SectionObjectPointer->SharedCacheMap);
|
||||
ASSERT (FileOffset);
|
||||
ASSERT (piBcb);
|
||||
ASSERT (pBuffer);
|
||||
//ASSERT (Flags & MAP_WAIT);
|
||||
|
||||
if (!(Flags & MAP_WAIT))
|
||||
{
|
||||
DPRINT1("Reading without MAP_WAIT flag!\n");
|
||||
//*piBcb = NULL;
|
||||
//*pBuffer = NULL;
|
||||
//return FALSE;
|
||||
}
|
||||
|
||||
Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
|
||||
|
||||
if (FileOffset->QuadPart + Length > Bcb->FileSizes.AllocationSize.QuadPart)
|
||||
{
|
||||
DPRINT ("%d %I64d %I64d\n", Length, FileOffset->QuadPart + Length, Bcb->FileSizes.AllocationSize.QuadPart);
|
||||
// KEBUGCHECK(0);
|
||||
}
|
||||
|
||||
if (FileOffset->QuadPart + Length - ROUND_DOWN (FileOffset->QuadPart, CACHE_VIEW_SIZE) > CACHE_VIEW_SIZE)
|
||||
{
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (Bcb->FileSizes.AllocationSize.QuadPart > sizeof (Bcb->CacheView) / sizeof (Bcb->CacheView[0]) * CACHE_VIEW_SIZE)
|
||||
{
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
|
||||
Index = FileOffset->QuadPart / CACHE_VIEW_SIZE;
|
||||
if (Bcb->CacheView[Index] && Bcb->CacheView[Index]->Bcb == Bcb)
|
||||
{
|
||||
if (Bcb->CacheView[Index]->RefCount == 0)
|
||||
{
|
||||
RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
|
||||
InsertHeadList (&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
|
||||
}
|
||||
Bcb->CacheView[Index]->RefCount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IsListEmpty (&CcFreeCacheViewListHead))
|
||||
{
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
entry = CcFreeCacheViewListHead.Flink;
|
||||
while (entry != &CcFreeCacheViewListHead)
|
||||
{
|
||||
current = CONTAINING_RECORD (entry, CACHE_VIEW, ListEntry);
|
||||
entry = entry->Flink;
|
||||
if (current->Bcb == NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (entry == &CcFreeCacheViewListHead)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
Bcb->CacheView[Index] = current;
|
||||
|
||||
if (Bcb->CacheView[Index]->Bcb != NULL)
|
||||
{
|
||||
DPRINT1 ("%x\n", Bcb->CacheView[Index]->Bcb);
|
||||
/* not implemented */
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
Bcb->CacheView[Index]->RefCount = 1;
|
||||
Bcb->CacheView[Index]->Bcb = Bcb;
|
||||
Bcb->CacheView[Index]->SectionData.ViewOffset = Index * CACHE_VIEW_SIZE;
|
||||
Bcb->CacheView[Index]->SectionData.Section = Bcb->Section;
|
||||
Bcb->CacheView[Index]->SectionData.Segment = Bcb->Section->Segment;
|
||||
|
||||
RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
|
||||
InsertHeadList (&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
|
||||
|
||||
Status = MmMapViewInSystemCache (Bcb->CacheView[Index]);
|
||||
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
}
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
|
||||
iBcb = ExAllocateFromNPagedLookasideList (&iBcbLookasideList);
|
||||
if (iBcb == NULL)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
memset (iBcb, 0, sizeof (INTERNAL_BCB));
|
||||
|
||||
iBcb->Bcb = Bcb;
|
||||
iBcb->Index = Index;
|
||||
|
||||
*piBcb = iBcb;
|
||||
*pBuffer = (PVOID) ((ULONG_PTR) Bcb->CacheView[Index]->BaseAddress +
|
||||
(ULONG_PTR) (FileOffset->QuadPart - Bcb->CacheView[Index]->SectionData.ViewOffset));
|
||||
|
||||
DPRINT ("CcMapData() done\n");
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
BOOLEAN NTAPI
|
||||
CcPinMappedData (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER FileOffset,
|
||||
IN ULONG Length,
|
||||
IN ULONG Flags,
|
||||
OUT PVOID * Bcb)
|
||||
{
|
||||
/* no-op for current implementation. */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
BOOLEAN NTAPI
|
||||
CcPinRead (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER FileOffset,
|
||||
IN ULONG Length,
|
||||
IN ULONG Flags,
|
||||
OUT PVOID * Bcb,
|
||||
OUT PVOID * Buffer)
|
||||
{
|
||||
if (CcMapData (FileObject, FileOffset, Length, Flags, Bcb, Buffer))
|
||||
{
|
||||
if (CcPinMappedData (FileObject, FileOffset, Length, Flags, Bcb))
|
||||
return TRUE;
|
||||
else
|
||||
CcUnpinData (Bcb);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
BOOLEAN NTAPI
|
||||
CcPreparePinWrite (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER FileOffset,
|
||||
IN ULONG Length,
|
||||
IN BOOLEAN Zero,
|
||||
IN ULONG Flags,
|
||||
OUT PVOID * Bcb,
|
||||
OUT PVOID * Buffer)
|
||||
{
|
||||
/*
|
||||
* FIXME: This is function is similar to CcPinRead, but doesn't
|
||||
* read the data if they're not present. Instead it should just
|
||||
* prepare the cache segments and zero them out if Zero == TRUE.
|
||||
*
|
||||
* For now calling CcPinRead is better than returning error or
|
||||
* just having UNIMPLEMENTED here.
|
||||
*/
|
||||
return CcPinRead (FileObject, FileOffset, Length, Flags, Bcb, Buffer);
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcSetDirtyPinnedData (IN PVOID Bcb,
|
||||
IN PLARGE_INTEGER Lsn)
|
||||
{
|
||||
// PINTERNAL_BCB iBcb = Bcb;
|
||||
// iBcb->Dirty = TRUE;
|
||||
// UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcUnpinData (IN PVOID _iBcb)
|
||||
{
|
||||
PINTERNAL_BCB iBcb = _iBcb;
|
||||
|
||||
DPRINT ("CcUnpinData(%x)\n", _iBcb);
|
||||
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
iBcb->Bcb->CacheView[iBcb->Index]->RefCount--;
|
||||
if (iBcb->Bcb->CacheView[iBcb->Index]->RefCount == 0)
|
||||
{
|
||||
RemoveEntryList (&iBcb->Bcb->CacheView[iBcb->Index]->ListEntry);
|
||||
InsertHeadList (&CcFreeCacheViewListHead, &iBcb->Bcb->CacheView[iBcb->Index]->ListEntry);
|
||||
}
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
ExFreeToNPagedLookasideList (&iBcbLookasideList, iBcb);
|
||||
|
||||
DPRINT ("CcUnpinData done\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcUnpinDataForThread (IN PVOID Bcb,
|
||||
IN ERESOURCE_THREAD ResourceThreadId)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcRepinBcb (IN PVOID Bcb)
|
||||
{
|
||||
#if 0
|
||||
PINTERNAL_BCB iBcb = Bcb;
|
||||
// iBcb->RefCount++;
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
iBcb->Bcb->CacheView[iBcb->Index]->RefCount++;
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcUnpinRepinnedBcb (IN PVOID Bcb,
|
||||
IN BOOLEAN WriteThrough,
|
||||
OUT PIO_STATUS_BLOCK IoStatus)
|
||||
{
|
||||
#if 0
|
||||
PINTERNAL_BCB iBcb = Bcb;
|
||||
|
||||
DPRINT ("CcUnpinRepinnedBcb(%x)\n", Bcb);
|
||||
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
iBcb->Bcb->CacheView[iBcb->Index]->RefCount--;
|
||||
if (iBcb->Bcb->CacheView[iBcb->Index]->RefCount == 0)
|
||||
{
|
||||
RemoveEntryList (&iBcb->Bcb->CacheView[iBcb->Index]->ListEntry);
|
||||
InsertHeadList (&CcFreeCacheViewListHead, &iBcb->Bcb->CacheView[iBcb->Index]->ListEntry);
|
||||
}
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
ExFreeToNPagedLookasideList (&iBcbLookasideList, iBcb);
|
||||
#endif
|
||||
IoStatus->Status = STATUS_SUCCESS;
|
||||
|
||||
DPRINT ("CcUnpinRepinnedBcb done\n");
|
||||
}
|
287
cc/view.c
287
cc/view.c
@@ -1,287 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: ntoskrnl/cc/view.c
|
||||
* PURPOSE: Cache manager
|
||||
*
|
||||
* PROGRAMMERS: David Welch (welch@mcmail.com)
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include <ntoskrnl.h>
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* GLOBALS *******************************************************************/
|
||||
|
||||
#ifdef ROUND_UP
|
||||
#undef ROUND_UP
|
||||
#endif
|
||||
#ifdef ROUND_DOWN
|
||||
#undef ROUND_DOWN
|
||||
#endif
|
||||
|
||||
#define ROUND_UP(N, S) (((N) + (S) - 1) & ~((S) - 1))
|
||||
#define ROUND_DOWN(N, S) ((N) & ~((S) - 1))
|
||||
|
||||
NPAGED_LOOKASIDE_LIST iBcbLookasideList;
|
||||
static NPAGED_LOOKASIDE_LIST BcbLookasideList;
|
||||
|
||||
PVOID CcCacheViewBase;
|
||||
ULONG CcCacheViewArrayCount;
|
||||
PCACHE_VIEW CcCacheViewArray;
|
||||
FAST_MUTEX CcCacheViewLock;
|
||||
LIST_ENTRY CcFreeCacheViewListHead;
|
||||
LIST_ENTRY CcInUseCacheViewListHead;
|
||||
PMEMORY_AREA CcCacheViewMemoryArea;
|
||||
|
||||
NTSTATUS NTAPI MmCreateDataFileSection (PSECTION_OBJECT * SectionObject,
|
||||
ACCESS_MASK DesiredAccess,
|
||||
POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
PLARGE_INTEGER UMaximumSize,
|
||||
ULONG SectionPageProtection,
|
||||
ULONG AllocationAttributes,
|
||||
PFILE_OBJECT FileObject,
|
||||
BOOLEAN CacheManager);
|
||||
|
||||
NTSTATUS NTAPI MmUnmapViewInSystemCache (PCACHE_VIEW);
|
||||
|
||||
NTSTATUS MmFlushDataFileSection (PSECTION_OBJECT Section, PLARGE_INTEGER StartOffset, ULONG Length);
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID NTAPI
|
||||
CcFlushCache (IN PSECTION_OBJECT_POINTERS SectionObjectPointers,
|
||||
IN PLARGE_INTEGER FileOffset OPTIONAL,
|
||||
IN ULONG Length,
|
||||
OUT PIO_STATUS_BLOCK IoStatus)
|
||||
{
|
||||
PBCB Bcb;
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
|
||||
DPRINT ("CcFlushCache(SectionObjectPointers 0x%p, FileOffset 0x%p, Length %d, IoStatus 0x%p)\n",
|
||||
SectionObjectPointers, FileOffset, Length, IoStatus);
|
||||
|
||||
if (SectionObjectPointers && SectionObjectPointers->SharedCacheMap)
|
||||
{
|
||||
Bcb = (PBCB) SectionObjectPointers->SharedCacheMap;
|
||||
ASSERT (Bcb);
|
||||
|
||||
Status = MmFlushDataFileSection ((PSECTION_OBJECT)Bcb->Section, FileOffset, Length);
|
||||
}
|
||||
if (IoStatus)
|
||||
{
|
||||
IoStatus->Status = Status;
|
||||
IoStatus->Status = STATUS_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
PFILE_OBJECT NTAPI
|
||||
CcGetFileObjectFromSectionPtrs (IN PSECTION_OBJECT_POINTERS SectionObjectPointers)
|
||||
{
|
||||
PBCB Bcb;
|
||||
if (SectionObjectPointers && SectionObjectPointers->SharedCacheMap)
|
||||
{
|
||||
Bcb = (PBCB) SectionObjectPointers->SharedCacheMap;
|
||||
ASSERT (Bcb);
|
||||
return Bcb->FileObject;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
CcTrimMemory (ULONG Target, ULONG Priority, PULONG NrFreedPages)
|
||||
{
|
||||
DPRINT1("Trim function for cache memory is not implemented yet.\n");
|
||||
|
||||
(*NrFreedPages) = 0;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
VOID INIT_FUNCTION NTAPI
|
||||
CcInitView (VOID)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
PHYSICAL_ADDRESS BoundaryAddressMultiple;
|
||||
ULONG i;
|
||||
ULONG Size;
|
||||
PVOID Base;
|
||||
|
||||
DPRINT ("CcInitView()\n");
|
||||
|
||||
ExInitializeFastMutex (&CcCacheViewLock);
|
||||
|
||||
ExInitializeNPagedLookasideList (&iBcbLookasideList, NULL, NULL, 0, sizeof (INTERNAL_BCB), TAG_IBCB, 20);
|
||||
ExInitializeNPagedLookasideList (&BcbLookasideList, NULL, NULL, 0, sizeof (BCB), TAG_BCB, 20);
|
||||
|
||||
InitializeListHead (&CcFreeCacheViewListHead);
|
||||
InitializeListHead (&CcInUseCacheViewListHead);
|
||||
|
||||
BoundaryAddressMultiple.QuadPart = 0LL;
|
||||
|
||||
Size = MmSystemRangeStart >= (PVOID) 0xC0000000 ? 0x18000000 : 0x20000000;
|
||||
CcCacheViewBase = (PVOID) (0xF0000000 - Size);
|
||||
MmLockAddressSpace (MmGetKernelAddressSpace ());
|
||||
|
||||
Status = MmCreateMemoryArea (MmGetKernelAddressSpace (),
|
||||
MEMORY_AREA_CACHE_SEGMENT,
|
||||
&CcCacheViewBase, Size, 0, &CcCacheViewMemoryArea, FALSE, FALSE, BoundaryAddressMultiple);
|
||||
MmUnlockAddressSpace (MmGetKernelAddressSpace ());
|
||||
DPRINT ("CcCacheViewBase: %x\n", CcCacheViewBase);
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
CcCacheViewArray = ExAllocatePool (NonPagedPool, sizeof (CACHE_VIEW) * (Size / CACHE_VIEW_SIZE));
|
||||
if (CcCacheViewArray == NULL)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
Base = CcCacheViewBase;
|
||||
CcCacheViewArrayCount = Size / CACHE_VIEW_SIZE;
|
||||
for (i = 0; i < CcCacheViewArrayCount; i++)
|
||||
{
|
||||
CcCacheViewArray[i].BaseAddress = Base;
|
||||
CcCacheViewArray[i].RefCount = 0;
|
||||
CcCacheViewArray[i].Bcb = NULL;
|
||||
CcCacheViewArray[i].SectionData.ViewOffset = 0;
|
||||
InsertTailList (&CcFreeCacheViewListHead, &CcCacheViewArray[i].ListEntry);
|
||||
Base = (PVOID) ((ULONG_PTR) Base + CACHE_VIEW_SIZE);
|
||||
}
|
||||
|
||||
MmInitializeMemoryConsumer(MC_CACHE, CcTrimMemory);
|
||||
CcInitCacheZeroPage ();
|
||||
|
||||
}
|
||||
|
||||
VOID NTAPI
|
||||
CcInitializeCacheMap (IN PFILE_OBJECT FileObject,
|
||||
IN PCC_FILE_SIZES FileSizes,
|
||||
IN BOOLEAN PinAccess,
|
||||
IN PCACHE_MANAGER_CALLBACKS CallBacks,
|
||||
IN PVOID LazyWriterContext)
|
||||
{
|
||||
PBCB Bcb;
|
||||
NTSTATUS Status;
|
||||
|
||||
DPRINT ("CcInitializeCacheMap(), %wZ\n", &FileObject->FileName);
|
||||
DPRINT ("%I64x (%I64d)\n", FileSizes->FileSize.QuadPart, FileSizes->FileSize.QuadPart);
|
||||
|
||||
ASSERT (FileObject);
|
||||
ASSERT (FileSizes);
|
||||
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
|
||||
Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
|
||||
if (Bcb == NULL)
|
||||
{
|
||||
Bcb = ExAllocateFromNPagedLookasideList (&BcbLookasideList);
|
||||
if (Bcb == NULL)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
memset (Bcb, 0, sizeof (BCB));
|
||||
|
||||
Bcb->FileObject = FileObject;
|
||||
Bcb->FileSizes = *FileSizes;
|
||||
Bcb->PinAccess = PinAccess;
|
||||
Bcb->CallBacks = CallBacks;
|
||||
Bcb->LazyWriterContext = LazyWriterContext;
|
||||
Bcb->RefCount = 0;
|
||||
|
||||
DPRINT ("%x %x\n", FileObject, FileSizes->FileSize.QuadPart);
|
||||
|
||||
Status = MmCreateDataFileSection ((PSECTION_OBJECT*)&Bcb->Section,
|
||||
STANDARD_RIGHTS_REQUIRED | SECTION_QUERY | SECTION_MAP_READ | SECTION_MAP_WRITE,
|
||||
NULL, &Bcb->FileSizes.FileSize, PAGE_READWRITE, SEC_COMMIT, Bcb->FileObject, TRUE);
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
DPRINT1 ("%x\n", Status);
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
|
||||
FileObject->SectionObjectPointer->SharedCacheMap = Bcb;
|
||||
}
|
||||
|
||||
if (FileObject->PrivateCacheMap == NULL)
|
||||
{
|
||||
FileObject->PrivateCacheMap = Bcb;
|
||||
Bcb->RefCount++;
|
||||
}
|
||||
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
DPRINT ("CcInitializeCacheMap() done\n");
|
||||
}
|
||||
|
||||
BOOLEAN NTAPI
|
||||
CcUninitializeCacheMap (IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER TruncateSize OPTIONAL,
|
||||
IN PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent OPTIONAL)
|
||||
{
|
||||
PBCB Bcb;
|
||||
ULONG i;
|
||||
NTSTATUS Status;
|
||||
|
||||
DPRINT ("CcUninitializeCacheMap(), %wZ\n", &FileObject->FileName);
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
|
||||
if (Bcb)
|
||||
{
|
||||
if (FileObject->PrivateCacheMap == Bcb)
|
||||
{
|
||||
Bcb->RefCount--;
|
||||
FileObject->PrivateCacheMap = NULL;
|
||||
}
|
||||
if (Bcb->RefCount == 0)
|
||||
{
|
||||
Bcb->RefCount++;
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
MmFlushDataFileSection ((PSECTION_OBJECT)Bcb->Section, NULL, 0);
|
||||
ExAcquireFastMutex (&CcCacheViewLock);
|
||||
Bcb->RefCount--;
|
||||
if (Bcb->RefCount == 0)
|
||||
{
|
||||
for (i = 0; i < ROUND_UP (Bcb->FileSizes.AllocationSize.QuadPart, CACHE_VIEW_SIZE) / CACHE_VIEW_SIZE; i++)
|
||||
{
|
||||
if (Bcb->CacheView[i] && Bcb->CacheView[i]->Bcb == Bcb)
|
||||
{
|
||||
if (Bcb->CacheView[i]->RefCount > 0)
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
Status = MmUnmapViewInSystemCache (Bcb->CacheView[i]);
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
KeBugCheck(CACHE_MANAGER);
|
||||
}
|
||||
Bcb->CacheView[i]->RefCount = 0;
|
||||
Bcb->CacheView[i]->Bcb = NULL;
|
||||
Bcb->CacheView[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
DPRINT ("%x\n", Bcb->Section);
|
||||
ObDereferenceObject (Bcb->Section);
|
||||
FileObject->SectionObjectPointer->SharedCacheMap = NULL;
|
||||
ExFreeToNPagedLookasideList (&BcbLookasideList, Bcb);
|
||||
}
|
||||
}
|
||||
}
|
||||
DPRINT ("CcUninitializeCacheMap() done, %wZ\n", &FileObject->FileName);
|
||||
ExReleaseFastMutex (&CcCacheViewLock);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* EOF */
|
141
headers.patch
141
headers.patch
@@ -1,141 +0,0 @@
|
||||
Index: include/reactos/exeformat.h
|
||||
===================================================================
|
||||
--- include/reactos/exeformat.h (revision 34037)
|
||||
+++ include/reactos/exeformat.h (working copy)
|
||||
@@ -35,6 +35,7 @@
|
||||
typedef NTSTATUS (NTAPI * PEXEFMT_CB_READ_FILE)
|
||||
(
|
||||
IN PVOID File,
|
||||
+ ULONG SectorSize,
|
||||
IN PLARGE_INTEGER Offset,
|
||||
IN ULONG Length,
|
||||
OUT PVOID * Data,
|
||||
Index: ntoskrnl/include/internal/mm.h
|
||||
===================================================================
|
||||
--- ntoskrnl/include/internal/mm.h (revision 34040)
|
||||
+++ ntoskrnl/include/internal/mm.h (working copy)
|
||||
@@ -187,6 +187,9 @@
|
||||
ULONG Flags;
|
||||
ULONG Characteristics;
|
||||
BOOLEAN WriteCopy;
|
||||
+ LIST_ENTRY ListEntry;
|
||||
+ ULONG BytesPerSector;
|
||||
+ PFILE_OBJECT FileObject;
|
||||
} MM_SECTION_SEGMENT, *PMM_SECTION_SEGMENT;
|
||||
|
||||
typedef struct _MM_IMAGE_SECTION_OBJECT
|
||||
@@ -203,6 +206,10 @@
|
||||
BOOLEAN Executable;
|
||||
ULONG NrSegments;
|
||||
ULONG ImageSize;
|
||||
+ ULONG RefCount;
|
||||
+ LIST_ENTRY ListEntry;
|
||||
+ PFILE_OBJECT FileObject;
|
||||
+ ULONG BytesPerSector;
|
||||
PMM_SECTION_SEGMENT Segments;
|
||||
} MM_IMAGE_SECTION_OBJECT, *PMM_IMAGE_SECTION_OBJECT;
|
||||
|
||||
@@ -221,6 +228,16 @@
|
||||
};
|
||||
} ROS_SECTION_OBJECT, *PROS_SECTION_OBJECT;
|
||||
|
||||
+typedef struct
|
||||
+{
|
||||
+ ROS_SECTION_OBJECT* Section;
|
||||
+ ULONG ViewOffset;
|
||||
+ LIST_ENTRY ViewListEntry;
|
||||
+ PMM_SECTION_SEGMENT Segment;
|
||||
+// BOOLEAN WriteCopyView;
|
||||
+ LIST_ENTRY RegionListHead;
|
||||
+} SECTION_DATA, *PSECTION_DATA;
|
||||
+
|
||||
typedef struct _MEMORY_AREA
|
||||
{
|
||||
PVOID StartingAddress;
|
||||
@@ -235,17 +252,10 @@
|
||||
ULONG PageOpCount;
|
||||
union
|
||||
{
|
||||
+ SECTION_DATA SectionData;
|
||||
struct
|
||||
{
|
||||
- ROS_SECTION_OBJECT* Section;
|
||||
- ULONG ViewOffset;
|
||||
- PMM_SECTION_SEGMENT Segment;
|
||||
- BOOLEAN WriteCopyView;
|
||||
LIST_ENTRY RegionListHead;
|
||||
- } SectionData;
|
||||
- struct
|
||||
- {
|
||||
- LIST_ENTRY RegionListHead;
|
||||
} VirtualMemoryData;
|
||||
} Data;
|
||||
} MEMORY_AREA, *PMEMORY_AREA;
|
||||
Index: ntoskrnl/include/internal/cc.h
|
||||
===================================================================
|
||||
--- ntoskrnl/include/internal/cc.h (revision 34040)
|
||||
+++ ntoskrnl/include/internal/cc.h (working copy)
|
||||
@@ -102,19 +102,29 @@
|
||||
LONG ActivePrefetches;
|
||||
} PFSN_PREFETCHER_GLOBALS, *PPFSN_PREFETCHER_GLOBALS;
|
||||
|
||||
+#define CACHE_VIEW_SIZE (128 * 1024) // 128kB
|
||||
+
|
||||
+struct _BCB;
|
||||
+
|
||||
+typedef struct
|
||||
+{
|
||||
+ SECTION_DATA SectionData;
|
||||
+ PVOID BaseAddress;
|
||||
+ ULONG RefCount;
|
||||
+ struct _BCB* Bcb;
|
||||
+ LIST_ENTRY ListEntry;
|
||||
+} CACHE_VIEW, *PCACHE_VIEW;
|
||||
+
|
||||
typedef struct _BCB
|
||||
{
|
||||
- LIST_ENTRY BcbSegmentListHead;
|
||||
- LIST_ENTRY BcbRemoveListEntry;
|
||||
- BOOLEAN RemoveOnClose;
|
||||
- ULONG TimeStamp;
|
||||
PFILE_OBJECT FileObject;
|
||||
- ULONG CacheSegmentSize;
|
||||
- LARGE_INTEGER AllocationSize;
|
||||
- LARGE_INTEGER FileSize;
|
||||
- PCACHE_MANAGER_CALLBACKS Callbacks;
|
||||
- PVOID LazyWriteContext;
|
||||
- KSPIN_LOCK BcbLock;
|
||||
+ CC_FILE_SIZES FileSizes;
|
||||
+ BOOLEAN PinAccess;
|
||||
+ PCACHE_MANAGER_CALLBACKS CallBacks;
|
||||
+ PVOID LazyWriterContext;
|
||||
+ PCACHE_VIEW CacheView[2048];
|
||||
+ PVOID LargeCacheView;
|
||||
+ PROS_SECTION_OBJECT Section;
|
||||
ULONG RefCount;
|
||||
#if defined(DBG) || defined(KDBG)
|
||||
BOOLEAN Trace; /* enable extra trace output for this BCB and it's cache segments */
|
||||
@@ -159,8 +169,8 @@
|
||||
typedef struct _INTERNAL_BCB
|
||||
{
|
||||
PUBLIC_BCB PFCB;
|
||||
- PCACHE_SEGMENT CacheSegment;
|
||||
- BOOLEAN Dirty;
|
||||
+ PBCB Bcb;
|
||||
+ ULONG Index;
|
||||
CSHORT RefCount; /* (At offset 0x34 on WinNT4) */
|
||||
} INTERNAL_BCB, *PINTERNAL_BCB;
|
||||
|
||||
Index: drivers/filesystems/fastfat/vfat.h
|
||||
===================================================================
|
||||
--- drivers/filesystems/fastfat/vfat.h (revision 34037)
|
||||
+++ drivers/filesystems/fastfat/vfat.h (working copy)
|
||||
@@ -6,7 +6,7 @@
|
||||
#ifdef __GNUC__
|
||||
#include <ccros.h>
|
||||
|
||||
-#define USE_ROS_CC_AND_FS
|
||||
+//#define USE_ROS_CC_AND_FS
|
||||
#else
|
||||
#define KEBUGCHECK KeBugCheck
|
||||
#define KEBUGCHECKEX KeBugCheckEx
|
22
reactos/.cvsignore
Normal file
22
reactos/.cvsignore
Normal file
@@ -0,0 +1,22 @@
|
||||
dist
|
||||
reactos
|
||||
*.sys
|
||||
*.exe
|
||||
*.dll
|
||||
*.cpl
|
||||
*.a
|
||||
*.o
|
||||
*.d
|
||||
*.coff
|
||||
*.dsp
|
||||
*.dsw
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opt
|
||||
*.sym
|
||||
*.plg
|
||||
*.bak
|
||||
*.zip
|
||||
*.iso
|
||||
*.cab
|
||||
doxy-doc
|
340
reactos/COPYING
Normal file
340
reactos/COPYING
Normal file
@@ -0,0 +1,340 @@
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
74
reactos/CREDITS
Normal file
74
reactos/CREDITS
Normal file
@@ -0,0 +1,74 @@
|
||||
ReactOS is available thanks to the work of
|
||||
|
||||
Emanuele Aliberti <ea@iol.it>
|
||||
Robert Bergkvist <fragdance@hotmail.com>
|
||||
Hartmut Birr <hartmut.birr@gmx.de>
|
||||
Aleksey Bragin <aleksey@studiocerebral.com>
|
||||
Richard Campbell <eek2121@comcast.net>
|
||||
Gunnar Andre' Dalsnes <hardon@online.no>
|
||||
Arindam Das
|
||||
Boudewijn Dekker <ariadne@xs4all.nl>
|
||||
Robert Dickenson <robd@reactos.org>
|
||||
Marty Dill <mdill@uvic.ca>
|
||||
Jason Eager
|
||||
Steven Edwards <steven_ed4153@yahoo.com>
|
||||
Iwan Fatahi <i_fatahi@hotmail.com>
|
||||
Jason Filby <jasonfilby@yahoo.com>
|
||||
Martin Fuchs <martin-fuchs@gmx.net>
|
||||
Jurgen van Gael <jurgen.vangael@student.kuleuven.ac.be>
|
||||
Ge van Geldorp <ge@gse.nl>
|
||||
Andrew Greenwood <lists@silverblade.co.uk>
|
||||
Casper S. Hornstrup <chorns@users.sourceforge.net>
|
||||
KJK::Hyperion <noog@libero.it>
|
||||
Eugene Ingerman <geneing@myrealbox.com>
|
||||
Rex Jolliff <rex@lvcablemodem.com>
|
||||
Guido de Jong
|
||||
Victor Kirhenshtein <sauros@iname.com>
|
||||
Eric Kohl <ekohl@rz-online.de>
|
||||
Hans Kremer
|
||||
Frederik Leemans
|
||||
Jean Michault
|
||||
Royce Mitchell III <royce3@ev1.net>
|
||||
Filip Navara <xnavara@volny.cz>
|
||||
Jim Noeth
|
||||
Mike Nordell ("tamlin")
|
||||
Hernan Ochoa
|
||||
Brian Palmer <brianp@sginet.com>
|
||||
Paolo Pantaleo <paolopan@freemail.it>
|
||||
Matt Pyne
|
||||
Phillip Susi <phreak@iag.net>
|
||||
James B. Tabor <jimtabor@adsl-64-217-116-74.dsl.hstntx.swbell.net>
|
||||
Mark Tempel <mtempel@visi.com>
|
||||
Vizzini <vizzini@plasmic.com>
|
||||
Mark Weaver <mark@npsl.co.uk>
|
||||
Thomas Weidenmueller <w3seek@users.sourceforge.net>
|
||||
Jason Weiler
|
||||
David Welch <welch@cwcom.net>
|
||||
Jonathan Wilson <jonwil@tpgi.com.au>
|
||||
Art Yerkes <ayerkes@speakeasy.net>
|
||||
|
||||
Source and inspiration from
|
||||
|
||||
WINE (http://www.winehq.com)
|
||||
WinFree (http://www.stack.nl/~onno/win32/)
|
||||
Linux (http://www.kernel.org)
|
||||
XFree86 (http://www.xfree86.org/)
|
||||
|
||||
References (Rex's at least)
|
||||
|
||||
Baker, Art. The Windows NT Device Driver Book. Prentice Hall, 1997.
|
||||
Borate, Dabak & Phadke. Undocumented Windows NT. M&T Books, 1999.
|
||||
Brain, Marshall. Win32 System Services. Prentice Hall, 1996.
|
||||
Cant, Chris. Writing Windows WDM Device Drivers. R&D Books, 1999.
|
||||
Canton & Sanchez. IBM Microcomputers: A Programmer's Handbook. McGraw Hill, 1990.
|
||||
Davis & Wallace. Windows Undocumented File Formats. R&D Books, 1997.
|
||||
Mason & Viscarola. Windows NT Device Driver Development. Macmillan, 1999.
|
||||
Mitchell, Stan. Inside the Windows 95 File System. O'Reilly, 1997.
|
||||
Murray, James D. Windows NT Event Logging. O'Reilly, 1998.
|
||||
Nagar, Rajeev. Windows NT File System Internals. O'Reilly, 1997.
|
||||
Osbourne, Sandra. Windows NT Registry: A Settings Reference. New Riders, 1998.
|
||||
Pietrek, Matt. Windows 95 System Programming Secrets. IDG, 1995.
|
||||
Richter, Jeffery. Advanced Windows, 3rd ed. Microsoft, 1997.
|
||||
Simon, Richard J. Windows NT Win32 API Superbible. Waite Group, 1996.
|
||||
Solomon, David A. Inside Windows NT, 2nd Ed. Microsoft, 1998.
|
||||
"The NT Insider." Open Systems Resources, 1999-2000.
|
3032
reactos/ChangeLog
Normal file
3032
reactos/ChangeLog
Normal file
File diff suppressed because it is too large
Load Diff
211
reactos/Doxyfile
Normal file
211
reactos/Doxyfile
Normal file
@@ -0,0 +1,211 @@
|
||||
# Doxyfile 1.3.5
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = ReactOS
|
||||
PROJECT_NUMBER =
|
||||
OUTPUT_DIRECTORY = doxy-doc
|
||||
OUTPUT_LANGUAGE = English
|
||||
USE_WINDOWS_ENCODING = YES
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = YES
|
||||
STRIP_FROM_PATH = .
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = YES
|
||||
MULTILINE_CPP_IS_BRIEF = NO
|
||||
DETAILS_AT_TOP = NO
|
||||
INHERIT_DOCS = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
ALIASES =
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
OPTIMIZE_OUTPUT_JAVA = NO
|
||||
SUBGROUPING = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Build related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = YES
|
||||
EXTRACT_STATIC = YES
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
HIDE_FRIEND_COMPOUNDS = NO
|
||||
HIDE_IN_BODY_DOCS = NO
|
||||
INTERNAL_DOCS = YES
|
||||
CASE_SENSE_NAMES = YES
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = YES
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
GENERATE_DEPRECATEDLIST= YES
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = NO
|
||||
WARNINGS = NO
|
||||
WARN_IF_UNDOCUMENTED = NO
|
||||
WARN_IF_DOC_ERROR = YES
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = hal \
|
||||
subsys \
|
||||
services \
|
||||
regtests \
|
||||
iface
|
||||
FILE_PATTERNS = *.c \
|
||||
*.h
|
||||
RECURSIVE = YES
|
||||
EXCLUDE = subsys/win32k \
|
||||
subsys/system/explorer
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = YES
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = YES
|
||||
INLINE_SOURCES = YES
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
VERBATIM_HEADERS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = html
|
||||
HTML_FILE_EXTENSION = .html
|
||||
HTML_HEADER =
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
CHM_FILE =
|
||||
HHC_LOCATION =
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = YES
|
||||
TREEVIEW_WIDTH = 250
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT = latex
|
||||
LATEX_CMD_NAME = latex
|
||||
MAKEINDEX_CMD_NAME = makeindex
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
LATEX_HIDE_INDICES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT = rtf
|
||||
COMPACT_RTF = YES
|
||||
RTF_HYPERLINKS = YES
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT = man
|
||||
MAN_EXTENSION = .3
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = NO
|
||||
XML_OUTPUT = xml
|
||||
XML_SCHEMA =
|
||||
XML_DTD =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the Perl module output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_PERLMOD = NO
|
||||
PERLMOD_LATEX = NO
|
||||
PERLMOD_PRETTY = YES
|
||||
PERLMOD_MAKEVAR_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = NO
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH = include
|
||||
INCLUDE_FILE_PATTERNS = *.h
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES =
|
||||
GENERATE_TAGFILE =
|
||||
ALLEXTERNALS = NO
|
||||
EXTERNAL_GROUPS = YES
|
||||
PERL_PATH = /usr/bin/perl
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = YES
|
||||
HIDE_UNDOC_RELATIONS = NO
|
||||
HAVE_DOT = YES
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
UML_LOOK = NO
|
||||
TEMPLATE_RELATIONS = NO
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
CALL_GRAPH = YES
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_IMAGE_FORMAT = png
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
MAX_DOT_GRAPH_DEPTH = 0
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = YES
|
73
reactos/INSTALL
Normal file
73
reactos/INSTALL
Normal file
@@ -0,0 +1,73 @@
|
||||
1. Build environment
|
||||
|
||||
To build the system you need either mingw32 installed on Windows or a mingw32
|
||||
cross compiler running on unix. You may obtain MinGW binaries that build
|
||||
ReactOS from http://www.reactos.com.
|
||||
|
||||
|
||||
2. Building ReactOS
|
||||
|
||||
To build from Windows run 'make' (wihout the quotes) from the top directory.
|
||||
To build from unix, edit rules.mak and change the PREFIX variable to the
|
||||
correct value for your cross-compiler. Run 'export HOST=mingw32-linux' to
|
||||
tell the ReactOS build system that it is building ReactOS on a linux machine.
|
||||
Now run 'make'.
|
||||
|
||||
|
||||
3. Installation
|
||||
|
||||
The system can only be installed on the first partition on the first harddisk.
|
||||
The partition must be formatted as FAT16 or FAT32. The system can only be
|
||||
started from DOS and not from a Windows DOS-prompt.
|
||||
|
||||
ReactOS can be installed from the source distribution or from the binary
|
||||
distribution. The two ways to install ReactOS are explained below.
|
||||
|
||||
|
||||
3.1 Installation from sources
|
||||
|
||||
To install ReactOS after building it, type 'make install'. This will create
|
||||
the directory 'reactos' in the top directory. Copy this directory to the root
|
||||
of your first partition on your first harddisk. This is usually c:\ on a
|
||||
Windows machine.
|
||||
|
||||
If you don't want to copy the files manually every time you run a 'make install',
|
||||
you can specify the directory where the files are to be copied to during
|
||||
installation.
|
||||
|
||||
In rules.mak find the variable INSTALL_DIR and change the assigned value to the
|
||||
name of the directory where the files are to be copied to. If you are using
|
||||
Windows this could be:
|
||||
|
||||
INSTALL_DIR = c:\reactos
|
||||
|
||||
If you are on linux this could be:
|
||||
|
||||
INSTALL_DIR = /mnt/windows/reactos
|
||||
|
||||
Save the changes to rules.mak and run 'make install' to install the files to
|
||||
the new location. If you don't want to change rules.mak, you can specify the
|
||||
installtion directory when invoking make. Run
|
||||
'make INSTALL_DIR=c:\reactos install' to install to c:\reactos.
|
||||
|
||||
|
||||
3.2 Installation from binany distribution
|
||||
|
||||
To install ReactOS from the binary distribution, extract the archive contents
|
||||
to c:\reactos. Remember to extract the files with full paths.
|
||||
|
||||
|
||||
4. Booting ReactOS
|
||||
|
||||
Startup in DOS mode. 'cd' to c:\reactos and type 'boot' and press <enter>.
|
||||
A simple shell is started where you can use simple commands like 'cd' and 'dir'.
|
||||
|
||||
|
||||
5. Help
|
||||
|
||||
If you run into problems or have suggestions for making ReactOS better, please
|
||||
surf to the address below and subscribe to one or more of the mailing lists.
|
||||
|
||||
http://www.reactos.com/index.php?tab=discussion§ion=lists
|
||||
|
||||
ReactOS Development Team
|
5
reactos/Jamfile
Normal file
5
reactos/Jamfile
Normal file
@@ -0,0 +1,5 @@
|
||||
# Main jamfile for ReactOS
|
||||
|
||||
SubDir ROS_TOP ;
|
||||
|
||||
SubInclude ROS_TOP Lib ;
|
54
reactos/Jamrules
Normal file
54
reactos/Jamrules
Normal file
@@ -0,0 +1,54 @@
|
||||
# customization for ReactOS goes here
|
||||
|
||||
# The SharedLibrary and SharedLibraryFromObjects rules were
|
||||
# borrowed from here:
|
||||
# http://www.differentpla.net/~roger/devel/jam/tutorial/shared_lib/index.html
|
||||
|
||||
SUFSHR = .dll ;
|
||||
RM = rm ; # rm comes with MinGW, and the default del doesn't work in some cases
|
||||
|
||||
rule SharedLibrary
|
||||
{
|
||||
SharedLibraryFromObjects $(<) : $(>:S=$(SUFOBJ)) ;
|
||||
Objects $(>) ;
|
||||
}
|
||||
|
||||
rule SharedLibraryFromObjects
|
||||
{
|
||||
local _s _t ;
|
||||
|
||||
# Add grist to file names
|
||||
# Add suffix to dll
|
||||
|
||||
_s = [ FGristFiles $(>) ] ;
|
||||
_t = [ FAppendSuffix $(<) : $(SUFSHR) ] ;
|
||||
|
||||
if $(_t) != $(<)
|
||||
{
|
||||
DEPENDS $(<) : $(_t) ;
|
||||
NOTFILE $(<) ;
|
||||
}
|
||||
|
||||
# make compiled sources a dependency of target
|
||||
|
||||
DEPENDS exe : $(_t) ;
|
||||
DEPENDS $(_t) : $(_s) ;
|
||||
MakeLocate $(_t) : $(LOCATE_TARGET) ;
|
||||
|
||||
Clean clean : $(_t) ;
|
||||
|
||||
Link $(_t) : $(_s) ;
|
||||
}
|
||||
|
||||
# nasm needs to know the output file first, or it doesn't
|
||||
# recognize -I :(
|
||||
actions As
|
||||
{
|
||||
$(AS) -o $(<) $(ASFLAGS) -I$(HDRS) $(>)
|
||||
}
|
||||
|
||||
AS = nasm ;
|
||||
|
||||
# why isn't DEFINES working? :(
|
||||
#DEFINES += _M_IX86 ;
|
||||
CCFLAGS += -D_M_IX86 ;
|
504
reactos/LGPL.txt
Normal file
504
reactos/LGPL.txt
Normal file
@@ -0,0 +1,504 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
856
reactos/Makefile
Normal file
856
reactos/Makefile
Normal file
@@ -0,0 +1,856 @@
|
||||
# $Id: Makefile,v 1.210 2004/02/07 18:53:58 mf Exp $
|
||||
#
|
||||
# Global makefile
|
||||
#
|
||||
|
||||
PATH_TO_TOP = .
|
||||
|
||||
#
|
||||
# Define to build ReactOS external targets
|
||||
#
|
||||
ifeq ($(ROS_BUILD_EXT),)
|
||||
ROS_BUILD_EXT = no
|
||||
else
|
||||
ROS_BUILD_EXT = yes
|
||||
endif
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
# Required to run the system
|
||||
COMPONENTS = iface_native iface_additional hallib ntoskrnl
|
||||
|
||||
# Hardware Abstraction Layers
|
||||
# halx86
|
||||
HALS = halx86
|
||||
|
||||
# Bus drivers
|
||||
# acpi isapnp pci
|
||||
BUS = acpi isapnp pci
|
||||
|
||||
# Filesystem libraries
|
||||
# vfatlib
|
||||
LIB_FSLIB = vfatlib
|
||||
|
||||
# Static libraries
|
||||
LIB_STATIC = string rosrtl epsapi uuid libwine zlib
|
||||
|
||||
# Keyboard layout libraries
|
||||
DLLS_KBD = kbdus kbdgr kbdfr kbduk
|
||||
|
||||
# Control Panels
|
||||
DLLS_CPL = cpl
|
||||
|
||||
# User mode libraries
|
||||
# advapi32 cards crtdll comdlg32 fmifs gdi32 imagehlp kernel32 libpcap packet msafd msvcrt ntdll
|
||||
# epsapi psapi richedit rpcrt4 secur32 user32 version ws2help ws2_32 wsock32 wshirda mswsock
|
||||
# imagehlp imm32
|
||||
DLLS = advapi32 cabinet cards comctl32 crtdll comdlg32 d3d8thk fmifs freetype gdi32 \
|
||||
imm32 iphlpapi kernel32 lzexpand mpr msafd msgina msimg32 msvcrt msvcrt20 mswsock \
|
||||
ntdll ole32 oleaut32 oledlg packet psapi richedit rpcrt4 samlib secur32 shell32 shlwapi \
|
||||
snmpapi syssetup twain unicode user32 userenv version wininet winmm winspool \
|
||||
ws2help ws2_32 wsock32 wshirda $(DLLS_KBD) $(DLLS_CPL)
|
||||
|
||||
SUBSYS = smss win32k csrss ntvdm
|
||||
|
||||
#
|
||||
# Select the server(s) you want to build
|
||||
#
|
||||
#SERVERS = posix linux os2
|
||||
SERVERS = win32
|
||||
|
||||
# Boot loaders
|
||||
# dos
|
||||
LOADERS = dos
|
||||
|
||||
# Driver support libraries
|
||||
#bzip2 zlib
|
||||
DRIVERS_LIB = bzip2
|
||||
|
||||
# Kernel mode device drivers
|
||||
# Obsolete: ide
|
||||
# beep blue floppy null parallel ramdrv serenum serial
|
||||
DEVICE_DRIVERS = beep blue debugout floppy null serial bootvid
|
||||
|
||||
# Kernel mode input drivers
|
||||
INPUT_DRIVERS = keyboard mouclass psaux sermouse
|
||||
|
||||
# Kernel mode file system drivers
|
||||
# cdfs ext2 fs_rec ms np vfat
|
||||
FS_DRIVERS = cdfs fs_rec ms np vfat mup ntfs
|
||||
|
||||
# Kernel mode networking drivers
|
||||
# afd ndis npf tcpip tdi wshtcpip
|
||||
NET_DRIVERS = afd ndis npf tcpip tdi wshtcpip
|
||||
|
||||
# Kernel mode networking device drivers
|
||||
# ne2000 pcnet
|
||||
NET_DEVICE_DRIVERS = ne2000 pcnet
|
||||
|
||||
# Kernel mode storage drivers
|
||||
# atapi cdrom class2 disk scsiport
|
||||
STORAGE_DRIVERS = atapi cdrom class2 disk scsiport diskdump
|
||||
|
||||
# System applications
|
||||
# autochk cmd format services setup usetup welcome winlogon
|
||||
SYS_APPS = autochk cmd explorer format services setup taskmgr userinit usetup welcome winlogon regedit
|
||||
|
||||
# System services
|
||||
# rpcss eventlog
|
||||
SYS_SVC = rpcss eventlog
|
||||
|
||||
APPS = tests testsets utils
|
||||
|
||||
|
||||
# External (sub)systems for ReactOS
|
||||
# rosapps wine posix os2 (requires c++) java (non-existant)
|
||||
EXTERNALS = rosapps wine posix os2
|
||||
|
||||
ifeq ($(ROS_BUILD_EXT),yes)
|
||||
EXT_MODULES = $(EXTERNALS)
|
||||
else
|
||||
EXT_MODULES =
|
||||
endif
|
||||
|
||||
KERNEL_DRIVERS = $(DRIVERS_LIB) $(DEVICE_DRIVERS) $(INPUT_DRIVERS) $(FS_DRIVERS) \
|
||||
$(NET_DRIVERS) $(NET_DEVICE_DRIVERS) $(STORAGE_DRIVERS) VIDEO_DRIVERS
|
||||
|
||||
# Regression tests
|
||||
REGTESTS = regtests
|
||||
|
||||
all: tools dk implib $(LIB_STATIC) $(COMPONENTS) $(HALS) $(BUS) $(LIB_FSLIB) $(DLLS) $(SUBSYS) \
|
||||
$(LOADERS) $(KERNEL_DRIVERS) $(SYS_APPS) $(SYS_SVC) \
|
||||
$(APPS) $(EXT_MODULES) $(REGTESTS)
|
||||
|
||||
#config: $(TOOLS:%=%_config)
|
||||
|
||||
depends: $(LIB_STATIC:%=%_depends) $(LIB_FSLIB:%=%_depends) $(DLLS:%=%_depends) $(SUBSYS:%=%_depends) $(SYS_SVC:%=%_depends) \
|
||||
$(EXT_MODULES:%=%_depends) $(POSIX_LIBS:%=%_depends)
|
||||
|
||||
implib: $(COMPONENTS:%=%_implib) $(HALS:%=%_implib) $(BUS:%=%_implib) \
|
||||
$(LIB_STATIC:%=%_implib) $(LIB_FSLIB:%=%_implib) $(DLLS:%=%_implib) $(LOADERS:%=%_implib) \
|
||||
$(KERNEL_DRIVERS:%=%_implib) $(SUBSYS:%=%_implib) \
|
||||
$(SYS_SVC:%=%_implib) $(EXT_MODULES:%=%_implib)
|
||||
|
||||
clean: tools dk_clean $(HALS:%=%_clean) \
|
||||
$(COMPONENTS:%=%_clean) $(BUS:%=%_clean) $(LIB_STATIC:%=%_clean) $(LIB_FSLIB:%=%_clean) $(DLLS:%=%_clean) \
|
||||
$(LOADERS:%=%_clean) $(KERNEL_DRIVERS:%=%_clean) $(SUBSYS:%=%_clean) \
|
||||
$(SYS_APPS:%=%_clean) $(SYS_SVC:%=%_clean) \
|
||||
$(NET_APPS:%=%_clean) \
|
||||
$(APPS:%=%_clean) $(EXT_MODULES:%=%_clean) $(REGTESTS:%=%_clean) \
|
||||
clean_after tools_clean
|
||||
|
||||
clean_after:
|
||||
$(RM) $(PATH_TO_TOP)/include/roscfg.h
|
||||
|
||||
install: tools install_dirs install_before \
|
||||
$(COMPONENTS:%=%_install) $(HALS:%=%_install) $(BUS:%=%_install) \
|
||||
$(LIB_STATIC:%=%_install) $(LIB_FSLIB:%=%_install) $(DLLS:%=%_install) $(LOADERS:%=%_install) \
|
||||
$(KERNEL_DRIVERS:%=%_install) $(SUBSYS:%=%_install) \
|
||||
$(SYS_APPS:%=%_install) $(SYS_SVC:%=%_install) \
|
||||
$(APPS:%=%_install) $(EXT_MODULES:%=%_install) $(REGTESTS:%=%_install) \
|
||||
registry
|
||||
|
||||
FREELDR_DIR = ../freeldr
|
||||
|
||||
freeldr:
|
||||
$(MAKE) -C $(FREELDR_DIR)
|
||||
|
||||
bootcd_directory_layout:
|
||||
$(RMKDIR) $(BOOTCD_DIR)
|
||||
$(RMKDIR) $(BOOTCD_DIR)/bootdisk
|
||||
$(RMKDIR) $(BOOTCD_DIR)/loader
|
||||
$(RMKDIR) $(BOOTCD_DIR)/reactos
|
||||
$(RMKDIR) $(BOOTCD_DIR)/reactos/system32
|
||||
$(CP) ${FREELDR_DIR}/bootsect/isoboot.bin ${BOOTCD_DIR}/../isoboot.bin
|
||||
$(CP) ${FREELDR_DIR}/bootsect/dosmbr.bin ${BOOTCD_DIR}/loader/dosmbr.bin
|
||||
$(CP) ${FREELDR_DIR}/bootsect/ext2.bin ${BOOTCD_DIR}/loader/ext2.bin
|
||||
$(CP) ${FREELDR_DIR}/bootsect/fat.bin ${BOOTCD_DIR}/loader/fat.bin
|
||||
$(CP) ${FREELDR_DIR}/bootsect/fat32.bin ${BOOTCD_DIR}/loader/fat32.bin
|
||||
$(CP) ${FREELDR_DIR}/bootsect/isoboot.bin ${BOOTCD_DIR}/loader/isoboot.bin
|
||||
$(CP) ${FREELDR_DIR}/freeldr/obj/i386/freeldr.sys ${BOOTCD_DIR}/loader/freeldr.sys
|
||||
$(CP) ${FREELDR_DIR}/freeldr/obj/i386/setupldr.sys ${BOOTCD_DIR}/loader/setupldr.sys
|
||||
|
||||
bootcd_bootstrap_files: $(COMPONENTS:%=%_bootcd) $(HALS:%=%_bootcd) $(BUS:%=%_bootcd) \
|
||||
$(LIB_STATIC:%=%_bootcd) $(LIB_FSLIB:%=%_bootcd) $(DLLS:%=%_bootcd) $(KERNEL_DRIVERS:%=%_bootcd) \
|
||||
$(SUBSYS:%=%_bootcd) $(SYS_APPS:%=%_bootcd)
|
||||
|
||||
bootcd_install_before:
|
||||
$(RLINE) bootdata/autorun.inf $(BOOTCD_DIR)/autorun.inf
|
||||
$(RLINE) bootdata/readme.txt $(BOOTCD_DIR)/readme.txt
|
||||
$(RLINE) bootdata/hivecls.inf $(BOOTCD_DIR)/reactos/hivecls.inf
|
||||
$(RLINE) bootdata/hivedef.inf $(BOOTCD_DIR)/reactos/hivedef.inf
|
||||
$(RLINE) bootdata/hivesft.inf $(BOOTCD_DIR)/reactos/hivesft.inf
|
||||
$(RLINE) bootdata/hivesys.inf $(BOOTCD_DIR)/reactos/hivesys.inf
|
||||
$(RLINE) bootdata/txtsetup.sif $(BOOTCD_DIR)/reactos/txtsetup.sif
|
||||
$(CP) bootdata/icon.ico $(BOOTCD_DIR)/icon.ico
|
||||
$(CP) media/nls/c_1252.nls $(BOOTCD_DIR)/reactos/c_1252.nls
|
||||
$(CP) media/nls/c_437.nls $(BOOTCD_DIR)/reactos/c_437.nls
|
||||
$(CP) media/nls/l_intl.nls $(BOOTCD_DIR)/reactos/l_intl.nls
|
||||
|
||||
bootcd_basic: bootcd_directory_layout bootcd_bootstrap_files bootcd_install_before
|
||||
|
||||
bootcd_makecd:
|
||||
$(CABMAN) /C bootdata/packages/reactos.dff /L $(BOOTCD_DIR)/reactos /I
|
||||
$(CABMAN) /C bootdata/packages/reactos.dff /RC $(BOOTCD_DIR)/reactos/reactos.inf /L $(BOOTCD_DIR)/reactos /N
|
||||
- $(RM) $(BOOTCD_DIR)/reactos/reactos.inf
|
||||
$(TOOLS_PATH)/cdmake/cdmake -v -m -b $(BOOTCD_DIR)/../isoboot.bin $(BOOTCD_DIR) REACTOS ReactOS.iso
|
||||
|
||||
ubootcd_unattend:
|
||||
$(CP) bootdata/unattend.inf $(BOOTCD_DIR)/reactos/unattend.inf
|
||||
|
||||
bootcd: bootcd_basic bootcd_makecd
|
||||
|
||||
ubootcd: bootcd_basic ubootcd_unattend bootcd_makecd
|
||||
|
||||
registry: tools
|
||||
$(TOOLS_PATH)/mkhive/mkhive$(EXE_POSTFIX) bootdata $(INSTALL_DIR)/system32/config
|
||||
|
||||
.PHONY: all depends implib clean clean_before install freeldr bootcd_directory_layout \
|
||||
bootcd_bootstrap_files bootcd_install_before bootcd_basic bootcd_makecd ubootcd_unattend bootcd
|
||||
|
||||
|
||||
#
|
||||
# System Applications
|
||||
#
|
||||
$(SYS_APPS): %:
|
||||
$(MAKE) -C subsys/system/$*
|
||||
|
||||
$(SYS_APPS:%=%_implib): %_implib:
|
||||
$(MAKE) -C subsys/system/$* implib
|
||||
|
||||
$(SYS_APPS:%=%_clean): %_clean:
|
||||
$(MAKE) -C subsys/system/$* clean
|
||||
|
||||
$(SYS_APPS:%=%_install): %_install:
|
||||
$(MAKE) -C subsys/system/$* install
|
||||
|
||||
$(SYS_APPS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C subsys/system/$* bootcd
|
||||
|
||||
.PHONY: $(SYS_APPS) $(SYS_APPS:%=%_implib) $(SYS_APPS:%=%_clean) $(SYS_APPS:%=%_install) $(SYS_APPS:%=%_bootcd)
|
||||
|
||||
#
|
||||
# System Services
|
||||
#
|
||||
$(SYS_SVC): %:
|
||||
$(MAKE) -C services/$*
|
||||
|
||||
$(SYS_SVC:%=%_depends): %_depends:
|
||||
$(MAKE) -C services/$* depends
|
||||
|
||||
$(SYS_SVC:%=%_implib): %_implib:
|
||||
$(MAKE) -C services/$* implib
|
||||
|
||||
$(SYS_SVC:%=%_clean): %_clean:
|
||||
$(MAKE) -C services/$* clean
|
||||
|
||||
$(SYS_SVC:%=%_install): %_install:
|
||||
$(MAKE) -C services/$* install
|
||||
|
||||
.PHONY: $(SYS_SVC) $(SYS_SVC:%=%_depends) $(SYS_SVC:%=%_implib) $(SYS_SVC:%=%_clean) $(SYS_SVC:%=%_install)
|
||||
|
||||
|
||||
#
|
||||
# Applications
|
||||
#
|
||||
#
|
||||
# Extra (optional system) Applications
|
||||
#
|
||||
$(APPS): %:
|
||||
$(MAKE) -C apps/$*
|
||||
|
||||
# Not needed
|
||||
# $(APPS:%=%_implib): %_implib:
|
||||
# $(MAKE) -C apps/$* implib
|
||||
|
||||
$(APPS:%=%_clean): %_clean:
|
||||
$(MAKE) -C apps/$* clean
|
||||
|
||||
$(APPS:%=%_install): %_install:
|
||||
$(MAKE) -C apps/$* install
|
||||
|
||||
.PHONY: $(APPS) $(APPS:%=%_implib) $(APPS:%=%_clean) $(APPS:%=%_install)
|
||||
|
||||
|
||||
#
|
||||
# External ports and subsystem personalities
|
||||
#
|
||||
$(EXTERNALS): %:
|
||||
$(MAKE) -C $(ROOT_PATH)/$*
|
||||
|
||||
$(EXTERNALS:%=%_depends): %_depends:
|
||||
$(MAKE) -C $(ROOT_PATH)/$* depends
|
||||
|
||||
$(EXTERNALS:%=%_implib): %_implib:
|
||||
$(MAKE) -C $(ROOT_PATH)/$* implib
|
||||
|
||||
$(EXTERNALS:%=%_clean): %_clean:
|
||||
$(MAKE) -C $(ROOT_PATH)/$* clean
|
||||
|
||||
$(EXTERNALS:%=%_install): %_install:
|
||||
$(MAKE) -C $(ROOT_PATH)/$* install
|
||||
|
||||
.PHONY: $(EXTERNALS) $(EXTERNALS:%=%_depends) $(EXTERNALS:%=%_implib) $(EXTERNALS:%=%_clean) $(EXTERNALS:%=%_install)
|
||||
|
||||
|
||||
#
|
||||
# Tools
|
||||
#
|
||||
tools:
|
||||
$(MAKE) -C tools
|
||||
|
||||
tools_implib:
|
||||
|
||||
tools_clean:
|
||||
$(MAKE) -C tools clean
|
||||
|
||||
tools_install:
|
||||
|
||||
.PHONY: tools tools_implib tools_clean tools_install
|
||||
|
||||
|
||||
#
|
||||
# Developer Kits
|
||||
#
|
||||
dk:
|
||||
$(RMKDIR) $(DK_PATH)
|
||||
$(RMKDIR) $(DDK_PATH)
|
||||
$(RMKDIR) $(DDK_PATH_LIB)
|
||||
$(RMKDIR) $(DDK_PATH_INC)
|
||||
$(RMKDIR) $(SDK_PATH)
|
||||
$(RMKDIR) $(SDK_PATH_LIB)
|
||||
$(RMKDIR) $(SDK_PATH_INC)
|
||||
$(RMKDIR) $(XDK_PATH)
|
||||
$(RMKDIR) $(XDK_PATH_LIB)
|
||||
$(RMKDIR) $(XDK_PATH_INC)
|
||||
|
||||
dk_implib:
|
||||
|
||||
# WARNING! Be very sure that there are no important files
|
||||
# in these directories before cleaning them!!!
|
||||
dk_clean:
|
||||
$(RM) $(DDK_PATH_LIB)/*.a
|
||||
# $(RM) $(DDK_PATH_INC)/*.h
|
||||
$(RMDIR) $(DDK_PATH_LIB)
|
||||
# $(RMDIR) $(DDK_PATH_INC)
|
||||
$(RM) $(SDK_PATH_LIB)/*.a
|
||||
# $(RM) $(SDK_PATH_INC)/*.h
|
||||
$(RMDIR) $(SDK_PATH_LIB)
|
||||
# $(RMDIR) $(SDK_PATH_INC)
|
||||
$(RM) $(XDK_PATH_LIB)/*.a
|
||||
# $(RM) $(XDK_PATH_INC)/*.h
|
||||
$(RMDIR) $(XDK_PATH_LIB)
|
||||
# $(RMDIR) $(XDK_PATH_INC)
|
||||
|
||||
dk_install:
|
||||
|
||||
.PHONY: dk dk_implib dk_clean dk_install
|
||||
|
||||
|
||||
#
|
||||
# Interfaces
|
||||
#
|
||||
iface_native:
|
||||
$(MAKE) -C iface/native
|
||||
|
||||
iface_native_implib:
|
||||
|
||||
iface_native_clean:
|
||||
$(MAKE) -C iface/native clean
|
||||
|
||||
iface_native_install:
|
||||
|
||||
iface_native_bootcd:
|
||||
|
||||
iface_additional:
|
||||
$(MAKE) -C iface/addsys
|
||||
|
||||
iface_additional_implib:
|
||||
|
||||
iface_additional_clean:
|
||||
$(MAKE) -C iface/addsys clean
|
||||
|
||||
iface_additional_install:
|
||||
|
||||
iface_additional_bootcd:
|
||||
|
||||
.PHONY: iface_native iface_native_implib iface_native_clean iface_native_install \
|
||||
iface_native_bootcd \
|
||||
iface_additional iface_additional_implib iface_additional_clean \
|
||||
iface_additional_install iface_additional_bootcd
|
||||
|
||||
|
||||
#
|
||||
# Bus driver rules
|
||||
#
|
||||
$(BUS): %:
|
||||
$(MAKE) -C drivers/bus/$*
|
||||
|
||||
$(BUS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/bus/$* implib
|
||||
|
||||
$(BUS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/bus/$* clean
|
||||
|
||||
$(BUS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/bus/$* install
|
||||
|
||||
$(BUS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/bus/$* bootcd
|
||||
|
||||
.PHONY: $(BUS) $(BUS:%=%_implib) $(BUS:%=%_clean) \
|
||||
$(BUS:%=%_install) $(BUS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Driver support libraries rules
|
||||
#
|
||||
$(DRIVERS_LIB): %:
|
||||
$(MAKE) -C drivers/lib/$*
|
||||
|
||||
$(DRIVERS_LIB:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/lib/$* implib
|
||||
|
||||
$(DRIVERS_LIB:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/lib/$* clean
|
||||
|
||||
$(DRIVERS_LIB:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/lib/$* install
|
||||
|
||||
$(DRIVERS_LIB:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/lib/$* bootcd
|
||||
|
||||
.PHONY: $(DRIVERS_LIB) $(DRIVERS_LIB:%=%_implib) $(DRIVERS_LIB:%=%_clean) \
|
||||
$(DRIVERS_LIB:%=%_install) $(DRIVERS_LIB:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Device driver rules
|
||||
#
|
||||
$(DEVICE_DRIVERS): %:
|
||||
$(MAKE) -C drivers/dd/$*
|
||||
|
||||
$(DEVICE_DRIVERS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/dd/$* implib
|
||||
|
||||
$(DEVICE_DRIVERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/dd/$* clean
|
||||
|
||||
$(DEVICE_DRIVERS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/dd/$* install
|
||||
|
||||
$(DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/dd/$* bootcd
|
||||
|
||||
.PHONY: $(DEVICE_DRIVERS) $(DEVICE_DRIVERS:%=%_implib) $(DEVICE_DRIVERS:%=%_clean) \
|
||||
$(DEVICE_DRIVERS:%=%_install) $(DEVICE_DRIVERS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Video device driver rules
|
||||
#
|
||||
VIDEO_DRIVERS:
|
||||
$(MAKE) -C drivers/video
|
||||
|
||||
VIDEO_DRIVERS_implib:
|
||||
$(MAKE) -C drivers/video implib
|
||||
|
||||
VIDEO_DRIVERS_clean:
|
||||
$(MAKE) -C drivers/video clean
|
||||
|
||||
VIDEO_DRIVERS_install:
|
||||
$(MAKE) -C drivers/video install
|
||||
|
||||
VIDEO_DRIVERS_bootcd:
|
||||
$(MAKE) -C drivers/video bootcd
|
||||
|
||||
.PHONY: VIDEO_DRIVERS VIDEO_DRIVERS_implib VIDEO_DRIVERS_clean \
|
||||
VIDEO_DRIVERS_install VIDEO_DRIVERS_bootcd
|
||||
|
||||
|
||||
#
|
||||
# Input driver rules
|
||||
#
|
||||
$(INPUT_DRIVERS): %:
|
||||
$(MAKE) -C drivers/input/$*
|
||||
|
||||
$(INPUT_DRIVERS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/input/$* implib
|
||||
|
||||
$(INPUT_DRIVERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/input/$* clean
|
||||
|
||||
$(INPUT_DRIVERS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/input/$* install
|
||||
|
||||
$(INPUT_DRIVERS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/input/$* bootcd
|
||||
|
||||
.PHONY: $(INPUT_DRIVERS) $(INPUT_DRIVERS:%=%_implib) $(INPUT_DRIVERS:%=%_clean)\
|
||||
$(INPUT_DRIVERS:%=%_install) $(INPUT_DRIVERS:%=%_bootcd)
|
||||
|
||||
#
|
||||
# Filesystem driver rules
|
||||
#
|
||||
$(FS_DRIVERS): %:
|
||||
$(MAKE) -C drivers/fs/$*
|
||||
|
||||
$(FS_DRIVERS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/fs/$* implib
|
||||
|
||||
$(FS_DRIVERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/fs/$* clean
|
||||
|
||||
$(FS_DRIVERS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/fs/$* install
|
||||
|
||||
$(FS_DRIVERS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/fs/$* bootcd
|
||||
|
||||
.PHONY: $(FS_DRIVERS) $(FS_DRIVERS:%=%_implib) $(FS_DRIVERS:%=%_clean) \
|
||||
$(FS_DRIVERS:%=%_install) $(FS_DRIVERS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Network driver rules
|
||||
#
|
||||
$(NET_DRIVERS): %:
|
||||
$(MAKE) -C drivers/net/$*
|
||||
|
||||
$(NET_DRIVERS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/net/$* implib
|
||||
|
||||
$(NET_DRIVERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/net/$* clean
|
||||
|
||||
$(NET_DRIVERS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/net/$* install
|
||||
|
||||
$(NET_DRIVERS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/net/$* bootcd
|
||||
|
||||
.PHONY: $(NET_DRIVERS) $(NET_DRIVERS:%=%_implib) $(NET_DRIVERS:%=%_clean) \
|
||||
$(NET_DRIVERS:%=%_install) $(NET_DRIVERS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Network device driver rules
|
||||
#
|
||||
$(NET_DEVICE_DRIVERS): %:
|
||||
$(MAKE) -C drivers/net/dd/$*
|
||||
|
||||
$(NET_DEVICE_DRIVERS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/net/dd/$* implib
|
||||
|
||||
$(NET_DEVICE_DRIVERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/net/dd/$* clean
|
||||
|
||||
$(NET_DEVICE_DRIVERS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/net/dd/$* install
|
||||
|
||||
$(NET_DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/net/dd/$* bootcd
|
||||
|
||||
.PHONY: $(NET_DEVICE_DRIVERS) $(NET_DEVICE_DRIVERS:%=%_clean) $(NET_DEVICE_DRIVERS:%=%_implib) \
|
||||
$(NET_DEVICE_DRIVERS:%=%_install) $(NET_DEVICE_DRIVERS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# storage driver rules
|
||||
#
|
||||
$(STORAGE_DRIVERS): %:
|
||||
$(MAKE) -C drivers/storage/$*
|
||||
|
||||
$(STORAGE_DRIVERS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/storage/$* implib
|
||||
|
||||
$(STORAGE_DRIVERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/storage/$* clean
|
||||
|
||||
$(STORAGE_DRIVERS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/storage/$* install
|
||||
|
||||
$(STORAGE_DRIVERS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/storage/$* bootcd
|
||||
|
||||
.PHONY: $(STORAGE_DRIVERS) $(STORAGE_DRIVERS:%=%_clean) $(STORAGE_DRIVERS:%=%_implib) \
|
||||
$(STORAGE_DRIVERS:%=%_install) $(STORAGE_DRIVERS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Kernel loaders
|
||||
#
|
||||
$(LOADERS): %:
|
||||
$(MAKE) -C loaders/$*
|
||||
|
||||
$(LOADERS:%=%_implib): %_implib:
|
||||
|
||||
$(LOADERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C loaders/$* clean
|
||||
|
||||
$(LOADERS:%=%_install): %_install:
|
||||
$(MAKE) -C loaders/$* install
|
||||
|
||||
.PHONY: $(LOADERS) $(LOADERS:%=%_implib) $(LOADERS:%=%_clean) $(LOADERS:%=%_install)
|
||||
|
||||
|
||||
#
|
||||
# Required system components
|
||||
#
|
||||
ntoskrnl:
|
||||
$(MAKE) -C ntoskrnl
|
||||
|
||||
ntoskrnl_implib:
|
||||
$(MAKE) -C ntoskrnl implib
|
||||
|
||||
ntoskrnl_clean:
|
||||
$(MAKE) -C ntoskrnl clean
|
||||
|
||||
ntoskrnl_install:
|
||||
$(MAKE) -C ntoskrnl install
|
||||
|
||||
ntoskrnl_bootcd:
|
||||
$(MAKE) -C ntoskrnl bootcd
|
||||
|
||||
.PHONY: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_bootcd
|
||||
|
||||
|
||||
#
|
||||
# Hardware Abstraction Layer import library
|
||||
#
|
||||
hallib:
|
||||
$(MAKE) -C hal/hal
|
||||
|
||||
hallib_implib:
|
||||
$(MAKE) -C hal/hal implib
|
||||
|
||||
hallib_clean:
|
||||
$(MAKE) -C hal/hal clean
|
||||
|
||||
hallib_install:
|
||||
$(MAKE) -C hal/hal install
|
||||
|
||||
hallib_bootcd:
|
||||
$(MAKE) -C hal/hal bootcd
|
||||
|
||||
.PHONY: hallib hallib_implib hallib_clean hallib_install hallib_bootcd
|
||||
|
||||
|
||||
#
|
||||
# Hardware Abstraction Layers
|
||||
#
|
||||
$(HALS): %:
|
||||
$(MAKE) -C hal/$*
|
||||
|
||||
$(HALS:%=%_implib): %_implib:
|
||||
$(MAKE) -C hal/$* implib
|
||||
|
||||
$(HALS:%=%_clean): %_clean:
|
||||
$(MAKE) -C hal/$* clean
|
||||
|
||||
$(HALS:%=%_install): %_install:
|
||||
$(MAKE) -C hal/$* install
|
||||
|
||||
$(HALS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C hal/$* bootcd
|
||||
|
||||
.PHONY: $(HALS) $(HALS:%=%_implib) $(HALS:%=%_clean) $(HALS:%=%_install) $(HALS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# File system libraries
|
||||
#
|
||||
$(LIB_FSLIB): %:
|
||||
$(MAKE) -C lib/fslib/$*
|
||||
|
||||
$(LIB_FSLIB:%=%_depends): %_depends:
|
||||
$(MAKE) -C lib/fslib/$* depends
|
||||
|
||||
$(LIB_FSLIB:%=%_implib): %_implib:
|
||||
$(MAKE) -C lib/fslib/$* implib
|
||||
|
||||
$(LIB_FSLIB:%=%_clean): %_clean:
|
||||
$(MAKE) -C lib/fslib/$* clean
|
||||
|
||||
$(LIB_FSLIB:%=%_install): %_install:
|
||||
$(MAKE) -C lib/fslib/$* install
|
||||
|
||||
$(LIB_FSLIB:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C lib/fslib/$* bootcd
|
||||
|
||||
.PHONY: $(LIB_FSLIB) $(LIB_FSLIB:%=%_depends) $(LIB_FSLIB:%=%_implib) $(LIB_FSLIB:%=%_clean) \
|
||||
$(LIB_FSLIB:%=%_install) $(LIB_FSLIB:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Static libraries
|
||||
#
|
||||
$(LIB_STATIC): %:
|
||||
$(MAKE) -C lib/$*
|
||||
|
||||
$(LIB_STATIC:%=%_depends): %_depends:
|
||||
$(MAKE) -C lib/string depends
|
||||
|
||||
$(LIB_STATIC:%=%_implib): %_implib:
|
||||
$(MAKE) -C lib/$* implib
|
||||
|
||||
$(LIB_STATIC:%=%_clean): %_clean:
|
||||
$(MAKE) -C lib/$* clean
|
||||
|
||||
$(LIB_STATIC:%=%_install): %_install:
|
||||
$(MAKE) -C lib/$* install
|
||||
|
||||
$(LIB_STATIC:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C lib/$* bootcd
|
||||
|
||||
.PHONY: $(LIB_STATIC) $(LIB_STATIC:%=%_depends) $(LIB_STATIC:%=%_implib) $(LIB_STATIC:%=%_clean) \
|
||||
$(LIB_STATIC:%=%_install) $(LIB_STATIC:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# DLLs
|
||||
#
|
||||
$(DLLS): %:
|
||||
$(MAKE) -C lib/$*
|
||||
|
||||
$(DLLS:%=%_depends): %_depends:
|
||||
$(MAKE) -C lib/$* depends
|
||||
|
||||
$(DLLS:%=%_implib): %_implib:
|
||||
$(MAKE) -C lib/$* implib
|
||||
|
||||
$(DLLS:%=%_clean): %_clean:
|
||||
$(MAKE) -C lib/$* clean
|
||||
|
||||
$(DLLS:%=%_install): %_install:
|
||||
$(MAKE) -C lib/$* install
|
||||
|
||||
$(DLLS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C lib/$* bootcd
|
||||
|
||||
.PHONY: $(DLLS) $(DLLS:%=%_depends) $(DLLS:%=%_implib) $(DLLS:%=%_clean) $(DLLS:%=%_install) \
|
||||
$(DLLS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Subsystem support modules
|
||||
#
|
||||
$(SUBSYS): %:
|
||||
$(MAKE) -C subsys/$*
|
||||
|
||||
$(SUBSYS:%=%_depends): %_depends:
|
||||
$(MAKE) -C subsys/$* depends
|
||||
|
||||
$(SUBSYS:%=%_implib): %_implib:
|
||||
$(MAKE) -C subsys/$* implib
|
||||
|
||||
$(SUBSYS:%=%_clean): %_clean:
|
||||
$(MAKE) -C subsys/$* clean
|
||||
|
||||
$(SUBSYS:%=%_install): %_install:
|
||||
$(MAKE) -C subsys/$* install
|
||||
|
||||
$(SUBSYS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C subsys/$* bootcd
|
||||
|
||||
.PHONY: $(SUBSYS) $(SUBSYS:%=%_depends) $(SUBSYS:%=%_implib) $(SUBSYS:%=%_clean) $(SUBSYS:%=%_install) \
|
||||
$(SUBSYS:%=%_bootcd)
|
||||
|
||||
#
|
||||
# Regression testsuite
|
||||
#
|
||||
|
||||
$(REGTESTS): %:
|
||||
$(MAKE) -C regtests
|
||||
|
||||
$(REGTESTS:%=%_clean): %_clean:
|
||||
$(MAKE) -C regtests clean
|
||||
|
||||
$(REGTESTS:%=%_install): %_install:
|
||||
$(MAKE) -C regtests install
|
||||
|
||||
.PHONY: $(REGTESTS) $(REGTESTS:%=%_depends) $(SUBSYS:%=%_clean) $(REGTESTS:%=%_install)
|
||||
|
||||
|
||||
#
|
||||
# Create an installation
|
||||
#
|
||||
|
||||
install_clean:
|
||||
$(RM) $(INSTALL_DIR)/system32/drivers/*.*
|
||||
$(RM) $(INSTALL_DIR)/system32/config/*.*
|
||||
$(RM) $(INSTALL_DIR)/system32/*.*
|
||||
$(RM) $(INSTALL_DIR)/symbols/*.*
|
||||
$(RM) $(INSTALL_DIR)/media/fonts/*.*
|
||||
$(RM) $(INSTALL_DIR)/media/*.*
|
||||
$(RM) $(INSTALL_DIR)/bin/*.*
|
||||
$(RM) $(INSTALL_DIR)/*.com
|
||||
$(RM) $(INSTALL_DIR)/*.bat
|
||||
$(RMDIR) $(INSTALL_DIR)/system32/drivers
|
||||
$(RMDIR) $(INSTALL_DIR)/system32/config
|
||||
$(RMDIR) $(INSTALL_DIR)/system32
|
||||
$(RMDIR) $(INSTALL_DIR)/symbols
|
||||
$(RMDIR) $(INSTALL_DIR)/media/fonts
|
||||
$(RMDIR) $(INSTALL_DIR)/media
|
||||
$(RMDIR) $(INSTALL_DIR)/bin
|
||||
$(RMDIR) $(INSTALL_DIR)
|
||||
|
||||
install_dirs:
|
||||
$(RMKDIR) $(INSTALL_DIR)
|
||||
$(RMKDIR) $(INSTALL_DIR)/bin
|
||||
$(RMKDIR) $(INSTALL_DIR)/media
|
||||
$(RMKDIR) $(INSTALL_DIR)/media/fonts
|
||||
$(RMKDIR) $(INSTALL_DIR)/symbols
|
||||
$(RMKDIR) $(INSTALL_DIR)/system32
|
||||
$(RMKDIR) $(INSTALL_DIR)/system32/config
|
||||
$(RMKDIR) $(INSTALL_DIR)/system32/drivers
|
||||
|
||||
install_before:
|
||||
$(CP) bootc.lst $(INSTALL_DIR)/bootc.lst
|
||||
$(CP) boot.bat $(INSTALL_DIR)/boot.bat
|
||||
$(CP) aboot.bat $(INSTALL_DIR)/aboot.bat
|
||||
$(CP) media/fonts $(INSTALL_DIR)/media/fonts
|
||||
$(CP) media/nls $(INSTALL_DIR)/system32
|
||||
$(CP) media/nls/c_1252.nls $(INSTALL_DIR)/system32/ansi.nls
|
||||
$(CP) media/nls/c_437.nls $(INSTALL_DIR)/system32/oem.nls
|
||||
$(CP) media/nls/l_intl.nls $(INSTALL_DIR)/system32/casemap.nls
|
||||
|
||||
.PHONY: install_clean install_dirs install_before
|
||||
|
||||
|
||||
etags:
|
||||
find . -name "*.[ch]" -print | etags --language=c -
|
||||
|
||||
|
||||
docu:
|
||||
echo generating ReactOS NTOSKRNL documentation ...
|
||||
$(MAKE) -C ntoskrnl docu
|
||||
|
||||
echo generating ReactOS drivers documentation ...
|
||||
$(MAKE) -C drivers docu
|
||||
|
||||
echo generating ReactOS NTDLL documentation ...
|
||||
$(MAKE) -C lib/ntdll docu
|
||||
|
||||
echo generating ReactOS Freetype documentation ...
|
||||
$(MAKE) -C lib/freetype docu
|
||||
|
||||
echo generating ReactOS libs documentation ...
|
||||
$(MAKE) -C lib docu
|
||||
|
||||
echo generating ReactOS WIN32K documentation ...
|
||||
$(MAKE) -C subsys/win32k docu
|
||||
|
||||
echo generating ReactOS apps+tools documentation ...
|
||||
$(MAKE) -C apps docu
|
||||
|
||||
echo generating ReactOS explorer documentation ...
|
||||
$(MAKE) -C subsys/system/explorer full-docu
|
||||
|
||||
echo generating remaining ReactOS documentation ...
|
||||
doxygen Doxyfile
|
||||
|
||||
.PHONY: docu
|
||||
|
||||
|
||||
# EOF
|
28
reactos/README
Normal file
28
reactos/README
Normal file
@@ -0,0 +1,28 @@
|
||||
========================
|
||||
ReactOS Version 0.1.x
|
||||
Updated March 19th, 2003
|
||||
========================
|
||||
|
||||
1. What is ReactOS?
|
||||
|
||||
ReactOS is an Open Source effort to develop a quality operating system
|
||||
that is compatible with Windows NT applications and drivers.
|
||||
|
||||
The ReactOS project, although currently focused on Windows NT 4.0
|
||||
compatibility, is always keeping an eye towards compatibility with
|
||||
future Windows NT releases, that is, Windows 2000 (NT 5.0) and
|
||||
Windows XP (NT 5.1).
|
||||
|
||||
More information is available at http://www.reactos.com.
|
||||
|
||||
2. Building ReactOS
|
||||
|
||||
See the INSTALL file for more details.
|
||||
|
||||
3. More information
|
||||
|
||||
See the doc subdirectory for some sparse notes
|
||||
|
||||
4. Who is responsible
|
||||
|
||||
See the CREDITS file
|
3
reactos/aboot.bat
Normal file
3
reactos/aboot.bat
Normal file
@@ -0,0 +1,3 @@
|
||||
loadros system32\ntoskrnl.exe system32\hal.dll system32\drivers\acpi.sys /DEBUGPORT=SCREEN bootc.lst
|
||||
rem comment added and changed for no reason
|
||||
|
31
reactos/apistatus.lst
Executable file
31
reactos/apistatus.lst
Executable file
@@ -0,0 +1,31 @@
|
||||
; Format:
|
||||
; COMPONENT_NAME PATH_TO_COMPONENT_SOURCES
|
||||
; COMPONENT_NAME - Name of the component. Eg. kernel32.dll.
|
||||
; PATH_TO_COMPONENT_SOURCES - Relative path to sources (relative to
|
||||
; where rgenstat is run from).
|
||||
advapi32.dll reactos/lib/advapi32
|
||||
crtdll.dll reactos/lib/crtdll
|
||||
gdi32.dll reactos/lib/gdi32
|
||||
iphlpapi.dll reactos/lib/iphlpapi
|
||||
kernel32.dll reactos/lib/kernel32
|
||||
lz32.dll reactos/lib/lzexpand
|
||||
msvcrt.dll reactos/lib/msvcrt
|
||||
ole32.dll reactos/lib/ole32
|
||||
oleaut32.dll reactos/lib/oleaut32
|
||||
rpcrt4.dll reactos/lib/rpcrt4
|
||||
secur32.dll reactos/lib/secur32
|
||||
shell32.dll reactos/lib/shell32
|
||||
snmpapi.dll reactos/lib/snmpapi
|
||||
user32.dll reactos/lib/user32
|
||||
version.dll reactos/lib/version
|
||||
winmm.dll reactos/lib/winmm
|
||||
winspool.dll reactos/lib/winspool
|
||||
ws2_32.dll reactos/lib/ws2_32
|
||||
wsock32.dll reactos/lib/wsock32
|
||||
videoprt.dll reactos/drivers/dd/videoprt
|
||||
ndis.sys reactos/drivers/net/ndis
|
||||
tdi.sys reactos/drivers/net/tdi
|
||||
class2.sys reactos/drivers/storage/class2
|
||||
scsiport.sys reactos/drivers/storage/scsiport
|
||||
ntoskrnl.exe reactos/ntoskrnl
|
||||
win32k.sys reactos/subsys/win32k
|
1
reactos/apps/.cvsignore
Normal file
1
reactos/apps/.cvsignore
Normal file
@@ -0,0 +1 @@
|
||||
doxy-doc
|
207
reactos/apps/Doxyfile
Normal file
207
reactos/apps/Doxyfile
Normal file
@@ -0,0 +1,207 @@
|
||||
# Doxyfile 1.3.5
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = "ReactOS Apps & Tools"
|
||||
PROJECT_NUMBER =
|
||||
OUTPUT_DIRECTORY = doxy-doc
|
||||
OUTPUT_LANGUAGE = English
|
||||
USE_WINDOWS_ENCODING = YES
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = YES
|
||||
STRIP_FROM_PATH = ..
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = YES
|
||||
MULTILINE_CPP_IS_BRIEF = NO
|
||||
DETAILS_AT_TOP = NO
|
||||
INHERIT_DOCS = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
ALIASES =
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
OPTIMIZE_OUTPUT_JAVA = NO
|
||||
SUBGROUPING = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Build related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_LOCAL_CLASSES = NO
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
HIDE_FRIEND_COMPOUNDS = NO
|
||||
HIDE_IN_BODY_DOCS = NO
|
||||
INTERNAL_DOCS = YES
|
||||
CASE_SENSE_NAMES = YES
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = YES
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
GENERATE_DEPRECATEDLIST= YES
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = NO
|
||||
WARNINGS = NO
|
||||
WARN_IF_UNDOCUMENTED = NO
|
||||
WARN_IF_DOC_ERROR = YES
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = . \
|
||||
../tools
|
||||
FILE_PATTERNS = *.c \
|
||||
*.h
|
||||
RECURSIVE = YES
|
||||
EXCLUDE =
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = YES
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = YES
|
||||
INLINE_SOURCES = YES
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
VERBATIM_HEADERS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = html
|
||||
HTML_FILE_EXTENSION = .html
|
||||
HTML_HEADER =
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
CHM_FILE =
|
||||
HHC_LOCATION =
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = YES
|
||||
TREEVIEW_WIDTH = 200
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT = latex
|
||||
LATEX_CMD_NAME = latex
|
||||
MAKEINDEX_CMD_NAME = makeindex
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
LATEX_HIDE_INDICES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT = rtf
|
||||
COMPACT_RTF = YES
|
||||
RTF_HYPERLINKS = YES
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT = man
|
||||
MAN_EXTENSION = .3
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = NO
|
||||
XML_OUTPUT = xml
|
||||
XML_SCHEMA =
|
||||
XML_DTD =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the Perl module output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_PERLMOD = NO
|
||||
PERLMOD_LATEX = NO
|
||||
PERLMOD_PRETTY = YES
|
||||
PERLMOD_MAKEVAR_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = NO
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH = ../include
|
||||
INCLUDE_FILE_PATTERNS = *.h
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES =
|
||||
GENERATE_TAGFILE =
|
||||
ALLEXTERNALS = NO
|
||||
EXTERNAL_GROUPS = YES
|
||||
PERL_PATH = /usr/bin/perl
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = YES
|
||||
HIDE_UNDOC_RELATIONS = NO
|
||||
HAVE_DOT = YES
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
UML_LOOK = NO
|
||||
TEMPLATE_RELATIONS = NO
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
CALL_GRAPH = YES
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_IMAGE_FORMAT = png
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
MAX_DOT_GRAPH_DEPTH = 0
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = YES
|
13
reactos/apps/Makefile
Normal file
13
reactos/apps/Makefile
Normal file
@@ -0,0 +1,13 @@
|
||||
# $Id: Makefile,v 1.1 2003/12/06 23:10:50 mf Exp $
|
||||
#
|
||||
# ReactOS apps and tools makefile to generate Doxygen documentation
|
||||
#
|
||||
|
||||
|
||||
docu:
|
||||
doxygen Doxyfile
|
||||
|
||||
.PHONY: docu
|
||||
|
||||
|
||||
# EOF
|
11
reactos/apps/dist/notepad/.cvsignore
vendored
Normal file
11
reactos/apps/dist/notepad/.cvsignore
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
||||
notepad.nostrip.exe
|
||||
notepad.ncb
|
||||
notepad.suo
|
||||
notepad.exe
|
||||
Release
|
126
reactos/apps/dist/notepad/Da.rc
vendored
Normal file
126
reactos/apps/dist/notepad/Da.rc
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* Notepad (Danish resources)
|
||||
*
|
||||
* Copyright 1998 Henrik Olsen <henrik@iaeste.dk>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Filef" {
|
||||
MENUITEM "&Ny...", CMD_NEW
|
||||
MENUITEM "<22>&bn\tEnter", CMD_OPEN
|
||||
MENUITEM "&Gem", CMD_SAVE
|
||||
MENUITEM "Gem so&m...", CMD_SAVE_AS
|
||||
MENUITEM "&Udskriv", CMD_PRINT
|
||||
MENUITEM "Side&ops<70>tning...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Indstil printer...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Afslut", CMD_EXIT
|
||||
}
|
||||
POPUP "&Rediger" {
|
||||
MENUITEM "&Fortryd\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Klip\tCtrl+X", CMD_CUT
|
||||
MENUITEM "K&opier\tCtrl+C", CMD_COPY
|
||||
MENUITEM "S<>t &ind\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Slet\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Marker &alt", CMD_SELECT_ALL
|
||||
MENUITEM "&Dato/tid\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Automatisk &linjeskift", CMD_WRAP
|
||||
}
|
||||
POPUP "&S<>g" {
|
||||
MENUITEM "&S<>g...", CMD_SEARCH
|
||||
MENUITEM "&Find n<>ste\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Hj<48>lp" {
|
||||
MENUITEM "&Indhold", CMD_HELP_CONTENTS
|
||||
MENUITEM "&S<>g efter hj<68>lp om...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Brug af Hj<48>lp", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Om Notesblok..." {
|
||||
MENUITEM "&Licens", CMD_LICENSE
|
||||
MENUITEM "&NO WARRANTY", CMD_NO_WARRANTY
|
||||
MENUITEM "&Om WINE", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Sideops<70>tning"
|
||||
{
|
||||
LTEXT "&Sidehoved:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "Side&fod:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "Margener:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Venstre:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Top:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&H<>jre:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Bund:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Annuller", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Hj<48>lp", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notesblok"
|
||||
STRING_ERROR, "FEJL"
|
||||
STRING_WARNING, "ADVARSEL"
|
||||
STRING_INFO, "Information"
|
||||
|
||||
STRING_UNTITLED, "(ikke-navngivet)"
|
||||
|
||||
STRING_ALL_FILES, "Alle filer (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Tekst filer (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Filen '%s' er for stor til Notesblok. \
|
||||
\nBrug en anden editor til at redigere filen."
|
||||
STRING_NOTEXT, "Du har ikke skrevet noget tekst. \
|
||||
\nSkriv noget tekst, og pr<70>v s<> igen"
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "File '%s'\nhas been modified\n\n \
|
||||
Would you like to save the changes ?"
|
||||
STRING_NOTFOUND, "Kan ikke finde '%s'."
|
||||
STRING_OUT_OF_MEMORY, "Der er ikke nok hukommelse til at udf<64>re \
|
||||
denne operation. \nAfslut et eller flere aktive programmer for at frig<69>re \
|
||||
hukommelse, og pr<70>v s<> igen."
|
||||
|
||||
}
|
129
reactos/apps/dist/notepad/De.rc
vendored
Normal file
129
reactos/apps/dist/notepad/De.rc
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* Notepad (German resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Datei" {
|
||||
MENUITEM "&Neu...", CMD_NEW
|
||||
MENUITEM "<22>&ffnen...", CMD_OPEN
|
||||
MENUITEM "&Speichern", CMD_SAVE
|
||||
MENUITEM "Speichern &unter...", CMD_SAVE_AS
|
||||
MENUITEM "&Drucken", CMD_PRINT
|
||||
MENUITEM "Seite ein&richten...", CMD_PAGE_SETUP
|
||||
MENUITEM "Drucker&einrichtung...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Beenden", CMD_EXIT
|
||||
}
|
||||
POPUP "&Bearbeiten" {
|
||||
MENUITEM "&R<>ckg<6B>ngig\tStrg+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Ausschneiden\tStrg+X", CMD_CUT
|
||||
MENUITEM "&Kopieren\tStrg+C", CMD_COPY
|
||||
MENUITEM "&Einf<6E>gen\tStrg+V", CMD_PASTE
|
||||
MENUITEM "&L<>schen\tEntf", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Alles &markieren", CMD_SELECT_ALL
|
||||
MENUITEM "&Uhrzeit/Datum\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Zeilenumbruch", CMD_WRAP
|
||||
}
|
||||
POPUP "&Suchen" {
|
||||
MENUITEM "Suchen...", CMD_SEARCH
|
||||
MENUITEM "&Weitersuchen\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Hilfe" {
|
||||
MENUITEM "&Inhalt", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Suchen...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Hilfe benutzen", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&Lizenz", CMD_LICENSE
|
||||
MENUITEM "&KEINE GARANTIE", CMD_NO_WARRANTY
|
||||
MENUITEM "&<26>ber Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Seite einrichten"
|
||||
{
|
||||
LTEXT "&Kopfzeile:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Fu<46>zeile:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "R<>nder", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Links:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Oben:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Rechts:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Unten:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Abbrechen", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Hilfe", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Editor"
|
||||
STRING_ERROR, "FEHLER"
|
||||
STRING_WARNING, "ACHTUNG"
|
||||
STRING_INFO, "Information"
|
||||
|
||||
STRING_UNTITLED, "(unbenannt)"
|
||||
|
||||
STRING_ALL_FILES, "Alle Dateien (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Textdateien (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "'%s' ist zu gross f<>r den Editor\n \
|
||||
Benutzen Sie bitte einen anderen Editor, um diese Datei zu bearbeiten."
|
||||
STRING_NOTEXT, "Sie haben keinen Text eingegeben, der \
|
||||
gespeichert\n werden k<>nnte. Geben Sie Text ein, und versuchen Sie es \
|
||||
\nerneut."
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "Datei %s\n wurde geaendert.\n\n \
|
||||
Moechten Sie die Aenderungen speichern ?"
|
||||
STRING_NOTFOUND, "'%s' kann nicht gefunden werden."
|
||||
STRING_OUT_OF_MEMORY, "Nicht gen<65>gend Arbeitsspeicher, \
|
||||
um diese Funktion \nabzuschlie<69>en. Beenden Sie eine oder mehrere \
|
||||
\nAnwendungen, um den verf<72>gbaren Arbeitsspeicher zu \nerh<72>hen."
|
||||
|
||||
|
||||
}
|
129
reactos/apps/dist/notepad/En.rc
vendored
Normal file
129
reactos/apps/dist/notepad/En.rc
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* Notepad (English resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&File" {
|
||||
MENUITEM "&New...", CMD_NEW
|
||||
MENUITEM "&Open\tCtrl+O", CMD_OPEN
|
||||
MENUITEM "&Save\tCtrl+S", CMD_SAVE
|
||||
MENUITEM "Save &as...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Print", CMD_PRINT
|
||||
MENUITEM "Page Se&tup...", CMD_PAGE_SETUP
|
||||
MENUITEM "P&rinter Setup...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "E&xit", CMD_EXIT
|
||||
}
|
||||
POPUP "&Edit" {
|
||||
MENUITEM "&Undo\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Cu&t\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copy\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Paste\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Delete\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Select &all\tCtrl+A", CMD_SELECT_ALL
|
||||
MENUITEM "&Time/Date\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Wrap long lines", CMD_WRAP
|
||||
MENUITEM "&Font...", CMD_FONT
|
||||
}
|
||||
POPUP "&Search" {
|
||||
MENUITEM "&Search\tCtrl+F", CMD_SEARCH
|
||||
MENUITEM "&Search next\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Help" {
|
||||
MENUITEM "&Contents", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Search...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Help on help", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&License", CMD_LICENSE
|
||||
MENUITEM "&NO WARRANTY", CMD_NO_WARRANTY
|
||||
MENUITEM "&About Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Page Setup"
|
||||
{
|
||||
LTEXT "&Header:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Footer:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Margins:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Left:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Top:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Right:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Bottom:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Cancel", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Help", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notepad"
|
||||
STRING_ERROR, "ERROR"
|
||||
STRING_WARNING, "WARNING"
|
||||
STRING_INFO, "Information"
|
||||
|
||||
STRING_UNTITLED, "(untitled)"
|
||||
|
||||
STRING_ALL_FILES, "All files (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Text files (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "File '%s' is too large for notepad.\n \
|
||||
Please use a different editor."
|
||||
STRING_NOTEXT, "You didn't enter any text. \
|
||||
\nPlease type something and try again"
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "File '%s'\nhas been modified\n\n \
|
||||
Would you like to save the changes ?"
|
||||
STRING_NOTFOUND, "'%s' can not be found."
|
||||
STRING_OUT_OF_MEMORY, "Not enough memory to complete this \
|
||||
task. \nClose one or more applications to increase the amount of \nfree \
|
||||
memory."
|
||||
|
||||
}
|
130
reactos/apps/dist/notepad/Es.rc
vendored
Normal file
130
reactos/apps/dist/notepad/Es.rc
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* Notepad (Spanish resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Proofread 1999 by Jose Marcos Lopez <jose.lopez@upcnet.upc.es>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Copyright 2003 Jos<6F> Manuel Ferrer Ortiz
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SPANISH, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Archivo" {
|
||||
MENUITEM "&Nuevo", CMD_NEW
|
||||
MENUITEM "&Abrir", CMD_OPEN
|
||||
MENUITEM "&Guardar", CMD_SAVE
|
||||
MENUITEM "Guardar &como...", CMD_SAVE_AS
|
||||
MENUITEM "&Imprimir", CMD_PRINT
|
||||
MENUITEM "Configurar &p<>gina...", CMD_PAGE_SETUP
|
||||
MENUITEM "Configuraci<63>n &impresora...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Salir", CMD_EXIT
|
||||
}
|
||||
POPUP "&Editar" {
|
||||
MENUITEM "&Deshacer\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Cor&tar\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copiar\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Pegar\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Borrar\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Seleccionar t&odo", CMD_SELECT_ALL
|
||||
MENUITEM "&Hora y Fecha\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Ajuste de l<>nea autom<6F>tico", CMD_WRAP
|
||||
}
|
||||
POPUP "&Buscar" {
|
||||
MENUITEM "&Buscar...", CMD_SEARCH
|
||||
MENUITEM "Buscar &siguiente\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Ayuda" {
|
||||
MENUITEM "<22>&ndice", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Buscar...", CMD_HELP_SEARCH
|
||||
MENUITEM "A&yuda sobre la ayuda", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Informaci<63>n..." {
|
||||
MENUITEM "&Licencia", CMD_LICENSE
|
||||
MENUITEM "SIN &GARANT<4E>A", CMD_NO_WARRANTY
|
||||
MENUITEM "&Acerca de Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "&Ajuste de p<>gina"
|
||||
{
|
||||
LTEXT "&Cabecera:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Pie:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&M<>rgenes:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Izquierda:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "A&rriba:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Derecha:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "Aba&jo:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "Aceptar", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Cancelar", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Ayuda", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "P<>gina &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Bloc de Notas"
|
||||
STRING_ERROR, "ERROR"
|
||||
STRING_WARNING, "ADVERTENCIA"
|
||||
STRING_INFO, "Informaci<63>n"
|
||||
|
||||
STRING_UNTITLED, "(sin t<>tulo)"
|
||||
|
||||
STRING_ALL_FILES, "Todos los archivos (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Documentos de texto (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "El archivo '%s' es demasiado grande para el bloc de notas.\n \
|
||||
Use otro editor."
|
||||
STRING_NOTEXT, "No escribi<62> nada. \
|
||||
\nPor favor escriba algo y pruebe de nuevo"
|
||||
STRING_DOESNOTEXIST, "El archivo '%s'\nno existe\n\n \
|
||||
<EFBFBD>Desea crear un nuevo archivo?"
|
||||
STRING_NOTSAVED, "El texto en el archivo '%s' ha cambiado\n\n \
|
||||
<EFBFBD>Desea guardar los cambios?"
|
||||
STRING_NOTFOUND, "no se encontr<74> '%s'."
|
||||
STRING_OUT_OF_MEMORY, "No hay suficiente memoria para terminar \
|
||||
esta tarea. \nCierre una o m<>s aplicaciones para aumentar la cantidad \nde \
|
||||
memoria libre."
|
||||
|
||||
|
||||
}
|
126
reactos/apps/dist/notepad/Fi.rc
vendored
Normal file
126
reactos/apps/dist/notepad/Fi.rc
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* Notepad (Finnish resources)
|
||||
*
|
||||
* Copyright 1999 by Jukka Iivonen <iivonen@iki.fi>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Tiedosto" {
|
||||
MENUITEM "&Uusi...", CMD_NEW
|
||||
MENUITEM "&Avaa", CMD_OPEN
|
||||
MENUITEM "Ta&lleta", CMD_SAVE
|
||||
MENUITEM "Talleta &nimell<6C>...", CMD_SAVE_AS
|
||||
MENUITEM "T&ulosta", CMD_PRINT
|
||||
MENUITEM "&Sivun asetukset...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Kirjoittimen asetukset...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Poistu", CMD_EXIT
|
||||
}
|
||||
POPUP "&Muokkaa" {
|
||||
MENUITEM "&Palauta\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Leikkaa\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Kopioi\tCtrl+C", CMD_COPY
|
||||
MENUITEM "L&iit<69>\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "P&oista\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Valitse kaikki", CMD_SELECT_ALL
|
||||
MENUITEM "&Aika/P<>iv<69>m<EFBFBD><6D>r<EFBFBD>\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Ka&tkaise pitk<74> rivi", CMD_WRAP
|
||||
}
|
||||
POPUP "&Etsi" {
|
||||
MENUITEM "Etsi...", CMD_SEARCH
|
||||
MENUITEM "Etsi &seuraava\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Apua" {
|
||||
MENUITEM "&Sis<69>lt<6C>", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Etsi...", CMD_HELP_SEARCH
|
||||
MENUITEM "Apua &Opastuksesta", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&Lisenssi", CMD_LICENSE
|
||||
MENUITEM "&EI TAKUUTA", CMD_NO_WARRANTY
|
||||
MENUITEM "&Tietoja Wine:ista", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Sivun asetukset"
|
||||
{
|
||||
LTEXT "&Yl<59>otsikko:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "Alao&tsikko:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Marginaali:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Vasen:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "Y&l<>:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Oikea:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Ala:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Peruuta", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Apua", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Sivu &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notepad"
|
||||
STRING_ERROR, "VIRHE"
|
||||
STRING_WARNING, "VAROITUS"
|
||||
STRING_INFO, "Tiedoitus"
|
||||
|
||||
STRING_UNTITLED, "(otsikoimaton)"
|
||||
|
||||
STRING_ALL_FILES, "Kaikki tiedostot (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Teksti tiedostot (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Tiedosto '%s' on liian suuri.\n \
|
||||
Please use a different editor."
|
||||
STRING_NOTEXT, "Et sy<73>tt<74>nyt lainkaan teksti<74>. \
|
||||
\nKirjoita jotain ja yrit<69> uudelleen"
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "File '%s'\nhas been modified\n\n \
|
||||
Would you like to save the changes ?"
|
||||
STRING_NOTFOUND, "'%s' ei l<>ydy."
|
||||
STRING_OUT_OF_MEMORY, "Muistia ei ole riitt<74>v<EFBFBD>sti t<>m<EFBFBD>n \
|
||||
\nteht<68>v<EFBFBD>n tekemiseksi. Sulje jokin sovellus vapauttaaksesi\n \
|
||||
muistia."
|
||||
|
||||
}
|
129
reactos/apps/dist/notepad/Fr.rc
vendored
Normal file
129
reactos/apps/dist/notepad/Fr.rc
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* Notepad (French resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Translation by Laurent Buffler <laurent@bluewin.ch>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Fichier" {
|
||||
MENUITEM "&Nouveau...", CMD_NEW
|
||||
MENUITEM "&Ouvrir\tCtrl+O", CMD_OPEN
|
||||
MENUITEM "&Enregistrer\tCtrl+S", CMD_SAVE
|
||||
MENUITEM "Enregistrer &sous...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Im&primer", CMD_PRINT
|
||||
MENUITEM "&Mise en page...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Configuration de l'imprimante...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Quitter", CMD_EXIT
|
||||
}
|
||||
POPUP "&Edition" {
|
||||
MENUITEM "&Annuler\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Co&uper\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copier\tCtrl+C", CMD_COPY
|
||||
MENUITEM "C&oller\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Effacer\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Tout &s<>lectionner\tCtrl+A", CMD_SELECT_ALL
|
||||
MENUITEM "&Heure/Date\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Retour <20> la ligne", CMD_WRAP
|
||||
MENUITEM "&Police...", CMD_FONT
|
||||
}
|
||||
POPUP "&Rechercher" {
|
||||
MENUITEM "&Rechercher\tCtrl+F", CMD_SEARCH
|
||||
MENUITEM "&Suivant\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Aide" {
|
||||
MENUITEM "&Sommaire", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Rechercher...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Utiliser l'aide", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&Licence", CMD_LICENSE
|
||||
MENUITEM "&AUCUNE GARANTIE", CMD_NO_WARRANTY
|
||||
MENUITEM "&A propos de Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Mise en page"
|
||||
{
|
||||
LTEXT "&En-t<>te :", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Pied de page :", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Marges :", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Gauche :", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Haut :", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Droite :", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Bas :", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Annuler", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Aide", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Bloc-notes"
|
||||
STRING_ERROR, "ERREUR"
|
||||
STRING_WARNING, "ATTENTION"
|
||||
STRING_INFO, "Information"
|
||||
|
||||
STRING_UNTITLED, "(sans-titre)"
|
||||
|
||||
STRING_ALL_FILES, "Tous fichiers (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Fichiers texte (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Le fichier '%s' est trop grand pour le bloc-notes.\n \
|
||||
Veuillez utiliser un autre <20>diteur."
|
||||
STRING_NOTEXT, "Vous n'avez pas entr<74> de texte. \
|
||||
Veuillez taper quelque chose et recommencer"
|
||||
STRING_DOESNOTEXIST, "Le fichier '%s'\nn'existe pas.\n\n \
|
||||
Voulez-vous cr<63>er un nouveau fichier ?"
|
||||
STRING_NOTSAVED, "Le fichier '%s'\na <20>t<EFBFBD> modifi<66>\n\n \
|
||||
Voulez-vous enregistrer vos modifications ?"
|
||||
STRING_NOTFOUND, "'%s' non trouv<75>."
|
||||
STRING_OUT_OF_MEMORY, "Pas assez de m<>moire pour compl<70>ter cette \
|
||||
t<EFBFBD>che. \nFermez une ou plusieurs applications pour lib<69>rer\n\
|
||||
de la m<>moire."
|
||||
|
||||
}
|
128
reactos/apps/dist/notepad/Hu.rc
vendored
Normal file
128
reactos/apps/dist/notepad/Hu.rc
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
* Notepad (Hungarian resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur
|
||||
* Proofread 1998 by David Lee Lambert
|
||||
* Copyright 2002 Sylvain Petreolle
|
||||
* Copyright 2002 Zoly Nagy
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
MAIN_MENU MENU LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
|
||||
{
|
||||
POPUP "&F<>jl" {
|
||||
MENUITEM "<22>&j", CMD_NEW
|
||||
MENUITEM "Meg&nyit<69>s...", CMD_OPEN
|
||||
MENUITEM "&Ment<6E>s", CMD_SAVE
|
||||
MENUITEM "Ment<6E>s m<>&sk<73>nt...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Oldalbe<62>ll<6C>t<EFBFBD>s...", CMD_PAGE_SETUP
|
||||
MENUITEM "Nyom&tat<61>s...", CMD_PRINT
|
||||
MENUITEM "Nyomtat<61> &be<62>ll<6C>t<EFBFBD>s...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Kil<69>p<EFBFBD>s", CMD_EXIT
|
||||
}
|
||||
POPUP "S&zerkeszt<7A>s" {
|
||||
MENUITEM "&Visszavon<6F>s\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Kiv<69>&g<>s\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&M<>sol<6F>s\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Beilleszt<7A>s\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "T<>r&l<>s\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Az <20>sszes kijel<65>l<EFBFBD>se", CMD_SELECT_ALL
|
||||
MENUITEM "&Id<49>/d<>tum\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hossz<73> sorok t<>rdel<65>se", CMD_WRAP
|
||||
}
|
||||
POPUP "&Keres<65>s" {
|
||||
MENUITEM "&Keres<65>s...", CMD_SEARCH
|
||||
MENUITEM "K<>ve&tkez<65> keres<65>se\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&S<>g<EFBFBD>" {
|
||||
MENUITEM "&T<>mak<61>r<EFBFBD>k", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Keres<65>s...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Haszn<7A>lat", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&orm<72>ci<63>..." {
|
||||
MENUITEM "&Licenc", CMD_LICENSE
|
||||
MENUITEM "&SEMMI GARANCIA", CMD_NO_WARRANTY
|
||||
MENUITEM "&Wine n<>vjegy", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Oldalbe<62>ll<6C>t<EFBFBD>s"
|
||||
{
|
||||
LTEXT "&Fejl<6A>c:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&L<>bl<62>c:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Marg<72>k:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Bal:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Fels<6C>:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Jobb:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Als<6C>:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "M<>gse", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&S<>g<EFBFBD>", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Oldalsz<73>m: &s." /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Jegyzett<74>mb"
|
||||
STRING_ERROR, "HIBA"
|
||||
STRING_WARNING, "FIGYELMEZTET<45>S"
|
||||
STRING_INFO, "Inform<72>ci<63>"
|
||||
|
||||
STRING_UNTITLED, "(n<>vtelen)"
|
||||
|
||||
STRING_ALL_FILES, "Minden f<>jl (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Sz<53>vegf<67>jlok (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "'%s' f<>jl t<>l nagy m<>ret<65>.\n \
|
||||
K<EFBFBD>rem haszn<7A>ljon m<>sik sz<73>vegszerkeszt<7A> programot."
|
||||
STRING_NOTEXT, "A sz<73>veg nem tartalmaz karaktert! \
|
||||
\nK<6E>rem g<>peljen be n<>h<EFBFBD>ny karaktert <20>s pr<70>b<EFBFBD>lja <20>jra!"
|
||||
STRING_DOESNOTEXIST, "A megadott '%s'\nf<6E>jl nem l<>tezik!\n\n \
|
||||
K<EFBFBD>v<EFBFBD>n l<>trehozni <20>j f<>jlt?"
|
||||
STRING_NOTSAVED, "'%s' f<>jl\nm<6E>dosult\n\n \
|
||||
Szeretn<EFBFBD> menteni a v<>ltoz<6F>sokat?"
|
||||
STRING_NOTFOUND, "'%s' nem tal<61>lhat<61>!"
|
||||
STRING_OUT_OF_MEMORY, "Nincs elegend<6E> szabad mem<65>ria!\
|
||||
\nZ<6E>rjon be n<>h<EFBFBD>ny alkalmaz<61>st, ezzel n<>velve a szabad mem<65>ria m<>ret<65>t\
|
||||
!"
|
||||
|
||||
}
|
130
reactos/apps/dist/notepad/It.rc
vendored
Normal file
130
reactos/apps/dist/notepad/It.rc
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* Notepad (Italian resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Copyright 2003 Marcelo Duarte
|
||||
* Copyright 2003 Ivan Leo Murray-Smith <puoti@inwind.it>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&File" {
|
||||
MENUITEM "&Nuovo", CMD_NEW
|
||||
MENUITEM "&Apri...\tCtrl+O", CMD_OPEN
|
||||
MENUITEM "&Salva\tCtrl+S", CMD_SAVE
|
||||
MENUITEM "Salva &con nome...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Stampa", CMD_PRINT
|
||||
MENUITEM "&Imposta pagina...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Configurazione di stampa...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "E&sci", CMD_EXIT
|
||||
}
|
||||
POPUP "&Modifica" {
|
||||
MENUITEM "&Anulla\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Taglia\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copia\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Incolla\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Elimina\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Seleziona &tutto\tCtrl+A", CMD_SELECT_ALL
|
||||
MENUITEM "&Ora/Data\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&A campo automatico", CMD_WRAP
|
||||
MENUITEM "&Imposta carattere...", CMD_FONT
|
||||
}
|
||||
POPUP "&Trova" {
|
||||
MENUITEM "&Trova\tCtrl+F", CMD_SEARCH
|
||||
MENUITEM "&Trova successivo\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Aiuto" {
|
||||
MENUITEM "&Contenuti", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Trova...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Aiuto sulla Guida", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&Licenza", CMD_LICENSE
|
||||
MENUITEM "&Garanzia", CMD_NO_WARRANTY
|
||||
MENUITEM "&Informazioni sul Blocco Note", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Setup di pagina"
|
||||
{
|
||||
LTEXT "&Note a inizio pagina:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Note a pi<70> di pagina:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Margini:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Sinistro:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Superiore:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Destro:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Inferiore:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Cancella", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Aiuto", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Blocco note"
|
||||
STRING_ERROR, "ERRORE"
|
||||
STRING_WARNING, "ATTENZIONE"
|
||||
STRING_INFO, "Info"
|
||||
|
||||
STRING_UNTITLED, "(senza nome)"
|
||||
|
||||
STRING_ALL_FILES, "Tutti i file (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "File di testo (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Il file '%s' <20> troppo grande per il blocco note.\n \
|
||||
Per favore usare un altro editor."
|
||||
STRING_NOTEXT, "Non <20> stato inserito alcun testo. \
|
||||
\nPer favore digitare qualcosa e riprovare"
|
||||
STRING_DOESNOTEXIST, "Il file '%s'\nnon esiste\n\n \
|
||||
Creare un nuovo file ?"
|
||||
STRING_NOTSAVED, "Il file '%s'\ne' stato modificato\n\n \
|
||||
Salvare le modifiche ?"
|
||||
STRING_NOTFOUND, "'%s' non <20> stato trovato."
|
||||
STRING_OUT_OF_MEMORY, "Memoria insufficente per completare questa operazione \
|
||||
task. \nChiudere una o pi<70> applicazioni per aumentare la quantita'\n di memoria libera."
|
||||
|
||||
}
|
28
reactos/apps/dist/notepad/License_En.c
vendored
Normal file
28
reactos/apps/dist/notepad/License_En.c
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
#include <windows.h>
|
||||
#include "license.h"
|
||||
|
||||
static const CHAR LicenseCaption_En[] = "LICENSE";
|
||||
static const CHAR License_En[] =
|
||||
"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.\n"
|
||||
|
||||
"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.\n"
|
||||
|
||||
"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";
|
||||
|
||||
static const CHAR NoWarrantyCaption_En[] = "NO WARRANTY";
|
||||
static const CHAR NoWarranty_En[] =
|
||||
"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.";
|
||||
|
||||
LICENSE WineLicense_En = {License_En, LicenseCaption_En,
|
||||
NoWarranty_En, NoWarrantyCaption_En};
|
126
reactos/apps/dist/notepad/Nl.rc
vendored
Normal file
126
reactos/apps/dist/notepad/Nl.rc
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* Notepad (Dutch resources)
|
||||
*
|
||||
* Copyright 2003 Hans Leidekker
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Bestand" {
|
||||
MENUITEM "&Nieuw...", CMD_NEW
|
||||
MENUITEM "&Openen\tCtrl+O", CMD_OPEN
|
||||
MENUITEM "O&pslaan\tCtrl+p", CMD_SAVE
|
||||
MENUITEM "Ops&laan als...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Afdrukken", CMD_PRINT
|
||||
MENUITEM "Pagina-in&stelling...", CMD_PAGE_SETUP
|
||||
MENUITEM "Printerinstellingen...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Afsluiten", CMD_EXIT
|
||||
}
|
||||
POPUP "Be&werken" {
|
||||
MENUITEM "&Ongedaan maken\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "K&nippen\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Kopiëren\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Plakken\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Verwijderen\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Alles selecteren\tCtrl+A", CMD_SELECT_ALL
|
||||
MENUITEM "Tijd/&datum\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "A&utomatische terugloop", CMD_WRAP
|
||||
MENUITEM "&Lettertype instellen...", CMD_FONT
|
||||
}
|
||||
POPUP "&Zoeken" {
|
||||
MENUITEM "&Zoeken\tCtrl+Z", CMD_SEARCH
|
||||
MENUITEM "&Volgende zoeken\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Help" {
|
||||
MENUITEM "&Help-onderwerpen", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Zoeken...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Hulp bij Help", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&Licentie", CMD_LICENSE
|
||||
MENUITEM "&GEEN GARANTIE", CMD_NO_WARRANTY
|
||||
MENUITEM "&Over Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Pagina-instelling"
|
||||
{
|
||||
LTEXT "&Koptekst:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Voettekst:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Marges:", 0x144, 10, 43,160, 45
|
||||
LTEXT "Li&nks:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Boven:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Rechts:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Onder:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Annuleren", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Help", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Pagina &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Kladblok"
|
||||
STRING_ERROR, "FOUT"
|
||||
STRING_WARNING, "WAARSCHUWING"
|
||||
STRING_INFO, "Informatie"
|
||||
|
||||
STRING_UNTITLED, "(naamloos)"
|
||||
|
||||
STRING_ALL_FILES, "Alle bestanden (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Tekstbestanden (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Het bestand '%s' is te groot voor Kladblok.\n \
|
||||
Gebruik een andere editor."
|
||||
STRING_NOTEXT, "U heeft geen tekst ingevoerd. \
|
||||
\nType uw tekst en probeer het nogmaals"
|
||||
STRING_DOESNOTEXIST, "Het bestand '%s'\nbestaat niet\n\n \
|
||||
Wilt u een nieuw bestand maken?"
|
||||
STRING_NOTSAVED, "Het bestand '%s'\nis gewijzigd\n\n \
|
||||
Wilt u de wijzigingen opslaan?"
|
||||
STRING_NOTFOUND, "'%s' kan niet worden gevonden."
|
||||
STRING_OUT_OF_MEMORY, "Onvoldoende geheugen. \
|
||||
\nSluit een of meer applicaties om de hoeveelheid \nbeschikbaar geheugen te vergroten."
|
||||
|
||||
}
|
129
reactos/apps/dist/notepad/Pt.rc
vendored
Normal file
129
reactos/apps/dist/notepad/Pt.rc
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* Notepad
|
||||
* Portuguese Language Support
|
||||
*
|
||||
* Copyright 1999 Marcel Baur <alves@correionet.com.br>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Copyright 2003 Marcelo Duarte
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_PORTUGUESE, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Arquivo" {
|
||||
MENUITEM "&Novo...", CMD_NEW
|
||||
MENUITEM "A&brir", CMD_OPEN
|
||||
MENUITEM "&Salvar", CMD_SAVE
|
||||
MENUITEM "Salvar &como...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Imprimir", CMD_PRINT
|
||||
MENUITEM "C&onfigurar p<>gina...", CMD_PAGE_SETUP
|
||||
MENUITEM "Configurar i&mpressora...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Sai&r", CMD_EXIT
|
||||
}
|
||||
POPUP "&Editar" {
|
||||
MENUITEM "&Desfazer\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Recortar\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copiar\tCtrl+C", CMD_COPY
|
||||
MENUITEM "C&olar\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "E&xcluir\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Selecionar &tudo", CMD_SELECT_ALL
|
||||
MENUITEM "&Data/Hora\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Quebrar autom<6F>tica de linha", CMD_WRAP
|
||||
MENUITEM "&Fonte...", CMD_FONT
|
||||
}
|
||||
POPUP "&Pesquisa" {
|
||||
MENUITEM "&Localizar...", CMD_SEARCH
|
||||
MENUITEM "Localizar &pr<70>xima\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Ajuda" {
|
||||
MENUITEM "&Conte<74>do", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Procurar...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Ajuda na ajuda", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Informa<6D><61>es..." {
|
||||
MENUITEM "&Licen<65>a", CMD_LICENSE
|
||||
MENUITEM "&SEM GARANTIA", CMD_NO_WARRANTY
|
||||
MENUITEM "&Sobre o Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Configurar p<>gina"
|
||||
{
|
||||
LTEXT "&Cabe<62>alho:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Rodap<61>:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Margens:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Esquerda:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Superior:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Direita:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Inferior:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Cancelar", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Ajuda", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "P<>gina &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notepad"
|
||||
STRING_ERROR, "ERRO"
|
||||
STRING_WARNING, "AVISO"
|
||||
STRING_INFO, "Informa<6D><61>o"
|
||||
|
||||
STRING_UNTITLED, "(sem nome)"
|
||||
|
||||
STRING_ALL_FILES, "Todos os arquivos (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Arquivos texto (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Arquivo '%s' <20> muito longo para o notepad.\n \
|
||||
Por favor use um editor diferente."
|
||||
STRING_NOTEXT, "Voc<6F> n<>o digitou nenhum texto. \
|
||||
\nPor favor digite alguma coisa e tente novamente"
|
||||
STRING_DOESNOTEXIST, "Arquivo '%s'\nn<6E>o existe\n\n \
|
||||
Voc<EFBFBD> deseja criar um novo arquivo?"
|
||||
STRING_NOTSAVED, "Arquivo '%s'\nfoi modificado\n\n \
|
||||
Gostaria de salvar as altera<72><61>es?"
|
||||
STRING_NOTFOUND, "'%s' n<>o pode ser encontrado."
|
||||
STRING_OUT_OF_MEMORY, "N<>o h<> mem<65>ria suficiente para completar essa \
|
||||
tarefa. \nFeche uma ou mais aplica<63><61>es para aumentar a quantidade de mem<65>ria livre."
|
||||
|
||||
}
|
124
reactos/apps/dist/notepad/Ru.rc
vendored
Normal file
124
reactos/apps/dist/notepad/Ru.rc
vendored
Normal file
@@ -0,0 +1,124 @@
|
||||
/*
|
||||
* Notepad (Russian resources)
|
||||
*
|
||||
* Copyright 2003 Igor Stepin
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
MAIN_MENU MENU LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
{
|
||||
POPUP "&<26><><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>&<26><><EFBFBD>", CMD_NEW
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", CMD_OPEN
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_SAVE
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> &<26><><EFBFBD>...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", CMD_PAGE_SETUP
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", CMD_PRINTER_SETUP
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_PRINT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22>&<26><><EFBFBD><EFBFBD>", CMD_EXIT
|
||||
}
|
||||
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tCtrl+C", CMD_COPY
|
||||
MENUITEM "<22><><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD>\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>&<26><>", CMD_SELECT_ALL
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>&<26> <20> <20><><EFBFBD><EFBFBD>\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_WRAP
|
||||
}
|
||||
POPUP "<22>&<26><><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD>", CMD_SEARCH
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD> &<26><><EFBFBD><EFBFBD><EFBFBD>\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_HELP_CONTENTS
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD>...", CMD_HELP_SEARCH
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..." {
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_LICENSE
|
||||
MENUITEM "&<26><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_NO_WARRANTY
|
||||
MENUITEM "&O Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
{
|
||||
LTEXT "<22>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22>&<26><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "<22><><EFBFBD><EFBFBD> (<28><>):", 0x144, 10, 43,160, 45
|
||||
LTEXT "&<26><><EFBFBD><EFBFBD><EFBFBD>:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 <20><>" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 <20><>" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 <20><>" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 <20><>" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
STRING_ERROR, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
STRING_WARNING, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
STRING_INFO, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
STRING_UNTITLED, "(<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"
|
||||
|
||||
STRING_ALL_FILES, "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "<22><><EFBFBD><EFBFBD> '%s' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n \
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
|
||||
STRING_NOTEXT, "<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. \
|
||||
\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>."
|
||||
STRING_DOESNOTEXIST, "<22><><EFBFBD><EFBFBD> '%s'\n<><6E> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\n \
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>?"
|
||||
STRING_NOTSAVED, "<22><><EFBFBD><EFBFBD> '%s'\n<><6E><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\n \
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?"
|
||||
STRING_NOTFOUND, "'%s' <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
|
||||
STRING_OUT_OF_MEMORY, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \
|
||||
\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
|
||||
|
||||
}
|
125
reactos/apps/dist/notepad/Si.rc
vendored
Normal file
125
reactos/apps/dist/notepad/Si.rc
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
/*
|
||||
* Notepad (Slovenian resources)
|
||||
*
|
||||
* Copyright 2002-2003 Rok Mandeljc <rok.mandeljc@gimb.org>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Datoteka" {
|
||||
MENUITEM "&Nova", CMD_NEW
|
||||
MENUITEM "&Odpri ...", CMD_OPEN
|
||||
MENUITEM "&Shrani", CMD_SAVE
|
||||
MENUITEM "Shrani &kot ...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Na&tisni", CMD_PRINT
|
||||
MENUITEM "P&riprava strani ...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Tiskalnik ...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Iz&hod", CMD_EXIT
|
||||
}
|
||||
POPUP "&Urejanje" {
|
||||
MENUITEM "&Razveljavi\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Izre<72>i\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Kopiraj\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Prilepi\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "Izbri&<26>i\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Izberi &vse", CMD_SELECT_ALL
|
||||
MENUITEM "<22>as/&Datum\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Pr&elom vrstice", CMD_WRAP
|
||||
}
|
||||
POPUP "&Iskanje" {
|
||||
MENUITEM "&Najdi ...", CMD_SEARCH
|
||||
MENUITEM "Na&daljuj iskanje\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Pomo<6D>" {
|
||||
MENUITEM "&Teme pomo<6D>i", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Najdi ...", CMD_HELP_SEARCH
|
||||
MENUITEM "&O pomo<6D>i", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&ormacije ..." {
|
||||
MENUITEM "&Licen<65>na pogodba", CMD_LICENSE
|
||||
MENUITEM "&BREZ GARANCIJE", CMD_NO_WARRANTY
|
||||
MENUITEM "&O Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Priprava strani"
|
||||
CAPTION "Page Setup"
|
||||
{
|
||||
LTEXT "&Glava:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Noga:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "Robovi", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Levo:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Desno:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Zgoraj:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Spodaj:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "V redu", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Prekli<6C>i", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Pomo<6D>", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Stran &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Bele<6C>nica"
|
||||
STRING_ERROR, "NAPAKA"
|
||||
STRING_WARNING, "OPOZORILO"
|
||||
STRING_INFO, "Informacija"
|
||||
|
||||
STRING_UNTITLED, "Neimenovana"
|
||||
|
||||
STRING_ALL_FILES, "Vse datoteke (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Datoteke z besedilom (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Datoteka '%s' je prevelika za Bele<6C>nico.\n \
|
||||
Uporabite drug urejevalnik."
|
||||
STRING_NOTEXT, "Niste vnesli besedila. \
|
||||
\nVnesite besedilo in poskusite znova."
|
||||
STRING_DOESNOTEXIST, "Datoteka '%s' ne obstaja.\n\n \
|
||||
Ali <20>elite ustvariti novo datoteko?"
|
||||
STRING_NOTSAVED, "Vsebina datoteke '%s'je bila spremenjena.\n\n \
|
||||
Ali <20>elite shraniti spremembe?"
|
||||
STRING_NOTFOUND, "Ni mogo<67>e najti '%s'."
|
||||
STRING_OUT_OF_MEMORY, "Na voljo ni dovolj pomnilnika, da bi bilo mogo<67>e dokon<6F>ati to \
|
||||
operacijo. \n<>e ga <20>elite sprostiti, kon<6F>ajte enega ali ve<76> programov in poskusite znova. "
|
||||
|
||||
}
|
127
reactos/apps/dist/notepad/Sk.rc
vendored
Normal file
127
reactos/apps/dist/notepad/Sk.rc
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
* Notepad (Slovak resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&File" {
|
||||
MENUITEM "&New...", CMD_NEW
|
||||
MENUITEM "&Open", CMD_OPEN
|
||||
MENUITEM "&Save", CMD_SAVE
|
||||
MENUITEM "Save &as...", CMD_SAVE_AS
|
||||
MENUITEM "&Print", CMD_PRINT
|
||||
MENUITEM "Page Se&tup...", CMD_PAGE_SETUP
|
||||
MENUITEM "P&rinter Setup...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Exit", CMD_EXIT
|
||||
}
|
||||
POPUP "&Edit" {
|
||||
MENUITEM "&Undo\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Cu&t\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copy\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Paste\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Delete\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Select &all", CMD_SELECT_ALL
|
||||
MENUITEM "&Time/Date\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Wrap long lines", CMD_WRAP
|
||||
}
|
||||
POPUP "&Search" {
|
||||
MENUITEM "&Search", CMD_SEARCH
|
||||
MENUITEM "&Search next\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Help" {
|
||||
MENUITEM "&Contents", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Search...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Help on help", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&License", CMD_LICENSE
|
||||
MENUITEM "&NO WARRANTY", CMD_NO_WARRANTY
|
||||
MENUITEM "&About Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Page Setup"
|
||||
{
|
||||
LTEXT "&Header:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Footer:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Margins:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Left:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Top:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Right:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Bottom:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Cancel", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Help", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notepad"
|
||||
STRING_ERROR, "ERROR"
|
||||
STRING_WARNING, "WARNING"
|
||||
STRING_INFO, "Information"
|
||||
|
||||
STRING_UNTITLED, "(untitled)"
|
||||
|
||||
STRING_ALL_FILES, "All files (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Text files (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "File '%s' is too large for notepad.\n \
|
||||
Please use a different editor."
|
||||
STRING_NOTEXT, "You didn't enter any text. \
|
||||
\nPlease type something and try again"
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "File '%s'\nhas been modified\n\n \
|
||||
Would you like to save the changes ?"
|
||||
STRING_NOTFOUND, "'%s' can not be found."
|
||||
STRING_OUT_OF_MEMORY, "Not enough memory to complete this \
|
||||
task. \nClose one or more applications to increase the amount of \nfree \
|
||||
memory."
|
||||
|
||||
}
|
127
reactos/apps/dist/notepad/Sw.rc
vendored
Normal file
127
reactos/apps/dist/notepad/Sw.rc
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
* Notepad (Swedish resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Arkiv" {
|
||||
MENUITEM "&Ny...", CMD_NEW
|
||||
MENUITEM "<22>&ppna", CMD_OPEN
|
||||
MENUITEM "&Spara", CMD_SAVE
|
||||
MENUITEM "Spara &som...", CMD_SAVE_AS
|
||||
MENUITEM "&Skriv ut", CMD_PRINT
|
||||
MENUITEM "Sid La&yout...", CMD_PAGE_SETUP
|
||||
MENUITEM "Skrivar &inst<73>llningar...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Avsluta", CMD_EXIT
|
||||
}
|
||||
POPUP "&Redigera" {
|
||||
MENUITEM "&Undo\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Klippa\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Kopiera\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Klistra in\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Ta bort\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Markera &allt", CMD_SELECT_ALL
|
||||
MENUITEM "&Tid/Datum\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Dela l<>nga meningar", CMD_WRAP
|
||||
}
|
||||
POPUP "&S<>k" {
|
||||
MENUITEM "S<>k...", CMD_SEARCH
|
||||
MENUITEM "&S<>k n<>sta\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Hj<48>lp" {
|
||||
MENUITEM "&Inneh<65>ll", CMD_HELP_CONTENTS
|
||||
MENUITEM "&S<>k...", CMD_HELP_SEARCH
|
||||
MENUITEM "Anv<6E>ndningen &av hj<68>lp", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&ormation..." {
|
||||
MENUITEM "&Licens", CMD_LICENSE
|
||||
MENUITEM "&INGEN GARANTI", CMD_NO_WARRANTY
|
||||
MENUITEM "&Om Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Sid Layout"
|
||||
{
|
||||
LTEXT "&Huvudnot:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Fotnot:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "Kanter:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&V<>nster:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&<26>ver:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&H<>ger:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Under:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Avbryt", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Hj<48>lp", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Anteckningar"
|
||||
STRING_ERROR, "FEL"
|
||||
STRING_WARNING, "WARNING"
|
||||
STRING_INFO, "Information"
|
||||
|
||||
STRING_UNTITLED, "(untitled)"
|
||||
|
||||
STRING_ALL_FILES, "Alla filer (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Text filer (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Filen '%s' <20>r f<>r stor f<>r notepad.\n \
|
||||
Anv<EFBFBD>nd en annan editor."
|
||||
STRING_NOTEXT, "Du skrev inte in n<>gon text. \
|
||||
\nSkriv n<>got och f<>rs<72>k sedan igen"
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "File '%s'\nhas been modified\n\n \
|
||||
Would you like to save the changes ?"
|
||||
STRING_NOTFOUND, "'%s' hittades inte."
|
||||
STRING_OUT_OF_MEMORY, "Inte tillr<6C>kligt med minne f<>r att slutf<74>ra \
|
||||
den h<>r uppgiften. \nAvsluta ett eller flera program f<>r att <20>ka m<>ngden \nfritt \
|
||||
minne."
|
||||
|
||||
}
|
121
reactos/apps/dist/notepad/Th.rc
vendored
Normal file
121
reactos/apps/dist/notepad/Th.rc
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* Notepad (Thai Resources)
|
||||
*
|
||||
* Copyright 2003 Jon Griffiths
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_THAI, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "<22><><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "<22><><EFBFBD>ҧ<EFBFBD><D2A7><EFBFBD><EFBFBD>...", CMD_NEW
|
||||
MENUITEM "<22><>Դ...\tCtrl+O", CMD_OPEN
|
||||
MENUITEM "<22>ѹ<EFBFBD>ס\tCtrl+S", CMD_SAVE
|
||||
MENUITEM "<22>ѹ<EFBFBD>ס<EFBFBD><D7A1><EFBFBD><EFBFBD>...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>", CMD_PRINT
|
||||
MENUITEM "<22><>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>˹<EFBFBD><CBB9>...", CMD_PAGE_SETUP
|
||||
MENUITEM "<22><>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͧ<EFBFBD><CDA7><EFBFBD><EFBFBD><EFBFBD>...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22>͡", CMD_EXIT
|
||||
}
|
||||
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "<22><><EFBFBD>¡<EFBFBD>\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22>Ѵ\tCtrl+X", CMD_CUT
|
||||
MENUITEM "<22>Ѵ<EFBFBD>͡\tCtrl+C", CMD_COPY
|
||||
MENUITEM "<22>ҧ\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "ź\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD>͡<EFBFBD><CDA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tCtrl+A", CMD_SELECT_ALL
|
||||
MENUITEM "<22>ѹ<EFBFBD><D1B9><EFBFBD>/\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><>ͺ<EFBFBD>÷Ѵ<C3B7><D1B4><EFBFBD>", CMD_WRAP
|
||||
MENUITEM "<22>ٻẺ<D9BB><E1BABA><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>...", CMD_FONT
|
||||
}
|
||||
POPUP "<22>ѹ<EFBFBD><D1B9>" {
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>\tCtrl+F", CMD_SEARCH
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_HELP_CONTENTS
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>...", CMD_HELP_SEARCH
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>ǡѺ<C7A1><D1BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´..." {
|
||||
MENUITEM "<22><>حҵ", CMD_LICENSE
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD> WARRANTY", CMD_NO_WARRANTY
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>ǡѺ Wine... ", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "<22><>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>˹<EFBFBD><CBB9>"
|
||||
{
|
||||
LTEXT "<22><><EFBFBD>:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Footer:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "<22>ͺ<EFBFBD><CDBA>д<EFBFBD><D0B4>:", 0x144, 10, 43,160, 45
|
||||
LTEXT "<22><><EFBFBD><EFBFBD>:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22><>:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22><><EFBFBD>:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22><>ҧ:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "<22><>ŧ", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "¡<><C2A1>ԡ", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "˹<><CBB9> &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 <20><>." /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 <20><>." /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 <20><>." /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 <20><>." /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notepad"
|
||||
STRING_ERROR, "<22><><EFBFBD><EFBFBD><EFBFBD>Դ"
|
||||
STRING_WARNING, "<22><>ҵ<EFBFBD>"
|
||||
STRING_INFO, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´"
|
||||
|
||||
STRING_UNTITLED, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
STRING_ALL_FILES, "<22>ء<EFBFBD><D8A1><EFBFBD><EFBFBD> (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "<22><><EFBFBD><EFBFBD> '%s' <20>˭<EFBFBD><CBAD><EFBFBD>Թ<EFBFBD><D4B9>"
|
||||
STRING_NOTEXT, "<22>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¹<EFBFBD><C2B9><EFBFBD><EFBFBD>\n<><6E>س<EFBFBD><D8B3>ͧ<EFBFBD><CDA7><EFBFBD><EFBFBD>"
|
||||
STRING_DOESNOTEXIST, "<22><>辺<EFBFBD><E8BEBA><EFBFBD><EFBFBD> '%s' <20><><EFBFBD><EFBFBD><EFBFBD>ͧ<EFBFBD><CDA7><EFBFBD><EFBFBD><EFBFBD>Դ\n<>س<EFBFBD><D8B3>ͧ<EFBFBD><CDA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҧ<EFBFBD><D2A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?"
|
||||
STRING_NOTSAVED, "<22>ա<EFBFBD><D5A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¹<EFBFBD><C2B9>ŧ<EFBFBD>Ѻ<EFBFBD>͡<EFBFBD><CDA1><EFBFBD>\n\n'%s'\n\n<>س<EFBFBD><D8B3>ͧ<EFBFBD><CDA7>úѹ<C3BA>֡<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?"
|
||||
STRING_NOTFOUND, "<22><>辺<EFBFBD><E8BEBA>ͤ<EFBFBD><CDA4><EFBFBD> '%s' <20><><EFBFBD><EFBFBD><EFBFBD>ͧ<EFBFBD><CDA7>ä<EFBFBD><C3A4><EFBFBD><EFBFBD>"
|
||||
STRING_OUT_OF_MEMORY, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<><6E>س<EFBFBD><D8B3>ͧ<EFBFBD><CDA7><EFBFBD><EFBFBD>"
|
||||
|
||||
}
|
130
reactos/apps/dist/notepad/Wa.rc
vendored
Normal file
130
reactos/apps/dist/notepad/Wa.rc
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* Notepad (Walon resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#ifdef LANG_WALON
|
||||
|
||||
LANGUAGE LANG_WALON, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Fitch<63>" {
|
||||
MENUITEM "&Novea...", CMD_NEW
|
||||
MENUITEM "&Drov<6F>", CMD_OPEN
|
||||
MENUITEM "&Schaper", CMD_SAVE
|
||||
MENUITEM "Schaper <20>t r&lomer...", CMD_SAVE_AS
|
||||
MENUITEM "&Rexhe", CMD_PRINT
|
||||
MENUITEM "Arrandjmint del &P<>dje...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Apontiaedje del scrirece...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Mouss<73> &Fo<46>", CMD_EXIT
|
||||
}
|
||||
POPUP "&Candj<64>" {
|
||||
MENUITEM "&Disf<73>\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "C<>&per\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copy<70>\tCtrl+C", CMD_COPY
|
||||
MENUITEM "C&laper\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Rafacer\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Tchwezi totafwait", CMD_SELECT_ALL
|
||||
MENUITEM "&Eure/Date\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "C<>per les ro&yes", CMD_WRAP
|
||||
}
|
||||
POPUP "C&wer<65>" {
|
||||
MENUITEM "Cwer<65>...", CMD_SEARCH
|
||||
MENUITEM "&Sh<53>vant\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Aide" {
|
||||
MENUITEM "<22>&dvins", CMD_HELP_CONTENTS
|
||||
MENUITEM "C&wer<65>...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Aide so l' Aide", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Inform<72>cion..." {
|
||||
MENUITEM "&Licinse", CMD_LICENSE
|
||||
MENUITEM "&NOLE WARANTEYE", CMD_NO_WARRANTY
|
||||
MENUITEM "<22> &dfait di Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Arindjmint del P<>dje"
|
||||
{
|
||||
LTEXT "&Tite:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&P<>note:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Mardjes:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Hintche:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Copete:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Droete:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Bas:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "I Va", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Rinonc<6E>", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Aide", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "P<>dje &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notepad"
|
||||
STRING_ERROR, "AROKE"
|
||||
STRING_WARNING, "ADVERTIXHMINT"
|
||||
STRING_INFO, "Inform<72>cion"
|
||||
|
||||
STRING_UNTITLED, "(sin tite)"
|
||||
|
||||
STRING_ALL_FILES, "Tos les fitch<63>s (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Fitch<63>s tekse (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Li fitch<63> '%s' est trop gros pol notepad.\n \
|
||||
Eployoz on <20>te aspougneu di tekse."
|
||||
STRING_NOTEXT, "Vos n' avoz r<>n sicr<63>t. \
|
||||
\nTapez ene sacwe <20>t rasayez"
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "Li fitch<63> '%s'\na candj<64>\n\n \
|
||||
El voloz schaper ?"
|
||||
STRING_NOTFOUND, "'%s' pout n<>n esse trov<6F>."
|
||||
STRING_OUT_OF_MEMORY, "Li memwere est plinne. \n\
|
||||
Cloyoz on programe ou pus po monter li memwere libe."
|
||||
|
||||
}
|
||||
|
||||
#endif /* LANG_WALON */
|
123
reactos/apps/dist/notepad/Zh.rc
vendored
Normal file
123
reactos/apps/dist/notepad/Zh.rc
vendored
Normal file
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* Notepad (Simplified Chinese resources)
|
||||
*
|
||||
* Copyright 2002 liuspider <liuspider@yahoo.com>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
MAIN_MENU MENU LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
{
|
||||
POPUP "<22>ļ<EFBFBD><C4BC><EFBFBD>&F<><46>" {
|
||||
MENUITEM "<22>½<EFBFBD><C2BD><EFBFBD>&N<><4E>...", CMD_NEW
|
||||
MENUITEM "<22><EFBFBD>&O<><4F>", CMD_OPEN
|
||||
MENUITEM "<22><><EFBFBD>棨&S<><53>", CMD_SAVE
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>Ϊ(&A)...", CMD_SAVE_AS
|
||||
MENUITEM "<22><>ӡ<EFBFBD><D3A1>&P<><50>", CMD_PRINT
|
||||
MENUITEM "ҳ<><D2B3><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>&T<><54>...", CMD_PAGE_SETUP
|
||||
MENUITEM "<22><>ӡ<EFBFBD><D3A1><EFBFBD>ã<EFBFBD>&R<><52>...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22>˳<EFBFBD><CBB3><EFBFBD>&E<><45>", CMD_EXIT
|
||||
}
|
||||
POPUP "<22>༭<EFBFBD><E0BCAD>&E<><45>" {
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&U<><55>\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD>У<EFBFBD>&T<><54>\tCtrl+X", CMD_CUT
|
||||
MENUITEM "<22><><EFBFBD>ƣ<EFBFBD>&C<><43>\tCtrl+C", CMD_COPY
|
||||
MENUITEM "ճ<><D5B3><EFBFBD><EFBFBD>&P<><50>\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "ɾ<><C9BE><EFBFBD><EFBFBD>&D<><44>\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "ȫѡ<C8AB><D1A1>&A<><41>", CMD_SELECT_ALL
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>ʱ<EFBFBD>䣨&T<><54>\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>У<EFBFBD>&W<><57>", CMD_WRAP
|
||||
}
|
||||
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&S<><53>" {
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&S<><53>", CMD_SEARCH
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>&S<><53>\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&H<><48>" {
|
||||
MENUITEM "<22><><EFBFBD>ݣ<EFBFBD>&C<><43>", CMD_HELP_CONTENTS
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&S<><53>...", CMD_HELP_SEARCH
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>ʹ<EFBFBD>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD>&H<><48>", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>&O<><4F>..." {
|
||||
MENUITEM "<22>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD>飨&L<><4C>", CMD_LICENSE
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>أ<DEB9>&N<><4E>", CMD_NO_WARRANTY
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD> Wine<6E><65>&A<><41>", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 10, "Helv"
|
||||
CAPTION "ҳ<><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
{
|
||||
LTEXT "ҳü<D2B3><C3BC>&H<><48>:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22><>ע<EFBFBD><D7A2>&F<><46>:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "<22><>Ե<EFBFBD>հף<D5B0>&M<><4D><EFBFBD><EFBFBD>", 0x144, 10, 43,160, 45
|
||||
LTEXT "<22><><EFBFBD><EFBFBD>&L<><4C><EFBFBD><EFBFBD>", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22>ϣ<EFBFBD>&T<><54><EFBFBD><EFBFBD>", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22>ң<EFBFBD>&R<><52><EFBFBD><EFBFBD>", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22>£<EFBFBD>&B<><42><EFBFBD><EFBFBD>", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "ȷ<><C8B7>", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "ȡ<><C8A1>", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<26><>", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "<22><><EFBFBD>±<EFBFBD>"
|
||||
STRING_ERROR, "<22><><EFBFBD><EFBFBD>"
|
||||
STRING_WARNING, "<22><><EFBFBD><EFBFBD>"
|
||||
STRING_INFO, "<22><>Ϣ"
|
||||
|
||||
STRING_UNTITLED, "<22><>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
STRING_ALL_FILES, "<22><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "<22>ı<EFBFBD><C4B1>ļ<EFBFBD> (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "<22><><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD> '%s' <20><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>\n \
|
||||
<EFBFBD><EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><EFBFBD>ı༭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
STRING_NOTEXT, "<22><>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA>ı<EFBFBD><C4B1><EFBFBD> \
|
||||
\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD>"
|
||||
STRING_DOESNOTEXIST, "<22>ļ<EFBFBD> '%s'\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\n \
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
STRING_NOTSAVED, "<22>ļ<EFBFBD> '%s'\n<><6E><EFBFBD><EFBFBD><EFBFBD>Ѹ<EFBFBD><D1B8><EFBFBD>\n\n \
|
||||
<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>"
|
||||
STRING_NOTFOUND, "<22>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>ļ<EFBFBD> '%s'"
|
||||
STRING_OUT_OF_MEMORY, "û<><C3BB><EFBFBD>㹻<EFBFBD><E3B9BB><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \
|
||||
\n<><6E><EFBFBD>ر<EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD>ʩ<EFBFBD><CAA9><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>"
|
||||
|
||||
}
|
717
reactos/apps/dist/notepad/dialog.c
vendored
Normal file
717
reactos/apps/dist/notepad/dialog.c
vendored
Normal file
@@ -0,0 +1,717 @@
|
||||
/*
|
||||
* Notepad (dialog.c)
|
||||
*
|
||||
* Copyright 1998,99 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Copyright 2002 Andriy Palamarchuk
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#define UNICODE
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
#include <commdlg.h>
|
||||
|
||||
#include "main.h"
|
||||
#include "license.h"
|
||||
#include "dialog.h"
|
||||
|
||||
static const WCHAR helpfileW[] = { 'n','o','t','e','p','a','d','.','h','l','p',0 };
|
||||
|
||||
static INT_PTR WINAPI DIALOG_PAGESETUP_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
VOID ShowLastError(void)
|
||||
{
|
||||
DWORD error = GetLastError();
|
||||
if (error != NO_ERROR)
|
||||
{
|
||||
LPWSTR lpMsgBuf;
|
||||
WCHAR szTitle[MAX_STRING_LEN];
|
||||
|
||||
LoadString(Globals.hInstance, STRING_ERROR, szTitle, SIZEOF(szTitle));
|
||||
FormatMessage(
|
||||
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL, error, 0,
|
||||
(LPTSTR) &lpMsgBuf, 0, NULL);
|
||||
MessageBox(NULL, lpMsgBuf, szTitle, MB_OK | MB_ICONERROR);
|
||||
LocalFree(lpMsgBuf);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the caption of the main window according to Globals.szFileTitle:
|
||||
* Notepad - (untitled) if no file is open
|
||||
* Notepad - [filename] if a file is given
|
||||
*/
|
||||
static void UpdateWindowCaption(void)
|
||||
{
|
||||
WCHAR szCaption[MAX_STRING_LEN];
|
||||
WCHAR szUntitled[MAX_STRING_LEN];
|
||||
|
||||
LoadString(Globals.hInstance, STRING_NOTEPAD, szCaption, SIZEOF(szCaption));
|
||||
|
||||
if (Globals.szFileTitle[0] != '\0') {
|
||||
static const WCHAR bracket_lW[] = { ' ','-',' ','[',0 };
|
||||
static const WCHAR bracket_rW[] = { ']',0 };
|
||||
lstrcat(szCaption, bracket_lW);
|
||||
lstrcat(szCaption, Globals.szFileTitle);
|
||||
lstrcat(szCaption, bracket_rW);
|
||||
}
|
||||
else
|
||||
{
|
||||
static const WCHAR hyphenW[] = { ' ','-',' ',0 };
|
||||
LoadString(Globals.hInstance, STRING_UNTITLED, szUntitled, SIZEOF(szUntitled));
|
||||
lstrcat(szCaption, hyphenW);
|
||||
lstrcat(szCaption, szUntitled);
|
||||
}
|
||||
|
||||
SetWindowText(Globals.hMainWnd, szCaption);
|
||||
}
|
||||
|
||||
static void AlertFileNotFound(LPCWSTR szFileName)
|
||||
{
|
||||
WCHAR szMessage[MAX_STRING_LEN];
|
||||
WCHAR szResource[MAX_STRING_LEN];
|
||||
|
||||
/* Load and format szMessage */
|
||||
LoadString(Globals.hInstance, STRING_NOTFOUND, szResource, SIZEOF(szResource));
|
||||
wsprintf(szMessage, szResource, szFileName);
|
||||
|
||||
/* Load szCaption */
|
||||
LoadString(Globals.hInstance, STRING_ERROR, szResource, SIZEOF(szResource));
|
||||
|
||||
/* Display Modal Dialog */
|
||||
MessageBox(Globals.hMainWnd, szMessage, szResource, MB_ICONEXCLAMATION);
|
||||
}
|
||||
|
||||
static int AlertFileNotSaved(LPCWSTR szFileName)
|
||||
{
|
||||
WCHAR szMessage[MAX_STRING_LEN];
|
||||
WCHAR szResource[MAX_STRING_LEN];
|
||||
WCHAR szUntitled[MAX_STRING_LEN];
|
||||
|
||||
LoadString(Globals.hInstance, STRING_UNTITLED, szUntitled, SIZEOF(szUntitled));
|
||||
|
||||
/* Load and format Message */
|
||||
LoadString(Globals.hInstance, STRING_NOTSAVED, szResource, SIZEOF(szResource));
|
||||
wsprintf(szMessage, szResource, szFileName[0] ? szFileName : szUntitled);
|
||||
|
||||
/* Load Caption */
|
||||
LoadString(Globals.hInstance, STRING_ERROR, szResource, SIZEOF(szResource));
|
||||
|
||||
/* Display modal */
|
||||
return MessageBox(Globals.hMainWnd, szMessage, szResource, MB_ICONEXCLAMATION|MB_YESNOCANCEL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns:
|
||||
* TRUE - if file exists
|
||||
* FALSE - if file does not exist
|
||||
*/
|
||||
BOOL FileExists(LPCWSTR szFilename)
|
||||
{
|
||||
WIN32_FIND_DATA entry;
|
||||
HANDLE hFile;
|
||||
|
||||
hFile = FindFirstFile(szFilename, &entry);
|
||||
FindClose(hFile);
|
||||
|
||||
return (hFile != INVALID_HANDLE_VALUE);
|
||||
}
|
||||
|
||||
|
||||
static VOID DoSaveFile(VOID)
|
||||
{
|
||||
HANDLE hFile;
|
||||
DWORD dwNumWrite;
|
||||
LPSTR pTemp;
|
||||
DWORD size;
|
||||
|
||||
hFile = CreateFile(Globals.szFileName, GENERIC_WRITE, FILE_SHARE_WRITE,
|
||||
NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if(hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
|
||||
size = GetWindowTextLengthA(Globals.hEdit) + 1;
|
||||
pTemp = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
if (!pTemp)
|
||||
{
|
||||
CloseHandle(hFile);
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
size = GetWindowTextA(Globals.hEdit, pTemp, size);
|
||||
|
||||
if (!WriteFile(hFile, pTemp, size, &dwNumWrite, NULL))
|
||||
ShowLastError();
|
||||
|
||||
CloseHandle(hFile);
|
||||
HeapFree(GetProcessHeap(), 0, pTemp);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns:
|
||||
* TRUE - User agreed to close (both save/don't save)
|
||||
* FALSE - User cancelled close by selecting "Cancel"
|
||||
*/
|
||||
BOOL DoCloseFile(void)
|
||||
{
|
||||
int nResult;
|
||||
static const WCHAR empty_strW[] = { 0 };
|
||||
|
||||
if (SendMessage(Globals.hEdit, EM_GETMODIFY, 0, 0))
|
||||
{
|
||||
/* prompt user to save changes */
|
||||
nResult = AlertFileNotSaved(Globals.szFileName);
|
||||
switch (nResult) {
|
||||
case IDYES: DIALOG_FileSave();
|
||||
break;
|
||||
|
||||
case IDNO: break;
|
||||
|
||||
case IDCANCEL: return(FALSE);
|
||||
break;
|
||||
|
||||
default: return(FALSE);
|
||||
break;
|
||||
} /* switch */
|
||||
} /* if */
|
||||
|
||||
SetFileName(empty_strW);
|
||||
|
||||
UpdateWindowCaption();
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
|
||||
void DoOpenFile(LPCWSTR szFileName)
|
||||
{
|
||||
HANDLE hFile;
|
||||
LPSTR pTemp;
|
||||
DWORD size;
|
||||
DWORD dwNumRead;
|
||||
|
||||
/* Close any files and prompt to save changes */
|
||||
if (!DoCloseFile())
|
||||
return;
|
||||
|
||||
hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
|
||||
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if(hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
|
||||
size = GetFileSize(hFile, NULL);
|
||||
if (size == INVALID_FILE_SIZE)
|
||||
{
|
||||
CloseHandle(hFile);
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
size++;
|
||||
|
||||
pTemp = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
if (!pTemp)
|
||||
{
|
||||
CloseHandle(hFile);
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!ReadFile(hFile, pTemp, size, &dwNumRead, NULL))
|
||||
{
|
||||
CloseHandle(hFile);
|
||||
HeapFree(GetProcessHeap(), 0, pTemp);
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
|
||||
CloseHandle(hFile);
|
||||
pTemp[dwNumRead] = 0;
|
||||
|
||||
if (IsTextUnicode(pTemp, dwNumRead, NULL))
|
||||
{
|
||||
LPWSTR p = (LPWSTR)pTemp;
|
||||
/* We need to strip BOM Unicode character, SetWindowTextW won't do it for us. */
|
||||
if (*p == 0xFEFF || *p == 0xFFFE) p++;
|
||||
SetWindowTextW(Globals.hEdit, p);
|
||||
}
|
||||
else
|
||||
SetWindowTextA(Globals.hEdit, pTemp);
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, pTemp);
|
||||
|
||||
SendMessage(Globals.hEdit, EM_SETMODIFY, FALSE, 0);
|
||||
SendMessage(Globals.hEdit, EM_EMPTYUNDOBUFFER, 0, 0);
|
||||
SetFocus(Globals.hEdit);
|
||||
|
||||
SetFileName(szFileName);
|
||||
UpdateWindowCaption();
|
||||
}
|
||||
|
||||
VOID DIALOG_FileNew(VOID)
|
||||
{
|
||||
static const WCHAR empty_strW[] = { 0 };
|
||||
|
||||
/* Close any files and promt to save changes */
|
||||
if (DoCloseFile()) {
|
||||
SetWindowText(Globals.hEdit, empty_strW);
|
||||
SendMessage(Globals.hEdit, EM_EMPTYUNDOBUFFER, 0, 0);
|
||||
SetFocus(Globals.hEdit);
|
||||
}
|
||||
}
|
||||
|
||||
VOID DIALOG_FileOpen(VOID)
|
||||
{
|
||||
OPENFILENAME openfilename;
|
||||
WCHAR szPath[MAX_PATH];
|
||||
WCHAR szDir[MAX_PATH];
|
||||
static const WCHAR szDefaultExt[] = { 't','x','t',0 };
|
||||
static const WCHAR txt_files[] = { '*','.','t','x','t',0 };
|
||||
|
||||
ZeroMemory(&openfilename, sizeof(openfilename));
|
||||
|
||||
GetCurrentDirectory(SIZEOF(szDir), szDir);
|
||||
lstrcpy(szPath, txt_files);
|
||||
|
||||
openfilename.lStructSize = sizeof(openfilename);
|
||||
openfilename.hwndOwner = Globals.hMainWnd;
|
||||
openfilename.hInstance = Globals.hInstance;
|
||||
openfilename.lpstrFilter = Globals.szFilter;
|
||||
openfilename.lpstrFile = szPath;
|
||||
openfilename.nMaxFile = SIZEOF(szPath);
|
||||
openfilename.lpstrInitialDir = szDir;
|
||||
openfilename.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST |
|
||||
OFN_HIDEREADONLY;
|
||||
openfilename.lpstrDefExt = szDefaultExt;
|
||||
|
||||
|
||||
if (GetOpenFileName(&openfilename)) {
|
||||
if (FileExists(openfilename.lpstrFile))
|
||||
DoOpenFile(openfilename.lpstrFile);
|
||||
else
|
||||
AlertFileNotFound(openfilename.lpstrFile);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
VOID DIALOG_FileSave(VOID)
|
||||
{
|
||||
if (Globals.szFileName[0] == '\0')
|
||||
DIALOG_FileSaveAs();
|
||||
else
|
||||
DoSaveFile();
|
||||
}
|
||||
|
||||
VOID DIALOG_FileSaveAs(VOID)
|
||||
{
|
||||
OPENFILENAME saveas;
|
||||
WCHAR szPath[MAX_PATH];
|
||||
WCHAR szDir[MAX_PATH];
|
||||
static const WCHAR szDefaultExt[] = { 't','x','t',0 };
|
||||
static const WCHAR txt_files[] = { '*','.','t','x','t',0 };
|
||||
|
||||
ZeroMemory(&saveas, sizeof(saveas));
|
||||
|
||||
GetCurrentDirectory(SIZEOF(szDir), szDir);
|
||||
lstrcpy(szPath, txt_files);
|
||||
|
||||
saveas.lStructSize = sizeof(OPENFILENAME);
|
||||
saveas.hwndOwner = Globals.hMainWnd;
|
||||
saveas.hInstance = Globals.hInstance;
|
||||
saveas.lpstrFilter = Globals.szFilter;
|
||||
saveas.lpstrFile = szPath;
|
||||
saveas.nMaxFile = SIZEOF(szPath);
|
||||
saveas.lpstrInitialDir = szDir;
|
||||
saveas.Flags = OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT |
|
||||
OFN_HIDEREADONLY;
|
||||
saveas.lpstrDefExt = szDefaultExt;
|
||||
|
||||
if (GetSaveFileName(&saveas)) {
|
||||
SetFileName(szPath);
|
||||
UpdateWindowCaption();
|
||||
DoSaveFile();
|
||||
}
|
||||
}
|
||||
|
||||
VOID DIALOG_FilePrint(VOID)
|
||||
{
|
||||
DOCINFO di;
|
||||
PRINTDLG printer;
|
||||
SIZE szMetric;
|
||||
int cWidthPels, cHeightPels, border;
|
||||
int xLeft, yTop, i, pagecount, dopage, copycount;
|
||||
LOGFONT hdrFont;
|
||||
HFONT font, old_font=0;
|
||||
DWORD size;
|
||||
LPWSTR pTemp;
|
||||
static const WCHAR times_new_romanW[] = { 'T','i','m','e','s',' ','N','e','w',' ','R','o','m','a','n',0 };
|
||||
|
||||
/* Get a small font and print some header info on each page */
|
||||
hdrFont.lfHeight = 100;
|
||||
hdrFont.lfWidth = 0;
|
||||
hdrFont.lfEscapement = 0;
|
||||
hdrFont.lfOrientation = 0;
|
||||
hdrFont.lfWeight = FW_BOLD;
|
||||
hdrFont.lfItalic = 0;
|
||||
hdrFont.lfUnderline = 0;
|
||||
hdrFont.lfStrikeOut = 0;
|
||||
hdrFont.lfCharSet = ANSI_CHARSET;
|
||||
hdrFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
|
||||
hdrFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
|
||||
hdrFont.lfQuality = PROOF_QUALITY;
|
||||
hdrFont.lfPitchAndFamily = VARIABLE_PITCH | FF_ROMAN;
|
||||
lstrcpy(hdrFont.lfFaceName, times_new_romanW);
|
||||
|
||||
font = CreateFontIndirect(&hdrFont);
|
||||
|
||||
/* Get Current Settings */
|
||||
ZeroMemory(&printer, sizeof(printer));
|
||||
printer.lStructSize = sizeof(printer);
|
||||
printer.hwndOwner = Globals.hMainWnd;
|
||||
printer.hInstance = Globals.hInstance;
|
||||
|
||||
/* Set some default flags */
|
||||
printer.Flags = PD_RETURNDC;
|
||||
printer.nFromPage = 0;
|
||||
printer.nMinPage = 1;
|
||||
/* we really need to calculate number of pages to set nMaxPage and nToPage */
|
||||
printer.nToPage = 0;
|
||||
printer.nMaxPage = -1;
|
||||
|
||||
/* Let commdlg manage copy settings */
|
||||
printer.nCopies = (WORD)PD_USEDEVMODECOPIES;
|
||||
|
||||
if (!PrintDlg(&printer)) return;
|
||||
|
||||
assert(printer.hDC != 0);
|
||||
|
||||
/* initialize DOCINFO */
|
||||
di.cbSize = sizeof(DOCINFO);
|
||||
di.lpszDocName = Globals.szFileTitle;
|
||||
di.lpszOutput = NULL;
|
||||
di.lpszDatatype = NULL;
|
||||
di.fwType = 0;
|
||||
|
||||
if (StartDoc(printer.hDC, &di) <= 0) return;
|
||||
|
||||
/* Get the page dimensions in pixels. */
|
||||
cWidthPels = GetDeviceCaps(printer.hDC, HORZRES);
|
||||
cHeightPels = GetDeviceCaps(printer.hDC, VERTRES);
|
||||
|
||||
/* Get the file text */
|
||||
size = GetWindowTextLength(Globals.hEdit) + 1;
|
||||
pTemp = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR));
|
||||
if (!pTemp)
|
||||
{
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
size = GetWindowText(Globals.hEdit, pTemp, size);
|
||||
|
||||
border = 150;
|
||||
for (copycount=1; copycount <= printer.nCopies; copycount++) {
|
||||
i = 0;
|
||||
pagecount = 1;
|
||||
do {
|
||||
static const WCHAR letterM[] = { 'M',0 };
|
||||
|
||||
if (pagecount >= printer.nFromPage &&
|
||||
/* ((printer.Flags & PD_PAGENUMS) == 0 || pagecount <= printer.nToPage))*/
|
||||
pagecount <= printer.nToPage)
|
||||
dopage = 1;
|
||||
else
|
||||
dopage = 0;
|
||||
|
||||
old_font = SelectObject(printer.hDC, font);
|
||||
GetTextExtentPoint32(printer.hDC, letterM, 1, &szMetric);
|
||||
|
||||
if (dopage) {
|
||||
if (StartPage(printer.hDC) <= 0) {
|
||||
static const WCHAR failedW[] = { 'S','t','a','r','t','P','a','g','e',' ','f','a','i','l','e','d',0 };
|
||||
static const WCHAR errorW[] = { 'P','r','i','n','t',' ','E','r','r','o','r',0 };
|
||||
MessageBox(Globals.hMainWnd, failedW, errorW, MB_ICONEXCLAMATION);
|
||||
return;
|
||||
}
|
||||
/* Write a rectangle and header at the top of each page */
|
||||
Rectangle(printer.hDC, border, border, cWidthPels-border, border+szMetric.cy*2);
|
||||
/* I don't know what's up with this TextOut command. This comes out
|
||||
kind of mangled.
|
||||
*/
|
||||
TextOut(printer.hDC, border*2, border+szMetric.cy/2, Globals.szFileTitle, lstrlen(Globals.szFileTitle));
|
||||
}
|
||||
|
||||
/* The starting point for the main text */
|
||||
xLeft = border*2;
|
||||
yTop = border+szMetric.cy*4;
|
||||
|
||||
SelectObject(printer.hDC, old_font);
|
||||
GetTextExtentPoint32(printer.hDC, letterM, 1, &szMetric);
|
||||
|
||||
/* Since outputting strings is giving me problems, output the main
|
||||
text one character at a time.
|
||||
*/
|
||||
do {
|
||||
if (pTemp[i] == '\n') {
|
||||
xLeft = border*2;
|
||||
yTop += szMetric.cy;
|
||||
}
|
||||
else if (pTemp[i] != '\r') {
|
||||
if (dopage)
|
||||
TextOut(printer.hDC, xLeft, yTop, &pTemp[i], 1);
|
||||
xLeft += szMetric.cx;
|
||||
}
|
||||
} while (i++<size && yTop<(cHeightPels-border*2));
|
||||
|
||||
if (dopage)
|
||||
EndPage(printer.hDC);
|
||||
pagecount++;
|
||||
} while (i<size);
|
||||
}
|
||||
|
||||
EndDoc(printer.hDC);
|
||||
DeleteDC(printer.hDC);
|
||||
HeapFree(GetProcessHeap(), 0, pTemp);
|
||||
}
|
||||
|
||||
VOID DIALOG_FilePrinterSetup(VOID)
|
||||
{
|
||||
PRINTDLG printer;
|
||||
|
||||
ZeroMemory(&printer, sizeof(printer));
|
||||
printer.lStructSize = sizeof(printer);
|
||||
printer.hwndOwner = Globals.hMainWnd;
|
||||
printer.hInstance = Globals.hInstance;
|
||||
printer.Flags = PD_PRINTSETUP;
|
||||
printer.nCopies = 1;
|
||||
|
||||
PrintDlg(&printer);
|
||||
}
|
||||
|
||||
VOID DIALOG_FileExit(VOID)
|
||||
{
|
||||
PostMessage(Globals.hMainWnd, WM_CLOSE, 0, 0l);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditUndo(VOID)
|
||||
{
|
||||
SendMessage(Globals.hEdit, EM_UNDO, 0, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditCut(VOID)
|
||||
{
|
||||
SendMessage(Globals.hEdit, WM_CUT, 0, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditCopy(VOID)
|
||||
{
|
||||
SendMessage(Globals.hEdit, WM_COPY, 0, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditPaste(VOID)
|
||||
{
|
||||
SendMessage(Globals.hEdit, WM_PASTE, 0, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditDelete(VOID)
|
||||
{
|
||||
SendMessage(Globals.hEdit, WM_CLEAR, 0, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditSelectAll(VOID)
|
||||
{
|
||||
SendMessage(Globals.hEdit, EM_SETSEL, 0, (LPARAM)-1);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditTimeDate(VOID)
|
||||
{
|
||||
SYSTEMTIME st;
|
||||
WCHAR szDate[MAX_STRING_LEN];
|
||||
static const WCHAR spaceW[] = { ' ',0 };
|
||||
|
||||
GetLocalTime(&st);
|
||||
|
||||
GetTimeFormat(LOCALE_USER_DEFAULT, 0, &st, NULL, szDate, MAX_STRING_LEN);
|
||||
SendMessage(Globals.hEdit, EM_REPLACESEL, TRUE, (LPARAM)szDate);
|
||||
|
||||
SendMessage(Globals.hEdit, EM_REPLACESEL, TRUE, (LPARAM)spaceW);
|
||||
|
||||
GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, &st, NULL, szDate, MAX_STRING_LEN);
|
||||
SendMessage(Globals.hEdit, EM_REPLACESEL, TRUE, (LPARAM)szDate);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditWrap(VOID)
|
||||
{
|
||||
Globals.bWrapLongLines = !Globals.bWrapLongLines;
|
||||
CheckMenuItem(GetMenu(Globals.hMainWnd), CMD_WRAP,
|
||||
MF_BYCOMMAND | (Globals.bWrapLongLines ? MF_CHECKED : MF_UNCHECKED));
|
||||
}
|
||||
|
||||
VOID DIALOG_SelectFont(VOID)
|
||||
{
|
||||
CHOOSEFONT cf;
|
||||
LOGFONT lf=Globals.lfFont;
|
||||
|
||||
ZeroMemory( &cf, sizeof(cf) );
|
||||
cf.lStructSize=sizeof(cf);
|
||||
cf.hwndOwner=Globals.hMainWnd;
|
||||
cf.lpLogFont=&lf;
|
||||
cf.Flags=CF_SCREENFONTS;
|
||||
|
||||
if( ChooseFont(&cf) )
|
||||
{
|
||||
HFONT currfont=Globals.hFont;
|
||||
|
||||
Globals.hFont=CreateFontIndirect( &lf );
|
||||
Globals.lfFont=lf;
|
||||
SendMessage( Globals.hEdit, WM_SETFONT, (WPARAM)Globals.hFont, (LPARAM)TRUE );
|
||||
if( currfont!=NULL )
|
||||
DeleteObject( currfont );
|
||||
}
|
||||
}
|
||||
|
||||
VOID DIALOG_Search(VOID)
|
||||
{
|
||||
ZeroMemory(&Globals.find, sizeof(Globals.find));
|
||||
Globals.find.lStructSize = sizeof(Globals.find);
|
||||
Globals.find.hwndOwner = Globals.hMainWnd;
|
||||
Globals.find.hInstance = Globals.hInstance;
|
||||
Globals.find.lpstrFindWhat = Globals.szFindText;
|
||||
Globals.find.wFindWhatLen = SIZEOF(Globals.szFindText);
|
||||
Globals.find.Flags = FR_DOWN;
|
||||
|
||||
/* We only need to create the modal FindReplace dialog which will */
|
||||
/* notify us of incoming events using hMainWnd Window Messages */
|
||||
|
||||
Globals.hFindReplaceDlg = FindText(&Globals.find);
|
||||
assert(Globals.hFindReplaceDlg !=0);
|
||||
}
|
||||
|
||||
VOID DIALOG_SearchNext(VOID)
|
||||
{
|
||||
/* FIXME: Search Next */
|
||||
DIALOG_Search();
|
||||
}
|
||||
|
||||
VOID DIALOG_HelpContents(VOID)
|
||||
{
|
||||
WinHelp(Globals.hMainWnd, helpfileW, HELP_INDEX, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_HelpSearch(VOID)
|
||||
{
|
||||
/* Search Help */
|
||||
}
|
||||
|
||||
VOID DIALOG_HelpHelp(VOID)
|
||||
{
|
||||
WinHelp(Globals.hMainWnd, helpfileW, HELP_HELPONHELP, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_HelpLicense(VOID)
|
||||
{
|
||||
WineLicense(Globals.hMainWnd);
|
||||
}
|
||||
|
||||
VOID DIALOG_HelpNoWarranty(VOID)
|
||||
{
|
||||
WineWarranty(Globals.hMainWnd);
|
||||
}
|
||||
|
||||
VOID DIALOG_HelpAboutWine(VOID)
|
||||
{
|
||||
static const WCHAR notepadW[] = { 'N','o','t','e','p','a','d','\n',0 };
|
||||
WCHAR szNotepad[MAX_STRING_LEN];
|
||||
|
||||
LoadString(Globals.hInstance, STRING_NOTEPAD, szNotepad, SIZEOF(szNotepad));
|
||||
ShellAbout(Globals.hMainWnd, szNotepad, notepadW, 0);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* DIALOG_FilePageSetup
|
||||
*/
|
||||
VOID DIALOG_FilePageSetup(void)
|
||||
{
|
||||
DialogBox(Globals.hInstance, MAKEINTRESOURCE(DIALOG_PAGESETUP),
|
||||
Globals.hMainWnd, DIALOG_PAGESETUP_DlgProc);
|
||||
}
|
||||
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* DIALOG_PAGESETUP_DlgProc
|
||||
*/
|
||||
|
||||
static INT_PTR WINAPI DIALOG_PAGESETUP_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_COMMAND:
|
||||
switch (wParam)
|
||||
{
|
||||
case IDOK:
|
||||
/* save user input and close dialog */
|
||||
GetDlgItemText(hDlg, 0x141, Globals.szHeader, SIZEOF(Globals.szHeader));
|
||||
GetDlgItemText(hDlg, 0x143, Globals.szFooter, SIZEOF(Globals.szFooter));
|
||||
GetDlgItemText(hDlg, 0x14A, Globals.szMarginTop, SIZEOF(Globals.szMarginTop));
|
||||
GetDlgItemText(hDlg, 0x150, Globals.szMarginBottom, SIZEOF(Globals.szMarginBottom));
|
||||
GetDlgItemText(hDlg, 0x147, Globals.szMarginLeft, SIZEOF(Globals.szMarginLeft));
|
||||
GetDlgItemText(hDlg, 0x14D, Globals.szMarginRight, SIZEOF(Globals.szMarginRight));
|
||||
EndDialog(hDlg, IDOK);
|
||||
return TRUE;
|
||||
|
||||
case IDCANCEL:
|
||||
/* discard user input and close dialog */
|
||||
EndDialog(hDlg, IDCANCEL);
|
||||
return TRUE;
|
||||
|
||||
case IDHELP:
|
||||
{
|
||||
/* FIXME: Bring this to work */
|
||||
static const WCHAR sorryW[] = { 'S','o','r','r','y',',',' ','n','o',' ','h','e','l','p',' ','a','v','a','i','l','a','b','l','e',0 };
|
||||
static const WCHAR helpW[] = { 'H','e','l','p',0 };
|
||||
MessageBox(Globals.hMainWnd, sorryW, helpW, MB_ICONEXCLAMATION);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_INITDIALOG:
|
||||
/* fetch last user input prior to display dialog */
|
||||
SetDlgItemText(hDlg, 0x141, Globals.szHeader);
|
||||
SetDlgItemText(hDlg, 0x143, Globals.szFooter);
|
||||
SetDlgItemText(hDlg, 0x14A, Globals.szMarginTop);
|
||||
SetDlgItemText(hDlg, 0x150, Globals.szMarginBottom);
|
||||
SetDlgItemText(hDlg, 0x147, Globals.szMarginLeft);
|
||||
SetDlgItemText(hDlg, 0x14D, Globals.szMarginRight);
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
57
reactos/apps/dist/notepad/dialog.h
vendored
Normal file
57
reactos/apps/dist/notepad/dialog.h
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Notepad (dialog.h)
|
||||
*
|
||||
* Copyright 1998 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
VOID DIALOG_FileNew(VOID);
|
||||
VOID DIALOG_FileOpen(VOID);
|
||||
VOID DIALOG_FileSave(VOID);
|
||||
VOID DIALOG_FileSaveAs(VOID);
|
||||
VOID DIALOG_FilePrint(VOID);
|
||||
VOID DIALOG_FilePageSetup(VOID);
|
||||
VOID DIALOG_FilePrinterSetup(VOID);
|
||||
VOID DIALOG_FileExit(VOID);
|
||||
|
||||
VOID DIALOG_EditUndo(VOID);
|
||||
VOID DIALOG_EditCut(VOID);
|
||||
VOID DIALOG_EditCopy(VOID);
|
||||
VOID DIALOG_EditPaste(VOID);
|
||||
VOID DIALOG_EditDelete(VOID);
|
||||
VOID DIALOG_EditSelectAll(VOID);
|
||||
VOID DIALOG_EditTimeDate(VOID);
|
||||
VOID DIALOG_EditWrap(VOID);
|
||||
|
||||
VOID DIALOG_Search(VOID);
|
||||
VOID DIALOG_SearchNext(VOID);
|
||||
|
||||
VOID DIALOG_SelectFont(VOID);
|
||||
|
||||
VOID DIALOG_HelpContents(VOID);
|
||||
VOID DIALOG_HelpSearch(VOID);
|
||||
VOID DIALOG_HelpHelp(VOID);
|
||||
VOID DIALOG_HelpLicense(VOID);
|
||||
VOID DIALOG_HelpNoWarranty(VOID);
|
||||
VOID DIALOG_HelpAboutWine(VOID);
|
||||
|
||||
VOID DIALOG_TimeDate(VOID);
|
||||
|
||||
/* utility functions */
|
||||
VOID ShowLastError();
|
||||
BOOL FileExists(LPCWSTR szFilename);
|
||||
BOOL DoCloseFile(void);
|
||||
void DoOpenFile(LPCWSTR szFileName);
|
40
reactos/apps/dist/notepad/license.c
vendored
Normal file
40
reactos/apps/dist/notepad/license.c
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Notepad (license.h)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
*
|
||||
* 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 "license.h"
|
||||
|
||||
VOID WineLicense(HWND Wnd)
|
||||
{
|
||||
/* FIXME: should load strings from resources */
|
||||
LICENSE *License = &WineLicense_En;
|
||||
MessageBox(Wnd, License->License, License->LicenseCaption,
|
||||
MB_ICONINFORMATION | MB_OK);
|
||||
}
|
||||
|
||||
|
||||
VOID WineWarranty(HWND Wnd)
|
||||
{
|
||||
/* FIXME: should load strings from resources */
|
||||
LICENSE *License = &WineLicense_En;
|
||||
MessageBox(Wnd, License->Warranty, License->WarrantyCaption,
|
||||
MB_ICONEXCLAMATION | MB_OK);
|
||||
}
|
||||
|
52
reactos/apps/dist/notepad/license.h
vendored
Normal file
52
reactos/apps/dist/notepad/license.h
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Notepad (license.h)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
VOID WineLicense(HWND hWnd);
|
||||
VOID WineWarranty(HWND hWnd);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
LPCSTR License, LicenseCaption;
|
||||
LPCSTR Warranty, WarrantyCaption;
|
||||
} LICENSE;
|
||||
|
||||
/*
|
||||
extern LICENSE WineLicense_Ca;
|
||||
extern LICENSE WineLicense_Cz;
|
||||
extern LICENSE WineLicense_Da;
|
||||
extern LICENSE WineLicense_De;
|
||||
*/
|
||||
|
||||
extern LICENSE WineLicense_En;
|
||||
|
||||
/*
|
||||
extern LICENSE WineLicense_Eo;
|
||||
extern LICENSE WineLicense_Es;
|
||||
extern LICENSE WineLicense_Fi;
|
||||
extern LICENSE WineLicense_Fr;
|
||||
extern LICENSE WineLicense_Hu;
|
||||
extern LICENSE WineLicense_It;
|
||||
extern LICENSE WineLicense_Ko;
|
||||
extern LICENSE WineLicense_No;
|
||||
extern LICENSE WineLicense_Pl;
|
||||
extern LICENSE WineLicense_Po;
|
||||
extern LICENSE WineLicense_Sw;
|
||||
extern LICENSE WineLicense_Va;
|
||||
*/
|
354
reactos/apps/dist/notepad/main.c
vendored
Normal file
354
reactos/apps/dist/notepad/main.c
vendored
Normal file
@@ -0,0 +1,354 @@
|
||||
/*
|
||||
* Notepad
|
||||
*
|
||||
* Copyright 2000 Mike McCormack <Mike_McCormack@looksmart.com.au>
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Copyright 2002 Andriy Palamarchuk
|
||||
*
|
||||
* 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
|
||||
*
|
||||
*/
|
||||
|
||||
#define UNICODE
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "main.h"
|
||||
#include "dialog.h"
|
||||
#include "notepad_res.h"
|
||||
|
||||
NOTEPAD_GLOBALS Globals;
|
||||
static ATOM aFINDMSGSTRING;
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* SetFileName
|
||||
*
|
||||
* Sets Global File Name.
|
||||
*/
|
||||
VOID SetFileName(LPCWSTR szFileName)
|
||||
{
|
||||
lstrcpy(Globals.szFileName, szFileName);
|
||||
Globals.szFileTitle[0] = 0;
|
||||
GetFileTitle(szFileName, Globals.szFileTitle, sizeof(Globals.szFileTitle));
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* NOTEPAD_MenuCommand
|
||||
*
|
||||
* All handling of main menu events
|
||||
*/
|
||||
static int NOTEPAD_MenuCommand(WPARAM wParam)
|
||||
{
|
||||
switch (wParam)
|
||||
{
|
||||
case CMD_NEW: DIALOG_FileNew(); break;
|
||||
case CMD_OPEN: DIALOG_FileOpen(); break;
|
||||
case CMD_SAVE: DIALOG_FileSave(); break;
|
||||
case CMD_SAVE_AS: DIALOG_FileSaveAs(); break;
|
||||
case CMD_PRINT: DIALOG_FilePrint(); break;
|
||||
case CMD_PAGE_SETUP: DIALOG_FilePageSetup(); break;
|
||||
case CMD_PRINTER_SETUP: DIALOG_FilePrinterSetup();break;
|
||||
case CMD_EXIT: DIALOG_FileExit(); break;
|
||||
|
||||
case CMD_UNDO: DIALOG_EditUndo(); break;
|
||||
case CMD_CUT: DIALOG_EditCut(); break;
|
||||
case CMD_COPY: DIALOG_EditCopy(); break;
|
||||
case CMD_PASTE: DIALOG_EditPaste(); break;
|
||||
case CMD_DELETE: DIALOG_EditDelete(); break;
|
||||
case CMD_SELECT_ALL: DIALOG_EditSelectAll(); break;
|
||||
case CMD_TIME_DATE: DIALOG_EditTimeDate();break;
|
||||
|
||||
case CMD_SEARCH: DIALOG_Search(); break;
|
||||
case CMD_SEARCH_NEXT: DIALOG_SearchNext(); break;
|
||||
|
||||
case CMD_WRAP: DIALOG_EditWrap(); break;
|
||||
case CMD_FONT: DIALOG_SelectFont(); break;
|
||||
|
||||
case CMD_HELP_CONTENTS: DIALOG_HelpContents(); break;
|
||||
case CMD_HELP_SEARCH: DIALOG_HelpSearch(); break;
|
||||
case CMD_HELP_ON_HELP: DIALOG_HelpHelp(); break;
|
||||
case CMD_LICENSE: DIALOG_HelpLicense(); break;
|
||||
case CMD_NO_WARRANTY: DIALOG_HelpNoWarranty(); break;
|
||||
case CMD_ABOUT_WINE: DIALOG_HelpAboutWine(); break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* Data Initialization
|
||||
*/
|
||||
static VOID NOTEPAD_InitData(VOID)
|
||||
{
|
||||
LPWSTR p = Globals.szFilter;
|
||||
static const WCHAR txt_files[] = { '*','.','t','x','t',0 };
|
||||
static const WCHAR all_files[] = { '*','.','*',0 };
|
||||
|
||||
LoadString(Globals.hInstance, STRING_TEXT_FILES_TXT, p, MAX_STRING_LEN);
|
||||
p += lstrlen(p) + 1;
|
||||
lstrcpy(p, txt_files);
|
||||
p += lstrlen(p) + 1;
|
||||
LoadString(Globals.hInstance, STRING_ALL_FILES, p, MAX_STRING_LEN);
|
||||
p += lstrlen(p) + 1;
|
||||
lstrcpy(p, all_files);
|
||||
p += lstrlen(p) + 1;
|
||||
*p = '\0';
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* NOTEPAD_WndProc
|
||||
*/
|
||||
static LRESULT WINAPI NOTEPAD_WndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
{
|
||||
switch (msg) {
|
||||
|
||||
case WM_CREATE:
|
||||
{
|
||||
static const WCHAR editW[] = { 'e','d','i','t',0 };
|
||||
RECT rc;
|
||||
GetClientRect(hWnd, &rc);
|
||||
Globals.hEdit = CreateWindow(editW, NULL,
|
||||
WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL |
|
||||
ES_AUTOVSCROLL | ES_MULTILINE,
|
||||
0, 0, rc.right, rc.bottom, hWnd,
|
||||
NULL, Globals.hInstance, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_COMMAND:
|
||||
NOTEPAD_MenuCommand(LOWORD(wParam));
|
||||
break;
|
||||
|
||||
case WM_DESTROYCLIPBOARD:
|
||||
/*MessageBox(Globals.hMainWnd, "Empty clipboard", "Debug", MB_ICONEXCLAMATION);*/
|
||||
break;
|
||||
|
||||
case WM_CLOSE:
|
||||
if (DoCloseFile()) {
|
||||
DestroyWindow(hWnd);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
||||
case WM_SIZE:
|
||||
SetWindowPos(Globals.hEdit, NULL, 0, 0, LOWORD(lParam), HIWORD(lParam),
|
||||
SWP_NOOWNERZORDER | SWP_NOZORDER);
|
||||
break;
|
||||
|
||||
case WM_SETFOCUS:
|
||||
SetFocus(Globals.hEdit);
|
||||
break;
|
||||
|
||||
case WM_DROPFILES:
|
||||
{
|
||||
WCHAR szFileName[MAX_PATH];
|
||||
HANDLE hDrop = (HANDLE) wParam;
|
||||
|
||||
DragQueryFile(hDrop, 0, szFileName, SIZEOF(szFileName));
|
||||
DragFinish(hDrop);
|
||||
DoOpenFile(szFileName);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
return DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int AlertFileDoesNotExist(LPCWSTR szFileName)
|
||||
{
|
||||
int nResult;
|
||||
WCHAR szMessage[MAX_STRING_LEN];
|
||||
WCHAR szResource[MAX_STRING_LEN];
|
||||
|
||||
LoadString(Globals.hInstance, STRING_DOESNOTEXIST, szResource, SIZEOF(szResource));
|
||||
wsprintf(szMessage, szResource, szFileName);
|
||||
|
||||
LoadString(Globals.hInstance, STRING_ERROR, szResource, SIZEOF(szResource));
|
||||
|
||||
nResult = MessageBox(Globals.hMainWnd, szMessage, szResource,
|
||||
MB_ICONEXCLAMATION | MB_YESNO);
|
||||
|
||||
return(nResult);
|
||||
}
|
||||
|
||||
static void HandleCommandLine(LPWSTR cmdline)
|
||||
{
|
||||
WCHAR delimiter;
|
||||
|
||||
/* skip white space */
|
||||
while (*cmdline && *cmdline == ' ') cmdline++;
|
||||
|
||||
/* skip executable name */
|
||||
delimiter = ' ';
|
||||
if (*cmdline == '"')
|
||||
delimiter = '"';
|
||||
|
||||
do
|
||||
{
|
||||
cmdline++;
|
||||
}
|
||||
while (*cmdline && *cmdline != delimiter);
|
||||
if (*cmdline == delimiter) cmdline++;
|
||||
|
||||
while (*cmdline && (*cmdline == ' ' || *cmdline == '-'))
|
||||
{
|
||||
WCHAR option;
|
||||
|
||||
if (*cmdline++ == ' ') continue;
|
||||
|
||||
option = *cmdline;
|
||||
if (option) cmdline++;
|
||||
while (*cmdline && *cmdline == ' ') cmdline++;
|
||||
|
||||
switch(option)
|
||||
{
|
||||
case 'p':
|
||||
case 'P': printf("Print file: ");
|
||||
/* TODO - not yet able to print a file */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (*cmdline)
|
||||
{
|
||||
/* file name is passed in the command line */
|
||||
LPCWSTR file_name;
|
||||
BOOL file_exists;
|
||||
WCHAR buf[MAX_PATH];
|
||||
|
||||
if (cmdline[0] == '"')
|
||||
{
|
||||
cmdline++;
|
||||
cmdline[lstrlen(cmdline) - 1] = 0;
|
||||
}
|
||||
|
||||
if (FileExists(cmdline))
|
||||
{
|
||||
file_exists = TRUE;
|
||||
file_name = cmdline;
|
||||
}
|
||||
else
|
||||
{
|
||||
static const WCHAR txtW[] = { '.','t','x','t',0 };
|
||||
|
||||
/* try to find file with ".txt" extension */
|
||||
if (!lstrcmp(txtW, cmdline + lstrlen(cmdline) - lstrlen(txtW)))
|
||||
{
|
||||
file_exists = FALSE;
|
||||
file_name = cmdline;
|
||||
}
|
||||
else
|
||||
{
|
||||
lstrcpyn(buf, cmdline, MAX_PATH - lstrlen(txtW) - 1);
|
||||
lstrcat(buf, txtW);
|
||||
file_name = buf;
|
||||
file_exists = FileExists(buf);
|
||||
}
|
||||
}
|
||||
|
||||
if (file_exists)
|
||||
{
|
||||
DoOpenFile(file_name);
|
||||
InvalidateRect(Globals.hMainWnd, NULL, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (AlertFileDoesNotExist(file_name)) {
|
||||
case IDYES:
|
||||
DoOpenFile(file_name);
|
||||
break;
|
||||
|
||||
case IDNO:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* WinMain
|
||||
*/
|
||||
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE prev, LPSTR cmdline, int show)
|
||||
{
|
||||
MSG msg;
|
||||
HACCEL hAccel;
|
||||
WNDCLASSEX class;
|
||||
static const WCHAR className[] = {'N','P','C','l','a','s','s',0};
|
||||
static const WCHAR winName[] = {'N','o','t','e','p','a','d',0};
|
||||
|
||||
aFINDMSGSTRING = RegisterWindowMessage(FINDMSGSTRING);
|
||||
|
||||
ZeroMemory(&Globals, sizeof(Globals));
|
||||
Globals.hInstance = hInstance;
|
||||
|
||||
ZeroMemory(&class, sizeof(class));
|
||||
class.cbSize = sizeof(class);
|
||||
class.lpfnWndProc = NOTEPAD_WndProc;
|
||||
class.hInstance = Globals.hInstance;
|
||||
class.hIcon = LoadIcon(0, IDI_APPLICATION);
|
||||
class.hCursor = LoadCursor(0, IDC_ARROW);
|
||||
class.hbrBackground = (HBRUSH)(COLOR_WINDOW);
|
||||
class.lpszMenuName = MAKEINTRESOURCE(MAIN_MENU);
|
||||
class.lpszClassName = className;
|
||||
|
||||
if (!RegisterClassEx(&class)) return FALSE;
|
||||
|
||||
/* Setup windows */
|
||||
|
||||
Globals.hMainWnd =
|
||||
CreateWindow(className, winName, WS_OVERLAPPEDWINDOW,
|
||||
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
|
||||
NULL, NULL, Globals.hInstance, NULL);
|
||||
if (!Globals.hMainWnd)
|
||||
{
|
||||
ShowLastError();
|
||||
ExitProcess(1);
|
||||
}
|
||||
|
||||
NOTEPAD_InitData();
|
||||
DIALOG_FileNew();
|
||||
|
||||
ShowWindow(Globals.hMainWnd, show);
|
||||
UpdateWindow(Globals.hMainWnd);
|
||||
DragAcceptFiles(Globals.hMainWnd, TRUE);
|
||||
|
||||
HandleCommandLine(GetCommandLine());
|
||||
|
||||
hAccel = LoadAccelerators( hInstance, MAKEINTRESOURCE(ID_ACCEL) );
|
||||
|
||||
while (GetMessage(&msg, 0, 0, 0))
|
||||
{
|
||||
if (!TranslateAccelerator(Globals.hMainWnd, hAccel, &msg) && !IsDialogMessage(Globals.hFindReplaceDlg, &msg))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
return msg.wParam;
|
||||
}
|
53
reactos/apps/dist/notepad/main.h
vendored
Normal file
53
reactos/apps/dist/notepad/main.h
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Notepad (notepad.h)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#define SIZEOF(a) sizeof(a)/sizeof((a)[0])
|
||||
|
||||
#include "notepad_res.h"
|
||||
|
||||
#define MAX_STRING_LEN 255
|
||||
|
||||
typedef struct
|
||||
{
|
||||
HANDLE hInstance;
|
||||
HWND hMainWnd;
|
||||
HWND hFindReplaceDlg;
|
||||
HWND hEdit;
|
||||
HFONT hFont; /* Font used by the edit control */
|
||||
LOGFONT lfFont;
|
||||
BOOL bWrapLongLines;
|
||||
WCHAR szFindText[MAX_PATH];
|
||||
WCHAR szFileName[MAX_PATH];
|
||||
WCHAR szFileTitle[MAX_PATH];
|
||||
WCHAR szFilter[2 * MAX_STRING_LEN + 100];
|
||||
WCHAR szMarginTop[MAX_PATH];
|
||||
WCHAR szMarginBottom[MAX_PATH];
|
||||
WCHAR szMarginLeft[MAX_PATH];
|
||||
WCHAR szMarginRight[MAX_PATH];
|
||||
WCHAR szHeader[MAX_PATH];
|
||||
WCHAR szFooter[MAX_PATH];
|
||||
|
||||
FINDREPLACE find;
|
||||
} NOTEPAD_GLOBALS;
|
||||
|
||||
extern NOTEPAD_GLOBALS Globals;
|
||||
|
||||
VOID SetFileName(LPCWSTR szFileName);
|
27
reactos/apps/dist/notepad/makefile
vendored
Normal file
27
reactos/apps/dist/notepad/makefile
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
# $Id: makefile,v 1.4 2004/01/13 00:01:52 sedwards Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = no
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = windows
|
||||
|
||||
TARGET_NAME = notepad
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror -D__USE_W32API
|
||||
|
||||
TARGET_SDKLIBS = comdlg32.a shell32.a user32.a gdi32.a
|
||||
|
||||
TARGET_OBJECTS = \
|
||||
License_En.o \
|
||||
dialog.o \
|
||||
license.o \
|
||||
main.o
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
BIN
reactos/apps/dist/notepad/notepad.ico
vendored
Normal file
BIN
reactos/apps/dist/notepad/notepad.ico
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
3
reactos/apps/dist/notepad/notepad.rc
vendored
Normal file
3
reactos/apps/dist/notepad/notepad.rc
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
// Compatiblity Include
|
||||
|
||||
#include "rsrc.rc"
|
78
reactos/apps/dist/notepad/notepad_res.h
vendored
Normal file
78
reactos/apps/dist/notepad/notepad_res.h
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
* Constants, used in resources.
|
||||
*
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Copyright 2002 Andriy Palamarchuk
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#define MAIN_MENU 0x201
|
||||
#define DIALOG_PAGESETUP 0x202
|
||||
#define ID_ACCEL 0x203
|
||||
|
||||
/* Commands */
|
||||
#define CMD_NEW 0x100
|
||||
#define CMD_OPEN 0x101
|
||||
#define CMD_SAVE 0x102
|
||||
#define CMD_SAVE_AS 0x103
|
||||
#define CMD_PRINT 0x104
|
||||
#define CMD_PAGE_SETUP 0x105
|
||||
#define CMD_PRINTER_SETUP 0x106
|
||||
#define CMD_EXIT 0x108
|
||||
|
||||
#define CMD_UNDO 0x110
|
||||
#define CMD_CUT 0x111
|
||||
#define CMD_COPY 0x112
|
||||
#define CMD_PASTE 0x113
|
||||
#define CMD_DELETE 0x114
|
||||
#define CMD_SELECT_ALL 0x116
|
||||
#define CMD_TIME_DATE 0x117
|
||||
|
||||
#define CMD_SEARCH 0x120
|
||||
#define CMD_SEARCH_NEXT 0x121
|
||||
|
||||
#define CMD_WRAP 0x119
|
||||
#define CMD_FONT 0x140
|
||||
|
||||
#define CMD_HELP_CONTENTS 0x130
|
||||
#define CMD_HELP_SEARCH 0x131
|
||||
#define CMD_HELP_ON_HELP 0x132
|
||||
#define CMD_LICENSE 0x135
|
||||
#define CMD_NO_WARRANTY 0x136
|
||||
#define CMD_ABOUT_WINE 0x137
|
||||
|
||||
/* Strings */
|
||||
#define STRING_PAGESETUP_HEADERVALUE 0x160
|
||||
#define STRING_PAGESETUP_FOOTERVALUE 0x161
|
||||
#define STRING_PAGESETUP_LEFTVALUE 0x162
|
||||
#define STRING_PAGESETUP_RIGHTVALUE 0x163
|
||||
#define STRING_PAGESETUP_TOPVALUE 0x164
|
||||
#define STRING_PAGESETUP_BOTTOMVALUE 0x165
|
||||
|
||||
#define STRING_NOTEPAD 0x170
|
||||
#define STRING_ERROR 0x171
|
||||
#define STRING_WARNING 0x172
|
||||
#define STRING_INFO 0x173
|
||||
#define STRING_UNTITLED 0x174
|
||||
#define STRING_ALL_FILES 0x175
|
||||
#define STRING_TEXT_FILES_TXT 0x176
|
||||
#define STRING_TOOLARGE 0x177
|
||||
#define STRING_NOTEXT 0x178
|
||||
#define STRING_DOESNOTEXIST 0x179
|
||||
#define STRING_NOTSAVED 0x17A
|
||||
|
||||
#define STRING_NOTFOUND 0x17B
|
||||
#define STRING_OUT_OF_MEMORY 0x17C
|
58
reactos/apps/dist/notepad/rsrc.rc
vendored
Normal file
58
reactos/apps/dist/notepad/rsrc.rc
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* 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 "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
#include "main.h"
|
||||
#include "winnls.h"
|
||||
#include "commctrl.h"
|
||||
#include "notepad_res.h"
|
||||
|
||||
ID_ACCEL ACCELERATORS
|
||||
{
|
||||
"^A", CMD_SELECT_ALL
|
||||
"^C", CMD_COPY
|
||||
"^F", CMD_SEARCH
|
||||
"^O", CMD_OPEN
|
||||
"^S", CMD_SAVE
|
||||
"^V", CMD_PASTE
|
||||
"^X", CMD_CUT
|
||||
"^Z", CMD_UNDO
|
||||
VK_F3, CMD_SEARCH_NEXT, VIRTKEY
|
||||
VK_F5, CMD_TIME_DATE, VIRTKEY
|
||||
}
|
||||
|
||||
#include "Da.rc"
|
||||
#include "De.rc"
|
||||
#include "En.rc"
|
||||
#include "Es.rc"
|
||||
#include "Fi.rc"
|
||||
#include "Fr.rc"
|
||||
#include "Hu.rc"
|
||||
#include "It.rc"
|
||||
#include "Nl.rc"
|
||||
#include "Pt.rc"
|
||||
#include "Ru.rc"
|
||||
#include "Si.rc"
|
||||
#include "Sk.rc"
|
||||
#include "Sw.rc"
|
||||
#include "Th.rc"
|
||||
#include "Wa.rc"
|
||||
#include "Zh.rc"
|
BIN
reactos/apps/dist/notepad/small.ico
vendored
Normal file
BIN
reactos/apps/dist/notepad/small.ico
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
0
reactos/apps/dist/paint/dummyfile
vendored
Normal file
0
reactos/apps/dist/paint/dummyfile
vendored
Normal file
0
reactos/apps/dist/wordpad/dummyfile
vendored
Normal file
0
reactos/apps/dist/wordpad/dummyfile
vendored
Normal file
79
reactos/apps/tests/Makefile
Normal file
79
reactos/apps/tests/Makefile
Normal file
@@ -0,0 +1,79 @@
|
||||
#
|
||||
# ReactOS test applications makefile
|
||||
#
|
||||
|
||||
PATH_TO_TOP = ../..
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
# test_old tests
|
||||
TEST_APPS = accelerator alive apc args atomtest bench bitblt button \
|
||||
button2 capclock carets combo consume copymove count dibtest dump_shared_data \
|
||||
edit enumwnd enumws event global_mem gradient hello mdi \
|
||||
hivetest icontest isotest lineclip linetest lpc \
|
||||
mktime mstest multithrdwin multiwin mutex nptest patblt primitives pteb \
|
||||
regtest sectest sertest shaptest shm statst statst2 stretchblt suspend \
|
||||
tcpsvr terminate txtscale thread thread_msg tokentest user32 vmtest \
|
||||
winhello wm_erasebkgnd wm_paint eventpair threadwait popupmenu \
|
||||
map_dup_inherit p_dup_handle apc2 enhmetafile dirdlg guithreadinfo
|
||||
# Build failure:
|
||||
# kernel32
|
||||
|
||||
TEST_MISC =
|
||||
|
||||
all: $(TEST_APPS) $(TEST_MISC)
|
||||
|
||||
depends:
|
||||
|
||||
implib: $(TEST_APPS:%=%_implib) \
|
||||
$(TEST_MISC:%=%_implib)
|
||||
|
||||
clean: $(TEST_APPS:%=%_clean) \
|
||||
$(TEST_MISC:%=%_clean)
|
||||
|
||||
install: $(TEST_APPS:%=%_install) \
|
||||
$(TEST_MISC:%=%_install)
|
||||
|
||||
.PHONY: all depends implib clean install
|
||||
|
||||
|
||||
#
|
||||
# Test Applications
|
||||
#
|
||||
$(TEST_APPS): %:
|
||||
$(MAKE) -C $*
|
||||
|
||||
$(TEST_APPS:%=%_implib): %_implib:
|
||||
$(MAKE) -C $* implib
|
||||
|
||||
$(TEST_APPS:%=%_clean): %_clean:
|
||||
$(MAKE) -C $* clean
|
||||
|
||||
$(TEST_APPS:%=%_install): %_install:
|
||||
$(MAKE) -C $* install
|
||||
|
||||
.PHONY: $(TEST_APPS) $(TEST_APPS:%=%_implib) $(TEST_APPS:%=%_clean) $(TEST_APPS:%=%_install)
|
||||
|
||||
|
||||
#
|
||||
# Misc Test Applications
|
||||
#
|
||||
$(TEST_MISC): %:
|
||||
$(MAKE) -C tests/$*
|
||||
|
||||
$(TEST_MISC:%=%_implib): %_implib:
|
||||
$(MAKE) -C tests/$* implib
|
||||
|
||||
$(TEST_MISC:%=%_clean): %_clean:
|
||||
$(MAKE) -C tests/$* clean
|
||||
|
||||
$(TEST_MISC:%=%_install): %_install:
|
||||
$(MAKE) -C tests/$* install
|
||||
|
||||
.PHONY: $(TEST_MISC) $(TEST_MISC:%=%_implib) $(TEST_MISC:%=%_clean) $(TEST_MISC:%=%_install)
|
||||
|
||||
|
||||
etags:
|
||||
find . -name "*.[ch]" -print | etags --language=c -
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/accelerator/.cvsignore
Normal file
6
reactos/apps/tests/accelerator/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
19
reactos/apps/tests/accelerator/Makefile
Normal file
19
reactos/apps/tests/accelerator/Makefile
Normal file
@@ -0,0 +1,19 @@
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = windows
|
||||
|
||||
TARGET_NAME = accelerator
|
||||
|
||||
#TARGET_SDKLIBS = kernel32.a user32.a
|
||||
|
||||
TARGET_OBJECTS = accelerator.o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
161
reactos/apps/tests/accelerator/accelerator.c
Normal file
161
reactos/apps/tests/accelerator/accelerator.c
Normal file
@@ -0,0 +1,161 @@
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#define ID_ACCEL1 0x100
|
||||
#define ID_ACCEL2 0x101
|
||||
#define ID_ACCEL3 0x102
|
||||
#define ID_ACCEL4 0x103
|
||||
|
||||
/*
|
||||
* {fVirt, key, cmd}
|
||||
* fVirt |= FVIRTKEY | FCONTROL | FALT | FSHIFT
|
||||
*/
|
||||
//static HFONT tf;
|
||||
static ACCEL Accelerators[4] = {
|
||||
{ FVIRTKEY, VK_A, ID_ACCEL1},
|
||||
{ FVIRTKEY | FSHIFT, VK_A, ID_ACCEL2},
|
||||
{ FVIRTKEY | FCONTROL, VK_A, ID_ACCEL3},
|
||||
{ FVIRTKEY | FALT, VK_A, ID_ACCEL4}};
|
||||
static HACCEL hAcceleratorTable;
|
||||
static char Event[200];
|
||||
|
||||
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
|
||||
|
||||
int WINAPI
|
||||
WinMain(HINSTANCE hInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
LPSTR lpszCmdLine,
|
||||
int nCmdShow)
|
||||
{
|
||||
WNDCLASS wc;
|
||||
MSG msg;
|
||||
HWND hWnd;
|
||||
|
||||
wc.lpszClassName = "AcceleratorTest";
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
wc.style = CS_VREDRAW | CS_HREDRAW;
|
||||
wc.hInstance = hInstance;
|
||||
wc.hIcon = LoadIcon(NULL, (LPCTSTR)IDI_APPLICATION);
|
||||
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
|
||||
wc.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
|
||||
wc.lpszMenuName = NULL;
|
||||
wc.cbClsExtra = 0;
|
||||
wc.cbWndExtra = 0;
|
||||
if (RegisterClass(&wc) == 0)
|
||||
{
|
||||
fprintf(stderr, "RegisterClass failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
hWnd = CreateWindow("AcceleratorTest",
|
||||
"Accelerator Test",
|
||||
WS_OVERLAPPEDWINDOW,
|
||||
0,
|
||||
0,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
NULL,
|
||||
NULL,
|
||||
hInstance,
|
||||
NULL);
|
||||
if (hWnd == NULL)
|
||||
{
|
||||
fprintf(stderr, "CreateWindow failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
/*tf = CreateFontA(14, 0, 0, TA_BASELINE, FW_NORMAL, FALSE, FALSE, FALSE,
|
||||
ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
|
||||
DEFAULT_QUALITY, FIXED_PITCH|FF_DONTCARE, "Timmons");*/
|
||||
|
||||
Event[0] = 0;
|
||||
|
||||
ShowWindow(hWnd, nCmdShow);
|
||||
|
||||
hAcceleratorTable = CreateAcceleratorTable(Accelerators,
|
||||
sizeof(Accelerators)/sizeof(Accelerators[1]));
|
||||
if (hAcceleratorTable == NULL)
|
||||
{
|
||||
fprintf(stderr, "CreateAcceleratorTable failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
while(GetMessage(&msg, NULL, 0, 0))
|
||||
{
|
||||
if (!TranslateAccelerator(hWnd, hAcceleratorTable, &msg))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
|
||||
if (!DestroyAcceleratorTable(hAcceleratorTable))
|
||||
{
|
||||
fprintf(stderr, "DestroyAcceleratorTable failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
//DeleteObject(tf);
|
||||
|
||||
return msg.wParam;
|
||||
}
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
PAINTSTRUCT ps;
|
||||
HDC hDC;
|
||||
char buf[200];
|
||||
|
||||
switch(msg)
|
||||
{
|
||||
case WM_PAINT:
|
||||
hDC = BeginPaint(hWnd, &ps);
|
||||
//SelectObject(hDC, tf);
|
||||
sprintf(buf, "Event: '%s'", Event);
|
||||
TextOut(hDC, 10, 10, buf, strlen(buf));
|
||||
EndPaint(hWnd, &ps);
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case ID_ACCEL1:
|
||||
strcpy(Event, "A");
|
||||
break;
|
||||
|
||||
case ID_ACCEL2:
|
||||
strcpy(Event, "SHIFT+A");
|
||||
break;
|
||||
|
||||
case ID_ACCEL3:
|
||||
strcpy(Event, "CTRL+A");
|
||||
break;
|
||||
|
||||
case ID_ACCEL4:
|
||||
strcpy(Event, "ALT+A");
|
||||
break;
|
||||
|
||||
default:
|
||||
sprintf(Event, "%d", LOWORD(wParam));
|
||||
break;
|
||||
}
|
||||
|
||||
InvalidateRect(hWnd, NULL, TRUE);
|
||||
UpdateWindow(hWnd);
|
||||
break;
|
||||
|
||||
default:
|
||||
return DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
}
|
||||
return 0;
|
||||
}
|
6
reactos/apps/tests/alive/.cvsignore
Normal file
6
reactos/apps/tests/alive/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
23
reactos/apps/tests/alive/Makefile
Normal file
23
reactos/apps/tests/alive/Makefile
Normal file
@@ -0,0 +1,23 @@
|
||||
# $Id: Makefile,v 1.7 2003/11/14 17:13:14 weiden Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = console
|
||||
|
||||
TARGET_NAME = alive
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a user32.a
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
48
reactos/apps/tests/alive/alive.c
Normal file
48
reactos/apps/tests/alive/alive.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/* $Id: alive.c,v 1.2 2001/03/26 21:30:20 ea Exp $
|
||||
*
|
||||
*/
|
||||
#include <windows.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
HANDLE StandardOutput = INVALID_HANDLE_VALUE;
|
||||
CHAR Message [80];
|
||||
DWORD CharactersToWrite = 0;
|
||||
DWORD WrittenCharacters = 0;
|
||||
INT d = 0, h = 0, m = 0, s = 0;
|
||||
|
||||
int
|
||||
main (int argc, char * argv [])
|
||||
{
|
||||
StandardOutput = GetStdHandle (STD_OUTPUT_HANDLE);
|
||||
if (INVALID_HANDLE_VALUE == StandardOutput)
|
||||
{
|
||||
return (EXIT_FAILURE);
|
||||
}
|
||||
while (TRUE)
|
||||
{
|
||||
/* Prepare the message and update it */
|
||||
CharactersToWrite =
|
||||
wsprintf (
|
||||
Message,
|
||||
"Alive for %dd %dh %d' %d\" \r",
|
||||
d, h, m, s
|
||||
);
|
||||
WriteConsole (
|
||||
StandardOutput,
|
||||
Message,
|
||||
CharactersToWrite,
|
||||
& WrittenCharacters,
|
||||
NULL
|
||||
);
|
||||
/* suspend the execution for 1s */
|
||||
Sleep (1000);
|
||||
/* increment seconds */
|
||||
++ s;
|
||||
if (60 == s) { s = 0; ++ m; }
|
||||
if (60 == m) { m = 0; ++ h; }
|
||||
if (24 == h) { h = 0; ++ d; }
|
||||
}
|
||||
return (EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
/* EOF */
|
6
reactos/apps/tests/apc/.cvsignore
Normal file
6
reactos/apps/tests/apc/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
94
reactos/apps/tests/apc/apc.c
Normal file
94
reactos/apps/tests/apc/apc.c
Normal file
@@ -0,0 +1,94 @@
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
#include <ddk/ntddk.h>
|
||||
#include <rosrtl/string.h>
|
||||
|
||||
HANDLE OutputHandle;
|
||||
HANDLE InputHandle;
|
||||
|
||||
VOID STDCALL
|
||||
ApcRoutine(PVOID Context,
|
||||
PIO_STATUS_BLOCK IoStatus,
|
||||
ULONG Reserved)
|
||||
{
|
||||
printf("(apc.exe) ApcRoutine(Context %p)\n", Context);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
NTSTATUS Status;
|
||||
HANDLE FileHandle;
|
||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
UNICODE_STRING FileName = ROS_STRING_INITIALIZER(L"\\C:\\a.txt");
|
||||
IO_STATUS_BLOCK IoStatus;
|
||||
CHAR Buffer[256];
|
||||
HANDLE EventHandle;
|
||||
LARGE_INTEGER off;
|
||||
|
||||
AllocConsole();
|
||||
InputHandle = GetStdHandle(STD_INPUT_HANDLE);
|
||||
OutputHandle = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
|
||||
printf("APC test program\n");
|
||||
|
||||
EventHandle = CreateEventW(NULL,
|
||||
FALSE,
|
||||
FALSE,
|
||||
NULL);
|
||||
if (EventHandle == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
printf("Failed to create event\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
printf("Opening file\n");
|
||||
InitializeObjectAttributes(&ObjectAttributes,
|
||||
&FileName,
|
||||
0,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
printf("Creating file\n");
|
||||
FileHandle = CreateFileW(L"C:\\a.txt",
|
||||
FILE_GENERIC_READ | FILE_GENERIC_WRITE,
|
||||
0,
|
||||
NULL,
|
||||
OPEN_EXISTING,
|
||||
FILE_FLAG_OVERLAPPED,
|
||||
NULL);
|
||||
|
||||
if (FileHandle == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
|
||||
printf("Open failed last err 0x%lu\n",GetLastError());
|
||||
return 0;
|
||||
}
|
||||
|
||||
off.QuadPart = 0;
|
||||
|
||||
printf("Reading file\n");
|
||||
Status = ZwReadFile(FileHandle,
|
||||
NULL,
|
||||
(PIO_APC_ROUTINE)ApcRoutine,
|
||||
(PVOID) 0xdeadbeef,
|
||||
&IoStatus,
|
||||
Buffer,
|
||||
256,//len
|
||||
&off ,//offset must exist if file was opened for asynch. i/o aka. OVERLAPPED
|
||||
NULL);
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
printf("Read failed status 0x%lu\n",Status);
|
||||
}
|
||||
printf("Waiting\n");
|
||||
WaitForSingleObjectEx(EventHandle, INFINITE, TRUE);
|
||||
printf("Returned from wait\n");
|
||||
ZwClose(FileHandle);
|
||||
printf("Program finished\n");
|
||||
return 0;
|
||||
}
|
||||
|
23
reactos/apps/tests/apc/makefile
Normal file
23
reactos/apps/tests/apc/makefile
Normal file
@@ -0,0 +1,23 @@
|
||||
# $Id: makefile,v 1.10 2003/11/14 17:13:14 weiden Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = console
|
||||
|
||||
TARGET_NAME = apc
|
||||
|
||||
TARGET_SDKLIBS = ntdll.a kernel32.a
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/apc2/.cvsignore
Normal file
6
reactos/apps/tests/apc2/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
53
reactos/apps/tests/apc2/apc2.c
Normal file
53
reactos/apps/tests/apc2/apc2.c
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
|
||||
VOID CALLBACK TimerApcProc(
|
||||
LPVOID lpArg,
|
||||
DWORD dwTimerLowValue,
|
||||
DWORD dwTimerHighValue )
|
||||
{
|
||||
printf("APC Callback %lu\n", *(PDWORD)lpArg);
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
HANDLE hTimer;
|
||||
BOOL bSuccess;
|
||||
LARGE_INTEGER DueTime;
|
||||
DWORD value = 1;
|
||||
|
||||
hTimer = CreateWaitableTimer(NULL, FALSE, NULL );
|
||||
|
||||
if (!hTimer)
|
||||
{
|
||||
printf("CreateWaitableTimer failed!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
DueTime.QuadPart = -(LONGLONG)(5 * 10000000);
|
||||
|
||||
bSuccess = SetWaitableTimer(
|
||||
hTimer,
|
||||
&DueTime,
|
||||
2000 /*interval*/,
|
||||
TimerApcProc,
|
||||
&value /*callback argument*/,
|
||||
FALSE );
|
||||
|
||||
if (!bSuccess)
|
||||
{
|
||||
printf("SetWaitableTimer failed!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (;value <= 10; value++ )
|
||||
{
|
||||
SleepEx(INFINITE, TRUE /*alertable*/ );
|
||||
}
|
||||
|
||||
CloseHandle( hTimer );
|
||||
return 0;
|
||||
}
|
||||
|
23
reactos/apps/tests/apc2/makefile
Normal file
23
reactos/apps/tests/apc2/makefile
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = console
|
||||
|
||||
TARGET_NAME = apc2
|
||||
|
||||
TARGET_SDKLIBS = ntdll.a kernel32.a
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/args/.cvsignore
Normal file
6
reactos/apps/tests/args/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
39
reactos/apps/tests/args/args.c
Normal file
39
reactos/apps/tests/args/args.c
Normal file
@@ -0,0 +1,39 @@
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
||||
HANDLE OutputHandle;
|
||||
HANDLE InputHandle;
|
||||
|
||||
void debug_printf(char* fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buffer[255];
|
||||
|
||||
va_start(args,fmt);
|
||||
vsprintf(buffer,fmt,args);
|
||||
WriteConsoleA(OutputHandle, buffer, strlen(buffer), NULL, NULL);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int i;
|
||||
|
||||
AllocConsole();
|
||||
InputHandle = GetStdHandle(STD_INPUT_HANDLE);
|
||||
OutputHandle = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
|
||||
printf("GetCommandLineA() %s\n",GetCommandLineA());
|
||||
debug_printf("GetCommandLineA() %s\n",GetCommandLineA());
|
||||
debug_printf("argc %d\n", argc);
|
||||
for (i=0; i<argc; i++)
|
||||
{
|
||||
debug_printf("Argv[%d]: %x\n",i,argv[i]);
|
||||
debug_printf("Argv[%d]: '%s'\n",i,argv[i]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
21
reactos/apps/tests/args/makefile
Normal file
21
reactos/apps/tests/args/makefile
Normal file
@@ -0,0 +1,21 @@
|
||||
# $Id: makefile,v 1.16 2003/11/14 17:13:14 weiden Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = console
|
||||
|
||||
TARGET_NAME = args
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/atomtest/.cvsignore
Normal file
6
reactos/apps/tests/atomtest/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
114
reactos/apps/tests/atomtest/atomtest.c
Normal file
114
reactos/apps/tests/atomtest/atomtest.c
Normal file
@@ -0,0 +1,114 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <windows.h>
|
||||
#include <ddk/ntddk.h>
|
||||
|
||||
#define BUFFER_SIZE 256
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
PRTL_ATOM_TABLE AtomTable = NULL;
|
||||
RTL_ATOM AtomA = -1, AtomB = -1, AtomC = -1;
|
||||
NTSTATUS Status;
|
||||
WCHAR Buffer[BUFFER_SIZE];
|
||||
ULONG NameLength, Data1, Data2;
|
||||
|
||||
printf("Atom table test app\n\n");
|
||||
|
||||
printf("RtlCreateAtomTable()\n");
|
||||
Status = RtlCreateAtomTable(37,
|
||||
&AtomTable);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
printf(" AtomTable %p\n", AtomTable);
|
||||
|
||||
printf("RtlAddAtomToAtomTable()\n");
|
||||
Status = RtlAddAtomToAtomTable(AtomTable,
|
||||
L"TestAtomA",
|
||||
&AtomA);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
printf(" AtomA 0x%x\n", AtomA);
|
||||
}
|
||||
|
||||
printf("RtlAddAtomToAtomTable()\n");
|
||||
Status = RtlAddAtomToAtomTable(AtomTable,
|
||||
L"TestAtomB",
|
||||
&AtomB);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
printf(" AtomB 0x%x\n", AtomB);
|
||||
}
|
||||
|
||||
|
||||
printf("RtlLookupAtomInAtomTable()\n");
|
||||
Status = RtlLookupAtomInAtomTable(AtomTable,
|
||||
L"TestAtomA",
|
||||
&AtomC);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
printf(" AtomC 0x%x\n", AtomC);
|
||||
}
|
||||
|
||||
|
||||
printf("RtlPinAtomInAtomTable()\n");
|
||||
Status = RtlPinAtomInAtomTable(AtomTable,
|
||||
AtomC);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
|
||||
printf("RtlPinAtomInAtomTable()\n");
|
||||
Status = RtlPinAtomInAtomTable(AtomTable,
|
||||
AtomC);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
|
||||
|
||||
// printf("RtlDeleteAtomFromAtomTable()\n");
|
||||
// Status = RtlDeleteAtomFromAtomTable(AtomTable,
|
||||
// AtomC);
|
||||
// printf(" Status 0x%08lx\n", Status);
|
||||
|
||||
|
||||
// printf("RtlEmptyAtomTable()\n");
|
||||
// Status = RtlEmptyAtomTable(AtomTable,
|
||||
// TRUE);
|
||||
// printf(" Status 0x%08lx\n", Status);
|
||||
|
||||
|
||||
// printf("RtlLookupAtomInAtomTable()\n");
|
||||
// Status = RtlLookupAtomInAtomTable(AtomTable,
|
||||
// L"TestAtomA",
|
||||
// &AtomC);
|
||||
// printf(" Status 0x%08lx\n", Status);
|
||||
|
||||
|
||||
printf("RtlQueryAtomInAtomTable()\n");
|
||||
NameLength = sizeof(WCHAR) * BUFFER_SIZE;
|
||||
Status = RtlQueryAtomInAtomTable(AtomTable,
|
||||
AtomC,
|
||||
&Data1,
|
||||
&Data2,
|
||||
Buffer,
|
||||
&NameLength);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
printf(" RefCount %ld\n", Data1);
|
||||
printf(" PinCount %ld\n", Data2);
|
||||
printf(" NameLength %lu\n", NameLength);
|
||||
printf(" AtomName: %S\n", Buffer);
|
||||
}
|
||||
|
||||
printf("RtlDestroyAtomTable()\n");
|
||||
RtlDestroyAtomTable(AtomTable);
|
||||
|
||||
|
||||
printf("Atom table test app finished\n");
|
||||
}
|
||||
|
||||
return(0);
|
||||
}
|
22
reactos/apps/tests/atomtest/makefile
Normal file
22
reactos/apps/tests/atomtest/makefile
Normal file
@@ -0,0 +1,22 @@
|
||||
# $Id: makefile,v 1.6 2003/11/14 17:13:15 weiden Exp $
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = console
|
||||
|
||||
TARGET_NAME = atomtest
|
||||
|
||||
TARGET_SDKLIBS = ntdll.a kernel32.a
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/bench/.cvsignore
Normal file
6
reactos/apps/tests/bench/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
8
reactos/apps/tests/bench/bench-syscall.c
Normal file
8
reactos/apps/tests/bench/bench-syscall.c
Normal file
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
|
||||
}
|
81
reactos/apps/tests/bench/bench-thread.c
Normal file
81
reactos/apps/tests/bench/bench-thread.c
Normal file
@@ -0,0 +1,81 @@
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
||||
#define NR_THREADS (30)
|
||||
|
||||
|
||||
DWORD WINAPI
|
||||
thread_main1(LPVOID param)
|
||||
{
|
||||
printf("Thread 1 running (Counter %lu)\n", (DWORD)param);
|
||||
SleepEx(INFINITE, TRUE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
DWORD WINAPI
|
||||
thread_main2(LPVOID param)
|
||||
{
|
||||
printf("Thread 2 running (Counter %lu)\n", (DWORD)param);
|
||||
Sleep(INFINITE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int main (void)
|
||||
{
|
||||
DWORD i=0;
|
||||
DWORD id;
|
||||
|
||||
#if 1
|
||||
printf("Creating %d threads...\n",NR_THREADS*2);
|
||||
for (i=0;i<NR_THREADS;i++)
|
||||
{
|
||||
CreateThread(NULL,
|
||||
0,
|
||||
thread_main1,
|
||||
(LPVOID)i,
|
||||
0,
|
||||
&id);
|
||||
|
||||
/* CreateThread(NULL,
|
||||
0,
|
||||
thread_main2,
|
||||
(LPVOID)i,
|
||||
0,
|
||||
&id);*/
|
||||
}
|
||||
|
||||
printf("All threads created...\n");
|
||||
|
||||
/*
|
||||
* Waiting for threads is not implemented yet.
|
||||
* If you want to see all threads running, uncomment the
|
||||
* call to SuspendThread(). The test application will
|
||||
* freeze after all threads are created.
|
||||
*/
|
||||
/* SuspendThread (GetCurrentThread()); */
|
||||
|
||||
#else
|
||||
|
||||
printf("Creating thread...\n");
|
||||
|
||||
hThread = CreateThread(NULL,
|
||||
0,
|
||||
thread_main1,
|
||||
(LPVOID)i,
|
||||
0,
|
||||
&id);
|
||||
|
||||
printf("Thread created. Waiting for termination...\n");
|
||||
|
||||
WaitForSingleObject (hThread,
|
||||
-1);
|
||||
|
||||
CloseHandle (hThread);
|
||||
|
||||
printf("Thread terminated...\n");
|
||||
#endif
|
||||
printf("Exiting\n");
|
||||
return 0;
|
||||
}
|
23
reactos/apps/tests/bench/makefile
Normal file
23
reactos/apps/tests/bench/makefile
Normal file
@@ -0,0 +1,23 @@
|
||||
# $Id: makefile,v 1.11 2003/11/14 17:13:15 weiden Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = console
|
||||
|
||||
TARGET_NAME = bench-thread
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/bitblt/.cvsignore
Normal file
6
reactos/apps/tests/bitblt/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
139
reactos/apps/tests/bitblt/bitblt.c
Normal file
139
reactos/apps/tests/bitblt/bitblt.c
Normal file
@@ -0,0 +1,139 @@
|
||||
|
||||
/*
|
||||
* Windows 2000 Graphics API Black Book
|
||||
* (BitBlt Bitmap Rendering Demo)
|
||||
*
|
||||
* Created by Damon Chandler <dmc27@ee.cornell.edu>
|
||||
* Updates can be downloaded at: <www.coriolis.com>
|
||||
*
|
||||
* Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
* if you have any questions about this code.
|
||||
*/
|
||||
|
||||
|
||||
#include <windows.h>
|
||||
#include <string.h>
|
||||
|
||||
HINSTANCE HInst;
|
||||
const char* WndClassName = "GMainWnd";
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LPARAM LParam);
|
||||
|
||||
|
||||
int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE HPrevInstance,
|
||||
LPTSTR lpCmdLine, int nCmdShow)
|
||||
{
|
||||
WNDCLASS wc;
|
||||
MSG msg;
|
||||
|
||||
HInst = HInstance;
|
||||
|
||||
memset(&wc, 0, sizeof(WNDCLASS));
|
||||
|
||||
wc.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS;
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
wc.hInstance = HInstance;
|
||||
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
|
||||
/* wc.hbrBackground = reinterpret_cast<HBRUSH>(COLOR_BTNFACE + 1); */
|
||||
wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
|
||||
wc.lpszClassName = WndClassName;
|
||||
|
||||
if (RegisterClass(&wc))
|
||||
{
|
||||
HWND HWnd =
|
||||
CreateWindow(
|
||||
WndClassName, TEXT("BitBlt Bitmap Rendering Demo"),
|
||||
WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |
|
||||
WS_VISIBLE | WS_CLIPSIBLINGS,
|
||||
0, 0, 220, 230,
|
||||
NULL, NULL, HInst, NULL
|
||||
);
|
||||
|
||||
if (HWnd)
|
||||
{
|
||||
ShowWindow(HWnd, nCmdShow);
|
||||
UpdateWindow(HWnd);
|
||||
|
||||
while (GetMessage(&msg, NULL, 0, 0))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* image related */
|
||||
BITMAP bmp;
|
||||
LPCSTR filename = TEXT("lena.bmp");
|
||||
HDC HMemDC = NULL;
|
||||
HBITMAP HOldBmp = NULL;
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LPARAM LParam)
|
||||
{
|
||||
switch (Msg)
|
||||
{
|
||||
case WM_CREATE:
|
||||
{
|
||||
/* create a memory DC */
|
||||
HMemDC = CreateCompatibleDC(NULL);
|
||||
if (HMemDC)
|
||||
{
|
||||
/* load a bitmap from file */
|
||||
HBITMAP HBmp =
|
||||
/* static_cast<HBITMAP> */(
|
||||
LoadImage(HInst, filename, IMAGE_BITMAP,
|
||||
0, 0, LR_LOADFROMFILE)
|
||||
);
|
||||
if (HBmp)
|
||||
{
|
||||
/* extract dimensions of the bitmap */
|
||||
GetObject(HBmp, sizeof(BITMAP), &bmp);
|
||||
|
||||
/* associate the bitmap with the memory DC */
|
||||
/* HOldBmp = static_cast<HBITMAP> */
|
||||
(SelectObject(HMemDC, HBmp)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
case WM_PAINT:
|
||||
{
|
||||
PAINTSTRUCT ps;
|
||||
const HDC Hdc = BeginPaint(HWnd, &ps);
|
||||
#if 0
|
||||
try
|
||||
#endif
|
||||
{
|
||||
|
||||
/* TODO: add palette support (see Chapter 9)... */
|
||||
|
||||
|
||||
BitBlt(Hdc, 20, 15,
|
||||
bmp.bmWidth, bmp.bmHeight,
|
||||
HMemDC, 0, 0,
|
||||
SRCCOPY);
|
||||
}
|
||||
#if 0
|
||||
catch (...)
|
||||
#endif
|
||||
{
|
||||
EndPaint(HWnd, &ps);
|
||||
}
|
||||
EndPaint(HWnd, &ps);
|
||||
break;
|
||||
}
|
||||
case WM_DESTROY:
|
||||
{
|
||||
/* clean up */
|
||||
DeleteObject(SelectObject(HMemDC, HOldBmp));
|
||||
DeleteDC(HMemDC);
|
||||
|
||||
PostQuitMessage(0);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return DefWindowProc(HWnd, Msg, WParam, LParam);
|
||||
}
|
BIN
reactos/apps/tests/bitblt/lena.bmp
Normal file
BIN
reactos/apps/tests/bitblt/lena.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 87 KiB |
22
reactos/apps/tests/bitblt/makefile
Normal file
22
reactos/apps/tests/bitblt/makefile
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = windows
|
||||
|
||||
TARGET_NAME = bitblt
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a gdi32.a
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror -D__USE_W32API
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/button/.cvsignore
Normal file
6
reactos/apps/tests/button/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
22
reactos/apps/tests/button/Makefile
Normal file
22
reactos/apps/tests/button/Makefile
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = windows
|
||||
|
||||
TARGET_NAME = btntest
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a gdi32.a
|
||||
|
||||
TARGET_OBJECTS = buttontst.o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
107
reactos/apps/tests/button/buttontst.c
Normal file
107
reactos/apps/tests/button/buttontst.c
Normal file
@@ -0,0 +1,107 @@
|
||||
/* Based on Radoslaw Sokol's static control test. */
|
||||
#include <windows.h>
|
||||
|
||||
static LPSTR BUTTON_CLASS = "BUTTON";
|
||||
static LPSTR TEST_WND_CLASS = "TESTWND";
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define DPRINT(s) (void)0
|
||||
#else
|
||||
#define DPRINT(s) OutputDebugStringA("BUTTONTEST: " s "\n")
|
||||
#endif
|
||||
|
||||
HINSTANCE AppInstance = NULL;
|
||||
|
||||
LRESULT WmCreate(
|
||||
HWND Wnd)
|
||||
{
|
||||
DPRINT("WM_CREATE (enter).");
|
||||
DPRINT("test 1");
|
||||
CreateWindowEx(0, BUTTON_CLASS, "PushButton", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE,
|
||||
10, 10, 150, 30, Wnd, NULL, AppInstance, NULL);
|
||||
DPRINT("test 2");
|
||||
CreateWindowEx(0, BUTTON_CLASS, "DefPushButton", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE,
|
||||
10, 40, 150, 30, Wnd, NULL, AppInstance, NULL);
|
||||
DPRINT("test 3");
|
||||
CreateWindowEx(0, BUTTON_CLASS, "AutoRadioButton", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE,
|
||||
10, 70, 150, 30, Wnd, NULL, AppInstance, NULL);
|
||||
DPRINT("test 4");
|
||||
CreateWindowEx(0, BUTTON_CLASS, "AutoCheckBox", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE,
|
||||
10, 100, 150, 30, Wnd, NULL, AppInstance, NULL);
|
||||
|
||||
DPRINT("WM_CREATE (leave).");
|
||||
return 0;
|
||||
}
|
||||
|
||||
LRESULT CALLBACK TestWndProc(
|
||||
HWND Wnd,
|
||||
UINT Msg,
|
||||
WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
{
|
||||
switch (Msg) {
|
||||
case WM_CREATE:
|
||||
return WmCreate(Wnd);
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
return 0;
|
||||
default:
|
||||
return DefWindowProc(Wnd, Msg, wParam, lParam);
|
||||
}
|
||||
}
|
||||
|
||||
int STDCALL WinMain(
|
||||
HINSTANCE hInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
LPSTR lpCmdLine,
|
||||
int nShowCmd)
|
||||
{
|
||||
ATOM Result;
|
||||
MSG Msg;
|
||||
HWND MainWindow;
|
||||
WNDCLASSEX TestWndClass = {0};
|
||||
DPRINT("Application starting up.");
|
||||
// Remember instance handle.
|
||||
AppInstance = GetModuleHandle(NULL);
|
||||
// Register test window class.
|
||||
TestWndClass.cbSize = sizeof(WNDCLASSEX);
|
||||
TestWndClass.lpfnWndProc = &TestWndProc;
|
||||
TestWndClass.hInstance = AppInstance;
|
||||
TestWndClass.hCursor = LoadCursor(0, (LPCTSTR)IDC_ARROW);
|
||||
TestWndClass.hbrBackground = CreateSolidBrush(RGB(255,255,230));
|
||||
TestWndClass.lpszClassName = TEST_WND_CLASS;
|
||||
Result = RegisterClassEx(&TestWndClass);
|
||||
if (Result == 0) {
|
||||
DPRINT("Error registering class.");
|
||||
MessageBox(0, "Error registering test window class.",
|
||||
"Button control test", MB_ICONSTOP | MB_OK);
|
||||
ExitProcess(0);
|
||||
}
|
||||
// Create main window.
|
||||
DPRINT("Creating main window.");
|
||||
MainWindow = CreateWindowEx(WS_EX_APPWINDOW | WS_EX_CLIENTEDGE,
|
||||
TEST_WND_CLASS, "Button test",
|
||||
WS_OVERLAPPEDWINDOW, 50, 50, 180, 365,
|
||||
NULL, NULL, AppInstance, NULL);
|
||||
if (MainWindow == 0) {
|
||||
DPRINT("Error creating main window.");
|
||||
UnregisterClass(TEST_WND_CLASS, AppInstance);
|
||||
MessageBox(0, "Error creating test window.",
|
||||
"Static control test", MB_ICONSTOP | MB_OK);
|
||||
ExitProcess(0);
|
||||
}
|
||||
DPRINT("Showing main window.");
|
||||
ShowWindow(MainWindow, SW_SHOWNORMAL);
|
||||
UpdateWindow(MainWindow);
|
||||
// Run message loop.
|
||||
DPRINT("Entering message loop.");
|
||||
while (GetMessage(&Msg, NULL, 0, 0) > 0) {
|
||||
TranslateMessage(&Msg);
|
||||
DispatchMessage(&Msg);
|
||||
}
|
||||
// Unregister window class.
|
||||
UnregisterClass(TEST_WND_CLASS, AppInstance);
|
||||
DPRINT("Exiting.");
|
||||
|
||||
return Msg.wParam;
|
||||
}
|
6
reactos/apps/tests/button2/.cvsignore
Normal file
6
reactos/apps/tests/button2/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
22
reactos/apps/tests/button2/Makefile
Normal file
22
reactos/apps/tests/button2/Makefile
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = windows
|
||||
|
||||
TARGET_NAME = btntest2
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a gdi32.a
|
||||
|
||||
TARGET_OBJECTS = buttontst2.o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
219
reactos/apps/tests/button2/buttontst2.c
Normal file
219
reactos/apps/tests/button2/buttontst2.c
Normal file
@@ -0,0 +1,219 @@
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
|
||||
HFONT tf;
|
||||
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
|
||||
|
||||
int WINAPI
|
||||
WinMain(HINSTANCE hInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
LPSTR lpszCmdLine,
|
||||
int nCmdShow)
|
||||
{
|
||||
WNDCLASS wc;
|
||||
MSG msg;
|
||||
HWND hWnd;
|
||||
HWND hbtn[26];
|
||||
|
||||
wc.lpszClassName = "ButtonTest";
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
wc.style = CS_VREDRAW | CS_HREDRAW;
|
||||
wc.hInstance = hInstance;
|
||||
wc.hIcon = LoadIcon(NULL, (LPCTSTR)IDI_APPLICATION);
|
||||
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
|
||||
wc.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
|
||||
wc.lpszMenuName = NULL;
|
||||
wc.cbClsExtra = 0;
|
||||
wc.cbWndExtra = 0;
|
||||
if (RegisterClass(&wc) == 0)
|
||||
{
|
||||
fprintf(stderr, "RegisterClass failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
hWnd = CreateWindow("ButtonTest",
|
||||
"Button Test",
|
||||
WS_OVERLAPPEDWINDOW,
|
||||
0,
|
||||
0,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
NULL,
|
||||
NULL,
|
||||
hInstance,
|
||||
NULL);
|
||||
if (hWnd == NULL)
|
||||
{
|
||||
fprintf(stderr, "CreateWindow failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
tf = CreateFontA(14, 0, 0, TA_BASELINE, FW_NORMAL, FALSE, FALSE, FALSE,
|
||||
ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
|
||||
DEFAULT_QUALITY, FIXED_PITCH|FF_DONTCARE, "Timmons");
|
||||
|
||||
ShowWindow(hWnd, nCmdShow);
|
||||
|
||||
hbtn[0] = CreateWindow(
|
||||
"BUTTON","BS_DEFPUSHBUTTON",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
|
||||
10, 10, 200, 40, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[1] = CreateWindow(
|
||||
"BUTTON","BS_3STATE",WS_VISIBLE | WS_CHILD | BS_3STATE,
|
||||
10, 60, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[2] = CreateWindow(
|
||||
"BUTTON","BS_AUTO3STATE",WS_VISIBLE | WS_CHILD | BS_AUTO3STATE,
|
||||
10, 90, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[3] = CreateWindow(
|
||||
"BUTTON","BS_AUTOCHECKBOX",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
|
||||
10, 120, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[4] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
|
||||
10, 150, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[5] = CreateWindow(
|
||||
"BUTTON","BS_CHECKBOX",WS_VISIBLE | WS_CHILD | BS_CHECKBOX,
|
||||
10, 180, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[6] = CreateWindow(
|
||||
"BUTTON","BS_GROUPBOX",WS_VISIBLE | WS_CHILD | BS_GROUPBOX,
|
||||
10, 210, 200, 80, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[7] = CreateWindow(
|
||||
"BUTTON","BS_PUSHBUTTON",WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
|
||||
20, 230, 180, 30, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[8] = CreateWindow(
|
||||
"BUTTON","BS_RADIOBUTTON",WS_VISIBLE | WS_CHILD | BS_RADIOBUTTON,
|
||||
10, 300, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[9] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
|
||||
220, 160, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[10] = CreateWindow(
|
||||
"BUTTON","BS_DEFPUSHBUTTON|BS_BOTTOM",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON | BS_BOTTOM,
|
||||
220, 10, 250, 40, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[11] = CreateWindow(
|
||||
"BUTTON","BS_DEFPUSHBUTTON|BS_LEFT",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON | BS_LEFT,
|
||||
480, 10, 250, 40, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[12] = CreateWindow(
|
||||
"BUTTON","BS_DEFPUSHBUTTON|BS_RIGHT|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON | BS_RIGHT |BS_MULTILINE,
|
||||
740, 10, 150, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[13] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON|BS_TOP",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_TOP,
|
||||
220, 60, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
// Other Combinations
|
||||
|
||||
hbtn[14] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON|BS_BOTTOM|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_BOTTOM | BS_MULTILINE,
|
||||
480, 60, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[15] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON|BS_LEFT",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_LEFT,
|
||||
740, 80, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[16] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON|BS_RIGHT|BS_TOP",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_RIGHT | BS_TOP,
|
||||
220, 130, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[17] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON|BS_TOP|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_TOP| BS_MULTILINE,
|
||||
480, 130, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[18] = CreateWindow(
|
||||
"BUTTON","BS_AUTOCHECKBOX|BS_BOTTOM|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | BS_BOTTOM | BS_MULTILINE,
|
||||
740, 130, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[19] = CreateWindow(
|
||||
"BUTTON","BS_AUTOCHECKBOX|BS_TOP|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE,
|
||||
480, 190, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[20] = CreateWindow(
|
||||
"BUTTON","BS_AUTOCHECKBOX|BS_LEFT|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | BS_LEFT | BS_MULTILINE,
|
||||
220, 230, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[21] = CreateWindow(
|
||||
"BUTTON","BS_AUTOCHECKBOX|BS_RIGHT|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | BS_RIGHT | BS_MULTILINE,
|
||||
480, 240, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[22] = CreateWindow(
|
||||
"BUTTON","BS_GROUPBOX|BS_TOP",WS_VISIBLE | WS_CHILD | BS_GROUPBOX | BS_TOP,
|
||||
10, 340, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[23] = CreateWindow(
|
||||
"BUTTON","BS_GROUPBOX|BS_BOTTOM",WS_VISIBLE | WS_CHILD | BS_GROUPBOX | BS_BOTTOM,
|
||||
10, 410, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[24] = CreateWindow(
|
||||
"BUTTON","BS_GROUPBOXBOX|BS_LEFT",WS_VISIBLE | WS_CHILD | BS_GROUPBOX | BS_LEFT,
|
||||
520, 340, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[25] = CreateWindow(
|
||||
"BUTTON","BS_GROUPBOX|BS_RIGHT|BS_BOTTOM",WS_VISIBLE | WS_CHILD | BS_GROUPBOX | BS_BOTTOM | BS_RIGHT,
|
||||
300, 340, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
while(GetMessage(&msg, NULL, 0, 0))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
|
||||
DeleteObject(tf);
|
||||
|
||||
return msg.wParam;
|
||||
}
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
PAINTSTRUCT ps;
|
||||
HDC hDC;
|
||||
|
||||
switch(msg)
|
||||
{
|
||||
case WM_PAINT:
|
||||
hDC = BeginPaint(hWnd, &ps);
|
||||
SelectObject(hDC, tf);
|
||||
EndPaint(hWnd, &ps);
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
switch(HIWORD(wParam))
|
||||
{
|
||||
case BN_CLICKED:
|
||||
printf("BUTTON CLICKED !\n");
|
||||
break;
|
||||
case BN_DBLCLK:
|
||||
printf("BUTTON DOUBLE-CLICKED !\n");
|
||||
break;
|
||||
case BN_PUSHED:
|
||||
printf("BUTTON PUSHED !\n");
|
||||
break;
|
||||
case BN_PAINT:
|
||||
printf("BUTTON PAINTED !\n");
|
||||
break;
|
||||
case BN_UNPUSHED:
|
||||
printf("BUTTON UNPUSHED !\n");
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
}
|
||||
return 0;
|
||||
}
|
6
reactos/apps/tests/capclock/.cvsignore
Normal file
6
reactos/apps/tests/capclock/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
20
reactos/apps/tests/capclock/Makefile
Normal file
20
reactos/apps/tests/capclock/Makefile
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = windows
|
||||
|
||||
TARGET_NAME = capclock
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a
|
||||
|
||||
TARGET_OBJECTS = capclock.o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
70
reactos/apps/tests/capclock/capclock.c
Normal file
70
reactos/apps/tests/capclock/capclock.c
Normal file
@@ -0,0 +1,70 @@
|
||||
/* $Id: capclock.c,v 1.3 2003/11/14 17:13:16 weiden Exp $
|
||||
*
|
||||
* DESCRIPTION: Simple Win32 Caption Clock
|
||||
* PROJECT : ReactOS (test applications)
|
||||
* AUTHOR : Emanuele Aliberti
|
||||
* DATE : 2003-09-03
|
||||
* LICENSE : GNU GPL v2.0
|
||||
*/
|
||||
#include <windows.h>
|
||||
#include <string.h>
|
||||
|
||||
UINT Timer = 1;
|
||||
|
||||
static BOOL CALLBACK DialogFunc(HWND,UINT,WPARAM,LPARAM);
|
||||
static VOID CALLBACK TimerProc(HWND,UINT,UINT,DWORD);
|
||||
|
||||
|
||||
INT STDCALL WinMain (HINSTANCE hinst, HINSTANCE hinstPrev, LPSTR lpCmdLine, INT nCmdShow)
|
||||
{
|
||||
WNDCLASS wc;
|
||||
|
||||
ZeroMemory (& wc, sizeof wc);
|
||||
wc.lpfnWndProc = DefDlgProc;
|
||||
wc.cbWndExtra = DLGWINDOWEXTRA;
|
||||
wc.hInstance = hinst;
|
||||
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
|
||||
wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
|
||||
wc.lpszClassName = "CapClock";
|
||||
RegisterClass (& wc);
|
||||
return DialogBox(hinst, MAKEINTRESOURCE(2), NULL, (DLGPROC) DialogFunc);
|
||||
|
||||
}
|
||||
static int InitializeApp (HWND hDlg,WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
Timer = SetTimer (hDlg,Timer,1000,TimerProc);
|
||||
TimerProc (hDlg,0,0,0);
|
||||
return 1;
|
||||
}
|
||||
static BOOL CALLBACK DialogFunc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
InitializeApp(hwndDlg,wParam,lParam);
|
||||
return TRUE;
|
||||
case WM_CLOSE:
|
||||
KillTimer (hwndDlg,Timer);
|
||||
EndDialog(hwndDlg,0);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
static VOID CALLBACK TimerProc (HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
|
||||
{
|
||||
CHAR text [20];
|
||||
SYSTEMTIME lt;
|
||||
|
||||
GetLocalTime (& lt);
|
||||
wsprintf (
|
||||
text,
|
||||
"%d-%02d-%02d %02d:%02d:%02d",
|
||||
lt.wYear,
|
||||
lt.wMonth,
|
||||
lt.wDay,
|
||||
lt.wHour,
|
||||
lt.wMinute,
|
||||
lt.wSecond);
|
||||
SetWindowText (hwnd, text);
|
||||
}
|
||||
/* EOF */
|
BIN
reactos/apps/tests/capclock/capclock.ico
Normal file
BIN
reactos/apps/tests/capclock/capclock.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 766 B |
52
reactos/apps/tests/capclock/capclock.rc
Normal file
52
reactos/apps/tests/capclock/capclock.rc
Normal file
@@ -0,0 +1,52 @@
|
||||
#include <windows.h>
|
||||
#include "../../../include/reactos/resource.h"
|
||||
|
||||
/* Icons */
|
||||
|
||||
1 ICON "capclock.ico"
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
2 DIALOG 6, 18, 132, 0
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Microsoft Sans Serif"
|
||||
BEGIN
|
||||
END
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
|
||||
/* Version information. */
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
|
||||
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", RES_STR_COMPANY_NAME
|
||||
VALUE "FileDescription", "ReactOS W32 Caption Clock\0"
|
||||
VALUE "FileVersion", RES_STR_PRODUCT_VERSION
|
||||
VALUE "InternalName", "capclock\0"
|
||||
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
|
||||
VALUE "OriginalFilename", "capclock.exe\0"
|
||||
VALUE "ProductName", RES_STR_PRODUCT_NAME
|
||||
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
6
reactos/apps/tests/carets/.cvsignore
Normal file
6
reactos/apps/tests/carets/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
BIN
reactos/apps/tests/carets/caret.bmp
Normal file
BIN
reactos/apps/tests/carets/caret.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 106 B |
150
reactos/apps/tests/carets/carets.c
Normal file
150
reactos/apps/tests/carets/carets.c
Normal file
@@ -0,0 +1,150 @@
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include "resource.h"
|
||||
|
||||
static int CaretWidth = 2;
|
||||
static int CaretHeight = 16;
|
||||
static int CharWidth = 10;
|
||||
static int CharHeight = 16;
|
||||
static HBITMAP CaretBitmap;
|
||||
|
||||
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
|
||||
|
||||
int WINAPI
|
||||
WinMain(HINSTANCE hInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
LPSTR lpszCmdLine,
|
||||
int nCmdShow)
|
||||
{
|
||||
WNDCLASS wc;
|
||||
MSG msg;
|
||||
HWND hWnd;
|
||||
|
||||
CaretBitmap = LoadBitmap(hInstance, (LPCTSTR)IDB_CARET);
|
||||
|
||||
wc.lpszClassName = "CaretTestClass";
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
wc.style = CS_VREDRAW | CS_HREDRAW;
|
||||
wc.hInstance = hInstance;
|
||||
wc.hIcon = LoadIcon(NULL, (LPCTSTR)IDI_APPLICATION);
|
||||
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
|
||||
wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
|
||||
wc.lpszMenuName = NULL;
|
||||
wc.cbClsExtra = 0;
|
||||
wc.cbWndExtra = 0;
|
||||
if (RegisterClass(&wc) == 0)
|
||||
{
|
||||
fprintf(stderr, "RegisterClass failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
hWnd = CreateWindow(wc.lpszClassName,
|
||||
"Caret Test",
|
||||
WS_OVERLAPPEDWINDOW,
|
||||
0,
|
||||
0,
|
||||
200,
|
||||
250,
|
||||
NULL,
|
||||
NULL,
|
||||
hInstance,
|
||||
NULL);
|
||||
if (hWnd == NULL)
|
||||
{
|
||||
fprintf(stderr, "CreateWindow failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
ShowWindow(hWnd, nCmdShow);
|
||||
|
||||
while(GetMessage(&msg, NULL, 0, 0))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
|
||||
return msg.wParam;
|
||||
}
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
POINT pt;
|
||||
switch(msg)
|
||||
{
|
||||
case WM_ACTIVATE:
|
||||
switch(LOWORD(wParam))
|
||||
{
|
||||
case WA_ACTIVE:
|
||||
case WA_CLICKACTIVE:
|
||||
if(!ShowCaret(hWnd))
|
||||
DbgPrint("ShowCaret(0x%x)\n", hWnd);
|
||||
break;
|
||||
case WA_INACTIVE:
|
||||
if(!HideCaret(hWnd))
|
||||
DbgPrint("HideCaret(0x%x)\n", hWnd);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_KEYDOWN:
|
||||
if(!GetCaretPos(&pt))
|
||||
{
|
||||
DbgPrint("GetCaretPos() failed!\n");
|
||||
break;
|
||||
}
|
||||
switch(wParam)
|
||||
{
|
||||
case VK_LEFT:
|
||||
pt.x -= CharWidth;
|
||||
break;
|
||||
case VK_UP:
|
||||
pt.y -= CharHeight;
|
||||
break;
|
||||
case VK_RIGHT:
|
||||
pt.x += CharWidth;
|
||||
break;
|
||||
case VK_DOWN:
|
||||
pt.y += CharHeight;
|
||||
break;
|
||||
}
|
||||
if(!SetCaretPos(pt.x, pt.y))
|
||||
DbgPrint("SetCaretPos() failed!\n");
|
||||
break;
|
||||
|
||||
case WM_RBUTTONDOWN:
|
||||
if(!CreateCaret(hWnd, CaretBitmap, 0, 0))
|
||||
DbgPrint("CreateCaret() for window 0x%x failed!\n", hWnd);
|
||||
else
|
||||
if(!ShowCaret(hWnd))
|
||||
DbgPrint("ShowCaret(0x%x)\n", hWnd);
|
||||
break;
|
||||
|
||||
case WM_LBUTTONDOWN:
|
||||
if(!CreateCaret(hWnd, (HBITMAP)0, CaretWidth, CaretHeight))
|
||||
DbgPrint("CreateCaret() for window 0x%x failed!\n", hWnd);
|
||||
else
|
||||
if(!ShowCaret(hWnd))
|
||||
DbgPrint("ShowCaret(0x%x)\n", hWnd);
|
||||
break;
|
||||
|
||||
case WM_CREATE:
|
||||
if(!CreateCaret(hWnd, (HBITMAP)0, CaretWidth, CaretHeight))
|
||||
DbgPrint("CreateCaret() for window 0x%x failed!\n", hWnd);
|
||||
else
|
||||
if(!SetCaretPos(1, 1))
|
||||
DbgPrint("SetCaretPos(%i, %i) failed!\n", 1, 1);
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
if(!DestroyCaret())
|
||||
DbgPrint("DestroyCaret() failed!\n");
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
||||
default:
|
||||
return DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
}
|
||||
return 0;
|
||||
}
|
5
reactos/apps/tests/carets/carets.rc
Normal file
5
reactos/apps/tests/carets/carets.rc
Normal file
@@ -0,0 +1,5 @@
|
||||
#include <defines.h>
|
||||
#include <reactos/resource.h>
|
||||
#include "resource.h"
|
||||
|
||||
IDB_CARET BITMAP DISCARDABLE "caret.bmp"
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user