Updated with progress. Still far to go....
[reactos.git] / rosapps / winfile / main.c
index 675934b..e3475b9 100644 (file)
@@ -94,7 +94,7 @@ TCHAR szChildClass[MAX_LOADSTRING];
 //
 BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
 {
-//    char path[MAX_PATH];
+//    char TCHAR[MAX_PATH];
 //    int nParts[4];
 //    ChildWnd* child;
 
@@ -161,18 +161,21 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
         return FALSE;
     }
 
-    if (InitCommonControlsEx(&icc))
-       {
+    if (InitCommonControlsEx(&icc))    {
+//             TBBUTTON drivebarBtn = {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP};
                TBBUTTON drivebarBtn = {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP};
                int btn = 1;
                PTSTR p;
 
-               Globals.hDriveBar = CreateToolbarEx(Globals.hMainWnd, 
-                               WS_CHILD|WS_VISIBLE|CCS_NOMOVEY|TBSTYLE_LIST,
+        Globals.hDriveBar = CreateToolbarEx(Globals.hMainWnd, 
+                               WS_CHILD|WS_VISIBLE|CCS_NOMOVEY|TBSTYLE_FLAT|TBSTYLE_LIST|TBSTYLE_WRAPABLE,
+//                    WS_CHILD|WS_VISIBLE|CCS_NOMOVEY|TBSTYLE_LIST|TBSTYLE_TRANSPARENT|TBSTYLE_WRAPABLE,
                                        IDW_DRIVEBAR, 2, hInstance, IDB_DRIVEBAR, 
                                        &drivebarBtn, 1/*iNumButtons*/, 
-                                       16/*dxButton*/, 13/*dyButton*/, 
-                                       16/*dxBitmap*/, 13/*dyBitmap*/, sizeof(TBBUTTON));
+                                       25/*dxButton*/, 16/*dyButton*/, 
+                                       0/*dxBitmap*/, 0/*dyBitmap*/, sizeof(TBBUTTON));
+//                                     16/*dxButton*/, 13/*dyButton*/, 
+//                                     16/*dxBitmap*/, 13/*dyBitmap*/, sizeof(TBBUTTON));
                CheckMenuItem(Globals.hMenuOptions, ID_OPTIONS_DRIVEBAR, MF_BYCOMMAND|MF_CHECKED);
                GetLogicalDriveStrings(BUFFER_LEN, Globals.drives);
                drivebarBtn.fsStyle = TBSTYLE_BUTTON;
@@ -200,26 +203,116 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
                        while(*p++);
                }
                {
+
+#define DRIVEBOX_WIDTH  200
+#define DRIVEBOX_HEIGHT 8
+
                TBBUTTON toolbarBtns[] = {
+                       {DRIVEBOX_WIDTH+10, 0, 0, TBSTYLE_SEP},
                        {0, 0, 0, TBSTYLE_SEP},
-                       {0, ID_WINDOW_NEW_WINDOW, TBSTATE_ENABLED, TBSTYLE_BUTTON},
-                       {1, ID_WINDOW_CASCADE, TBSTATE_ENABLED, TBSTYLE_BUTTON},
-                       {2, ID_WINDOW_TILE_HORZ, TBSTATE_ENABLED, TBSTYLE_BUTTON},
-                       {3, ID_WINDOW_TILE_VERT, TBSTATE_ENABLED, TBSTYLE_BUTTON},
-                       {4, 2/*TODO: ID_...*/, TBSTATE_ENABLED, TBSTYLE_BUTTON},
-                       {5, 2/*TODO: ID_...*/, TBSTATE_ENABLED, TBSTYLE_BUTTON},
+
+//                     {1, ID_FILE_OPEN, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, ID_FILE_OPEN }, 
+                       {2, ID_FILE_MOVE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, ID_FILE_MOVE}, 
+                       {3, ID_FILE_COPY, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, ID_FILE_COPY}, 
+                       {4, ID_FILE_COPY_CLIPBOARD, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, ID_FILE_COPY_CLIPBOARD}, 
+                       {5, ID_FILE_DELETE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, ID_FILE_DELETE}, 
+                       {6, ID_FILE_RENAME, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {7, ID_FILE_PROPERTIES, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {8, ID_FILE_COMPRESS, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {9, ID_FILE_UNCOMPRESS, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {10, ID_FILE_RUN, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {10, ID_FILE_PRINT, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {11, ID_FILE_ASSOCIATE, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {12, ID_FILE_CREATE_DIRECTORY, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {13, ID_FILE_SEARCH, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {14, ID_FILE_SELECT_FILES, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {16, ID_FILE_EXIT, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {15, ID_DISK_COPY_DISK, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {16, ID_DISK_LABEL_DISK, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {17, ID_DISK_FORMAT_DISK, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {18, ID_DISK_CONNECT_NETWORK_DRIVE, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {19, ID_DISK_DISCONNECT_NETWORK_DRIVE, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {20, ID_DISK_SHARE_AS, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {21, ID_DISK_STOP_SHARING, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {24, ID_DISK_SELECT_DRIVE, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {25, ID_TREE_EXPAND_ONE_LEVEL, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {26, ID_TREE_EXPAND_BRANCH, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {27, ID_TREE_EXPAND_ALL, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {28, ID_TREE_COLLAPSE_BRANCH, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {22, ID_TREE_INDICATE_EXPANDABLE_BRANCHES, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {30, ID_VIEW_TREE_DIRECTORY, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {31, ID_VIEW_TREE_ONLY, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {32, ID_VIEW_DIRECTORY_ONLY, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {33, ID_VIEW_SPLIT, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {23, ID_VIEW_NAME, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {24, ID_VIEW_ALL_FILE_DETAILS, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {25, ID_VIEW_PARTIAL_DETAILS, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {37, ID_VIEW_SORT_BY_NAME, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {38, ID_VIEW_SORT_BY_TYPE, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {39, ID_VIEW_SORT_BY_SIZE, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {40, ID_VIEW_SORT_BY_DATE, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {26, ID_VIEW_BY_FILE_TYPE, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {27, ID_OPTIONS_CONFIRMATION, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {28, ID_OPTIONS_FONT, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {29, ID_OPTIONS_CUSTOMISE_TOOLBAR, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {45, ID_OPTIONS_TOOLBAR, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {46, ID_OPTIONS_DRIVEBAR, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {47, ID_OPTIONS_STATUSBAR, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {30, ID_OPTIONS_OPEN_NEW_WINDOW_ON_CONNECT, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {31, ID_OPTIONS_MINIMISE_ON_USE, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {32, ID_OPTIONS_SAVE_ON_EXIT, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {33, ID_SECURITY_PERMISSIONS, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {34, ID_SECURITY_AUDITING, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {35, ID_SECURITY_OWNER, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {36, ID_WINDOW_NEW_WINDOW, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {37, ID_WINDOW_CASCADE, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {38, ID_WINDOW_TILE_HORZ, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {39, ID_WINDOW_TILE_VERT, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {40, ID_WINDOW_ARRANGE_ICONS, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {41, ID_WINDOW_REFRESH, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+                       {42, ID_HELP_CONTENTS, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {61, ID_HELP_SEARCH_HELP, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {62, ID_HELP_HOW_TO_USE_HELP, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+//                     {63, ID_HELP_ABOUT, TBSTATE_ENABLED, TBSTYLE_BUTTON}, 
+
+
+//                     {0, ID_WINDOW_NEW_WINDOW, TBSTATE_ENABLED, TBSTYLE_BUTTON},
+//                     {1, ID_WINDOW_CASCADE, TBSTATE_ENABLED, TBSTYLE_BUTTON},
+//                     {2, ID_WINDOW_TILE_HORZ, TBSTATE_ENABLED, TBSTYLE_BUTTON},
+//                     {3, ID_WINDOW_TILE_VERT, TBSTATE_ENABLED, TBSTYLE_BUTTON},
+//                     {4, 2/*TODO: ID_...*/, TBSTATE_ENABLED, TBSTYLE_BUTTON},
+//                     {5, 2/*TODO: ID_...*/, TBSTATE_ENABLED, TBSTYLE_BUTTON},
                };
 
-               Globals.hToolBar = CreateToolbarEx(Globals.hMainWnd, WS_CHILD|WS_VISIBLE,
+//             Globals.hToolBar = CreateToolbarEx(Globals.hMainWnd, WS_CHILD|WS_VISIBLE|TBSTYLE_TOOLTIPS|TBSTYLE_FLAT,
+               Globals.hToolBar = CreateToolbarEx(Globals.hMainWnd, WS_CHILD|WS_VISIBLE|TBSTYLE_TOOLTIPS|CCS_ADJUSTABLE,
                        IDW_TOOLBAR, 2, hInstance, IDB_TOOLBAR, toolbarBtns,
                        sizeof(toolbarBtns)/sizeof(TBBUTTON), 16, 15, 16, 15, sizeof(TBBUTTON));
                CheckMenuItem(Globals.hMenuOptions, ID_OPTIONS_TOOLBAR, MF_BYCOMMAND|MF_CHECKED);
+
+        {
+// Create the edit control. Notice that hWndParent, parent of
+// the toolbar, is used as the parent of the edit control.    
+
+//HWND hWndEdit = CreateWindowEx(0L, WC_COMBOBOXEX, NULL, WS_CHILD | WS_BORDER | WS_VISIBLE 
+HWND hWndEdit = CreateWindowEx(0L, "ComboBox", NULL, WS_CHILD | WS_BORDER | WS_VISIBLE 
+   | CBS_DROPDOWN | ES_LEFT | ES_AUTOVSCROLL | ES_MULTILINE, 
+   10, 0, DRIVEBOX_WIDTH, DRIVEBOX_HEIGHT, Globals.hMainWnd, (HMENU)IDW_DRIVEBOX, hInstance, 0);
+   
+// Set the toolbar window as the parent of the edit control
+// window. You must set the toolbar as the parent of the edit
+// control for it to appear embedded in the toolbar.
+SetParent (hWndEdit, Globals.hToolBar);    
+        }
+
+
+
                }
        }
 
     // Create the status bar
     Globals.hStatusBar = CreateStatusWindow(WS_VISIBLE|WS_CHILD|WS_CLIPSIBLINGS|SBT_NOBORDERS, 
-                                    "", Globals.hMainWnd, IDW_STATUS_WINDOW);
+                                    _T(""), Globals.hMainWnd, IDW_STATUS_WINDOW);
     if (!Globals.hStatusBar)
         return FALSE;
        CheckMenuItem(Globals.hMenuOptions, ID_OPTIONS_STATUSBAR, MF_BYCOMMAND|MF_CHECKED);
@@ -294,9 +387,9 @@ void UpdateStatusBar(void)
     TCHAR text[260];
        DWORD size;
 
-       size = sizeof(text)/sizeof(TCHAR);
-       GetUserName(text, &size);
-    SendMessage(Globals.hStatusBar, SB_SETTEXT, 2, (LPARAM)text);
+//     size = sizeof(text)/sizeof(TCHAR);
+//     GetUserName(text, &size);
+//  SendMessage(Globals.hStatusBar, SB_SETTEXT, 2, (LPARAM)text);
        size = sizeof(text)/sizeof(TCHAR);
        GetComputerName(text, &size);
     SendMessage(Globals.hStatusBar, SB_SETTEXT, 3, (LPARAM)text);
@@ -371,7 +464,9 @@ int APIENTRY WinMain(HINSTANCE hInstance,
         return FALSE;
     }
 
-    hAccel = LoadAccelerators(hInstance, (LPCTSTR)IDC_WINFILE);
+//    hAccel = LoadAccelerators(hInstance, (LPCTSTR)IDC_WINFILE);
+    hAccel = LoadAccelerators(hInstance, (LPCTSTR)IDR_ACCELERATOR1);
+    
     hMDIClient = GetWindow(Globals.hMainWnd, GW_CHILD);
 
     // Main message loop: