shell32: Use a listview for the control panel.
diff --git a/dlls/shell32/control.c b/dlls/shell32/control.c
index 58516bb..89a790a 100644
--- a/dlls/shell32/control.c
+++ b/dlls/shell32/control.c
@@ -34,6 +34,7 @@
#include "wine/debug.h"
#include "cpl.h"
#include "wine/unicode.h"
+#include "commctrl.h"
#define NO_SHLWAPI_REG
#include "shlwapi.h"
@@ -164,18 +165,87 @@
return NULL;
}
+#define IDC_LISTVIEW 1000
+
+#define NUM_COLUMNS 2
+#define LISTVIEW_DEFSTYLE (WS_CHILD | WS_VISIBLE | WS_TABSTOP |\
+ LVS_SORTASCENDING | LVS_AUTOARRANGE | LVS_SINGLESEL)
+
+static BOOL Control_CreateListView (CPanel *panel)
+{
+ RECT ws;
+ WCHAR empty_string[] = {0};
+ WCHAR buf[MAX_STRING_LEN];
+ LVCOLUMNW lvc;
+
+ /* Create list view */
+ GetClientRect(panel->hWnd, &ws);
+
+ panel->hWndListView = CreateWindowExW(WS_EX_CLIENTEDGE, WC_LISTVIEWW,
+ empty_string, LISTVIEW_DEFSTYLE | LVS_ICON,
+ 0, 0, ws.right - ws.left, ws.bottom - ws.top,
+ panel->hWnd, (HMENU) IDC_LISTVIEW, panel->hInst, NULL);
+
+ if (!panel->hWndListView)
+ return FALSE;
+
+ /* Create image lists for list view */
+ panel->hImageListSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON),
+ GetSystemMetrics(SM_CYSMICON), ILC_MASK, 1, 1);
+ panel->hImageListLarge = ImageList_Create(GetSystemMetrics(SM_CXICON),
+ GetSystemMetrics(SM_CYICON), ILC_MASK, 1, 1);
+
+ (void) ListView_SetImageList(panel->hWndListView, panel->hImageListSmall, LVSIL_SMALL);
+ (void) ListView_SetImageList(panel->hWndListView, panel->hImageListLarge, LVSIL_NORMAL);
+
+ /* Create columns for list view */
+ lvc.mask = LVCF_FMT | LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH;
+ lvc.pszText = buf;
+ lvc.fmt = LVCFMT_LEFT;
+
+ /* Name column */
+ lvc.iSubItem = 0;
+ lvc.cx = (ws.right - ws.left) / 3;
+ LoadStringW(shell32_hInstance, IDS_CPANEL_NAME, buf, sizeof(buf) / sizeof(buf[0]));
+
+ if (ListView_InsertColumnW(panel->hWndListView, 0, &lvc) == -1)
+ return FALSE;
+
+ /* Description column */
+ lvc.iSubItem = 1;
+ lvc.cx = ((ws.right - ws.left) / 3) * 2;
+ LoadStringW(shell32_hInstance, IDS_CPANEL_DESCRIPTION, buf, sizeof(buf) /
+ sizeof(buf[0]));
+
+ if (ListView_InsertColumnW(panel->hWndListView, 1, &lvc) == -1)
+ return FALSE;
+
+ return(TRUE);
+}
+
static void Control_WndProc_Create(HWND hWnd, const CREATESTRUCTW* cs)
{
CPanel* panel = (CPanel*)cs->lpCreateParams;
HMENU hMenu, hSubMenu;
CPlApplet* applet;
MENUITEMINFOW mii;
- int menucount, i;
+ int menucount, i, index;
CPlItem *item;
+ LVITEMW lvItem;
+ INITCOMMONCONTROLSEX icex;
SetWindowLongPtrW(hWnd, 0, (LONG_PTR)panel);
panel->hWnd = hWnd;
+ /* Initialise common control DLL */
+ icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
+ icex.dwICC = ICC_LISTVIEW_CLASSES;
+ InitCommonControlsEx(&icex);
+
+ /* create the list view */
+ if (!Control_CreateListView(panel))
+ return;
+
hMenu = LoadMenuW(shell32_hInstance, MAKEINTRESOURCEW(MENU_CPANEL));
/* insert menu items for applets */
@@ -204,8 +274,26 @@
mii.dwItemData = (DWORD) item;
if (InsertMenuItemW(hSubMenu, menucount, TRUE, &mii)) {
- DrawMenuBar(hWnd);
- menucount++;
+ /* add the list view item */
+ index = ImageList_AddIcon(panel->hImageListLarge, applet->info[i].hIcon);
+ ImageList_AddIcon(panel->hImageListSmall, applet->info[i].hIcon);
+
+ lvItem.mask = LVIF_IMAGE | LVIF_TEXT | LVIF_PARAM;
+ lvItem.iItem = menucount;
+ lvItem.iSubItem = 0;
+ lvItem.pszText = applet->info[i].szName;
+ lvItem.iImage = index;
+ lvItem.lParam = (LPARAM) item;
+
+ ListView_InsertItemW(panel->hWndListView, &lvItem);
+
+ /* add the description */
+ ListView_SetItemTextW(panel->hWndListView, menucount, 1,
+ applet->info[i].szInfo);
+
+ /* update menu bar, increment count */
+ DrawMenuBar(hWnd);
+ menucount++;
}
}
}
@@ -250,6 +338,65 @@
}
}
+static void Control_UpdateListViewStyle(CPanel *panel, UINT style, UINT id)
+{
+ HMENU hMenu, hSubMenu;
+
+ SetWindowLongW(panel->hWndListView, GWL_STYLE, LISTVIEW_DEFSTYLE | style);
+
+ /* update the menu */
+ hMenu = GetMenu(panel->hWnd);
+ hSubMenu = GetSubMenu(hMenu, 1);
+
+ CheckMenuRadioItem(hSubMenu, FCIDM_SHVIEW_BIGICON, FCIDM_SHVIEW_REPORTVIEW,
+ id, MF_BYCOMMAND);
+}
+
+static CPlItem* Control_GetCPlItem_From_MenuID(HWND hWnd, UINT id)
+{
+ HMENU hMenu, hSubMenu;
+ MENUITEMINFOW mii;
+
+ /* retrieve the CPlItem structure from the menu item data */
+ hMenu = GetMenu(hWnd);
+
+ if (!hMenu)
+ return NULL;
+
+ hSubMenu = GetSubMenu(hMenu, 0);
+
+ if (!hSubMenu)
+ return NULL;
+
+ mii.cbSize = sizeof(MENUITEMINFOW);
+ mii.fMask = MIIM_DATA;
+
+ if (!GetMenuItemInfoW(hSubMenu, id, FALSE, &mii))
+ return NULL;
+
+ return (CPlItem *) mii.dwItemData;
+}
+
+static CPlItem* Control_GetCPlItem_From_ListView(CPanel *panel)
+{
+ LVITEMW lvItem;
+ int selitem;
+
+ selitem = SendMessageW(panel->hWndListView, LVM_GETNEXTITEM, -1, LVNI_FOCUSED
+ | LVNI_SELECTED);
+
+ if (selitem != -1)
+ {
+ lvItem.iItem = selitem;
+ lvItem.mask = LVIF_PARAM;
+
+ if (SendMessageW(panel->hWndListView, LVM_GETITEMW, 0, (LPARAM) &lvItem))
+ return (CPlItem *) lvItem.lParam;
+ }
+
+ return NULL;
+}
+
static LRESULT WINAPI Control_WndProc(HWND hWnd, UINT wMsg,
WPARAM lParam1, LPARAM lParam2)
{
@@ -288,9 +435,19 @@
}
case FCIDM_SHVIEW_BIGICON:
+ Control_UpdateListViewStyle(panel, LVS_ICON, FCIDM_SHVIEW_BIGICON);
+ return 0;
+
case FCIDM_SHVIEW_SMALLICON:
+ Control_UpdateListViewStyle(panel, LVS_SMALLICON, FCIDM_SHVIEW_SMALLICON);
+ return 0;
+
case FCIDM_SHVIEW_LISTVIEW:
+ Control_UpdateListViewStyle(panel, LVS_LIST, FCIDM_SHVIEW_LISTVIEW);
+ return 0;
+
case FCIDM_SHVIEW_REPORTVIEW:
+ Control_UpdateListViewStyle(panel, LVS_REPORT, FCIDM_SHVIEW_REPORTVIEW);
return 0;
default:
@@ -298,28 +455,7 @@
if ((LOWORD(lParam1) >= IDM_CPANEL_APPLET_BASE) &&
(LOWORD(lParam1) <= IDM_CPANEL_APPLET_BASE + panel->total_subprogs))
{
- CPlItem *item;
- HMENU hMenu, hSubMenu;
- MENUITEMINFOW mii;
-
- /* retrieve the CPlItem structure from the menu item data */
- hMenu = GetMenu(hWnd);
-
- if (!hMenu)
- break;
-
- hSubMenu = GetSubMenu(hMenu, 0);
-
- if (!hSubMenu)
- break;
-
- mii.cbSize = sizeof(MENUITEMINFOW);
- mii.fMask = MIIM_DATA;
-
- if (!GetMenuItemInfoW(hSubMenu, LOWORD(lParam1), FALSE, &mii))
- break;
-
- item = (CPlItem *) mii.dwItemData;
+ CPlItem *item = Control_GetCPlItem_From_MenuID(hWnd, LOWORD(lParam1));
/* execute the applet if item is valid */
if (item)
@@ -333,7 +469,46 @@
}
break;
+
+ case WM_NOTIFY:
+ {
+ LPNMHDR nmh = (LPNMHDR) lParam2;
+
+ switch (nmh->idFrom)
+ {
+ case IDC_LISTVIEW:
+ switch (nmh->code)
+ {
+ case NM_RETURN:
+ case NM_DBLCLK:
+ {
+ CPlItem *item = Control_GetCPlItem_From_ListView(panel);
+
+ /* execute the applet if item is valid */
+ if (item)
+ item->applet->proc(item->applet->hWnd, CPL_DBLCLK,
+ item->id, item->applet->info[item->id].lData);
+
+ return 0;
+ }
+ }
+
+ break;
+ }
+
+ break;
}
+
+ case WM_SIZE:
+ {
+ RECT rect;
+
+ GetClientRect(hWnd, &rect);
+ MoveWindow(panel->hWndListView, 0, 0, rect.right, rect.bottom, TRUE);
+
+ return 0;
+ }
+ }
}
return DefWindowProcW(hWnd, wMsg, lParam1, lParam2);
@@ -353,7 +528,7 @@
wc.lpfnWndProc = Control_WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = sizeof(CPlApplet*);
- wc.hInstance = hInst;
+ wc.hInstance = panel->hInst = hInst;
wc.hIcon = 0;
wc.hCursor = LoadCursorW( 0, (LPWSTR)IDC_ARROW );
wc.hbrBackground = GetStockObject(WHITE_BRUSH);
diff --git a/dlls/shell32/cpanel.h b/dlls/shell32/cpanel.h
index 219d7d0..b52ad97 100644
--- a/dlls/shell32/cpanel.h
+++ b/dlls/shell32/cpanel.h
@@ -34,9 +34,13 @@
} CPlApplet;
typedef struct CPanel {
- CPlApplet* first; /* linked list */
- HWND hWnd;
- unsigned total_subprogs;
+ CPlApplet* first;
+ HWND hWnd;
+ HINSTANCE hInst;
+ unsigned total_subprogs;
+ HWND hWndListView;
+ HIMAGELIST hImageListLarge;
+ HIMAGELIST hImageListSmall;
} CPanel;
/* structure to reference an individual control panel item */
diff --git a/dlls/shell32/cpanelfolder.c b/dlls/shell32/cpanelfolder.c
index 93a79c5..d3934a0 100644
--- a/dlls/shell32/cpanelfolder.c
+++ b/dlls/shell32/cpanelfolder.c
@@ -40,6 +40,7 @@
#include "ole2.h"
#include "shlguid.h"
+#include "commctrl.h"
#include "cpanel.h"
#include "enumidlist.h"
#include "pidl.h"
diff --git a/dlls/shell32/shell32_Bg.rc b/dlls/shell32/shell32_Bg.rc
index 2b72c59..8624231 100644
--- a/dlls/shell32/shell32_Bg.rc
+++ b/dlls/shell32/shell32_Bg.rc
@@ -242,5 +242,7 @@
IDS_NEWFOLDER "New Folder"
- IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_Ca.rc b/dlls/shell32/shell32_Ca.rc
index 95186dc..930d6a9 100644
--- a/dlls/shell32/shell32_Ca.rc
+++ b/dlls/shell32/shell32_Ca.rc
@@ -95,4 +95,6 @@
STRINGTABLE
{
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_Cn.rc b/dlls/shell32/shell32_Cn.rc
index 00a0e93..3c65a63 100644
--- a/dlls/shell32/shell32_Cn.rc
+++ b/dlls/shell32/shell32_Cn.rc
@@ -106,6 +106,8 @@
IDS_SHV_COLUMN9 "Comments" /*FIXME*/
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
END
#pragma code_page(default)
diff --git a/dlls/shell32/shell32_Cs.rc b/dlls/shell32/shell32_Cs.rc
index 1081011..90b32ae 100644
--- a/dlls/shell32/shell32_Cs.rc
+++ b/dlls/shell32/shell32_Cs.rc
@@ -213,4 +213,6 @@
IDS_NEWFOLDER "New Folder"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_Da.rc b/dlls/shell32/shell32_Da.rc
index 84e57af..49e7b2b 100644
--- a/dlls/shell32/shell32_Da.rc
+++ b/dlls/shell32/shell32_Da.rc
@@ -275,6 +275,8 @@
IDS_NEWFOLDER "Ny Folder"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
STRINGTABLE
diff --git a/dlls/shell32/shell32_De.rc b/dlls/shell32/shell32_De.rc
index 6e36b1a..afe7534 100644
--- a/dlls/shell32/shell32_De.rc
+++ b/dlls/shell32/shell32_De.rc
@@ -274,6 +274,8 @@
IDS_NEWFOLDER "Neuer Ordner"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
STRINGTABLE
diff --git a/dlls/shell32/shell32_En.rc b/dlls/shell32/shell32_En.rc
index 6e766a9..f752e6d 100644
--- a/dlls/shell32/shell32_En.rc
+++ b/dlls/shell32/shell32_En.rc
@@ -280,6 +280,8 @@
IDS_NEWFOLDER "New Folder"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
STRINGTABLE
diff --git a/dlls/shell32/shell32_Eo.rc b/dlls/shell32/shell32_Eo.rc
index 075a393..40c503a 100644
--- a/dlls/shell32/shell32_Eo.rc
+++ b/dlls/shell32/shell32_Eo.rc
@@ -260,4 +260,6 @@
IDS_NEWFOLDER "New Folder"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_Es.rc b/dlls/shell32/shell32_Es.rc
index 301e7ee..17773fc 100644
--- a/dlls/shell32/shell32_Es.rc
+++ b/dlls/shell32/shell32_Es.rc
@@ -275,6 +275,8 @@
IDS_NEWFOLDER "Nueva carpeta"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
STRINGTABLE
diff --git a/dlls/shell32/shell32_Fi.rc b/dlls/shell32/shell32_Fi.rc
index 86734c1..f0a1b5a 100644
--- a/dlls/shell32/shell32_Fi.rc
+++ b/dlls/shell32/shell32_Fi.rc
@@ -242,4 +242,6 @@
IDS_NEWFOLDER "New Folder"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_Fr.rc b/dlls/shell32/shell32_Fr.rc
index a088940..4b23580 100644
--- a/dlls/shell32/shell32_Fr.rc
+++ b/dlls/shell32/shell32_Fr.rc
@@ -280,6 +280,8 @@
IDS_NEWFOLDER "Nouveau dossier"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
STRINGTABLE
diff --git a/dlls/shell32/shell32_Hu.rc b/dlls/shell32/shell32_Hu.rc
index b823873..814e0c6 100644
--- a/dlls/shell32/shell32_Hu.rc
+++ b/dlls/shell32/shell32_Hu.rc
@@ -94,4 +94,6 @@
STRINGTABLE
{
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_It.rc b/dlls/shell32/shell32_It.rc
index e9fdda6..baa0077 100644
--- a/dlls/shell32/shell32_It.rc
+++ b/dlls/shell32/shell32_It.rc
@@ -244,4 +244,6 @@
IDS_NEWFOLDER "New Folder"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_Ja.rc b/dlls/shell32/shell32_Ja.rc
index 9edf159..281f30f 100644
--- a/dlls/shell32/shell32_Ja.rc
+++ b/dlls/shell32/shell32_Ja.rc
@@ -137,6 +137,8 @@
IDS_OPEN "J"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
SHELL_ABOUT_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 15, 40, 220, 152
diff --git a/dlls/shell32/shell32_Ko.rc b/dlls/shell32/shell32_Ko.rc
index a41a1c6..de3cf61 100644
--- a/dlls/shell32/shell32_Ko.rc
+++ b/dlls/shell32/shell32_Ko.rc
@@ -285,6 +285,8 @@
IDS_NEWFOLDER "»õ Æú´õ"
IDS_CPANEL_TITLE "Wine Control Panel"
+IDS_CPANEL_NAME "Name"
+IDS_CPANEL_DESCRIPTION "Description"
}
STRINGTABLE
diff --git a/dlls/shell32/shell32_Nl.rc b/dlls/shell32/shell32_Nl.rc
index 91e84e6..ac3f18b 100644
--- a/dlls/shell32/shell32_Nl.rc
+++ b/dlls/shell32/shell32_Nl.rc
@@ -282,6 +282,8 @@
IDS_NEWFOLDER "Nieuwe Map"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
STRINGTABLE
diff --git a/dlls/shell32/shell32_No.rc b/dlls/shell32/shell32_No.rc
index 0be120d..0a8fc20 100644
--- a/dlls/shell32/shell32_No.rc
+++ b/dlls/shell32/shell32_No.rc
@@ -280,6 +280,8 @@
IDS_NEWFOLDER "Ny mappe"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
STRINGTABLE
diff --git a/dlls/shell32/shell32_Pl.rc b/dlls/shell32/shell32_Pl.rc
index 3df0d58..420c167 100644
--- a/dlls/shell32/shell32_Pl.rc
+++ b/dlls/shell32/shell32_Pl.rc
@@ -281,6 +281,8 @@
IDS_NEWFOLDER "Nowy Folder"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
STRINGTABLE
diff --git a/dlls/shell32/shell32_Pt.rc b/dlls/shell32/shell32_Pt.rc
index 9c437c4..ed8b529 100644
--- a/dlls/shell32/shell32_Pt.rc
+++ b/dlls/shell32/shell32_Pt.rc
@@ -361,6 +361,8 @@
IDS_NEWFOLDER "Nova Pasta"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
@@ -450,4 +452,6 @@
IDS_NEWFOLDER "Nova Pasta"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_Ro.rc b/dlls/shell32/shell32_Ro.rc
index 584d1e2..25b4565 100644
--- a/dlls/shell32/shell32_Ro.rc
+++ b/dlls/shell32/shell32_Ro.rc
@@ -233,6 +233,8 @@
IDS_FAVORITES "Favorite"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
STRINGTABLE
diff --git a/dlls/shell32/shell32_Ru.rc b/dlls/shell32/shell32_Ru.rc
index b473bf5..b643cac 100644
--- a/dlls/shell32/shell32_Ru.rc
+++ b/dlls/shell32/shell32_Ru.rc
@@ -275,4 +275,6 @@
IDS_NEWFOLDER "New Folder"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_Si.rc b/dlls/shell32/shell32_Si.rc
index e20c8b8..b7a9137 100644
--- a/dlls/shell32/shell32_Si.rc
+++ b/dlls/shell32/shell32_Si.rc
@@ -275,6 +275,8 @@
IDS_NEWFOLDER "Nova mapa"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
STRINGTABLE
diff --git a/dlls/shell32/shell32_Sk.rc b/dlls/shell32/shell32_Sk.rc
index 66ea78e..2df139d 100644
--- a/dlls/shell32/shell32_Sk.rc
+++ b/dlls/shell32/shell32_Sk.rc
@@ -105,4 +105,6 @@
IDS_SHV_COLUMN9 "Comments" /*FIXME*/
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
END
diff --git a/dlls/shell32/shell32_Sv.rc b/dlls/shell32/shell32_Sv.rc
index 7e63b55..c65af34 100644
--- a/dlls/shell32/shell32_Sv.rc
+++ b/dlls/shell32/shell32_Sv.rc
@@ -94,4 +94,6 @@
STRINGTABLE
{
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_Tr.rc b/dlls/shell32/shell32_Tr.rc
index fe4df8f..dc2ea30 100644
--- a/dlls/shell32/shell32_Tr.rc
+++ b/dlls/shell32/shell32_Tr.rc
@@ -243,4 +243,6 @@
IDS_NEWFOLDER "New Folder"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_Uk.rc b/dlls/shell32/shell32_Uk.rc
index c3d5637..624368a 100644
--- a/dlls/shell32/shell32_Uk.rc
+++ b/dlls/shell32/shell32_Uk.rc
@@ -209,4 +209,6 @@
IDS_NEWFOLDER "New Folder"
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_Wa.rc b/dlls/shell32/shell32_Wa.rc
index 3bacc45..393d65d 100644
--- a/dlls/shell32/shell32_Wa.rc
+++ b/dlls/shell32/shell32_Wa.rc
@@ -99,4 +99,6 @@
STRINGTABLE
{
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
}
diff --git a/dlls/shell32/shell32_Zh.rc b/dlls/shell32/shell32_Zh.rc
index 980321f..cb3839a 100644
--- a/dlls/shell32/shell32_Zh.rc
+++ b/dlls/shell32/shell32_Zh.rc
@@ -106,6 +106,8 @@
IDS_SHV_COLUMN9 "Comments" /*FIXME*/
IDS_CPANEL_TITLE "Wine Control Panel"
+ IDS_CPANEL_NAME "Name"
+ IDS_CPANEL_DESCRIPTION "Description"
END
#pragma code_page(default)
diff --git a/dlls/shell32/shresdef.h b/dlls/shell32/shresdef.h
index 8a18ff4..c6df462 100644
--- a/dlls/shell32/shresdef.h
+++ b/dlls/shell32/shresdef.h
@@ -98,6 +98,8 @@
#define IDS_NEWFOLDER 142
#define IDS_CPANEL_TITLE 143
+#define IDS_CPANEL_NAME 144
+#define IDS_CPANEL_DESCRIPTION 145
#define IDS_RUNDLG_ERROR 160
#define IDS_RUNDLG_BROWSE_ERROR 161