Patch level : 10.0

Files correlati     : xvaga.dll ba0
Ricompilazione Demo : [ ]
Commento            :
Aggiunto metodo deflate ai rettangoli (c'era solo inflate)


git-svn-id: svn://10.65.10.50/trunk@19616 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2009-11-12 15:14:03 +00:00
parent 4b0a9e960a
commit 28310e3bd5
3 changed files with 50 additions and 21 deletions

View File

@ -1942,9 +1942,9 @@ XVT_IMAGE_FORMAT xvt_image_get_format(XVT_IMAGE image)
short xvt_image_get_ncolors(XVT_IMAGE image) short xvt_image_get_ncolors(XVT_IMAGE image)
{ {
int n = 0; int n = 0;
CAST_IMAGE(image, i); if (xvt_image_get_format(image) == XVT_IMAGE_CL8)
if (i != NULL && i->Ok() && i->HasPalette()) {
{ CAST_IMAGE(image, i);
const wxPalette& pal = i->GetPalette(); const wxPalette& pal = i->GetPalette();
unsigned char r, g, b; unsigned char r, g, b;
for (n = 16; n < 256; n++) for (n = 16; n < 256; n++)
@ -2421,6 +2421,15 @@ BOOLEAN xvt_rect_set_pos(RCT *rctp, PNT pos)
return ok; return ok;
} }
void xvt_rect_deflate(RCT *rctp, short ix, short iy)
{
if (rctp != NULL)
{
rctp->left += ix; rctp->right -= ix;
rctp->top += iy; rctp->bottom -= iy;
}
}
void xvt_rect_inflate(RCT *rctp, short ix, short iy) void xvt_rect_inflate(RCT *rctp, short ix, short iy)
{ {
if (rctp != NULL) if (rctp != NULL)

View File

@ -297,9 +297,11 @@ XVTDLL BOOLEAN xvt_print_restart_thread();
XVTDLL BOOLEAN xvt_print_is_pdf(const PRINT_RCD* precp); XVTDLL BOOLEAN xvt_print_is_pdf(const PRINT_RCD* precp);
XVTDLL BOOLEAN xvt_print_pdf_version(char* version, int size); XVTDLL BOOLEAN xvt_print_pdf_version(char* version, int size);
XVTDLL void xvt_rect_deflate(RCT *rctp, short ix, short iy);
XVTDLL int xvt_rect_get_height(const RCT *rctp); XVTDLL int xvt_rect_get_height(const RCT *rctp);
XVTDLL int xvt_rect_get_width(const RCT *rctp); XVTDLL int xvt_rect_get_width(const RCT *rctp);
XVTDLL BOOLEAN xvt_rect_has_point(const RCT *rctp, PNT pnt); XVTDLL BOOLEAN xvt_rect_has_point(const RCT *rctp, PNT pnt);
XVTDLL void xvt_rect_inflate(RCT *rctp, short ix, short iy);
XVTDLL BOOLEAN xvt_rect_intersect(RCT *drctp, const RCT *rctp1, const RCT *rctp2); XVTDLL BOOLEAN xvt_rect_intersect(RCT *drctp, const RCT *rctp1, const RCT *rctp2);
XVTDLL BOOLEAN xvt_rect_is_empty(const RCT *rctp); XVTDLL BOOLEAN xvt_rect_is_empty(const RCT *rctp);
XVTDLL void xvt_rect_offset(RCT *rctp, short dh, short dv); XVTDLL void xvt_rect_offset(RCT *rctp, short dh, short dv);
@ -307,7 +309,6 @@ XVTDLL void xvt_rect_set(RCT *rctp, short left, short top, short right, shor
XVTDLL void xvt_rect_set_empty(RCT *rctp); XVTDLL void xvt_rect_set_empty(RCT *rctp);
XVTDLL void xvt_rect_set_null(RCT* rctp); XVTDLL void xvt_rect_set_null(RCT* rctp);
XVTDLL BOOLEAN xvt_rect_set_pos(RCT *rctp, PNT pos); XVTDLL BOOLEAN xvt_rect_set_pos(RCT *rctp, PNT pos);
XVTDLL void xvt_rect_inflate(RCT *rctp, short ix, short iy);
XVTDLL void xvt_res_free_menu_tree(MENU_ITEM* tree); XVTDLL void xvt_res_free_menu_tree(MENU_ITEM* tree);
XVTDLL XVT_FNTID xvt_res_get_font(int rid); XVTDLL XVT_FNTID xvt_res_get_font(int rid);

View File

@ -28,15 +28,26 @@ wxString xvtart_GetResourceName(const char* type, int rid)
if ((rid == ICON_RSRC || rid == 0) && strName == "Icons") if ((rid == ICON_RSRC || rid == 0) && strName == "Icons")
{ {
char name[MAX_PATH]; int i = 1;
if (xvt_sys_get_oem_string("Icon", "", name, sizeof(name))) switch (xvt_sys_get_os_version())
{ {
wxFileName fname(startup_dir + "/setup/" + name); case XVT_WS_WIN_2000:
if (fname.FileExists()) case XVT_WS_WIN_2003: i = 0; break; // Cerco prima l'icona a 256 colori
default : i = 1; break; // Cerco solo l'icona in RGBA
}
for (; i < 2; i++)
{
const char* const oem_var = i == 0 ? "Icon256" : "Icon";
char name[MAX_PATH];
if (xvt_sys_get_oem_string(oem_var, "", name, sizeof(name)))
{ {
fname.Normalize(); wxFileName fname(startup_dir + "/setup/" + name);
strName = fname.GetFullPath().Lower(); if (fname.FileExists())
return strName; {
fname.Normalize();
strName = fname.GetFullPath().Lower();
return strName;
}
} }
} }
} }
@ -232,20 +243,28 @@ wxIconBundle TArtProvider::CreateIconBundle(const wxArtID& id, const wxArtClient
wxSize TArtProvider::GetNativeSizeHint(const wxArtClient& client) wxSize TArtProvider::GetNativeSizeHint(const wxArtClient& client)
{ {
int ix = 32, iy = 32;
if (client == wxART_FRAME_ICON) if (client == wxART_FRAME_ICON)
{ {
const int ix = wxSystemSettings::GetMetric(wxSYS_SMALLICON_X); const int x = wxSystemSettings::GetMetric(wxSYS_SMALLICON_X);
const int iy = wxSystemSettings::GetMetric(wxSYS_SMALLICON_Y); const int y = wxSystemSettings::GetMetric(wxSYS_SMALLICON_Y);
return wxSize(ix,iy); if (x > 0 && y > 0)
{ ix = x; iy = y; }
else
{ ix /= 2; iy /= 2; }
}
else
{
const int x = wxSystemSettings::GetMetric(wxSYS_ICON_X);
const int y = wxSystemSettings::GetMetric(wxSYS_ICON_Y);
if (x > 0 && y > 0)
{ ix = x; iy = y; }
if (client == wxART_MESSAGE_BOX)
{ ix *= 2; iy *= 2; }
} }
const int ix = wxSystemSettings::GetMetric(wxSYS_ICON_X);
const int iy = wxSystemSettings::GetMetric(wxSYS_ICON_Y);
if (client == wxART_MESSAGE_BOX)
return wxSize(ix*2,iy*2);
return wxSize(ix, iy); return wxSize(ix,iy);
} }
wxIconBundle TArtProvider::GetIconBundle(const wxArtID& id, const wxArtClient& client) wxIconBundle TArtProvider::GetIconBundle(const wxArtID& id, const wxArtClient& client)