mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-10 11:28:04 +00:00
mshtml: Added IHTMLTable:cellPadding property implementation.
This commit is contained in:
parent
82c6c10428
commit
c19b6dbf6b
|
@ -288,15 +288,37 @@ static HRESULT WINAPI HTMLTable_get_cellSpacing(IHTMLTable *iface, VARIANT *p)
|
|||
static HRESULT WINAPI HTMLTable_put_cellPadding(IHTMLTable *iface, VARIANT v)
|
||||
{
|
||||
HTMLTable *This = impl_from_IHTMLTable(iface);
|
||||
FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
|
||||
return E_NOTIMPL;
|
||||
nsAString val;
|
||||
HRESULT hres;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
|
||||
|
||||
hres = var2str(&v, &val);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
|
||||
nsres = nsIDOMHTMLTableElement_SetCellPadding(This->nstable, &val);
|
||||
nsAString_Finish(&val);
|
||||
if(NS_FAILED(nsres)) {
|
||||
ERR("Set Width(%s) failed, err = %08x\n", debugstr_variant(&v), nsres);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLTable_get_cellPadding(IHTMLTable *iface, VARIANT *p)
|
||||
{
|
||||
HTMLTable *This = impl_from_IHTMLTable(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
nsAString val;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
nsAString_Init(&val, NULL);
|
||||
nsres = nsIDOMHTMLTableElement_GetCellPadding(This->nstable, &val);
|
||||
return return_nsstr_variant(nsres, &val, p);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLTable_put_background(IHTMLTable *iface, BSTR v)
|
||||
|
|
|
@ -833,8 +833,15 @@ BOOL nsAString_Init(nsAString*,const PRUnichar*) DECLSPEC_HIDDEN;
|
|||
void nsAString_InitDepend(nsAString*,const PRUnichar*) DECLSPEC_HIDDEN;
|
||||
UINT32 nsAString_GetData(const nsAString*,const PRUnichar**) DECLSPEC_HIDDEN;
|
||||
void nsAString_Finish(nsAString*) DECLSPEC_HIDDEN;
|
||||
|
||||
HRESULT return_nsstr(nsresult,nsAString*,BSTR*) DECLSPEC_HIDDEN;
|
||||
|
||||
static inline HRESULT return_nsstr_variant(nsresult nsres, nsAString *nsstr, VARIANT *p)
|
||||
{
|
||||
V_VT(p) = VT_BSTR;
|
||||
return return_nsstr(nsres, nsstr, &V_BSTR(p));
|
||||
}
|
||||
|
||||
nsICommandParams *create_nscommand_params(void) DECLSPEC_HIDDEN;
|
||||
HRESULT nsnode_to_nsstring(nsIDOMNode*,nsAString*) DECLSPEC_HIDDEN;
|
||||
void get_editor_controller(NSContainer*) DECLSPEC_HIDDEN;
|
||||
|
|
|
@ -6335,6 +6335,23 @@ static void _test_table_cell_spacing(unsigned line, IHTMLTable *table, const cha
|
|||
VariantClear(&v);
|
||||
}
|
||||
|
||||
#define test_table_cell_padding(a,b) _test_table_cell_padding(__LINE__,a,b)
|
||||
static void _test_table_cell_padding(unsigned line, IHTMLTable *table, const char *exstr)
|
||||
{
|
||||
VARIANT v;
|
||||
HRESULT hres;
|
||||
|
||||
V_VT(&v) = VT_ERROR;
|
||||
hres = IHTMLTable_get_cellPadding(table, &v);
|
||||
ok_(__FILE__,line)(hres == S_OK, "get_cellPadding failed: %08x\n", hres);
|
||||
ok_(__FILE__,line)(V_VT(&v) == VT_BSTR, "V_VT(v) = %d\n", V_VT(&v));
|
||||
if(exstr)
|
||||
ok_(__FILE__,line)(!strcmp_wa(V_BSTR(&v), exstr), "cellPadding = %s, expected %s\n", wine_dbgstr_w(V_BSTR(&v)), exstr);
|
||||
else
|
||||
ok_(__FILE__,line)(!V_BSTR(&v), "cellPadding = %s, expected NULL\n", wine_dbgstr_w(V_BSTR(&v)));
|
||||
VariantClear(&v);
|
||||
}
|
||||
|
||||
static void test_table_modify(IHTMLTable *table)
|
||||
{
|
||||
IDispatch *disp;
|
||||
|
@ -6437,6 +6454,27 @@ static void test_table_elem(IHTMLElement *elem)
|
|||
test_table_cell_spacing(table, "11");
|
||||
VariantClear(&v);
|
||||
|
||||
test_table_cell_padding(table, NULL);
|
||||
|
||||
V_VT(&v) = VT_I4;
|
||||
V_I4(&v) = 10;
|
||||
hres = IHTMLTable_put_cellPadding(table, v);
|
||||
ok(hres == S_OK, "put_cellPadding = %08x\n", hres);
|
||||
test_table_cell_padding(table, "10");
|
||||
|
||||
V_VT(&v) = VT_BSTR;
|
||||
V_BSTR(&v) = a2bstr("11");
|
||||
hres = IHTMLTable_put_cellPadding(table, v);
|
||||
ok(hres == S_OK, "put_cellPadding = %08x\n", hres);
|
||||
test_table_cell_padding(table, "11");
|
||||
VariantClear(&v);
|
||||
|
||||
V_VT(&v) = VT_R8;
|
||||
V_R8(&v) = 5;
|
||||
hres = IHTMLTable_put_cellPadding(table, v);
|
||||
ok(hres == S_OK, "put_cellPadding = %08x\n", hres);
|
||||
test_table_cell_padding(table, "5");
|
||||
|
||||
bstr = a2bstr("left");
|
||||
hres = IHTMLTable_put_align(table, bstr);
|
||||
ok(hres == S_OK, "set_align failed: %08x\n", hres);
|
||||
|
@ -6531,7 +6569,6 @@ static void test_table_elem(IHTMLElement *elem)
|
|||
ok(!strcmp_wa(V_BSTR(&v), "11"), "Expected 11, got %s\n", wine_dbgstr_w(V_BSTR(&v)));
|
||||
VariantClear(&v);
|
||||
|
||||
|
||||
bstr = a2bstr("box");
|
||||
hres = IHTMLTable_put_frame(table, bstr);
|
||||
ok(hres == S_OK, "put_frame = %08x\n", hres);
|
||||
|
|
Loading…
Reference in a new issue