fix typos.
authorMaarten Bosma <maarten@bosma.de>
Tue, 3 Jan 2006 11:49:59 +0000 (11:49 +0000)
committerMaarten Bosma <maarten@bosma.de>
Tue, 3 Jan 2006 11:49:59 +0000 (11:49 +0000)
svn path=/trunk/; revision=20543

rosapps/packmgr/gui/main.c
rosapps/packmgr/lib/de.rc
rosapps/packmgr/tree/7zip.inst.rps
rosapps/packmgr/tree/mozcontrol.xml [deleted file]
rosapps/packmgr/tree/mozillacontrol.inst.rps [deleted file]
rosapps/packmgr/tree/putty.inst.rps
rosapps/packmgr/tree/tiny.xml
rosapps/packmgr/tree/tree.xml
rosapps/packmgr/tree/tree_bare.xml

index 3878edc..6ad85cc 100644 (file)
-////////////////////////////////////////////////////////
-//
-// main.cpp
-// 
-// Implementation of the Package Manager GUI
-//
-//
-// Maarten Bosma, 09.01.2004
-// maarten.paul@bosma.de
-//
-////////////////////////////////////////////////////////////////////
-
-#include "main.h"
-
-// This is the struct where the toolbar is defined
-const TBBUTTON Buttons [] =
-{
-       {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP},
-
-       {0, 1, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON}, // No Action
-       {1, 2, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON}, // Install
-       {2, 3, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON}, // Install from source
-       {3, 4, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON}, // Update
-       {4, 5, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON}, // Unistall
-
-       {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP},
-       {5, 6, TBSTATE_ENABLED, TBSTYLE_BUTTON}, // DoIt (tm)
-       {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP},
-
-       {6, 7, TBSTATE_ENABLED, TBSTYLE_BUTTON}, // Help
-       {7, 8, TBSTATE_ENABLED, TBSTYLE_BUTTON}, // Options
-
-       {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP},
-};
-
-
-// Application's Entry Point
-int WINAPI WinMain (HINSTANCE hinst, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
-{
-       HWND       hwnd;
-       MSG        msg;
-       WNDCLASSEX wc = {0};
-       WCHAR errbuf[2000];
-
-       // Window creation
-       wc.cbSize        = sizeof(WNDCLASSEX); 
-       wc.lpszClassName = L"pgkmgr";
-       wc.style         = CS_HREDRAW | CS_VREDRAW;
-       wc.lpfnWndProc   = (WNDPROC)WndProc;
-       wc.hInstance     = hinst;
-       wc.hIcon                 = LoadIcon(hinst, MAKEINTRESOURCE(IDI_MAIN));
-       wc.hbrBackground = (HBRUSH)(COLOR_SCROLLBAR);
-
-       RegisterClassEx(&wc);
-
-       hwnd = CreateWindow(L"pgkmgr",
-                       L"ReactOS - Package Manager v0.3",
-                       WS_OVERLAPPEDWINDOW,
-                       CW_USEDEFAULT,  
-                       CW_USEDEFAULT,   
-                       500, 600, 
-                       NULL, NULL,
-                       hinst, 
-                                          NULL);
-
-
-       // Toolbar creation
-       InitCommonControls();
-
-       hTBar = CreateToolbarEx(hwnd, WS_CHILD|WS_VISIBLE|TBSTYLE_FLAT, 0, 8, hinst, IDB_TOOLBAR, 
-                                                                               Buttons, sizeof(Buttons)/sizeof(TBBUTTON), TBSIZE, TBSIZE, TBSIZE, TBSIZE, sizeof(TBBUTTON));
-
-       // Show the windows
-       ShowWindow(hwnd, SW_SHOW);
-       UpdateWindow(hwnd);
-
-       // Load the tree
-       int error = PML_LoadTree(&tree, "tree_bare.xml", AddItem);
-       
-       if(error)
-       {
-               MessageBox(0,PML_TransError(error, errbuf, sizeof(errbuf)/sizeof(WCHAR)),0,0);
-               return 0;
-       }
-       
-       // Read the help
-       Help();
-
-       // Start getting messages
-       while(GetMessage(&msg,NULL,0,0))
-       {
-               if(!TranslateAccelerator(hwnd, hHotKeys, &msg))
-               {
-                       TranslateMessage(&msg);
-                       DispatchMessage(&msg);
-               }
-       }
-       
-       // Close our handle
-       PML_CloseTree (tree);
-
-       return 0;
-}
-
-// Add a item to our tree
-int AddItem (int id, const char* name, int parent, int icon)
-{ 
-       TV_INSERTSTRUCT tvins; 
-
-       tvins.item.lParam = (UINT)id;
-       tvins.item.mask = TVIF_TEXT|TVIF_PARAM;
-       tvins.item.pszText = (WCHAR*)name; //that is ok
-       tvins.item.cchTextMax = strlen(name); 
-       tvins.hInsertAfter = TVI_LAST;
-
-       if(icon)
-       {
-               tvins.item.iImage = icon;
-               tvins.item.iSelectedImage = icon;
-               tvins.item.mask |= TVIF_IMAGE | TVIF_SELECTEDIMAGE;
-       }
-
-       if (parent==0)
-               tvins.hParent = TVI_ROOT;
-       else
-               tvins.hParent = nodes[parent];
-
-       nodes[id] = (HTREEITEM)SendMessage(hTree, TVM_INSERTITEMA, 0, (LPARAM)&tvins);
-
-       return 0;
-} 
-
-// Load the Help from file and display it
-void Help (void)
-{
-       int i;
-       char buffer [2000];
-       FILE* file = fopen ("help.txt", "r");
-
-       if(!file)
-               return;
-
-       for(i=0; i<2000; i++)
-       {
-               buffer[i] = getc(file);
-               if(buffer[i]==EOF) break;
-       }
-       buffer[i] = 0;
-
-       SetText(buffer);
-}
-
-// Create our Controls
-void InitControls (HWND hwnd)
-{
-
-       HINSTANCE hinst = GetModuleHandle(NULL);
-       WCHAR errbuf[2000];
-
-       // Create the controls
-       hTree = CreateWindowEx(0, WC_TREEVIEW, L"TreeView", WS_CHILD|WS_VISIBLE|WS_BORDER|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS, 
-                                                       0, 0, 0, 0, hwnd, NULL, hinst, NULL);
-
-       hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, L"edit", PML_TransError(IDS_LOAD, errbuf, sizeof(errbuf)/sizeof(WCHAR)), WS_CHILD|WS_VISIBLE|ES_MULTILINE, 
-                                                       0, 0, 100, 100, hwnd, NULL, hinst, NULL);
-       
-       hPopup = LoadMenu(hinst, MAKEINTRESOURCE(IDR_POPUP));
-
-       // Create Tree Icons
-       HIMAGELIST hIcon = ImageList_Create(16,16,ILC_COLOR32,1,1); 
-       SendMessage(hTree, TVM_SETIMAGELIST, TVSIL_NORMAL, (LPARAM)(HIMAGELIST)hIcon);
-               
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(1))); 
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(11))); 
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(12))); 
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(13))); 
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(14))); 
-
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(2))); 
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(3))); 
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(4))); 
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(5))); 
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(6))); 
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(7))); 
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(8))); 
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(9))); 
-       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(10))); 
-
-       // Setup Hotkeys
-       hHotKeys = LoadAccelerators (hinst, MAKEINTRESOURCE(IDR_HOTKEYS));
-}
-
-// Set the Icons
-int SetIcon (int id, int icon) 
-{
-    TVITEMEX item;
-       
-       item.hItem = nodes[id];
-       item.iImage = icon;
-       item.iSelectedImage = icon;
-       item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE;
-
-       TreeView_SetItem(hTree, &item);
-
-    return 1;
-}
-
-// Set the Icons
-int Ask (const WCHAR* message) 
-{      
-       int ans = MessageBox (0,message,0,MB_YESNO);
-
-       if(ans == IDYES)
-               return 1;
-
-    return 0;
-}
-
-// En- or Disable a Button inside of the toolbar and the Context Menu
-int SetButton (DWORD id, BOOL state) 
-{
-       // Change the Toorbar Button
-    TBBUTTONINFO ti;
-
-    ti.cbSize = sizeof (ti);
-    ti.dwMask = TBIF_STATE;
-
-       if(state)
-               ti.fsState = TBSTATE_ENABLED;
-       else
-               ti.fsState = TBSTATE_INDETERMINATE;
-
-    SendMessage (hTBar, TB_SETBUTTONINFO, id, (LPARAM)&ti);
-
-       // Change the Context Menu item
-       MENUITEMINFO mi;
-
-    mi.cbSize = sizeof (mi);
-    mi.fMask = MIIM_STATE;
-
-       if(state)
-               mi.fState = MFS_ENABLED;
-
-       else
-               mi.fState = MFS_GRAYED;
-
-    SetMenuItemInfo(hPopup, id, FALSE, &mi);
-
-       return 0;
-}
-
-// Set the text of the text box
-int SetText (const char* text) 
-{
-       int i, j;
-       char buffer [2000];
-
-       if(!text)
-               return 1;
-
-       // the windows does not need "\n"
-       // for new lines but "\r\n"
-       for(i=0,j=0; text[i]; i++,j++)
-       {
-               buffer[j] = text[i];
-               if(buffer[j] == '\n')
-               {
-                       buffer[j] = '\r';
-                       buffer[++j] = '\n';
-               }
-       }
-       buffer[j] = 0;
-
-       SetWindowTextA(hEdit, buffer);
-
-    return 0;
-}
-
-// Windows Message Callback (this is where most things happen)
-LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
-{
-       switch (message)
-       {
-               // at the very beginning ...
-               case WM_CREATE:
-               {
-                       InitControls(hwnd);
-               } 
-               break;
-
-               // calculate the size of the controls
-               case WM_SIZE:
-               {
-            RECT rcl;
-            SendMessage(hTBar, TB_AUTOSIZE, 0L, 0L);
-            GetWindowRect(hTBar, &rcl);
-
-                       int win_top = rcl.bottom - rcl.top;
-                       int win_hight = HIWORD(lParam) - win_top;
-
-            MoveWindow(hTree, 0, win_top, LOWORD(lParam), splitter_pos*win_hight/100, TRUE);
-            MoveWindow(hEdit, 0, (splitter_pos*win_hight/100)+win_top, LOWORD(lParam), win_hight, TRUE);
-               }
-           break;
-
-               // for the treeview
-               case WM_NOTIFY:
-               {
-                       if(((LPNMHDR)lParam)->code == TVN_SELCHANGED) 
-                       {
-                               selected = ((LPNMTREEVIEW)lParam)->itemNew.lParam; 
-                               PML_LoadPackage (tree, selected, SetButton);
-                               SetText(PML_GetDescription (tree, selected));
-                       }
-
-                       else if ((int)(((LPNMHDR)lParam)->code) == NM_RCLICK) // <= aarrggg LISP
-                       { 
-                               // which item has been click on
-                               HTREEITEM item = TreeView_GetDropHilight(hTree);
-
-                               if(item != NULL)
-                               {
-                                       // mark the one as seleacted
-                                       SendMessage (hTree, TVM_SELECTITEM, TVGN_CARET, (LPARAM)item);
-                                       TreeView_EnsureVisible (hTree, item);
-                               }
-
-                               // create the context menu
-                               if(selected != 0)
-                               {
-                                       POINT pt;
-                                       GetCursorPos (&pt);
-                                       TrackPopupMenu (GetSubMenu(hPopup, 0), 0, (UINT)pt.x, (UINT)pt.y, 0, hwnd, NULL);
-                               }
-                       }
-               }
-               break;
-
-               // for the toolbar
-               case WM_COMMAND:
-               {
-                       // All Actions
-                       if(LOWORD(wParam) <= 5 && LOWORD(wParam) >= 1)
-                       {
-                               if(selected)
-                                       if(PML_SetAction(tree, selected, LOWORD(wParam)-1, SetIcon, Ask) == ERR_OK)
-                                               break;
-
-                               MessageBeep(MB_ICONHAND);
-                       }
-
-                       // DoIt
-                       else if(LOWORD(wParam)==6)
-                       {
-                               if(PML_DoIt(tree, SetStatus, Ask) == ERR_OK)
-                                       DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DOIT), hwnd, StatusProc);
-                               else
-                                       MessageBeep(MB_ICONHAND);
-                       }
-
-                       // Help
-                       else if(LOWORD(wParam)==7)
-                               Help();
-
-                       // Options
-                       else if(LOWORD(wParam)==8)
-                               DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_OPTIONS), hwnd, OptionsProc);
-               }
-               break;
-
-               // prozess hotkeys
-               case WM_HOTKEY:
-               {
-                       if(PML_SetAction(tree, selected, wParam, SetIcon, Ask) != ERR_OK)
-                               MessageBeep(MB_ICONHAND);
-               }
-               break;
-
-               // ... at the very end
-               case WM_DESTROY:
-               {
-                       PostQuitMessage(0);
-                       return 0;
-               }
-       }
-
-       return DefWindowProc (hwnd, message, wParam, lParam);
-}
-
-// Warning: This function is called from another thread
-int SetStatus (int status1, int status2, WCHAR* text)
-{
-       WCHAR errbuf[2000];
-
-       // Set the Rage to 1000
-       SendMessage(GetDlgItem(hStatus, IDC_STATUS1), PBM_SETRANGE32, 0, 1000);
-       SendMessage(GetDlgItem(hStatus, IDC_STATUS2), PBM_SETRANGE32, 0, 1000);
-
-       // The prozessbars and the text filds
-       if(text)
-               SetDlgItemText(hStatus, IDC_TSTATUS, text);
-
-       if(status1!=-1)
-               SendMessage(GetDlgItem(hStatus, IDC_STATUS1), PBM_SETPOS, status1, 0);
-
-       if(status2!=-1)
-               SendMessage(GetDlgItem(hStatus, IDC_STATUS2), PBM_SETPOS, status2, 0);
-
-       // If the Status is 1000 very thing is done
-       if(status1==1000)
-       {
-               EndDialog(hStatus, TRUE);
-               MessageBox(0,PML_TransError(status2, errbuf, sizeof(errbuf)/sizeof(WCHAR)),0,0);
-       }
-
-       return 0;
-}
-
-// Callback for the Status Dialog
-INT_PTR CALLBACK StatusProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-    switch (msg)
-    {
-               case WM_INITDIALOG:
-               {
-                       hStatus = hwnd;
-                       
-               } break;
-
-               case WM_COMMAND: // can only be the about button
-               case WM_CLOSE: // the close-window-[x]
-               {
-                       PML_Abort();
-                       EndDialog(hwnd, TRUE);
-                       return 0;
-               }
-    }
-
-    return 0;
-}
-
-// Callback for the Options Dialog
-INT_PTR CALLBACK OptionsProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-    switch (msg)
-    {
-               case WM_CLOSE:
-                       EndDialog(hwnd, TRUE);
-                       return 0;
-    }
-
-    return 0;
-}
+////////////////////////////////////////////////////////\r
+//\r
+// main.cpp\r
+// \r
+// Implementation of the Package Manager GUI\r
+//\r
+//\r
+// Maarten Bosma, 09.01.2004\r
+// maarten.paul@bosma.de\r
+//\r
+////////////////////////////////////////////////////////////////////\r
+\r
+#include "main.h"\r
+\r
+// This is the struct where the toolbar is defined\r
+const TBBUTTON Buttons [] =\r
+{\r
+       {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP},\r
+\r
+       {0, 1, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON}, // No Action\r
+       {1, 2, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON}, // Install\r
+       {2, 3, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON}, // Install from source\r
+       {3, 4, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON}, // Update\r
+       {4, 5, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON}, // Unistall\r
+\r
+       {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP},\r
+       {5, 6, TBSTATE_ENABLED, TBSTYLE_BUTTON}, // DoIt (tm)\r
+       {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP},\r
+\r
+       {6, 7, TBSTATE_ENABLED, TBSTYLE_BUTTON}, // Help\r
+       {7, 8, TBSTATE_ENABLED, TBSTYLE_BUTTON}, // Options\r
+\r
+       {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP},\r
+};\r
+\r
+\r
+// Application's Entry Point\r
+int WINAPI WinMain (HINSTANCE hinst, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)\r
+{\r
+       HWND       hwnd;\r
+       MSG        msg;\r
+       WNDCLASSEX wc = {0};\r
+       WCHAR errbuf[2000];\r
+\r
+       // Window creation\r
+       wc.cbSize        = sizeof(WNDCLASSEX); \r
+       wc.lpszClassName = L"pgkmgr";\r
+       wc.style         = CS_HREDRAW | CS_VREDRAW;\r
+       wc.lpfnWndProc   = (WNDPROC)WndProc;\r
+       wc.hInstance     = hinst;\r
+       wc.hIcon                 = LoadIcon(hinst, MAKEINTRESOURCE(IDI_MAIN));\r
+       wc.hbrBackground = (HBRUSH)(COLOR_SCROLLBAR);\r
+\r
+       RegisterClassEx(&wc);\r
+\r
+       hwnd = CreateWindow(L"pgkmgr",\r
+                       L"ReactOS - Package Manager v0.3",\r
+                       WS_OVERLAPPEDWINDOW,\r
+                       CW_USEDEFAULT,  \r
+                       CW_USEDEFAULT,   \r
+                       500, 600, \r
+                       NULL, NULL,\r
+                       hinst, \r
+                                          NULL);\r
+\r
+\r
+       // Toolbar creation\r
+       InitCommonControls();\r
+\r
+       hTBar = CreateToolbarEx(hwnd, WS_CHILD|WS_VISIBLE|TBSTYLE_FLAT, 0, 8, hinst, IDB_TOOLBAR, \r
+                                                                               Buttons, sizeof(Buttons)/sizeof(TBBUTTON), TBSIZE, TBSIZE, TBSIZE, TBSIZE, sizeof(TBBUTTON));\r
+\r
+       // Show the windows\r
+       ShowWindow(hwnd, SW_SHOW);\r
+       UpdateWindow(hwnd);\r
+\r
+       // Load the tree\r
+       int error = PML_LoadTree(&tree, "tree_bare.xml", AddItem);\r
+       \r
+       if(error)\r
+       {\r
+               MessageBox(0,PML_TransError(error, errbuf, sizeof(errbuf)/sizeof(WCHAR)),0,0);\r
+               return 0;\r
+       }\r
+       \r
+       // Read the help\r
+       Help();\r
+\r
+       // Start getting messages\r
+       while(GetMessage(&msg,NULL,0,0))\r
+       {\r
+               if(!TranslateAccelerator(hwnd, hHotKeys, &msg))\r
+               {\r
+                       TranslateMessage(&msg);\r
+                       DispatchMessage(&msg);\r
+               }\r
+       }\r
+       \r
+       // Close our handle\r
+       PML_CloseTree (tree);\r
+\r
+       return 0;\r
+}\r
+\r
+// Add a item to our tree\r
+int AddItem (int id, const char* name, int parent, int icon)\r
+{ \r
+       TV_INSERTSTRUCT tvins; \r
+\r
+       tvins.item.lParam = (UINT)id;\r
+       tvins.item.mask = TVIF_TEXT|TVIF_PARAM;\r
+       tvins.item.pszText = (WCHAR*)name; //that is ok\r
+       tvins.item.cchTextMax = strlen(name); \r
+       tvins.hInsertAfter = TVI_LAST;\r
+\r
+       if(icon)\r
+       {\r
+               tvins.item.iImage = icon;\r
+               tvins.item.iSelectedImage = icon;\r
+               tvins.item.mask |= TVIF_IMAGE | TVIF_SELECTEDIMAGE;\r
+       }\r
+\r
+       if (parent==0)\r
+               tvins.hParent = TVI_ROOT;\r
+       else\r
+               tvins.hParent = nodes[parent];\r
+\r
+       nodes[id] = (HTREEITEM)SendMessage(hTree, TVM_INSERTITEMA, 0, (LPARAM)&tvins);\r
+\r
+       return 0;\r
+} \r
+\r
+// Load the Help from file and display it\r
+void Help (void)\r
+{\r
+       int i;\r
+       char buffer [2000];\r
+       FILE* file = fopen ("help.txt", "r");\r
+\r
+       if(!file)\r
+               return;\r
+\r
+       for(i=0; i<2000; i++)\r
+       {\r
+               buffer[i] = getc(file);\r
+               if(buffer[i]==EOF) break;\r
+       }\r
+       buffer[i] = 0;\r
+\r
+       SetText(buffer);\r
+}\r
+\r
+// Create our Controls\r
+void InitControls (HWND hwnd)\r
+{\r
+\r
+       HINSTANCE hinst = GetModuleHandle(NULL);\r
+       WCHAR errbuf[2000];\r
+\r
+       // Create the controls\r
+       hTree = CreateWindowEx(0, WC_TREEVIEW, L"TreeView", WS_CHILD|WS_VISIBLE|WS_BORDER|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS, \r
+                                                       0, 0, 0, 0, hwnd, NULL, hinst, NULL);\r
+\r
+       hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, L"edit", PML_TransError(IDS_LOAD, errbuf, sizeof(errbuf)/sizeof(WCHAR)), WS_CHILD|WS_VISIBLE|ES_MULTILINE, \r
+                                                       0, 0, 100, 100, hwnd, NULL, hinst, NULL);\r
+       \r
+       hPopup = LoadMenu(hinst, MAKEINTRESOURCE(IDR_POPUP));\r
+\r
+       // Create Tree Icons\r
+       HIMAGELIST hIcon = ImageList_Create(16,16,ILC_COLOR32,1,1); \r
+       SendMessage(hTree, TVM_SETIMAGELIST, TVSIL_NORMAL, (LPARAM)(HIMAGELIST)hIcon);\r
+               \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(1))); \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(11))); \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(12))); \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(13))); \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(14))); \r
+\r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(2))); \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(3))); \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(4))); \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(5))); \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(6))); \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(7))); \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(8))); \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(9))); \r
+       ImageList_AddIcon(hIcon, LoadIcon(hinst, MAKEINTRESOURCE(10))); \r
+\r
+       // Setup Hotkeys\r
+       hHotKeys = LoadAccelerators (hinst, MAKEINTRESOURCE(IDR_HOTKEYS));\r
+}\r
+\r
+// Set the Icons\r
+int SetIcon (int id, int icon) \r
+{\r
+    TVITEMEX item;\r
+       \r
+       item.hItem = nodes[id];\r
+       item.iImage = icon;\r
+       item.iSelectedImage = icon;\r
+       item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE;\r
+\r
+       TreeView_SetItem(hTree, &item);\r
+\r
+    return 1;\r
+}\r
+\r
+// Set the Icons\r
+int Ask (const WCHAR* message) \r
+{      \r
+       int ans = MessageBox (0,message,0,MB_YESNO);\r
+\r
+       if(ans == IDYES)\r
+               return 1;\r
+\r
+    return 0;\r
+}\r
+\r
+// En- or Disable a Button inside of the toolbar and the Context Menu\r
+int SetButton (DWORD id, BOOL state) \r
+{\r
+       // Change the Toorbar Button\r
+    TBBUTTONINFO ti;\r
+\r
+    ti.cbSize = sizeof (ti);\r
+    ti.dwMask = TBIF_STATE;\r
+\r
+       if(state)\r
+               ti.fsState = TBSTATE_ENABLED;\r
+       else\r
+               ti.fsState = TBSTATE_INDETERMINATE;\r
+\r
+    SendMessage (hTBar, TB_SETBUTTONINFO, id, (LPARAM)&ti);\r
+\r
+       // Change the Context Menu item\r
+       MENUITEMINFO mi;\r
+\r
+    mi.cbSize = sizeof (mi);\r
+    mi.fMask = MIIM_STATE;\r
+\r
+       if(state)\r
+               mi.fState = MFS_ENABLED;\r
+\r
+       else\r
+               mi.fState = MFS_GRAYED;\r
+\r
+    SetMenuItemInfo(hPopup, id, FALSE, &mi);\r
+\r
+       return 0;\r
+}\r
+\r
+// Set the text of the text box\r
+int SetText (const char* text) \r
+{\r
+       int i, j;\r
+       char buffer [2000];\r
+\r
+       if(!text)\r
+               return 1;\r
+\r
+       // the windows does not need "\n"\r
+       // for new lines but "\r\n"\r
+       for(i=0,j=0; text[i]; i++,j++)\r
+       {\r
+               buffer[j] = text[i];\r
+               if(buffer[j] == '\n')\r
+               {\r
+                       buffer[j] = '\r';\r
+                       buffer[++j] = '\n';\r
+               }\r
+       }\r
+       buffer[j] = 0;\r
+\r
+       SetWindowTextA(hEdit, buffer);\r
+\r
+    return 0;\r
+}\r
+\r
+// Windows Message Callback (this is where most things happen)\r
+LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch (message)\r
+       {\r
+               // at the very beginning ...\r
+               case WM_CREATE:\r
+               {\r
+                       InitControls(hwnd);\r
+               } \r
+               break;\r
+\r
+               // calculate the size of the controls\r
+               case WM_SIZE:\r
+               {\r
+            RECT rcl;\r
+            SendMessage(hTBar, TB_AUTOSIZE, 0L, 0L);\r
+            GetWindowRect(hTBar, &rcl);\r
+\r
+                       int win_top = rcl.bottom - rcl.top;\r
+                       int win_hight = HIWORD(lParam) - win_top;\r
+\r
+            MoveWindow(hTree, 0, win_top, LOWORD(lParam), splitter_pos*win_hight/100, TRUE);\r
+            MoveWindow(hEdit, 0, (splitter_pos*win_hight/100)+win_top, LOWORD(lParam), win_hight, TRUE);\r
+               }\r
+           break;\r
+\r
+               // for the treeview\r
+               case WM_NOTIFY:\r
+               {\r
+                       if(((LPNMHDR)lParam)->code == TVN_SELCHANGED) \r
+                       {\r
+                               selected = ((LPNMTREEVIEW)lParam)->itemNew.lParam; \r
+                               PML_LoadPackage (tree, selected, SetButton);\r
+                               SetText(PML_GetDescription (tree, selected));\r
+                       }\r
+\r
+                       else if ((int)(((LPNMHDR)lParam)->code) == NM_RCLICK) // <= aarrggg LISP\r
+                       { \r
+                               // which item has been click on\r
+                               HTREEITEM item = TreeView_GetDropHilight(hTree);\r
+\r
+                               if(item != NULL)\r
+                               {\r
+                                       // mark the one as seleacted\r
+                                       SendMessage (hTree, TVM_SELECTITEM, TVGN_CARET, (LPARAM)item);\r
+                                       TreeView_EnsureVisible (hTree, item);\r
+                               }\r
+\r
+                               // create the context menu\r
+                               if(selected != 0)\r
+                               {\r
+                                       POINT pt;\r
+                                       GetCursorPos (&pt);\r
+                                       TrackPopupMenu (GetSubMenu(hPopup, 0), 0, (UINT)pt.x, (UINT)pt.y, 0, hwnd, NULL);\r
+                               }\r
+                       }\r
+               }\r
+               break;\r
+\r
+               // for the toolbar\r
+               case WM_COMMAND:\r
+               {\r
+                       // All Actions\r
+                       if(LOWORD(wParam) <= 5 && LOWORD(wParam) >= 1)\r
+                       {\r
+                               if(selected)\r
+                                       if(PML_SetAction(tree, selected, LOWORD(wParam)-1, SetIcon, Ask) == ERR_OK)\r
+                                               break;\r
+\r
+                               MessageBeep(MB_ICONHAND);\r
+                       }\r
+\r
+                       // DoIt\r
+                       else if(LOWORD(wParam)==6)\r
+                       {\r
+                               if(PML_DoIt(tree, SetStatus, Ask) == ERR_OK)\r
+                                       DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DOIT), hwnd, StatusProc);\r
+                               else\r
+                                       MessageBeep(MB_ICONHAND);\r
+                       }\r
+\r
+                       // Help\r
+                       else if(LOWORD(wParam)==7)\r
+                               Help();\r
+\r
+                       // Options\r
+                       else if(LOWORD(wParam)==8)\r
+                               DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_OPTIONS), hwnd, OptionsProc);\r
+               }\r
+               break;\r
+\r
+               // prozess hotkeys\r
+               case WM_HOTKEY:\r
+               {\r
+                       if(PML_SetAction(tree, selected, wParam, SetIcon, Ask) != ERR_OK)\r
+                               MessageBeep(MB_ICONHAND);\r
+               }\r
+               break;\r
+\r
+               // ... at the very end\r
+               case WM_DESTROY:\r
+               {\r
+                       PostQuitMessage(0);\r
+                       return 0;\r
+               }\r
+       }\r
+\r
+       return DefWindowProc (hwnd, message, wParam, lParam);\r
+}\r
+\r
+// Warning: This function is called from another thread\r
+int SetStatus (int status1, int status2, WCHAR* text)\r
+{\r
+       WCHAR errbuf[2000];\r
+\r
+       // Set the Rage to 1000\r
+       SendMessage(GetDlgItem(hStatus, IDC_STATUS1), PBM_SETRANGE32, 0, 1000);\r
+       SendMessage(GetDlgItem(hStatus, IDC_STATUS2), PBM_SETRANGE32, 0, 1000);\r
+\r
+       // The prozessbars and the text filds\r
+       if(text)\r
+               SetDlgItemText(hStatus, IDC_TSTATUS, text);\r
+\r
+       if(status1!=-1)\r
+               SendMessage(GetDlgItem(hStatus, IDC_STATUS1), PBM_SETPOS, status1, 0);\r
+\r
+       if(status2!=-1)\r
+               SendMessage(GetDlgItem(hStatus, IDC_STATUS2), PBM_SETPOS, status2, 0);\r
+\r
+       // If the Status is 1000 everything is done\r
+       if(status1==1000)\r
+       {\r
+               EndDialog(hStatus, TRUE);\r
+               MessageBox(0,PML_TransError(status2, errbuf, sizeof(errbuf)/sizeof(WCHAR)),0,0);\r
+       }\r
+\r
+       return 0;\r
+}\r
+\r
+// Callback for the Status Dialog\r
+INT_PTR CALLBACK StatusProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)\r
+{\r
+    switch (msg)\r
+    {\r
+               case WM_INITDIALOG:\r
+               {\r
+                       hStatus = hwnd;\r
+                       \r
+               } break;\r
+\r
+               case WM_COMMAND: // can only be the about button\r
+               case WM_CLOSE: // the close-window-[x]\r
+               {\r
+                       PML_Abort();\r
+                       EndDialog(hwnd, TRUE);\r
+                       return 0;\r
+               }\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+// Callback for the Options Dialog\r
+INT_PTR CALLBACK OptionsProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)\r
+{\r
+    switch (msg)\r
+    {\r
+               case WM_CLOSE:\r
+                       EndDialog(hwnd, TRUE);\r
+                       return 0;\r
+    }\r
+\r
+    return 0;\r
+}\r
index 42d216d..b9d95cd 100644 (file)
@@ -8,7 +8,7 @@ BEGIN
   ERR_OK          "Fertig."\r
   ERR_PACK        "Es konnten nicht alle Packages installiert werden.\n\nFür mehr Details schauen Sie bitte in ""logfile.html""."\r
   ERR_GENERIC      "Ein Fehler ist aufgetreten. \nnFür mehr Details schauen Sie bitte in ""logfile.html""."\r
   ERR_OK          "Fertig."\r
   ERR_PACK        "Es konnten nicht alle Packages installiert werden.\n\nFür mehr Details schauen Sie bitte in ""logfile.html""."\r
   ERR_GENERIC      "Ein Fehler ist aufgetreten. \nnFür mehr Details schauen Sie bitte in ""logfile.html""."\r
-  ERR_DOWNL       "Eine benötigte Datei konnte nicht runtergeladen werden!\nnFür mehr Details schauen Sie bitte in ""logfile.html""."\r
+  ERR_DOWNL       "Eine benötigte Datei konnte nicht runtergeladen werden!\nFür mehr Details schauen Sie bitte in ""logfile.html""."\r
   ERR_FILE        "Bei der Scriptausfürhung trat ein Fehler auf.\nDatei konnte nicht geöffnet werden."\r
  \r
   ERR_SYNATX       "Bei der Scriptausfürhung trat ein Fehler auf.\nSynatx-Fehler."\r
   ERR_FILE        "Bei der Scriptausfürhung trat ein Fehler auf.\nDatei konnte nicht geöffnet werden."\r
  \r
   ERR_SYNATX       "Bei der Scriptausfürhung trat ein Fehler auf.\nSynatx-Fehler."\r
index ab6cb13..5f40ee3 100644 (file)
@@ -1,9 +1,9 @@
 Sub Main\r
   ' ToDo: Choose from different mirrors\r
 Sub Main\r
   ' ToDo: Choose from different mirrors\r
-  download "http://prdownloads.sourceforge.net/sevenzip/7z432.exe?use_mirror=ovh", "7z432.exe"\r
+  download "http://ovh.dl.sourceforge.net/sourceforge/sevenzip/7z432.exe", "7z432.exe"\r
 End Sub\r
 \r
 Sub After\r
   shell 7z432.exe\r
   ' ToDo: Delete 7z432.exe\r
 End Sub\r
 \r
 Sub After\r
   shell 7z432.exe\r
   ' ToDo: Delete 7z432.exe\r
-End Sub
\ No newline at end of file
+End Sub\r
diff --git a/rosapps/packmgr/tree/mozcontrol.xml b/rosapps/packmgr/tree/mozcontrol.xml
deleted file mode 100644 (file)
index 8a18751..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<!--
-Not in use since reactos can download it itself now.
--->
-
-<package>
-  <name>Mozilla Control</name>
-  <version>1.6</version>
-  <description>Provides the Gekko Engine for ReactOS.</description>
-  <scripts inst="mozillacontrol.inst.rps"/>
-</package>
-
diff --git a/rosapps/packmgr/tree/mozillacontrol.inst.rps b/rosapps/packmgr/tree/mozillacontrol.inst.rps
deleted file mode 100644 (file)
index f58f74c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-' Not in use anymore because reactos can download it without Package Manager\r
-Sub Main\r
-  download ("http://www.iol.ie/~locka/mozilla/MozillaControl16.exe", "mozillacontrol16.exe")\r
-End Sub\r
-\r
-Sub After\r
-  shell mozillacontrol16.exe\r
-End Sub
\ No newline at end of file
index 59dff6c..55f2fba 100644 (file)
@@ -1,4 +1,4 @@
 Sub Main\r
 Sub Main\r
-  ' ToDo: Download putty.exe to programm files\r
-  download ("http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe", "putty.exe")\r
-End Sub
\ No newline at end of file
+  ' ToDo: Download putty.exe in own dir\r
+  download ("http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe", "C:\Program Files\putty.exe")\r
+End Sub\r
index 7a6d613..4b027ef 100644 (file)
@@ -1,3 +1,7 @@
+<!--\r
+ToDo:\r
+Implement Unzipping\r
+-->\r
 <package>\r
   <name>Ritlab Tiny Webserver</name>\r
   <version>1.93</version>\r
 <package>\r
   <name>Ritlab Tiny Webserver</name>\r
   <version>1.93</version>\r
index 1fa4255..066ba59 100644 (file)
@@ -1,9 +1,8 @@
 <tree>
   <node name="Internet and Network" icon="5">
        <node name="Firefox" file="firefox.xml"/>
 <tree>
   <node name="Internet and Network" icon="5">
        <node name="Firefox" file="firefox.xml"/>
-    <!--<node name="Mozilla Control" file="mozcontrol.xml"/>-->
        <node name="Putty" file="putty.xml"/>
        <node name="Putty" file="putty.xml"/>
-       <node name="Tiny Webserver" file="tiny.xml"/>
+       <!--<node name="Tiny Webserver" file="tiny.xml"/>--> <!-- Needs Zip support -->
   </node>
   <node name="Office" icon="6">
     <node name="AbiWord" file="abiword.xml"/>
   </node>
   <node name="Office" icon="6">
     <node name="AbiWord" file="abiword.xml"/>
@@ -25,4 +24,4 @@
   </node>
   <node name="Others" icon="12"/>
   <node name="Installed Programms" icon="13"/>
   </node>
   <node name="Others" icon="12"/>
   <node name="Installed Programms" icon="13"/>
-</tree>
\ No newline at end of file
+</tree>
index a64c69e..07da800 100644 (file)
@@ -8,5 +8,5 @@
        <!--<node name="OpenOffice 1" file="openoffice.xml"/>--> <!-- Needs Zip support -->\r
        <node name="Putty" file="putty.xml"/>\r
        <node name="TuxPaint" file="tuxpaint.xml"/>\r
        <!--<node name="OpenOffice 1" file="openoffice.xml"/>--> <!-- Needs Zip support -->\r
        <node name="Putty" file="putty.xml"/>\r
        <node name="TuxPaint" file="tuxpaint.xml"/>\r
-       <node name="Tiny Webserver" file="tiny.xml"/>\r
-</tree>
\ No newline at end of file
+       <!--<node name="Tiny Webserver" file="tiny.xml"/>--> <!-- Needs Zip support -->\r
+</tree>\r