mirror of
https://github.com/reactos/reactos.git
synced 2025-05-23 19:14:48 +00:00
[COMDLG32]
* Sync with Wine 1.7.27. * Translators, you're up ;) CORE-8540 svn path=/trunk/; revision=64325
This commit is contained in:
parent
41e8832080
commit
fb7a38a131
38 changed files with 325 additions and 64 deletions
|
@ -1776,7 +1776,7 @@ static LRESULT FILEDLG95_ResizeControls(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
|||
}
|
||||
else
|
||||
{
|
||||
/* Resize the height, if open as read only checkbox ad help button are
|
||||
/* Resize the height; if opened as read-only, checkbox and help button are
|
||||
* hidden and we are not using a custom template nor a customDialog
|
||||
*/
|
||||
if ( (fodInfos->ofnInfos->Flags & OFN_HIDEREADONLY) &&
|
||||
|
|
|
@ -94,6 +94,7 @@ typedef struct
|
|||
#define IDS_INVALID_FILENAME 121
|
||||
#define IDS_PATHNOTEXISTING 122
|
||||
#define IDS_FILENOTEXISTING 123
|
||||
#define IDS_INVALID_FOLDERNAME 124
|
||||
|
||||
/* File Dialog Tooltips string IDs */
|
||||
|
||||
|
|
|
@ -67,7 +67,8 @@ enum ITEMDLG_CCTRL_TYPE {
|
|||
IDLG_CCTRL_CHECKBUTTON,
|
||||
IDLG_CCTRL_EDITBOX,
|
||||
IDLG_CCTRL_SEPARATOR,
|
||||
IDLG_CCTRL_TEXT
|
||||
IDLG_CCTRL_TEXT,
|
||||
IDLG_CCTRL_VISUALGROUP
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
|
@ -76,6 +77,9 @@ typedef struct {
|
|||
enum ITEMDLG_CCTRL_TYPE type;
|
||||
CDCONTROLSTATEF cdcstate;
|
||||
struct list entry;
|
||||
|
||||
struct list sub_cctrls;
|
||||
struct list sub_cctrls_entry;
|
||||
} customctrl;
|
||||
|
||||
typedef struct {
|
||||
|
@ -124,9 +128,11 @@ typedef struct FileDialogImpl {
|
|||
LPWSTR custom_filenamelabel;
|
||||
|
||||
UINT cctrl_width, cctrl_def_height, cctrls_cols;
|
||||
UINT cctrl_indent;
|
||||
HWND cctrls_hwnd;
|
||||
struct list cctrls;
|
||||
UINT_PTR cctrl_next_dlgid;
|
||||
customctrl *cctrl_active_vg;
|
||||
|
||||
GUID client_guid;
|
||||
} FileDialogImpl;
|
||||
|
@ -198,6 +204,18 @@ static void events_OnSelectionChange(FileDialogImpl *This)
|
|||
}
|
||||
}
|
||||
|
||||
static void events_OnTypeChange(FileDialogImpl *This)
|
||||
{
|
||||
events_client *cursor;
|
||||
TRACE("%p\n", This);
|
||||
|
||||
LIST_FOR_EACH_ENTRY(cursor, &This->events_clients, events_client, entry)
|
||||
{
|
||||
TRACE("Notifying %p\n", cursor);
|
||||
IFileDialogEvents_OnTypeChange(cursor->pfde, (IFileDialog*)&This->IFileDialog2_iface);
|
||||
}
|
||||
}
|
||||
|
||||
static inline HRESULT get_cctrl_event(IFileDialogEvents *pfde, IFileDialogControlEvents **pfdce)
|
||||
{
|
||||
return IFileDialogEvents_QueryInterface(pfde, &IID_IFileDialogControlEvents, (void**)pfdce);
|
||||
|
@ -348,8 +366,10 @@ static void fill_filename_from_selection(FileDialogImpl *This)
|
|||
UINT attr;
|
||||
|
||||
hr = IShellItem_GetAttributes(psi, SFGAO_FOLDER, &attr);
|
||||
if(SUCCEEDED(hr) && (attr & SFGAO_FOLDER))
|
||||
continue; /* FIXME: FOS_PICKFOLDERS */
|
||||
if(SUCCEEDED(hr) &&
|
||||
(( (This->options & FOS_PICKFOLDERS) && !(attr & SFGAO_FOLDER)) ||
|
||||
(!(This->options & FOS_PICKFOLDERS) && (attr & SFGAO_FOLDER))))
|
||||
continue;
|
||||
|
||||
hr = IShellItem_GetDisplayName(psi, SIGDN_PARENTRELATIVEPARSING, &names[valid_count]);
|
||||
if(SUCCEEDED(hr))
|
||||
|
@ -538,21 +558,42 @@ static HRESULT on_default_action(FileDialogImpl *This)
|
|||
break;
|
||||
|
||||
case ONOPEN_OPEN:
|
||||
if(events_OnFileOk(This) != S_OK)
|
||||
break;
|
||||
|
||||
hr = SHGetDesktopFolder(&psf_desktop);
|
||||
if(SUCCEEDED(hr))
|
||||
{
|
||||
if(This->psia_results)
|
||||
{
|
||||
IShellItemArray_Release(This->psia_results);
|
||||
This->psia_results = NULL;
|
||||
}
|
||||
|
||||
hr = SHCreateShellItemArray(NULL, psf_desktop, file_count, (PCUITEMID_CHILD_ARRAY)pidla,
|
||||
&This->psia_results);
|
||||
if(SUCCEEDED(hr))
|
||||
ret = S_OK;
|
||||
|
||||
IShellFolder_Release(psf_desktop);
|
||||
|
||||
if(FAILED(hr))
|
||||
break;
|
||||
|
||||
if(This->options & FOS_PICKFOLDERS)
|
||||
{
|
||||
SFGAOF attributes;
|
||||
hr = IShellItemArray_GetAttributes(This->psia_results, SIATTRIBFLAGS_AND, SFGAO_FOLDER, &attributes);
|
||||
if(hr != S_OK)
|
||||
{
|
||||
WCHAR buf[64];
|
||||
LoadStringW(COMDLG32_hInstance, IDS_INVALID_FOLDERNAME, buf, sizeof(buf)/sizeof(WCHAR));
|
||||
|
||||
MessageBoxW(This->dlg_hwnd, buf, This->custom_title, MB_OK | MB_ICONEXCLAMATION);
|
||||
|
||||
IShellItemArray_Release(This->psia_results);
|
||||
This->psia_results = NULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(events_OnFileOk(This) == S_OK)
|
||||
ret = S_OK;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -575,25 +616,38 @@ static HRESULT on_default_action(FileDialogImpl *This)
|
|||
*/
|
||||
static inline customctrl *get_cctrl_from_dlgid(FileDialogImpl *This, DWORD dlgid)
|
||||
{
|
||||
customctrl *ctrl;
|
||||
customctrl *ctrl, *sub_ctrl;
|
||||
|
||||
LIST_FOR_EACH_ENTRY(ctrl, &This->cctrls, customctrl, entry)
|
||||
{
|
||||
if(ctrl->dlgid == dlgid)
|
||||
return ctrl;
|
||||
|
||||
LIST_FOR_EACH_ENTRY(sub_ctrl, &ctrl->sub_cctrls, customctrl, sub_cctrls_entry)
|
||||
if(sub_ctrl->dlgid == dlgid)
|
||||
return sub_ctrl;
|
||||
}
|
||||
|
||||
ERR("Failed to find control with dialog id %d\n", dlgid);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline customctrl *get_cctrl(FileDialogImpl *This, DWORD ctlid)
|
||||
{
|
||||
customctrl *ctrl;
|
||||
customctrl *ctrl, *sub_ctrl;
|
||||
|
||||
LIST_FOR_EACH_ENTRY(ctrl, &This->cctrls, customctrl, entry)
|
||||
{
|
||||
if(ctrl->id == ctlid)
|
||||
return ctrl;
|
||||
|
||||
ERR("Failed to find control with control id %d\n", ctlid);
|
||||
LIST_FOR_EACH_ENTRY(sub_ctrl, &ctrl->sub_cctrls, customctrl, sub_cctrls_entry)
|
||||
if(sub_ctrl->id == ctlid)
|
||||
return sub_ctrl;
|
||||
}
|
||||
|
||||
|
||||
TRACE("No existing control with control id %d\n", ctlid);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -639,9 +693,39 @@ static void ctrl_resize(HWND hctrl, UINT min_width, UINT max_width, BOOL multili
|
|||
HeapFree(GetProcessHeap(), 0, text);
|
||||
}
|
||||
|
||||
static UINT ctrl_get_height(customctrl *ctrl) {
|
||||
RECT rc;
|
||||
GetWindowRect(ctrl->wrapper_hwnd, &rc);
|
||||
return rc.bottom - rc.top;
|
||||
}
|
||||
|
||||
static void ctrl_free(customctrl *ctrl)
|
||||
{
|
||||
customctrl *sub_cur1, *sub_cur2;
|
||||
|
||||
TRACE("Freeing control %p\n", ctrl);
|
||||
if(ctrl->type == IDLG_CCTRL_MENU)
|
||||
{
|
||||
TBBUTTON tbb;
|
||||
SendMessageW(ctrl->hwnd, TB_GETBUTTON, 0, (LPARAM)&tbb);
|
||||
DestroyMenu((HMENU)tbb.dwData);
|
||||
}
|
||||
|
||||
LIST_FOR_EACH_ENTRY_SAFE(sub_cur1, sub_cur2, &ctrl->sub_cctrls, customctrl, sub_cctrls_entry)
|
||||
{
|
||||
list_remove(&sub_cur1->sub_cctrls_entry);
|
||||
ctrl_free(sub_cur1);
|
||||
}
|
||||
|
||||
DestroyWindow(ctrl->hwnd);
|
||||
HeapFree(GetProcessHeap(), 0, ctrl);
|
||||
}
|
||||
|
||||
static void customctrl_resize(FileDialogImpl *This, customctrl *ctrl)
|
||||
{
|
||||
RECT rc;
|
||||
UINT total_height;
|
||||
customctrl *sub_ctrl;
|
||||
|
||||
switch(ctrl->type)
|
||||
{
|
||||
|
@ -652,7 +736,35 @@ static void customctrl_resize(FileDialogImpl *This, customctrl *ctrl)
|
|||
ctrl_resize(ctrl->hwnd, 160, 160, TRUE);
|
||||
GetWindowRect(ctrl->hwnd, &rc);
|
||||
SetWindowPos(ctrl->wrapper_hwnd, NULL, 0, 0, rc.right-rc.left, rc.bottom-rc.top,
|
||||
SWP_NOZORDER|SWP_NOMOVE|SWP_NOZORDER);
|
||||
SWP_NOZORDER|SWP_NOMOVE);
|
||||
break;
|
||||
case IDLG_CCTRL_VISUALGROUP:
|
||||
total_height = 0;
|
||||
ctrl_resize(ctrl->hwnd, 0, This->cctrl_indent, TRUE);
|
||||
|
||||
LIST_FOR_EACH_ENTRY(sub_ctrl, &ctrl->sub_cctrls, customctrl, sub_cctrls_entry)
|
||||
{
|
||||
customctrl_resize(This, sub_ctrl);
|
||||
SetWindowPos(sub_ctrl->wrapper_hwnd, NULL, This->cctrl_indent, total_height, 0, 0,
|
||||
SWP_NOZORDER|SWP_NOSIZE);
|
||||
|
||||
total_height += ctrl_get_height(sub_ctrl);
|
||||
}
|
||||
|
||||
/* The label should be right adjusted */
|
||||
{
|
||||
UINT width, height;
|
||||
|
||||
GetWindowRect(ctrl->hwnd, &rc);
|
||||
width = rc.right - rc.left;
|
||||
height = rc.bottom - rc.top;
|
||||
|
||||
SetWindowPos(ctrl->hwnd, NULL, This->cctrl_indent - width, 0, width, height, SWP_NOZORDER);
|
||||
}
|
||||
|
||||
/* Resize the wrapper window to fit all the sub controls */
|
||||
SetWindowPos(ctrl->wrapper_hwnd, NULL, 0, 0, This->cctrl_width + This->cctrl_indent, total_height,
|
||||
SWP_NOZORDER|SWP_NOMOVE);
|
||||
break;
|
||||
case IDLG_CCTRL_RADIOBUTTONLIST:
|
||||
case IDLG_CCTRL_EDITBOX:
|
||||
|
@ -757,6 +869,7 @@ static LRESULT notifysink_on_wm_notify(FileDialogImpl *This, HWND hwnd, WPARAM w
|
|||
static LRESULT CALLBACK notifysink_proc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
|
||||
{
|
||||
FileDialogImpl *This = (FileDialogImpl*)GetWindowLongPtrW(hwnd, GWLP_USERDATA);
|
||||
customctrl *ctrl;
|
||||
HWND hwnd_child;
|
||||
RECT rc;
|
||||
|
||||
|
@ -767,8 +880,12 @@ static LRESULT CALLBACK notifysink_proc(HWND hwnd, UINT message, WPARAM wparam,
|
|||
case WM_NOTIFY: return notifysink_on_wm_notify(This, hwnd, wparam, lparam);
|
||||
case WM_SIZE:
|
||||
hwnd_child = GetPropW(hwnd, notifysink_childW);
|
||||
GetClientRect(hwnd, &rc);
|
||||
SetWindowPos(hwnd_child, NULL, 0, 0, rc.right, rc.bottom, SWP_NOMOVE|SWP_NOACTIVATE|SWP_NOZORDER);
|
||||
ctrl = (customctrl*)GetWindowLongPtrW(hwnd_child, GWLP_USERDATA);
|
||||
if(ctrl && ctrl->type != IDLG_CCTRL_VISUALGROUP)
|
||||
{
|
||||
GetClientRect(hwnd, &rc);
|
||||
SetWindowPos(hwnd_child, NULL, 0, 0, rc.right, rc.bottom, SWP_NOMOVE|SWP_NOACTIVATE|SWP_NOZORDER);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -779,15 +896,20 @@ static HRESULT cctrl_create_new(FileDialogImpl *This, DWORD id,
|
|||
LPCWSTR text, LPCWSTR wndclass, DWORD ctrl_wsflags,
|
||||
DWORD ctrl_exflags, UINT height, customctrl **ppctrl)
|
||||
{
|
||||
HWND ns_hwnd, control_hwnd;
|
||||
HWND ns_hwnd, control_hwnd, parent_hwnd;
|
||||
DWORD wsflags = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS;
|
||||
customctrl *ctrl;
|
||||
|
||||
if(get_cctrl(This, id))
|
||||
return E_UNEXPECTED; /* Duplicate id */
|
||||
|
||||
if(This->cctrl_active_vg)
|
||||
parent_hwnd = This->cctrl_active_vg->wrapper_hwnd;
|
||||
else
|
||||
parent_hwnd = This->cctrls_hwnd;
|
||||
|
||||
ns_hwnd = CreateWindowExW(0, floatnotifysinkW, NULL, wsflags,
|
||||
0, 0, This->cctrl_width, height, This->cctrls_hwnd,
|
||||
0, 0, This->cctrl_width, height, parent_hwnd,
|
||||
(HMENU)This->cctrl_next_dlgid, COMDLG32_hInstance, This);
|
||||
control_hwnd = CreateWindowExW(ctrl_exflags, wndclass, text, wsflags | ctrl_wsflags,
|
||||
0, 0, This->cctrl_width, height, ns_hwnd,
|
||||
|
@ -813,7 +935,15 @@ static HRESULT cctrl_create_new(FileDialogImpl *This, DWORD id,
|
|||
ctrl->id = id;
|
||||
ctrl->dlgid = This->cctrl_next_dlgid;
|
||||
ctrl->cdcstate = CDCS_ENABLED | CDCS_VISIBLE;
|
||||
list_add_tail(&This->cctrls, &ctrl->entry);
|
||||
list_init(&ctrl->sub_cctrls);
|
||||
|
||||
if(This->cctrl_active_vg)
|
||||
list_add_tail(&This->cctrl_active_vg->sub_cctrls, &ctrl->sub_cctrls_entry);
|
||||
else
|
||||
list_add_tail(&This->cctrls, &ctrl->entry);
|
||||
|
||||
SetWindowLongPtrW(ctrl->hwnd, GWLP_USERDATA, (LPARAM)ctrl);
|
||||
|
||||
if(ppctrl) *ppctrl = ctrl;
|
||||
|
||||
This->cctrl_next_dlgid++;
|
||||
|
@ -832,7 +962,6 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
|
|||
UINT cur_col_pos, cur_row_pos;
|
||||
customctrl *ctrl;
|
||||
BOOL fits_height;
|
||||
static const UINT col_indent = 100; /* The first column is indented 100px */
|
||||
static const UINT cspacing = 90; /* Columns are spaced with 90px */
|
||||
static const UINT rspacing = 4; /* Rows are spaced with 4 px. */
|
||||
|
||||
|
@ -844,7 +973,7 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
|
|||
TRACE("%p\n", This);
|
||||
|
||||
column_width = This->cctrl_width + cspacing;
|
||||
nr_of_cols = (container_width - col_indent + cspacing) / column_width;
|
||||
nr_of_cols = (container_width - This->cctrl_indent + cspacing) / column_width;
|
||||
|
||||
/* We don't need to do anything unless the number of visible columns has changed. */
|
||||
if(nr_of_cols == This->cctrls_cols)
|
||||
|
@ -854,7 +983,7 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
|
|||
return rc.bottom - rc.top;
|
||||
}
|
||||
|
||||
This->cctrls_cols = nr_of_cols;
|
||||
This->cctrls_cols = nr_of_cols;
|
||||
|
||||
/* Get the size of the tallest control, and the total size of
|
||||
* all the controls to figure out the number of slots we need.
|
||||
|
@ -864,10 +993,7 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
|
|||
{
|
||||
if(ctrl->cdcstate & CDCS_VISIBLE)
|
||||
{
|
||||
RECT rc;
|
||||
UINT control_height;
|
||||
GetWindowRect(ctrl->wrapper_hwnd, &rc);
|
||||
control_height = rc.bottom - rc.top;
|
||||
UINT control_height = ctrl_get_height(ctrl);
|
||||
max_control_height = max(max_control_height, control_height);
|
||||
|
||||
total_height += control_height + rspacing;
|
||||
|
@ -892,10 +1018,7 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
|
|||
{
|
||||
if(ctrl->cdcstate & CDCS_VISIBLE)
|
||||
{
|
||||
RECT rc;
|
||||
UINT control_height;
|
||||
GetWindowRect(ctrl->wrapper_hwnd, &rc);
|
||||
control_height = rc.bottom - rc.top;
|
||||
UINT control_height = ctrl_get_height(ctrl);
|
||||
|
||||
if(cur_row_pos + control_height > container_height)
|
||||
{
|
||||
|
@ -917,13 +1040,13 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
|
|||
|
||||
/* Move the controls to their final destination
|
||||
*/
|
||||
cur_col_pos = col_indent, cur_row_pos = 0;
|
||||
cur_col_pos = 0, cur_row_pos = 0;
|
||||
LIST_FOR_EACH_ENTRY(ctrl, &This->cctrls, customctrl, entry)
|
||||
{
|
||||
if(ctrl->cdcstate & CDCS_VISIBLE)
|
||||
{
|
||||
RECT rc;
|
||||
UINT control_height;
|
||||
UINT control_height, control_indent;
|
||||
GetWindowRect(ctrl->wrapper_hwnd, &rc);
|
||||
control_height = rc.bottom - rc.top;
|
||||
|
||||
|
@ -933,7 +1056,13 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
|
|||
cur_col_pos += This->cctrl_width + cspacing;
|
||||
}
|
||||
|
||||
SetWindowPos(ctrl->wrapper_hwnd, NULL, cur_col_pos, cur_row_pos, 0, 0,
|
||||
|
||||
if(ctrl->type == IDLG_CCTRL_VISUALGROUP)
|
||||
control_indent = 0;
|
||||
else
|
||||
control_indent = This->cctrl_indent;
|
||||
|
||||
SetWindowPos(ctrl->wrapper_hwnd, NULL, cur_col_pos + control_indent, cur_row_pos, 0, 0,
|
||||
SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOZORDER);
|
||||
|
||||
cur_row_pos += control_height + rspacing;
|
||||
|
@ -953,7 +1082,7 @@ static void ctrl_container_reparent(FileDialogImpl *This, HWND parent)
|
|||
|
||||
if(parent)
|
||||
{
|
||||
customctrl *ctrl;
|
||||
customctrl *ctrl, *sub_ctrl;
|
||||
HFONT font;
|
||||
|
||||
wndstyle = GetWindowLongW(This->cctrls_hwnd, GWL_STYLE);
|
||||
|
@ -972,6 +1101,13 @@ static void ctrl_container_reparent(FileDialogImpl *This, HWND parent)
|
|||
LIST_FOR_EACH_ENTRY(ctrl, &This->cctrls, customctrl, entry)
|
||||
{
|
||||
if(font) SendMessageW(ctrl->hwnd, WM_SETFONT, (WPARAM)font, TRUE);
|
||||
|
||||
/* If this is a VisualGroup */
|
||||
LIST_FOR_EACH_ENTRY(sub_ctrl, &ctrl->sub_cctrls, customctrl, sub_cctrls_entry)
|
||||
{
|
||||
if(font) SendMessageW(sub_ctrl->hwnd, WM_SETFONT, (WPARAM)font, TRUE);
|
||||
}
|
||||
|
||||
customctrl_resize(This, ctrl);
|
||||
}
|
||||
}
|
||||
|
@ -1004,18 +1140,8 @@ static LRESULT ctrl_container_on_wm_destroy(FileDialogImpl *This)
|
|||
|
||||
LIST_FOR_EACH_ENTRY_SAFE(cur1, cur2, &This->cctrls, customctrl, entry)
|
||||
{
|
||||
TRACE("Freeing control %p\n", cur1);
|
||||
list_remove(&cur1->entry);
|
||||
|
||||
if(cur1->type == IDLG_CCTRL_MENU)
|
||||
{
|
||||
TBBUTTON tbb;
|
||||
SendMessageW(cur1->hwnd, TB_GETBUTTON, 0, (LPARAM)&tbb);
|
||||
DestroyMenu((HMENU)tbb.dwData);
|
||||
}
|
||||
|
||||
DestroyWindow(cur1->hwnd);
|
||||
HeapFree(GetProcessHeap(), 0, cur1);
|
||||
ctrl_free(cur1);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
@ -1044,11 +1170,13 @@ static HRESULT init_custom_controls(FileDialogImpl *This)
|
|||
InitCommonControlsEx(NULL);
|
||||
|
||||
This->cctrl_width = 160; /* Controls have a fixed width */
|
||||
This->cctrl_indent = 100;
|
||||
This->cctrl_def_height = 23;
|
||||
This->cctrls_cols = 0;
|
||||
|
||||
This->cctrl_next_dlgid = 0x2000;
|
||||
list_init(&This->cctrls);
|
||||
This->cctrl_active_vg = NULL;
|
||||
|
||||
if( !GetClassInfoW(COMDLG32_hInstance, ctrl_container_classname, &wc) )
|
||||
{
|
||||
|
@ -1409,10 +1537,32 @@ static LRESULT on_wm_initdialog(HWND hwnd, LPARAM lParam)
|
|||
hitem = GetDlgItem(This->dlg_hwnd, IDC_FILETYPE);
|
||||
if(This->filterspec_count)
|
||||
{
|
||||
UINT i;
|
||||
HDC hdc;
|
||||
HFONT font;
|
||||
SIZE size;
|
||||
UINT i, maxwidth = 0;
|
||||
|
||||
hdc = GetDC(hitem);
|
||||
font = (HFONT)SendMessageW(hitem, WM_GETFONT, 0, 0);
|
||||
SelectObject(hdc, font);
|
||||
|
||||
for(i = 0; i < This->filterspec_count; i++)
|
||||
{
|
||||
SendMessageW(hitem, CB_ADDSTRING, 0, (LPARAM)This->filterspecs[i].pszName);
|
||||
|
||||
if(GetTextExtentPoint32W(hdc, This->filterspecs[i].pszName, lstrlenW(This->filterspecs[i].pszName), &size))
|
||||
maxwidth = max(maxwidth, size.cx);
|
||||
}
|
||||
ReleaseDC(hitem, hdc);
|
||||
|
||||
if(maxwidth > 0)
|
||||
{
|
||||
maxwidth += GetSystemMetrics(SM_CXVSCROLL) + 4;
|
||||
SendMessageW(hitem, CB_SETDROPPEDWIDTH, (WPARAM)maxwidth, 0);
|
||||
}
|
||||
else
|
||||
ERR("Failed to calculate width of filetype dropdown\n");
|
||||
|
||||
SendMessageW(hitem, CB_SETCURSEL, This->filetypeindex, 0);
|
||||
}
|
||||
else
|
||||
|
@ -1428,6 +1578,9 @@ static LRESULT on_wm_initdialog(HWND hwnd, LPARAM lParam)
|
|||
update_control_text(This);
|
||||
update_layout(This);
|
||||
|
||||
if(This->filterspec_count)
|
||||
events_OnTypeChange(This);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -1538,6 +1691,11 @@ static LRESULT on_command_filetype(FileDialogImpl *This, WPARAM wparam, LPARAM l
|
|||
}
|
||||
CoTaskMemFree(filename);
|
||||
}
|
||||
|
||||
/* The documentation claims that OnTypeChange is called only
|
||||
* when the dialog is opened, but this is obviously not the
|
||||
* case. */
|
||||
events_OnTypeChange(This);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
|
@ -1746,10 +1904,9 @@ static HRESULT WINAPI IFileDialog2_fnSetFileTypeIndex(IFileDialog2 *iface, UINT
|
|||
if(!This->filterspecs)
|
||||
return E_FAIL;
|
||||
|
||||
if(iFileType >= This->filterspec_count)
|
||||
This->filetypeindex = This->filterspec_count - 1;
|
||||
else
|
||||
This->filetypeindex = iFileType;
|
||||
iFileType = max(iFileType, 1);
|
||||
iFileType = min(iFileType, This->filterspec_count);
|
||||
This->filetypeindex = iFileType-1;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -1762,7 +1919,10 @@ static HRESULT WINAPI IFileDialog2_fnGetFileTypeIndex(IFileDialog2 *iface, UINT
|
|||
if(!piFileType)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*piFileType = This->filetypeindex;
|
||||
if(This->filterspec_count == 0)
|
||||
*piFileType = 0;
|
||||
else
|
||||
*piFileType = This->filetypeindex + 1;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -1819,6 +1979,13 @@ static HRESULT WINAPI IFileDialog2_fnSetOptions(IFileDialog2 *iface, FILEOPENDIA
|
|||
FileDialogImpl *This = impl_from_IFileDialog2(iface);
|
||||
TRACE("%p (0x%x)\n", This, fos);
|
||||
|
||||
if( !(This->options & FOS_PICKFOLDERS) && (fos & FOS_PICKFOLDERS) )
|
||||
{
|
||||
WCHAR buf[30];
|
||||
LoadStringW(COMDLG32_hInstance, IDS_SELECT_FOLDER, buf, sizeof(buf)/sizeof(WCHAR));
|
||||
IFileDialog2_SetTitle(iface, buf);
|
||||
}
|
||||
|
||||
This->options = fos;
|
||||
|
||||
return S_OK;
|
||||
|
@ -2850,7 +3017,7 @@ static HRESULT WINAPI ICommDlgBrowser3_fnIncludeObject(ICommDlgBrowser3 *iface,
|
|||
ULONG attr;
|
||||
TRACE("%p (%p, %p)\n", This, shv, pidl);
|
||||
|
||||
if(!This->filterspec_count)
|
||||
if(!This->filterspec_count && !(This->options & FOS_PICKFOLDERS))
|
||||
return S_OK;
|
||||
|
||||
hr = SHGetIDListFromObject((IUnknown*)shv, &parent_pidl);
|
||||
|
@ -2874,6 +3041,12 @@ static HRESULT WINAPI ICommDlgBrowser3_fnIncludeObject(ICommDlgBrowser3 *iface,
|
|||
return S_OK;
|
||||
}
|
||||
|
||||
if((This->options & FOS_PICKFOLDERS) && !(attr & (SFGAO_FOLDER | SFGAO_LINK)))
|
||||
{
|
||||
IShellItem_Release(psi);
|
||||
return S_FALSE;
|
||||
}
|
||||
|
||||
hr = S_OK;
|
||||
if(SUCCEEDED(IShellItem_GetDisplayName(psi, SIGDN_PARENTRELATIVEPARSING, &filename)))
|
||||
{
|
||||
|
@ -3116,7 +3289,7 @@ static HRESULT WINAPI IFileDialogCustomize_fnAddCheckButton(IFileDialogCustomize
|
|||
HRESULT hr;
|
||||
TRACE("%p (%d, %p, %d)\n", This, dwIDCtl, pszLabel, bChecked);
|
||||
|
||||
hr = cctrl_create_new(This, dwIDCtl, pszLabel, WC_BUTTONW, BS_AUTOCHECKBOX, 0,
|
||||
hr = cctrl_create_new(This, dwIDCtl, pszLabel, WC_BUTTONW, BS_AUTOCHECKBOX|BS_MULTILINE, 0,
|
||||
This->cctrl_def_height, &ctrl);
|
||||
if(SUCCEEDED(hr))
|
||||
{
|
||||
|
@ -3193,6 +3366,7 @@ static HRESULT WINAPI IFileDialogCustomize_fnSetControlLabel(IFileDialogCustomiz
|
|||
case IDLG_CCTRL_PUSHBUTTON:
|
||||
case IDLG_CCTRL_CHECKBUTTON:
|
||||
case IDLG_CCTRL_TEXT:
|
||||
case IDLG_CCTRL_VISUALGROUP:
|
||||
SendMessageW(ctrl->hwnd, WM_SETTEXT, 0, (LPARAM)pszLabel);
|
||||
break;
|
||||
default:
|
||||
|
@ -3510,15 +3684,32 @@ static HRESULT WINAPI IFileDialogCustomize_fnStartVisualGroup(IFileDialogCustomi
|
|||
LPCWSTR pszLabel)
|
||||
{
|
||||
FileDialogImpl *This = impl_from_IFileDialogCustomize(iface);
|
||||
FIXME("stub - %p (%d, %s)\n", This, dwIDCtl, debugstr_w(pszLabel));
|
||||
return E_NOTIMPL;
|
||||
customctrl *vg;
|
||||
HRESULT hr;
|
||||
TRACE("%p (%d, %s)\n", This, dwIDCtl, debugstr_w(pszLabel));
|
||||
|
||||
if(This->cctrl_active_vg)
|
||||
return E_UNEXPECTED;
|
||||
|
||||
hr = cctrl_create_new(This, dwIDCtl, pszLabel, WC_STATICW, 0, 0,
|
||||
This->cctrl_def_height, &vg);
|
||||
if(SUCCEEDED(hr))
|
||||
{
|
||||
vg->type = IDLG_CCTRL_VISUALGROUP;
|
||||
This->cctrl_active_vg = vg;
|
||||
}
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI IFileDialogCustomize_fnEndVisualGroup(IFileDialogCustomize *iface)
|
||||
{
|
||||
FileDialogImpl *This = impl_from_IFileDialogCustomize(iface);
|
||||
FIXME("stub - %p\n", This);
|
||||
return E_NOTIMPL;
|
||||
TRACE("%p\n", This);
|
||||
|
||||
This->cctrl_active_vg = NULL;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI IFileDialogCustomize_fnMakeProminent(IFileDialogCustomize *iface,
|
||||
|
|
|
@ -34,6 +34,7 @@ STRINGTABLE
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Пътят не съществува"
|
||||
IDS_FILENOTEXISTING "Файлът не съществува"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Съхрани"
|
||||
IDS_SAVE_AS "Съхрани като"
|
||||
IDS_OPEN_FILE "Отвори файл"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ El voleu reemplaçar?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "La ruta no existeix"
|
||||
IDS_FILENOTEXISTING "El fitxer no existeix"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Desa"
|
||||
IDS_SAVE_AS "Anomenar i Desar"
|
||||
IDS_OPEN_FILE "Obre Fitxer"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Chcete ho přepsat novým?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Adresář neexistuje"
|
||||
IDS_FILENOTEXISTING "Soubor neexistuje"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Uložit"
|
||||
IDS_SAVE_AS "Ulož pod jménem"
|
||||
IDS_OPEN_FILE "Otevřít soubor"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Vil du erstatte den?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Stien eksisterer ikke."
|
||||
IDS_FILENOTEXISTING "Filen eksisterer ikke."
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Gem"
|
||||
IDS_SAVE_AS "Gem som"
|
||||
IDS_OPEN_FILE "Åben fil"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Wollen Sie sie überschreiben?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Der Pfad existiert nicht"
|
||||
IDS_FILENOTEXISTING "Die Datei existiert nicht"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Speichern"
|
||||
IDS_SAVE_AS "Speichern als"
|
||||
IDS_OPEN_FILE "Öffne Datei"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ STRINGTABLE
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Το μονοπάτι δεν υπάρχει"
|
||||
IDS_FILENOTEXISTING "Το αρχείο δεν υπάρχει"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Αποθήκευση"
|
||||
IDS_SAVE_AS "Αποθήκευση ως"
|
||||
IDS_OPEN_FILE "Άνοιγμα Αρχείου"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Do you want to replace it?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Path does not exist"
|
||||
IDS_FILENOTEXISTING "File does not exist"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Save"
|
||||
IDS_SAVE_AS "Save As"
|
||||
IDS_OPEN_FILE "Open File"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -479,7 +481,7 @@ FONT 8, "MS Shell Dlg"
|
|||
EDITTEXT IDC_FILENAME, 226, 240, 100, 12, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
|
||||
LTEXT "Files of type:", IDC_FILETYPESTATIC, 160, 256, 60, 9, SS_RIGHT
|
||||
COMBOBOX IDC_FILETYPE, 226, 256, 100, 12, WS_CHILD | WS_VISIBLE | WS_TABSTOP |
|
||||
COMBOBOX IDC_FILETYPE, 226, 256, 100, 12, WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL |
|
||||
CBS_HASSTRINGS | CBS_DROPDOWNLIST
|
||||
|
||||
DEFPUSHBUTTON "&Open", IDOK, 350, 240, 40, 14, WS_GROUP
|
||||
|
|
|
@ -34,6 +34,7 @@ STRINGTABLE
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Vojo estas neekzistanta"
|
||||
IDS_FILENOTEXISTING "Dosiero estas neekzistanta"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Konservu"
|
||||
IDS_SAVE_AS "Konservu"
|
||||
IDS_OPEN_FILE "Malfermu Dosieron"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ STRINGTABLE
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "La ruta no existe"
|
||||
IDS_FILENOTEXISTING "El archivo no existe"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Guardar"
|
||||
IDS_SAVE_AS "&Guardar como"
|
||||
IDS_OPEN_FILE "Abrir archivo"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Haluatko ylikirjoitaa sen?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Kansiota ei ole"
|
||||
IDS_FILENOTEXISTING "Tiedostoa ei ole"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Tallenna"
|
||||
IDS_SAVE_AS "Tallenna nimellä"
|
||||
IDS_OPEN_FILE "Avaa tiedosto"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Voulez-vous le remplacer ?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Le chemin d'accès n'existe pas"
|
||||
IDS_FILENOTEXISTING "Le fichier n'existe pas"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Enregistrer"
|
||||
IDS_SAVE_AS "Enregistrer"
|
||||
IDS_OPEN_FILE "Ouvrir le fichier"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ STRINGTABLE
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "הנתיב אינו קיים"
|
||||
IDS_FILENOTEXISTING "הקובץ אינו קיים"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "שמירה"
|
||||
IDS_SAVE_AS "שמירה בשם"
|
||||
IDS_OPEN_FILE "פתיחת קובץ"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Cseréli a fájlt?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Útvonal nem létezik"
|
||||
IDS_FILENOTEXISTING "Fájl nem létezik"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Mentés"
|
||||
IDS_SAVE_AS "Mentés másként"
|
||||
IDS_OPEN_FILE "Fájl megnyitása"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Sovrascriverlo?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Il percorso specificato non esiste"
|
||||
IDS_FILENOTEXISTING "Il file non esiste"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Salva"
|
||||
IDS_SAVE_AS "Salva con nome"
|
||||
IDS_OPEN_FILE "Apri file"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ STRINGTABLE
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "パスが見つかりません"
|
||||
IDS_FILENOTEXISTING "ファイルが見つかりません"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "保存"
|
||||
IDS_SAVE_AS "名前を付けて保存"
|
||||
IDS_OPEN_FILE "ファイルを開く"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ STRINGTABLE
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "경로가 존재하지 않습니다."
|
||||
IDS_FILENOTEXISTING "파일이 존재하지 않습니다"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "저장"
|
||||
IDS_SAVE_AS "다른 이름으로 저장"
|
||||
IDS_OPEN_FILE "파일 열기"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Ar norite jį pakeisti?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Kelias neegzistuoja"
|
||||
IDS_FILENOTEXISTING "Failas neegzistuoja"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Išsaugoti"
|
||||
IDS_SAVE_AS "Išsaugoti kaip"
|
||||
IDS_OPEN_FILE "Atverti failą"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Wilt u het vervangen?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Het pad bestaat niet"
|
||||
IDS_FILENOTEXISTING "Kan het bestand niet vinden"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -135,6 +136,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Opslaan"
|
||||
IDS_SAVE_AS "&Opslaan als"
|
||||
IDS_OPEN_FILE "Open bestand"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Skal den overskrives?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Stien finnes ikke"
|
||||
IDS_FILENOTEXISTING "Filen finnes ikke"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Lagre"
|
||||
IDS_SAVE_AS "Lagre som"
|
||||
IDS_OPEN_FILE "Åpne fil"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Czy chcesz go zastąpić?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Katalog nie istnieje"
|
||||
IDS_FILENOTEXISTING "Plik nie istnieje"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Zapisz"
|
||||
IDS_SAVE_AS "Zapisz jako"
|
||||
IDS_OPEN_FILE "Otwórz plik"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Gostaria de o substituir?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "A localização não existe"
|
||||
IDS_FILENOTEXISTING "O ficheiro não existe"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Gravar"
|
||||
IDS_SAVE_AS "Gravar Como"
|
||||
IDS_OPEN_FILE "Abrir Ficheiro"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -36,6 +36,7 @@ Doriți să îl suprascrieți?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Calea nu există"
|
||||
IDS_FILENOTEXISTING "Fișierul nu există"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -138,6 +139,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Păstrare"
|
||||
IDS_SAVE_AS "Păstrare în:"
|
||||
IDS_OPEN_FILE "Deschidere fișier"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ STRINGTABLE
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Путь не существует"
|
||||
IDS_FILENOTEXISTING "Файл не существует"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Сохранить"
|
||||
IDS_SAVE_AS "Сохранить как"
|
||||
IDS_OPEN_FILE "Открыть файл"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Ali jo želite zamenjati?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Pot ne obstaja"
|
||||
IDS_FILENOTEXISTING "Datoteka ne obstaja"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Shrani"
|
||||
IDS_SAVE_AS "Shrani kot"
|
||||
IDS_OPEN_FILE "Odpri datoteko"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Do you want to replace it?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Cesta neexistuje"
|
||||
IDS_FILENOTEXISTING "Súbor neexistuje"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Uložiť"
|
||||
IDS_SAVE_AS "Uložiť ako"
|
||||
IDS_OPEN_FILE "Otvoriť súbor"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -38,6 +38,7 @@ Doni ta zevendesoni?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Rruga nuk ekziston"
|
||||
IDS_FILENOTEXISTING "Dokumenti nuk ekziston"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -69,6 +70,7 @@ Ju lutem fusni nje vlere mes 1 dhe %d."
|
|||
PD32_GENERIC_ERROR "Nje error."
|
||||
PD32_DRIVER_UNKNOWN "Driveri i printerir i panjohur."
|
||||
PD32_NO_DEVICES "Para se te besh nje detyre ne lidhje me printerin si konfigurimi i faqes ose printimi i dokumentit, duhet te instaloni nje printer. Ju lutem instaloni nje dhe provoni perseri."
|
||||
|
||||
PD32_DEFAULT_PRINTER "Printeri i perzgjedhur; "
|
||||
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Dokumentet %d jane ne rradhe/pritje"
|
||||
PD32_MARGINS_IN_INCHES "Diferenca [inches]"
|
||||
|
@ -139,6 +141,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Ruaj"
|
||||
IDS_SAVE_AS "Ruaj si "
|
||||
IDS_OPEN_FILE "Hap"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -370,6 +373,7 @@ FONT 8, "MS Shell Dlg"
|
|||
ICON "", ico3, 170,131, 76,24, WS_GROUP | SS_CENTERIMAGE
|
||||
CONTROL "Mbledh", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,168,118,100,12
|
||||
EDITTEXT edt3, 240,103, 32,12, WS_GROUP | ES_NUMBER
|
||||
|
||||
GROUPBOX "Printo gamen", grp1, 8,92, 144,64, WS_GROUP
|
||||
CONTROL "Te gjith", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12
|
||||
CONTROL "Faqet", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12
|
||||
|
|
|
@ -34,6 +34,7 @@ STRINGTABLE
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Putanja ne postoji"
|
||||
IDS_FILENOTEXISTING "Datoteka ne postoji"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Sačuvaj"
|
||||
IDS_SAVE_AS "Sačuvaj kao"
|
||||
IDS_OPEN_FILE "Otvori datoteku"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Vill du ersätta den?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Sökvägen finns inte"
|
||||
IDS_FILENOTEXISTING "Filen finns inte"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -135,6 +136,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Spara"
|
||||
IDS_SAVE_AS "Spara som"
|
||||
IDS_OPEN_FILE "Öppna fil"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ Do you want to replace it?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "ไม่พบไดเรกทอรี"
|
||||
IDS_FILENOTEXISTING "ไม่พบแฟ้ม"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -135,6 +136,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Save"
|
||||
IDS_SAVE_AS "บันทืก"
|
||||
IDS_OPEN_FILE "แฟ้ม"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -33,6 +33,7 @@ Onu değiştirmek ister misiniz?"
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Kütük yolu yok."
|
||||
IDS_FILENOTEXISTING "Kütük yok."
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -135,6 +136,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Sakla"
|
||||
IDS_SAVE_AS "Ayrı Sakla"
|
||||
IDS_OPEN_FILE "Kütük Aç"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ STRINGTABLE
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "資料夾不存在"
|
||||
IDS_FILENOTEXISTING "檔案不存在"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Save"
|
||||
IDS_SAVE_AS "另存新檔"
|
||||
IDS_OPEN_FILE "Open File"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ STRINGTABLE
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "Шлях не існує"
|
||||
IDS_FILENOTEXISTING "Файл не існує"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "Зберегти"
|
||||
IDS_SAVE_AS "Зберегти як"
|
||||
IDS_OPEN_FILE "Відкрити файл"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@ STRINGTABLE
|
|||
/ : < > |"
|
||||
IDS_PATHNOTEXISTING "路径不存在"
|
||||
IDS_FILENOTEXISTING "文件不存在"
|
||||
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -136,6 +137,7 @@ STRINGTABLE
|
|||
IDS_SAVE "保存"
|
||||
IDS_SAVE_AS "另存为"
|
||||
IDS_OPEN_FILE "打开文件"
|
||||
IDS_SELECT_FOLDER "Select Folder"
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -126,11 +126,12 @@
|
|||
#define IDC_COLOR_GL 727
|
||||
#define IDC_COLOR_BL 728
|
||||
|
||||
#define IDS_FONT_SIZE 1200
|
||||
#define IDS_SAVE_BUTTON 1201
|
||||
#define IDS_SAVE_IN 1202
|
||||
#define IDS_SAVE 1203
|
||||
#define IDS_SAVE_AS 1204
|
||||
#define IDS_OPEN_FILE 1205
|
||||
#define IDS_FONT_SIZE 1200
|
||||
#define IDS_SAVE_BUTTON 1201
|
||||
#define IDS_SAVE_IN 1202
|
||||
#define IDS_SAVE 1203
|
||||
#define IDS_SAVE_AS 1204
|
||||
#define IDS_OPEN_FILE 1205
|
||||
#define IDS_SELECT_FOLDER 1206
|
||||
|
||||
#define IDS_FAKEDOCTEXT 1300
|
||||
|
|
|
@ -61,7 +61,7 @@ reactos/dll/win32/cabinet # Synced to Wine-1.7.17
|
|||
reactos/dll/win32/clusapi # Synced to Wine-1.7.17
|
||||
reactos/dll/win32/comcat # Synced to Wine-1.7.17
|
||||
reactos/dll/win32/comctl32 # Synced to Wine-1.7.27
|
||||
reactos/dll/win32/comdlg32 # Synced to Wine-1.7.17
|
||||
reactos/dll/win32/comdlg32 # Synced to Wine-1.7.27
|
||||
reactos/dll/win32/compstui # Synced to Wine-1.7.17
|
||||
reactos/dll/win32/credui # Synced to Wine-1.7.17
|
||||
reactos/dll/win32/crypt32 # Synced to Wine-1.7.17
|
||||
|
|
Loading…
Reference in a new issue