diff --git a/rosapps/winfile/Makefile b/rosapps/winfile/Makefile new file mode 100644 index 00000000000..cf8506ea019 --- /dev/null +++ b/rosapps/winfile/Makefile @@ -0,0 +1,91 @@ +# +# ReactOS winfile +# +# Makefile +# +# Copyright (C) 2002 Robert Dickenson +# +# 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. +# + +PATH_TO_TOP = .. + +TARGET = winfile + +BASE_CFLAGS = -DGCC -D_WIN32_IE=0x0400 + +RCFLAGS = -DGCC -D_WIN32_IE=0x0400 + + +OBJS = about.o \ + debug.o \ + treeview.o \ + listview.o \ + $(TARGET).o + +LIBS = -lgdi32 -luser32 -lkernel32 -lcomctl32 + +all: $(TARGET).exe + +$(TARGET).res: $(TARGET).rc + +$(TARGET).exe: $(OBJS) $(TARGET).coff + $(CC) -Wl,--subsystem,windows -o $(TARGET).exe $(OBJS) $(TARGET).coff $(LIBS) + $(NM) --numeric-sort $(TARGET).exe > $(TARGET).sym + + +about.o: about.cpp about.h resource.h + +affinity.o: affinity.cpp affinity.h + +applicationpage.o: applicationpage.cpp applicationpage.h processpage.h $(TARGET).h resource.h + +column.o: column.cpp column.h resource.h + +debug.o: debug.cpp debug.h + +endproc.o: endproc.cpp endproc.h + +font.o: font.cpp font.h + +graph.o: graph.cpp graph.h resource.h + +graphctrl.o: graphctrl.cpp graphctrl.h resource.h + +optnmenu.o: optnmenu.cpp optnmenu.h resource.h + +perfdata.o: perfdata.cpp perfdata.h + +performancepage.o: performancepage.cpp performancepage.h perfdata.h graphctrl.h graph.h $(TARGET).h resource.h + +priority.o: priority.cpp priority.h + +processpage.o: processpage.cpp processpage.h perfdata.h column.h proclist.h $(TARGET).h resource.h + +proclist.o: proclist.cpp proclist.h + +run.o: run.cpp run.h + +trayicon.o: trayicon.cpp trayicon.h resource.h + +$(TARGET).o: $(TARGET).cpp $(TARGET).h resource.h + +clean: + - $(RM) $(OBJS) + - $(RM) $(TARGET).exe + - $(RM) $(TARGET).sym + - $(RM) $(TARGET).coff + +include ../rules.mak diff --git a/rosapps/winfile/StdAfx.cpp b/rosapps/winfile/StdAfx.cpp new file mode 100644 index 00000000000..3ea6b574b16 --- /dev/null +++ b/rosapps/winfile/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// winfile.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/rosapps/winfile/StdAfx.h b/rosapps/winfile/StdAfx.h new file mode 100644 index 00000000000..273cb9d0977 --- /dev/null +++ b/rosapps/winfile/StdAfx.h @@ -0,0 +1,33 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_) +#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers + + +// Windows Header Files: +#include +#include + +// C RunTime Header Files +#include +#include +#include +#include + +// Local Header Files + +// TODO: reference additional headers your program requires here + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_) diff --git a/rosapps/winfile/about.cpp b/rosapps/winfile/about.cpp new file mode 100644 index 00000000000..ac927197391 --- /dev/null +++ b/rosapps/winfile/about.cpp @@ -0,0 +1,71 @@ +/* + * ReactOS About Dialog Box + * + * about.cpp + * + * Copyright (C) 2002 Robert Dickenson + * + * 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. + */ + +#ifdef _MSC_VER +#include "stdafx.h" +#else +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#include "winfile.h" +#include "about.h" + + +extern HINSTANCE hInst; +//extern HWND hMainWnd; + +LRESULT CALLBACK AboutDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); + + +void ShowAboutBox(HWND hWnd) +{ + DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, (DLGPROC)AboutDialogWndProc); +} + +LRESULT CALLBACK AboutDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + HWND hLicenseEditWnd; + TCHAR strLicense[0x1000]; + + switch (message) { + case WM_INITDIALOG: + hLicenseEditWnd = GetDlgItem(hDlg, IDC_LICENSE_EDIT); + LoadString(hInst, IDS_LICENSE, strLicense, 0x1000); + SetWindowText(hLicenseEditWnd, strLicense); + return TRUE; + case WM_COMMAND: + if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL)) { + EndDialog(hDlg, LOWORD(wParam)); + return TRUE; + } + break; + } + return 0; +} diff --git a/rosapps/winfile/about.h b/rosapps/winfile/about.h new file mode 100644 index 00000000000..fabcfb3d618 --- /dev/null +++ b/rosapps/winfile/about.h @@ -0,0 +1,30 @@ +/* + * ReactOS About Dialog Box + * + * about.h + * + * Copyright (C) 2002 Robert Dickenson + * + * 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. + */ + +#ifndef __ABOUT_H__ +#define __ABOUT_H__ + + +void ShowAboutBox(HWND hWnd); + + +#endif // __ABOUT_H__ diff --git a/rosapps/winfile/debug.cpp b/rosapps/winfile/debug.cpp new file mode 100644 index 00000000000..bd0b2374711 --- /dev/null +++ b/rosapps/winfile/debug.cpp @@ -0,0 +1,39 @@ +/* + * ReactOS Application Debug Routines + * + * debug.cpp + * + * Copyright (C) 2002 Robert Dickenson + * + * 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. + */ + +#ifdef _MSC_VER +#include "stdafx.h" +#else +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#include "winfile.h" +#include "debug.h" + diff --git a/rosapps/winfile/debug.h b/rosapps/winfile/debug.h new file mode 100644 index 00000000000..f9f96e67238 --- /dev/null +++ b/rosapps/winfile/debug.h @@ -0,0 +1,28 @@ +/* + * ReactOS Application Debug Routines + * + * debug.cpp + * + * Copyright (C) 2002 Robert Dickenson + * + * 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. + */ + +#ifndef __DEBUG_H__ +#define __DEBUG_H__ + + + +#endif // __DEBUG_H__ \ No newline at end of file diff --git a/rosapps/winfile/folder1.bmp b/rosapps/winfile/folder1.bmp new file mode 100644 index 00000000000..dada286b64d Binary files /dev/null and b/rosapps/winfile/folder1.bmp differ diff --git a/rosapps/winfile/folder2.bmp b/rosapps/winfile/folder2.bmp new file mode 100644 index 00000000000..35fedba962e Binary files /dev/null and b/rosapps/winfile/folder2.bmp differ diff --git a/rosapps/winfile/folder3.bmp b/rosapps/winfile/folder3.bmp new file mode 100644 index 00000000000..dfc3c4fb8c2 Binary files /dev/null and b/rosapps/winfile/folder3.bmp differ diff --git a/rosapps/winfile/listview.cpp b/rosapps/winfile/listview.cpp new file mode 100644 index 00000000000..360dde4f4d4 --- /dev/null +++ b/rosapps/winfile/listview.cpp @@ -0,0 +1,68 @@ +/* + * ReactOS winfile + * + * listview.cpp + * + * Copyright (C) 2002 Robert Dickenson + * + * 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. + */ + +#ifdef _MSC_VER +#include "stdafx.h" +#else +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#include "winfile.h" +#include "listview.h" + + +// Global Variables: +extern HINSTANCE hInst; +extern HWND hMainWnd; + + +HWND CreateListView(HWND hwndParent, LPSTR lpszFileName) +{ + RECT rcClient; // dimensions of client area + HWND hwndLV; // handle to list view control + + // Get the dimensions of the parent window's client area, and create the list view control. + GetClientRect(hwndParent, &rcClient); + hwndLV = CreateWindowEx(0, WC_LISTVIEW, "List View", + WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASLINES, + 0, 0, rcClient.right, rcClient.bottom, + hwndParent, (HMENU)LIST_WINDOW, hInst, NULL); + + // Initialize the image list, and add items to the control. +/* + if (!InitListViewImageLists(hwndLV) || + !InitListViewItems(hwndLV, lpszFileName)) { + DestroyWindow(hwndLV); + return FALSE; + } + */ + return hwndLV; +} + diff --git a/rosapps/winfile/listview.h b/rosapps/winfile/listview.h new file mode 100644 index 00000000000..9e870786330 --- /dev/null +++ b/rosapps/winfile/listview.h @@ -0,0 +1,38 @@ +/* + * ReactOS winfile + * + * listview.h + * + * Copyright (C) 2002 Robert Dickenson + * + * 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. + */ + +#ifndef __WINFILE_LISTVIEW_H__ +#define __WINFILE_LISTVIEW_H__ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "resource.h" + + + +HWND CreateListView(HWND hwndParent, LPSTR lpszFileName); + + + +#endif // __WINFILE_LISTVIEW_H__ diff --git a/rosapps/winfile/resource.h b/rosapps/winfile/resource.h new file mode 100644 index 00000000000..9913e3ea83d --- /dev/null +++ b/rosapps/winfile/resource.h @@ -0,0 +1,76 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by winfile.rc +// +#define ID_FILE_MENU 0 +#define ID_DISK_MENU 1 +#define ID_TREE_MENU 2 +#define ID_VIEW_MENU 3 +#define ID_OPTIONS_MENU 4 +#define ID_SECURITY_MENU 5 +#define ID_WINDOW_MENU 6 +#define ID_HELP_MENU 7 + +#define IDD_ABOUTBOX 103 +#define IDS_APP_TITLE 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDS_HELLO 106 +#define IDI_WINFILE 107 +#define IDI_SMALL 108 +#define IDC_WINFILE 109 +#define IDC_WINFILE_FRAME 110 +#define IDR_WINFILE_MENU 130 +#define IDD_DIALOG1 131 +#define IDB_OPEN_FILE 132 +#define IDB_CLOSED_FILE 133 +#define IDB_ROOT 134 + +#define ID_HELP_HELPTOPICS 32771 +#define ID_VIEW_STATUSBAR 32774 +#define ID_VIEW_SPLIT 32775 +#define ID_VIEW_REFRESH 32776 +#define ID_EDIT_DELETE 32778 +#define ID_EDIT_RENAME 32779 +#define ID_EDIT_COPYKEYNAME 32781 +#define ID_EDIT_FIND 32782 +#define ID_EDIT_FINDNEXT 32783 +#define ID_EDIT_MODIFY 32784 +#define ID_HELP_CONTENTS 32795 +#define ID_WINDOW_CASCADE 32797 +#define ID_WINDOW_TILE 32798 +#define ID_WINDOW_ARRANGEICONS 32799 +#define ID_OPTIONS_FONT 32800 +#define ID_OPTIONS_AUTOREFRESH 32801 +#define ID_OPTIONS_READONLYMODE 32802 +#define ID_OPTIONS_CONFIRMONDELETE 32803 +#define ID_OPTIONS_SAVESETTINGSONEXIT 32804 +#define ID_SECURITY_PERMISSIONS 32805 +#define ID_VIEW_TREEANDDATA 32806 +#define ID_VIEW_TREEONLY 32807 +#define ID_VIEW_DATAONLY 32808 +#define ID_VIEW_DISPLAYBINARYDATA 32810 +#define ID_VIEW_REFRESHALL 32811 +#define ID_VIEW_REFRESHACTIVE 32812 +#define ID_VIEW_FINDKEY 32813 +#define ID_TREE_EXPANDONELEVEL 32814 +#define ID_TREE_EXPANDBRANCH 32815 +#define ID_TREE_EXPANDALL 32816 +#define ID_TREE_COLLAPSEBRANCH 32817 +#define ID_REGISTRY_OPENLOCAL 32825 + +#define IDC_LICENSE_EDIT 1029 +#define IDS_LICENSE 32835 + +#define IDC_STATIC -1 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 132 +#define _APS_NEXT_COMMAND_VALUE 32836 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif diff --git a/rosapps/winfile/small.ico b/rosapps/winfile/small.ico new file mode 100644 index 00000000000..8f94d9aa828 Binary files /dev/null and b/rosapps/winfile/small.ico differ diff --git a/rosapps/winfile/treeview.cpp b/rosapps/winfile/treeview.cpp new file mode 100644 index 00000000000..c8c82da32cb --- /dev/null +++ b/rosapps/winfile/treeview.cpp @@ -0,0 +1,211 @@ +/* + * ReactOS winfile + * + * treeview.cpp + * + * Copyright (C) 2002 Robert Dickenson + * + * 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. + */ + +#ifdef _MSC_VER +#include "stdafx.h" +#else +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#include "winfile.h" +#include "treeview.h" + +// Global Variables: +extern HINSTANCE hInst; // current instance +extern HWND hMainWnd; // Main Window + +// Global variables and constants +// Image_Open, Image_Closed, and Image_Root - integer variables for +// indexes of the images. +// CX_BITMAP and CY_BITMAP - width and height of an icon. +// NUM_BITMAPS - number of bitmaps to add to the image list. +int Image_Open; +int Image_Closed; +int Image_Root; + +#define CX_BITMAP 16 +#define CY_BITMAP 16 +#define NUM_BITMAPS 3 + + +// AddItemToTree - adds items to a tree view control. +// Returns the handle to the newly added item. +// hwndTV - handle to the tree view control. +// lpszItem - text of the item to add. +// nLevel - level at which to add the item. + +HTREEITEM AddItemToTree(HWND hwndTV, LPSTR lpszItem, int nLevel) +{ + TVITEM tvi; + TVINSERTSTRUCT tvins; + static HTREEITEM hPrev = (HTREEITEM)TVI_FIRST; + static HTREEITEM hPrevRootItem = NULL; + static HTREEITEM hPrevLev2Item = NULL; + HTREEITEM hti; + + tvi.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM; + + // Set the text of the item. + tvi.pszText = lpszItem; + tvi.cchTextMax = lstrlen(lpszItem); + + // Assume the item is not a parent item, so give it an image. + tvi.iImage = Image_Root; + tvi.iSelectedImage = Image_Root; + + tvi.cChildren = 1; + + + // Save the heading level in the item's application-defined data area. + tvi.lParam = (LPARAM)nLevel; + + tvins.item = tvi; + tvins.hInsertAfter = hPrev; + + // Set the parent item based on the specified level. + if (nLevel == 1) + tvins.hParent = TVI_ROOT; + else if (nLevel == 2) + tvins.hParent = hPrevRootItem; + else + tvins.hParent = hPrevLev2Item; + + // Add the item to the tree view control. + hPrev = (HTREEITEM)SendMessage(hwndTV, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins); + + // Save the handle to the item. + if (nLevel == 1) + hPrevRootItem = hPrev; + else if (nLevel == 2) + hPrevLev2Item = hPrev; + + // The new item is a child item. Give the parent item a + // closed folder bitmap to indicate it now has child items. + if (nLevel > 1) { + hti = TreeView_GetParent(hwndTV, hPrev); + tvi.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE; + tvi.hItem = hti; + tvi.iImage = Image_Closed; + tvi.iSelectedImage = Image_Closed; + TreeView_SetItem(hwndTV, &tvi); + } + + return hPrev; +} + +// InitTreeViewItems - extracts headings from the specified file and +// passes them to a function that adds them to a tree view control. +// Returns TRUE if successful, or FALSE otherwise. +// hwndTV - handle to the tree view control. +// lpszFileName - name of file with headings. + +BOOL InitTreeViewItems(HWND hwndTV, LPSTR lpszFileName) +{ + HTREEITEM hItem; + + hItem = AddItemToTree(hwndTV, "C:\\ - FAT32", 1); + AddItemToTree(hwndTV, "reactos", 2); + AddItemToTree(hwndTV, "bin", 3); + AddItemToTree(hwndTV, "media", 3); +// AddItemToTree(hwndTV, "fonts", 4); + AddItemToTree(hwndTV, "symbols", 3); + AddItemToTree(hwndTV, "system32", 3); +// AddItemToTree(hwndTV, "config", 4); +// AddItemToTree(hwndTV, "drivers", 4); + + TreeView_Expand(hwndTV, hItem, TVE_EXPAND); + return TRUE; +} + +// InitTreeViewImageLists - creates an image list, adds three bitmaps +// to it, and associates the image list with a tree view control. +// Returns TRUE if successful, or FALSE otherwise. +// hwndTV - handle to the tree view control. + +BOOL InitTreeViewImageLists(HWND hwndTV) +{ + HIMAGELIST himl; // handle to image list + HBITMAP hbmp; // handle to bitmap + + // Create the image list. + if ((himl = ImageList_Create(CX_BITMAP, CY_BITMAP, + FALSE, NUM_BITMAPS, 0)) == NULL) + return FALSE; + + // Add the open file, closed file, and document bitmaps. + hbmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_OPEN_FILE)); + Image_Open = ImageList_Add(himl, hbmp, (HBITMAP) NULL); + DeleteObject(hbmp); + + hbmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_CLOSED_FILE)); + Image_Closed = ImageList_Add(himl, hbmp, (HBITMAP) NULL); + DeleteObject(hbmp); + + hbmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_ROOT)); + Image_Root = ImageList_Add(himl, hbmp, (HBITMAP) NULL); + DeleteObject(hbmp); + + // Fail if not all of the images were added. + if (ImageList_GetImageCount(himl) < 3) + return FALSE; + + // Associate the image list with the tree view control. + TreeView_SetImageList(hwndTV, himl, TVSIL_NORMAL); + + return TRUE; +} + +// CreateTreeView - creates a tree view control. +// Returns the handle to the new control if successful, +// or NULL otherwise. +// hwndParent - handle to the control's parent window. +// lpszFileName - name of the file to parse for tree view items. + +HWND CreateTreeView(HWND hwndParent, LPSTR lpszFileName) +{ + RECT rcClient; // dimensions of client area + HWND hwndTV; // handle to tree view control + + // Get the dimensions of the parent window's client area, and create + // the tree view control. + GetClientRect(hwndParent, &rcClient); + hwndTV = CreateWindowEx(0, WC_TREEVIEW, "Tree View", + WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT, + 0, 0, rcClient.right, rcClient.bottom, + hwndParent, (HMENU)TREE_WINDOW, hInst, NULL); + + // Initialize the image list, and add items to the control. + if (!InitTreeViewImageLists(hwndTV) || !InitTreeViewItems(hwndTV, lpszFileName)) { + DestroyWindow(hwndTV); + return FALSE; + } + return hwndTV; +} + diff --git a/rosapps/winfile/treeview.h b/rosapps/winfile/treeview.h new file mode 100644 index 00000000000..acfdec6eb40 --- /dev/null +++ b/rosapps/winfile/treeview.h @@ -0,0 +1,38 @@ +/* + * ReactOS winfile + * + * treeview.h + * + * Copyright (C) 2002 Robert Dickenson + * + * 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. + */ + +#ifndef __WINFILE_TREEVIEW_H__ +#define __WINFILE_TREEVIEW_H__ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "resource.h" + + + +HWND CreateTreeView(HWND hwndParent, LPSTR lpszFileName); + + + +#endif // __WINFILE_TREEVIEW_H__ diff --git a/rosapps/winfile/winfile.cpp b/rosapps/winfile/winfile.cpp new file mode 100644 index 00000000000..641474e8d3e --- /dev/null +++ b/rosapps/winfile/winfile.cpp @@ -0,0 +1,441 @@ +/* + * ReactOS winfile + * + * winfile.cpp + * + * Copyright (C) 2002 Robert Dickenson + * + * 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. + */ + +#ifdef _MSC_VER +#include "stdafx.h" +#else +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#include "winfile.h" +#include "treeview.h" +#include "listview.h" +#include "resource.h" +#include +//#include + + +// Global Variables: +HINSTANCE hInst; // current instance + +HWND hMainWnd; // Main Window +HWND hStatusWnd; // Status Bar Window + +HWND hTreeWnd; // Tree Control Window +HWND hListWnd; // List Control Window +HWND hSplitWnd; // Splitter Bar Control Window + +int nMinimumWidth; // Minimum width of the dialog (OnSize()'s cx) +int nMinimumHeight; // Minimum height of the dialog (OnSize()'s cy) + +int nOldWidth; // Holds the previous client area width +int nOldHeight; // Holds the previous client area height + +BOOL bInMenuLoop = FALSE; // Tells us if we are in the menu loop + +TCHAR szTitle[MAX_LOADSTRING]; // The title bar text +TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text +TCHAR szFrameClass[MAX_LOADSTRING]; // The title bar text + +// Foward declarations of functions included in this code module: +ATOM MyRegisterClass(HINSTANCE hInstance); +ATOM MyRegisterClass2(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK FrameWndProc(HWND, UINT, WPARAM, LPARAM); + +int APIENTRY WinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int nCmdShow) +{ + MSG msg; + HACCEL hAccelTable; + + // Initialize global strings + LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + LoadString(hInstance, IDC_WINFILE, szWindowClass, MAX_LOADSTRING); + LoadString(hInstance, IDC_WINFILE_FRAME, szFrameClass, MAX_LOADSTRING); + + MyRegisterClass(hInstance); + MyRegisterClass2(hInstance); + + // Perform application initialization: + if (!InitInstance(hInstance, nCmdShow)) { + return FALSE; + } + hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_WINFILE); + + // Main message loop: + while (GetMessage(&msg, NULL, 0, 0)) { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + return msg.wParam; +} + + + +// +// FUNCTION: MyRegisterClass() +// +// PURPOSE: Registers the window class. +// +// COMMENTS: +// +// This function and its usage is only necessary if you want this code +// to be compatible with Win32 systems prior to the 'RegisterClassEx' +// function that was added to Windows 95. It is important to call this function +// so that the application will get 'well formed' small icons associated +// with it. +// +ATOM MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASSEX wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = (WNDPROC)WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_WINFILE); + wcex.hCursor = LoadCursor(NULL, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)SS_BLACKRECT/*(COLOR_WINDOW+1)*/; +// wcex.lpszMenuName = (LPCSTR)IDC_WINFILE; + wcex.lpszMenuName = (LPCSTR)IDR_WINFILE_MENU; + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIcon((HINSTANCE)wcex.hInstance, (LPCTSTR)IDI_SMALL); + return RegisterClassEx(&wcex); +} + +ATOM MyRegisterClass2(HINSTANCE hInstance) +{ + WNDCLASSEX wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = (WNDPROC)FrameWndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_WINFILE); + wcex.hCursor = LoadCursor(NULL, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = (LPCSTR)IDR_WINFILE_MENU; + wcex.lpszClassName = szFrameClass; + wcex.hIconSm = LoadIcon((HINSTANCE)wcex.hInstance, (LPCTSTR)IDI_SMALL); + return RegisterClassEx(&wcex); +} + +// +// +// FUNCTION: InitInstance(HANDLE, int) +// +// PURPOSE: Saves instance handle and creates main window +// +// COMMENTS: +// +// In this function, we save the instance handle in a global variable and +// create and display the main program window. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + int nParts[3]; + + // Initialize the Windows Common Controls DLL + InitCommonControls(); + + hInst = hInstance; // Store instance handle in our global variable + hMainWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); + if (!hMainWnd) { + return FALSE; + } + + // Get the minimum window sizes +// GetWindowRect(hMainWnd, &rc); +// nMinimumWidth = (rc.right - rc.left); +// nMinimumHeight = (rc.bottom - rc.top); + + // Create the status bar + hStatusWnd = CreateStatusWindow(WS_VISIBLE|WS_CHILD|WS_CLIPSIBLINGS|SBT_NOBORDERS, + "", hMainWnd, STATUS_WINDOW); + if (!hStatusWnd) + return FALSE; + + // Create the status bar panes + nParts[0] = 100; + nParts[1] = 210; + nParts[2] = 400; + SendMessage(hStatusWnd, SB_SETPARTS, 3, (long)nParts); + +/* + hSplitWnd = CreateWindow(szFrameClass, "splitter window", WS_VISIBLE|WS_CHILD, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, + hMainWnd, (HMENU)SPLIT_WINDOW, hInstance, NULL); + if (!hSplitWnd) + return FALSE; + */ + hTreeWnd = CreateTreeView(hMainWnd, "c:\\foobar.txt"); + if (!hTreeWnd) + return FALSE; + + hListWnd = CreateListView(hMainWnd, ""); + if (!hListWnd) + return FALSE; + + ShowWindow(hMainWnd, nCmdShow); + UpdateWindow(hMainWnd); + return TRUE; +} + + +// OnSize() +// This function handles all the sizing events for the application +// It re-sizes every window, and child window that needs re-sizing +void OnSize(UINT nType, int cx, int cy) +{ + int nParts[3]; + int nXDifference; + int nYDifference; + RECT rc; + + if (nType == SIZE_MINIMIZED) + return; + + nXDifference = cx - nOldWidth; + nYDifference = cy - nOldHeight; + nOldWidth = cx; + nOldHeight = cy; + + // Update the status bar size + GetWindowRect(hStatusWnd, &rc); + SendMessage(hStatusWnd, WM_SIZE, nType, MAKELPARAM(cx, cy + (rc.bottom - rc.top))); + + // Update the status bar pane sizes + nParts[0] = bInMenuLoop ? -1 : 100; + nParts[1] = 210; + nParts[2] = cx; + SendMessage(hStatusWnd, SB_SETPARTS, bInMenuLoop ? 1 : 3, (long)nParts); + + GetWindowRect(hStatusWnd, &rc); + + MoveWindow(hTreeWnd,0,0,cx/2,cy-(rc.bottom - rc.top),TRUE); + MoveWindow(hListWnd,cx/2,0,cx,cy-(rc.bottom - rc.top),TRUE); + +} + +void OnEnterMenuLoop(HWND hWnd) +{ + int nParts; + + // Update the status bar pane sizes + nParts = -1; + SendMessage(hStatusWnd, SB_SETPARTS, 1, (long)&nParts); + bInMenuLoop = TRUE; + SendMessage(hStatusWnd, SB_SETTEXT, (WPARAM)0, (LPARAM)_T("")); +} + +void OnExitMenuLoop(HWND hWnd) +{ + RECT rc; + int nParts[3]; +// TCHAR text[260]; + + bInMenuLoop = FALSE; + // Update the status bar pane sizes + GetClientRect(hWnd, &rc); + nParts[0] = 100; + nParts[1] = 210; + nParts[2] = rc.right; + SendMessage(hStatusWnd, SB_SETPARTS, 3, (long)nParts); + SendMessage(hStatusWnd, SB_SETTEXT, 0, (LPARAM)_T("")); +// wsprintf(text, _T("CPU Usage: %3d%%"), PerfDataGetProcessorUsage()); +// SendMessage(hStatusWnd, SB_SETTEXT, 1, (LPARAM)text); +// wsprintf(text, _T("Processes: %d"), PerfDataGetProcessCount()); +// SendMessage(hStatusWnd, SB_SETTEXT, 0, (LPARAM)text); +} + +void OnMenuSelect(HWND hWnd, UINT nItemID, UINT nFlags, HMENU hSysMenu) +{ + TCHAR str[100]; + + strcpy(str, TEXT("")); + if (nFlags & MF_POPUP) { + if (hSysMenu != GetMenu(hWnd)) { + if (nItemID == 2) nItemID = 5; + } + } + if (LoadString(hInst, nItemID, str, 100)) { + // load appropriate string + LPTSTR lpsz = str; + // first newline terminates actual string + lpsz = _tcschr(lpsz, '\n'); + if (lpsz != NULL) + *lpsz = '\0'; + } + SendMessage(hStatusWnd, SB_SETTEXT, 0, (LPARAM)str); +} + + +LRESULT CALLBACK FrameWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + int wmId, wmEvent; + PAINTSTRUCT ps; + HDC hdc; + TCHAR szHello[MAX_LOADSTRING]; + LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING); + + switch (message) { + case WM_COMMAND: + wmId = LOWORD(wParam); + wmEvent = HIWORD(wParam); + // Parse the menu selections: + switch (wmId) { + case IDM_ABOUT: +// ShowAboutBox(hWnd); + { + HICON hIcon = LoadIcon(hInst, (LPCTSTR)IDI_WINFILE); + ShellAbout(hWnd, szTitle, "FrameWndProc", hIcon); + //if (hIcon) DestroyIcon(hIcon); // NOT REQUIRED + } + break; + case IDM_EXIT: + DestroyWindow(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + break; + case WM_PAINT: + hdc = BeginPaint(hWnd, &ps); + // TODO: Add any drawing code here... + RECT rt; + GetClientRect(hWnd, &rt); + DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); + EndPaint(hWnd, &ps); + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + + +// +// FUNCTION: WndProc(HWND, unsigned, WORD, LONG) +// +// PURPOSE: Processes messages for the main window. +// +// WM_COMMAND - process the application menu +// WM_PAINT - Paint the main window +// WM_DESTROY - post a quit message and return +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + int wmId, wmEvent; + PAINTSTRUCT ps; + HDC hdc; + //TCHAR szHello[MAX_LOADSTRING]; + //LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING); + + switch (message) { + case WM_COMMAND: + wmId = LOWORD(wParam); + wmEvent = HIWORD(wParam); + // Parse the menu selections: + switch (wmId) { + case ID_REGISTRY_OPENLOCAL: + { + HWND hChildWnd; +// hChildWnd = CreateWindow(szFrameClass, szTitle, WS_OVERLAPPEDWINDOW | WS_CHILD, +// CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, hWnd, NULL, hInst, NULL); + hChildWnd = CreateWindow(szFrameClass, szTitle, WS_OVERLAPPEDWINDOW | WS_CHILD, + 0, 0, 150, 170, hWnd, NULL, hInst, NULL); + if (hChildWnd) { + ShowWindow(hChildWnd, 1); + UpdateWindow(hChildWnd); + } + } + break; + case IDM_ABOUT: +// ShowAboutBox(hWnd); + { + HICON hIcon = LoadIcon(hInst, (LPCTSTR)IDI_WINFILE); + ShellAbout(hWnd, szTitle, "", hIcon); + //if (hIcon) DestroyIcon(hIcon); // NOT REQUIRED + } + break; + case IDM_EXIT: + DestroyWindow(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + break; + case WM_SIZE: + // Handle the window sizing in it's own function + OnSize(wParam, LOWORD(lParam), HIWORD(lParam)); + break; + case WM_PAINT: + hdc = BeginPaint(hWnd, &ps); + // TODO: Add any drawing code here... + RECT rt; + GetClientRect(hWnd, &rt); + //DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); + EndPaint(hWnd, &ps); + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + case WM_TIMER: + break; + + case WM_ENTERMENULOOP: + OnEnterMenuLoop(hWnd); + break; + case WM_EXITMENULOOP: + OnExitMenuLoop(hWnd); + break; + case WM_MENUSELECT: + OnMenuSelect(hWnd, LOWORD(wParam), HIWORD(wParam), (HMENU)lParam); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} diff --git a/rosapps/winfile/winfile.h b/rosapps/winfile/winfile.h new file mode 100644 index 00000000000..8ce207b3c2f --- /dev/null +++ b/rosapps/winfile/winfile.h @@ -0,0 +1,41 @@ +/* + * ReactOS winfile + * + * winfile.h + * + * Copyright (C) 2002 Robert Dickenson + * + * 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. + */ + +#ifndef __winfile_H__ +#define __winfile_H__ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "resource.h" + + +#define STATUS_WINDOW 2001 +#define TREE_WINDOW 2002 +#define LIST_WINDOW 2003 +#define SPLIT_WINDOW 2004 + +#define MAX_LOADSTRING 100 + + +#endif // __winfile_H__ diff --git a/rosapps/winfile/winfile.ico b/rosapps/winfile/winfile.ico new file mode 100644 index 00000000000..386883523bc Binary files /dev/null and b/rosapps/winfile/winfile.ico differ diff --git a/rosapps/winfile/winfile.rc b/rosapps/winfile/winfile.rc new file mode 100644 index 00000000000..518e6e86fdb --- /dev/null +++ b/rosapps/winfile/winfile.rc @@ -0,0 +1,337 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS +#include "resource.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_WINFILE ICON DISCARDABLE "winfile.ICO" +IDI_SMALL ICON DISCARDABLE "SMALL.ICO" + +IDB_OPEN_FILE BITMAP DISCARDABLE "folder1.bmp" +IDB_CLOSED_FILE BITMAP DISCARDABLE "folder2.bmp" +IDB_ROOT BITMAP DISCARDABLE "folder3.bmp" + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDC_WINFILE MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "E&xit", IDM_EXIT + END + POPUP "&Help" + BEGIN + MENUITEM "&About ...", IDM_ABOUT + END +END + +IDR_WINFILE_MENU MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Open", ID_VIEW_REFRESH + MENUITEM "&Move...\tF8", ID_VIEW_REFRESH + MENUITEM "&Copy...\tF9", ID_VIEW_REFRESH + MENUITEM "Copy to Clip&board...\tF9", ID_VIEW_REFRESH + MENUITEM "&Delete...\tDel", ID_VIEW_REFRESH + MENUITEM "Re&name...\t", ID_VIEW_REFRESH + MENUITEM "Proper&ties...\tAlt+Enter", ID_VIEW_REFRESH + MENUITEM SEPARATOR + MENUITEM "Compre&ss...\t", ID_VIEW_REFRESH + MENUITEM "&Uncompress...\t", ID_VIEW_REFRESH + MENUITEM SEPARATOR + MENUITEM "&Run...\t", ID_VIEW_REFRESH + MENUITEM "&Print...\t", ID_VIEW_REFRESH + MENUITEM "&Associate...\t", ID_VIEW_REFRESH + MENUITEM SEPARATOR + MENUITEM "Cr&eate directory...\t", ID_VIEW_REFRESH + MENUITEM "Searc&h...\t", ID_VIEW_REFRESH + MENUITEM "Select &Files...\t", ID_VIEW_REFRESH + MENUITEM SEPARATOR + MENUITEM "E&xit", IDM_EXIT + END + POPUP "&Disk" + BEGIN + MENUITEM "&Copy Disk...\t", ID_VIEW_REFRESH + MENUITEM "&Label Disk...\t", ID_VIEW_REFRESH + MENUITEM SEPARATOR + MENUITEM "&Format Disk..\t", ID_VIEW_REFRESH + MENUITEM SEPARATOR + MENUITEM "Connect &Network Drive...", ID_VIEW_STATUSBAR + MENUITEM "&Disconnect Network Drive...",ID_VIEW_STATUSBAR + MENUITEM SEPARATOR + MENUITEM "Share &As...", ID_VIEW_STATUSBAR + MENUITEM "S&top Sharing...", ID_VIEW_STATUSBAR + MENUITEM SEPARATOR + MENUITEM "&Select Drive...\t", ID_VIEW_REFRESH + END + POPUP "&Tree" + BEGIN + MENUITEM "E&xpand One Level\t+", ID_VIEW_REFRESH + MENUITEM "Expand &Branch\t*", ID_VIEW_REFRESH + MENUITEM "Expand &All\tCtrl+*", ID_VIEW_REFRESH + MENUITEM SEPARATOR + MENUITEM "&Indicate Expandable Branches",ID_VIEW_REFRESH + END + POPUP "&View" + BEGIN + MENUITEM "T&ree and Directory", ID_VIEW_STATUSBAR + MENUITEM "Tr&ee Only", ID_VIEW_STATUSBAR + MENUITEM "Directory &Only", ID_VIEW_STATUSBAR + MENUITEM SEPARATOR + MENUITEM "Sp&lit", ID_VIEW_SPLIT + MENUITEM SEPARATOR + MENUITEM "&Name", ID_VIEW_REFRESH + MENUITEM "&All File Details", ID_VIEW_REFRESH + MENUITEM "&Partial Details...", ID_VIEW_REFRESH + MENUITEM SEPARATOR + MENUITEM "&Sort by Name", ID_VIEW_REFRESH + MENUITEM "Sort &by Type", ID_VIEW_REFRESH + MENUITEM "Sort by Si&ze", ID_VIEW_REFRESH + MENUITEM "Sort by &Date", ID_VIEW_REFRESH + MENUITEM SEPARATOR + MENUITEM "By File &Type...", ID_VIEW_REFRESH + END + POPUP "&Options" + BEGIN + MENUITEM "&Confirmation...", ID_VIEW_REFRESH + MENUITEM "&Font...", ID_VIEW_REFRESH + MENUITEM "Customise Tool&bar...", ID_VIEW_REFRESH + MENUITEM SEPARATOR + MENUITEM "&Toolbar...", ID_VIEW_REFRESH + MENUITEM "&Drivebar...", ID_VIEW_REFRESH + MENUITEM "&Statusbar...", ID_VIEW_REFRESH + MENUITEM SEPARATOR + MENUITEM "&Open New Window on Connect", ID_VIEW_REFRESH + MENUITEM "&Minimise on Use", ID_VIEW_REFRESH + MENUITEM "&Save Settings on Exit", ID_VIEW_REFRESH + END + POPUP "&Security" + BEGIN + MENUITEM "&Permissions...", ID_VIEW_REFRESH, GRAYED + MENUITEM "&Auditing...", ID_VIEW_REFRESH, GRAYED + MENUITEM "&Owner...", ID_VIEW_REFRESH, GRAYED + END + POPUP "&Window" + BEGIN + MENUITEM "&New Window", ID_VIEW_REFRESH + MENUITEM "&Cascade", ID_VIEW_REFRESH + MENUITEM "Tile &Horizontally", ID_VIEW_REFRESH + MENUITEM "&Tile Vertically", ID_VIEW_REFRESH + MENUITEM "&Arrange Icons", ID_VIEW_REFRESH + MENUITEM "&Refresh", ID_VIEW_REFRESH + MENUITEM SEPARATOR + END + POPUP "&Help" + BEGIN + MENUITEM "&Contents", ID_HELP_HELPTOPICS + MENUITEM "&Search for Help on", ID_HELP_HELPTOPICS + MENUITEM "&How to Use Help", ID_HELP_HELPTOPICS + MENUITEM SEPARATOR + MENUITEM "&About File Manager", IDM_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 230, 75 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "About" +FONT 8, "System" +BEGIN + ICON IDI_WINFILE,IDI_WINFILE,14,9,16,16 + LTEXT "ReactOS winfile Version 1.0",IDC_STATIC,49,10,119,8, + SS_NOPREFIX + LTEXT "Copyright (C) 2002 ReactOS Team",IDC_STATIC,49,20,119,8 + DEFPUSHBUTTON "OK",IDOK,195,6,30,11,WS_GROUP +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" + "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""resource.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APP_TITLE "ReactOS File Manager" + IDS_HELLO "Hello World!" + + ID_FILE_MENU "Commands for working with files" + ID_DISK_MENU "Commands for working with disk" + ID_TREE_MENU "Commands for working in the tree window" + ID_VIEW_MENU "Commands for determining how information is displayed" + ID_OPTIONS_MENU "Commands for setting options" + ID_SECURITY_MENU "Commands for manipulating file and directory security" + ID_WINDOW_MENU "Commands for manipulating windows" + ID_HELP_MENU "Commands for displaying help and information about file manager" + + IDM_EXIT "Quits the file manager" + + ID_EDIT_DELETE "Deletes the selection" + ID_EDIT_RENAME "Renames the selection" + ID_EDIT_COPYKEYNAME "Copies the name of the selected key to the clipboard" + ID_EDIT_FIND "Finds a text string in a key, value or data" + ID_EDIT_FINDNEXT "Finds next occurrence of text specified in previous search" + + ID_VIEW_STATUSBAR "Shows or hides the status bar" + ID_VIEW_SPLIT "Change position of split between two panes" + ID_VIEW_REFRESH "Refreshes the window" + + ID_HELP_HELPTOPICS "Opens file manager help" + IDM_ABOUT "Displays program information, version number and copyright" + + IDC_WINFILE "WINFILE" + IDC_WINFILE_FRAME "WINFILE_FRAME" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (Australia) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENA) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_AUS +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 186, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Dialog" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,129,7,50,14 + PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14 +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_DIALOG1, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 179 + TOPMARGIN, 7 + BOTTOMMARGIN, 88 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + ID_HELP_HELPTOPICS "Opens File Manager Help." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDM_ABOUT "Displays program information, version number, and copyright." +END + +#endif // English (Australia) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED +