Patch level : 4.0
Files correlati : xvaga.dll Ricompilazione Demo : [ ] Commento : Tolte deprecazioni ed aggiunti gradienti git-svn-id: svn://10.65.10.50/trunk@14925 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a44ba2f2a7
commit
7ad9cab875
130
xvaga/xvaga.cpp
130
xvaga/xvaga.cpp
@ -41,12 +41,12 @@
|
|||||||
// Funzione interna di utilita'
|
// Funzione interna di utilita'
|
||||||
MENU_ITEM* xvt_menu_duplicate_tree(const MENU_ITEM* m);
|
MENU_ITEM* xvt_menu_duplicate_tree(const MENU_ITEM* m);
|
||||||
|
|
||||||
XVT_CONFIG* _config_ = NULL;
|
|
||||||
wxWindow* _task_win = NULL;
|
wxWindow* _task_win = NULL;
|
||||||
wxWindow* _mouse_trapper = NULL;
|
wxWindow* _mouse_trapper = NULL;
|
||||||
RCT _startup_rect = { 0,0,0,0 };
|
RCT _startup_rect = { 0,0,0,0 };
|
||||||
wxString* _startup_dir = NULL;
|
wxString _startup_dir;
|
||||||
wxString _strDefaultStatbarText;
|
wxString _strDefaultStatbarText;
|
||||||
|
wxString _appl_name;
|
||||||
|
|
||||||
static wxHashTable _nice_windows;
|
static wxHashTable _nice_windows;
|
||||||
static wxHashTable _nice_icons;
|
static wxHashTable _nice_icons;
|
||||||
@ -56,6 +56,9 @@ static XVT_ERRMSG_HANDLER _error_handler = NULL;
|
|||||||
|
|
||||||
#define XVT_ASSERT(test) assert_box((test), __LINE__, __FILE__ )
|
#define XVT_ASSERT(test) assert_box((test), __LINE__, __FILE__ )
|
||||||
|
|
||||||
|
const wxString& _GetAppTitle()
|
||||||
|
{ return _appl_name; }
|
||||||
|
|
||||||
void assert_box(bool test, int line, const char * file)
|
void assert_box(bool test, int line, const char * file)
|
||||||
{
|
{
|
||||||
if (!test)
|
if (!test)
|
||||||
@ -63,9 +66,9 @@ void assert_box(bool test, int line, const char * file)
|
|||||||
bool display = (_error_handler == NULL) || (_error_handler(SEV_FATAL, NULL) == FALSE);
|
bool display = (_error_handler == NULL) || (_error_handler(SEV_FATAL, NULL) == FALSE);
|
||||||
if (display)
|
if (display)
|
||||||
{
|
{
|
||||||
const wxString strMessage = wxString::Format("Sorry, the application passed some invalid parameters on line %d file %s.", line, file);
|
wxString strMessage;
|
||||||
const wxString strCaption = "Emulated XVT Error ";
|
strMessage.Printf("Sorry, the application passed some invalid parameters on line %d file %s.", line, file);
|
||||||
::wxMessageBox(strMessage, strCaption, wxOK|wxICON_ERROR);
|
::wxMessageBox(strMessage, _GetAppTitle(), wxOK|wxICON_ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -110,7 +113,7 @@ wxRect NormalizeRCT(const RCT* prct)
|
|||||||
wxString GetResourceIni()
|
wxString GetResourceIni()
|
||||||
{
|
{
|
||||||
wxString strName;
|
wxString strName;
|
||||||
strName = *_startup_dir;
|
strName = _startup_dir;
|
||||||
strName += "/res/resource.ini";
|
strName += "/res/resource.ini";
|
||||||
return strName;
|
return strName;
|
||||||
}
|
}
|
||||||
@ -125,12 +128,12 @@ wxString GetResourceName(const char* type, int rid)
|
|||||||
wxString val;
|
wxString val;
|
||||||
if (ini.Read(wxString::Format("%d", rid), &val))
|
if (ini.Read(wxString::Format("%d", rid), &val))
|
||||||
{
|
{
|
||||||
strName = *_startup_dir;
|
strName = _startup_dir;
|
||||||
strName += "/custom/";
|
strName += "/custom/";
|
||||||
strName += val;
|
strName += val;
|
||||||
if (!wxFileExists(strName))
|
if (!wxFileExists(strName))
|
||||||
{
|
{
|
||||||
strName = *_startup_dir;
|
strName = _startup_dir;
|
||||||
strName += "/res/";
|
strName += "/res/";
|
||||||
strName += val;
|
strName += val;
|
||||||
}
|
}
|
||||||
@ -1362,7 +1365,7 @@ void xvt_app_create(int argc, char **argv, unsigned long flags,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
_task_win_handler = eh;
|
_task_win_handler = eh;
|
||||||
_config_ = config;
|
_appl_name = config->appl_name;
|
||||||
|
|
||||||
const wxString title = config->taskwin_title;
|
const wxString title = config->taskwin_title;
|
||||||
|
|
||||||
@ -1450,7 +1453,7 @@ void xvt_app_create(int argc, char **argv, unsigned long flags,
|
|||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
{
|
{
|
||||||
// Simula main loop
|
// Simula main loop
|
||||||
xvt_app_process_pending_events();
|
xvt_app_process_pending_events();
|
||||||
}
|
}
|
||||||
a->ExitMainLoop(); // Non entrare nel main loop di wxWindows
|
a->ExitMainLoop(); // Non entrare nel main loop di wxWindows
|
||||||
}
|
}
|
||||||
@ -1479,9 +1482,8 @@ void xvt_app_process_pending_events(void)
|
|||||||
if (a != NULL)
|
if (a != NULL)
|
||||||
{
|
{
|
||||||
while (a->Pending())
|
while (a->Pending())
|
||||||
a->Dispatch();
|
a->Dispatch();
|
||||||
|
a->Yield(true);
|
||||||
a->Yield(true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1536,14 +1538,12 @@ char* xvt_cb_get_data(CB_FORMAT cbfmt, char *name, long *sizep)
|
|||||||
|
|
||||||
BOOLEAN xvt_cb_has_format(CB_FORMAT fmt, char *name)
|
BOOLEAN xvt_cb_has_format(CB_FORMAT fmt, char *name)
|
||||||
{
|
{
|
||||||
BOOLEAN ok = fmt == CB_TEXT && wxTheClipboard->IsSupported(wxDF_TEXT);
|
return (fmt == CB_TEXT) && wxTheClipboard->IsSupported(wxDF_TEXT);
|
||||||
return ok;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN xvt_cb_open(BOOLEAN writing)
|
BOOLEAN xvt_cb_open(BOOLEAN writing)
|
||||||
{
|
{
|
||||||
wxTheClipboard->Open();
|
return wxTheClipboard->Open();
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN xvt_cb_put_data(CB_FORMAT cbfmt, char *name, long size, PICTURE pic)
|
BOOLEAN xvt_cb_put_data(CB_FORMAT cbfmt, char *name, long size, PICTURE pic)
|
||||||
@ -1737,16 +1737,6 @@ BOOLEAN xvt_dongle_sl_write_block(unsigned short reg, unsigned short size, const
|
|||||||
// Common dialogs
|
// Common dialogs
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
wxString _GetAppTitle()
|
|
||||||
{
|
|
||||||
wxString strTitle;
|
|
||||||
if (_config_ != NULL)
|
|
||||||
strTitle = _config_->appl_name;
|
|
||||||
else
|
|
||||||
strTitle = "CAMPO";
|
|
||||||
return strTitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
COLOR xvt_dm_post_choose_color(WINDOW win, COLOR xc)
|
COLOR xvt_dm_post_choose_color(WINDOW win, COLOR xc)
|
||||||
{
|
{
|
||||||
CAST_COLOR(xc, wc);
|
CAST_COLOR(xc, wc);
|
||||||
@ -1772,7 +1762,6 @@ COLOR xvt_dm_post_choose_color(WINDOW win, COLOR xc)
|
|||||||
return xc;
|
return xc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class TwxCalendarDlg : public wxDialog
|
class TwxCalendarDlg : public wxDialog
|
||||||
{
|
{
|
||||||
enum { ID_CAL = 1883 };
|
enum { ID_CAL = 1883 };
|
||||||
@ -1790,7 +1779,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(TwxCalendarDlg, wxDialog)
|
BEGIN_EVENT_TABLE(TwxCalendarDlg, wxDialog)
|
||||||
EVT_CALENDAR(wxID_ANY, TwxCalendarDlg::OnCalendar)
|
EVT_CALENDAR(wxID_ANY, TwxCalendarDlg::OnCalendar)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
void TwxCalendarDlg::OnCalendar(wxCalendarEvent& event)
|
void TwxCalendarDlg::OnCalendar(wxCalendarEvent& event)
|
||||||
@ -1874,7 +1863,7 @@ BOOLEAN xvt_dm_post_speech(const char* text, int priority, BOOLEAN async)
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASK_RESPONSE xvt_dm_post_ask(const char* Btn1, const char*Btn2, const char* Btn3, const char* fmt)
|
ASK_RESPONSE xvt_dm_post_ask(const char* Btn1, const char* Btn2, const char* Btn3, const char* fmt)
|
||||||
{
|
{
|
||||||
int nFlags = wxCENTRE | wxICON_QUESTION | wxYES_NO;
|
int nFlags = wxCENTRE | wxICON_QUESTION | wxYES_NO;
|
||||||
if (Btn3 == NULL)
|
if (Btn3 == NULL)
|
||||||
@ -1886,12 +1875,11 @@ ASK_RESPONSE xvt_dm_post_ask(const char* Btn1, const char*Btn2, const char* Btn3
|
|||||||
nFlags |= wxCANCEL;
|
nFlags |= wxCANCEL;
|
||||||
|
|
||||||
xvt_dm_post_speech(fmt, 3, TRUE);
|
xvt_dm_post_speech(fmt, 3, TRUE);
|
||||||
const int answer = wxMessageBox(fmt, _GetAppTitle(), nFlags);
|
const int answer = ::wxMessageBox(fmt, _GetAppTitle(), nFlags);
|
||||||
|
|
||||||
switch(answer)
|
switch(answer)
|
||||||
{
|
{
|
||||||
case wxYES: xvt_dm_post_speech("si", 7, TRUE); break;
|
case wxYES: xvt_dm_post_speech("si", 7, TRUE); break;
|
||||||
case wxNO : xvt_dm_post_speech("no", 7, TRUE); break;
|
case wxNO : xvt_dm_post_speech("no", 7, TRUE); break;
|
||||||
default : xvt_dm_post_speech("annulla", 7, TRUE); break;
|
default : xvt_dm_post_speech("annulla", 7, TRUE); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1996,14 +1984,14 @@ BOOLEAN xvt_dm_post_font_sel(WINDOW win, XVT_FNTID font_id, PRINT_RCD *precp, un
|
|||||||
void xvt_dm_post_message(const char *fmt)
|
void xvt_dm_post_message(const char *fmt)
|
||||||
{
|
{
|
||||||
xvt_dm_post_speech(fmt, 2, TRUE);
|
xvt_dm_post_speech(fmt, 2, TRUE);
|
||||||
wxMessageBox(fmt, _GetAppTitle(), wxOK | wxCENTRE | wxICON_INFORMATION);
|
::wxMessageBox(fmt, _GetAppTitle(), wxOK | wxCENTRE | wxICON_INFORMATION);
|
||||||
xvt_dm_post_speech("OK", 7, TRUE);
|
xvt_dm_post_speech("OK", 7, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void xvt_dm_post_note(const char *fmt)
|
void xvt_dm_post_note(const char *fmt)
|
||||||
{
|
{
|
||||||
xvt_dm_post_speech(fmt, 2, TRUE);
|
xvt_dm_post_speech(fmt, 2, TRUE);
|
||||||
wxMessageBox(fmt, _GetAppTitle(), wxOK | wxCENTRE | wxICON_EXCLAMATION);
|
::wxMessageBox(fmt, _GetAppTitle(), wxOK | wxCENTRE | wxICON_EXCLAMATION);
|
||||||
xvt_dm_post_speech("OK", 7, TRUE);
|
xvt_dm_post_speech("OK", 7, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2018,7 +2006,7 @@ char* xvt_dm_post_string_prompt(const char* message, char* response, int respons
|
|||||||
void xvt_dm_post_warning(const char *fmt)
|
void xvt_dm_post_warning(const char *fmt)
|
||||||
{
|
{
|
||||||
xvt_dm_post_speech(fmt, 1, TRUE);
|
xvt_dm_post_speech(fmt, 1, TRUE);
|
||||||
wxMessageBox(fmt, _GetAppTitle(), wxOK | wxCENTRE | wxICON_EXCLAMATION);
|
::wxMessageBox(fmt, _GetAppTitle(), wxOK | wxCENTRE | wxICON_EXCLAMATION);
|
||||||
xvt_dm_post_speech("OK", 7, TRUE);
|
xvt_dm_post_speech("OK", 7, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2320,6 +2308,47 @@ void xvt_dwin_draw_arc(WINDOW win, const RCT* r, int sx, int sy, int ex, int ey)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void xvt_dwin_draw_gradient_circular(WINDOW win, const RCT* r, COLOR col1, COLOR col2, const PNT* center)
|
||||||
|
{
|
||||||
|
if (r != NULL)
|
||||||
|
{
|
||||||
|
CAST_DC(win, dc);
|
||||||
|
const wxRect rect = NormalizeRCT(r);
|
||||||
|
CAST_COLOR(col1, color1);
|
||||||
|
CAST_COLOR(col2, color2);
|
||||||
|
if (center != NULL)
|
||||||
|
dc.GradientFillConcentric(rect, color1, color2, wxPoint(center->h, center->v));
|
||||||
|
else
|
||||||
|
dc.GradientFillConcentric(rect, color1, color2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void xvt_dwin_draw_gradient_linear(WINDOW win, const RCT* r, COLOR col1, COLOR col2, int angle)
|
||||||
|
{
|
||||||
|
if (r != NULL)
|
||||||
|
{
|
||||||
|
CAST_DC(win, dc);
|
||||||
|
const wxRect rect = NormalizeRCT(r);
|
||||||
|
CAST_COLOR(col1, color1);
|
||||||
|
CAST_COLOR(col2, color2);
|
||||||
|
|
||||||
|
angle %= 360;
|
||||||
|
if (angle < 0)
|
||||||
|
angle += 360;
|
||||||
|
wxDirection dir = wxDOWN;
|
||||||
|
switch (angle / 90)
|
||||||
|
{
|
||||||
|
case 0: dir = wxRIGHT; break;
|
||||||
|
case 1: dir = wxUP; break;
|
||||||
|
case 2: dir = wxLEFT; break;
|
||||||
|
default: dir = wxDOWN; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
dc.GradientFillLinear(rect, color1, color2, dir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void xvt_dwin_draw_icon(WINDOW win, int x, int y, int rid)
|
void xvt_dwin_draw_icon(WINDOW win, int x, int y, int rid)
|
||||||
{
|
{
|
||||||
wxIcon* ico = ::GetIconResource(rid);
|
wxIcon* ico = ::GetIconResource(rid);
|
||||||
@ -3036,9 +3065,9 @@ BOOLEAN xvt_fsys_convert_str_to_fspec(const char *mbs, FILE_SPEC *fs)
|
|||||||
|
|
||||||
void xvt_fsys_get_default_dir(DIRECTORY *dirp)
|
void xvt_fsys_get_default_dir(DIRECTORY *dirp)
|
||||||
{
|
{
|
||||||
if (_startup_dir == NULL)
|
if (_startup_dir.IsEmpty())
|
||||||
_startup_dir = new wxString(::wxGetCwd());
|
_startup_dir = ::wxGetCwd();
|
||||||
xvt_fsys_convert_str_to_dir(*_startup_dir, dirp);
|
xvt_fsys_convert_str_to_dir(_startup_dir, dirp);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN xvt_fsys_get_dir(DIRECTORY *dirp)
|
BOOLEAN xvt_fsys_get_dir(DIRECTORY *dirp)
|
||||||
@ -3355,7 +3384,7 @@ XVT_IMAGE xvt_image_read(const char* filenamep)
|
|||||||
wxString name;
|
wxString name;
|
||||||
if (isalpha(filenamep[0u]))
|
if (isalpha(filenamep[0u]))
|
||||||
{
|
{
|
||||||
name = *_startup_dir;
|
name = _startup_dir;
|
||||||
name += "/";
|
name += "/";
|
||||||
}
|
}
|
||||||
name += filenamep;
|
name += filenamep;
|
||||||
@ -3733,6 +3762,15 @@ BOOLEAN xvt_rect_set_pos(RCT *rctp, PNT pos)
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void xvt_rect_inflate(RCT *rctp, short ix, short iy)
|
||||||
|
{
|
||||||
|
if (rctp != NULL)
|
||||||
|
{
|
||||||
|
rctp->left -= ix; rctp->right += ix;
|
||||||
|
rctp->top -= iy; rctp->bottom += iy;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Resource management
|
// Resource management
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -4741,7 +4779,15 @@ long xvt_vobj_get_attr(WINDOW win, long data)
|
|||||||
case ATTR_WIN_PM_DRAWABLE_TWIN:
|
case ATTR_WIN_PM_DRAWABLE_TWIN:
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
break;
|
break;
|
||||||
default: SORRY_BOX(); break;
|
case ATTR_ICON_WIDTH:
|
||||||
|
ret = wxSystemSettings::GetMetric(wxSYS_ICON_X);
|
||||||
|
break;
|
||||||
|
case ATTR_ICON_HEIGHT:
|
||||||
|
ret = wxSystemSettings::GetMetric(wxSYS_ICON_Y);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
SORRY_BOX();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -86,6 +86,6 @@ public:
|
|||||||
virtual ~TPrintDC();
|
virtual ~TPrintDC();
|
||||||
};
|
};
|
||||||
|
|
||||||
wxString _GetAppTitle();
|
const wxString& _GetAppTitle();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -95,6 +95,8 @@ XVTDLL BOOLEAN xvt_dongle_sl_write_block(unsigned short reg, unsigned short size
|
|||||||
XVTDLL void xvt_dwin_clear(WINDOW win, COLOR col);
|
XVTDLL void xvt_dwin_clear(WINDOW win, COLOR col);
|
||||||
XVTDLL void xvt_dwin_draw_arc(WINDOW win, const RCT* r, int sx, int sy, int ex, int ey);
|
XVTDLL void xvt_dwin_draw_arc(WINDOW win, const RCT* r, int sx, int sy, int ex, int ey);
|
||||||
XVTDLL void xvt_dwin_draw_icon(WINDOW win, int x, int y, int rid);
|
XVTDLL void xvt_dwin_draw_icon(WINDOW win, int x, int y, int rid);
|
||||||
|
XVTDLL void xvt_dwin_draw_gradient_circular(WINDOW win, const RCT* r, COLOR col1, COLOR col2, const PNT* center); // Added by AGA
|
||||||
|
XVTDLL void xvt_dwin_draw_gradient_linear(WINDOW win, const RCT* r, COLOR col1, COLOR col2, int angle); // Added by AGA
|
||||||
XVTDLL void xvt_dwin_draw_image_on_pdf(WINDOW win, const char* name, RCT* dest); // Added by AGA
|
XVTDLL void xvt_dwin_draw_image_on_pdf(WINDOW win, const char* name, RCT* dest); // Added by AGA
|
||||||
XVTDLL void xvt_dwin_draw_image(WINDOW win, XVT_IMAGE image, RCT* dest, RCT* source);
|
XVTDLL void xvt_dwin_draw_image(WINDOW win, XVT_IMAGE image, RCT* dest, RCT* source);
|
||||||
XVTDLL void xvt_dwin_draw_oval(WINDOW Win, const RCT* r);
|
XVTDLL void xvt_dwin_draw_oval(WINDOW Win, const RCT* r);
|
||||||
@ -262,6 +264,7 @@ XVTDLL void xvt_rect_offset(RCT *rctp, short dh, short dv);
|
|||||||
XVTDLL void xvt_rect_set(RCT *rctp, short left, short top, short right, short bottom);
|
XVTDLL void xvt_rect_set(RCT *rctp, short left, short top, short right, short bottom);
|
||||||
XVTDLL void xvt_rect_set_empty(RCT *rctp);
|
XVTDLL void xvt_rect_set_empty(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_IMAGE xvt_res_get_image(int rid);
|
XVTDLL XVT_IMAGE xvt_res_get_image(int rid);
|
||||||
|
@ -450,12 +450,11 @@ CB_PICT, /* encapsulated picture */
|
|||||||
CB_APPL /* app's own (must have name) */
|
CB_APPL /* app's own (must have name) */
|
||||||
} CB_FORMAT;
|
} CB_FORMAT;
|
||||||
|
|
||||||
typedef struct s_xvt_config {
|
typedef struct s_xvt_config
|
||||||
|
{
|
||||||
short menu_bar_ID; /* task menubar ResID */
|
short menu_bar_ID; /* task menubar ResID */
|
||||||
short about_box_ID; /* default aboutbox ResID */
|
short about_box_ID; /* default aboutbox ResID */
|
||||||
char *base_appl_name; /* application's "filename" */
|
const char* base_appl_name; /* application's "filename" */
|
||||||
char *appl_name; /* application's name */
|
const char* appl_name; /* application's name */
|
||||||
char *taskwin_title; /* title for task window */
|
const char* taskwin_title; /* title for task window */
|
||||||
|
|
||||||
} XVT_CONFIG;
|
} XVT_CONFIG;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user