64c17343fb
Files correlati : xvaga.dll Ricompilazione Demo : [ ] Commento : 0000934: impostazione nuova stampante Se selezione file ed imposta stampante, se scelgo la stampante mi da l'errore che allego, se la stessa operazione si fa dal pc di Salomoni campo si chiude senza dare errori. git-svn-id: svn://10.65.10.50/trunk@17536 c028cbd2-c16b-5b4b-a496-9718f37d4682
508 lines
10 KiB
C
Executable File
508 lines
10 KiB
C
Executable File
#ifndef BOOLEAN
|
|
#define BOOLEAN short
|
|
#endif
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#define TRUE 1
|
|
#endif
|
|
|
|
#ifdef LINUX
|
|
#define _MAX_PATH 512
|
|
#define _MAX_EXT 6
|
|
#define _MAX_DRIVE 6
|
|
#define _MAX_DIR 512
|
|
#define _MAX_FNAME 512
|
|
#endif
|
|
|
|
typedef unsigned long WINDOW;
|
|
typedef unsigned int UNIT_TYPE;
|
|
typedef unsigned long ULONG;
|
|
typedef unsigned long XVT_ERRMSG;
|
|
typedef unsigned long XVT_ODBC;
|
|
|
|
typedef wchar_t XVT_WCHAR;
|
|
typedef short MENU_TAG;
|
|
typedef short CURSOR;
|
|
typedef char* DATA_PTR;
|
|
|
|
#define EOL_SEQ "\015\012"
|
|
|
|
typedef struct
|
|
{
|
|
short top, left, bottom, right;
|
|
} RCT;
|
|
|
|
typedef long XVT_HELP_TID;
|
|
typedef unsigned long COLOR;
|
|
typedef unsigned long XVT_COLOR_TYPE;
|
|
typedef unsigned long XVT_FONT_ATTR_MASK;
|
|
typedef unsigned long XVT_FONT_STYLE_MASK;
|
|
typedef long PICTURE;
|
|
typedef void* XVT_IMAGE;
|
|
|
|
typedef enum {
|
|
XVT_IMAGE_NONE,
|
|
XVT_IMAGE_CL8,
|
|
XVT_IMAGE_RGB,
|
|
XVT_IMAGE_MONO,
|
|
} XVT_IMAGE_FORMAT;
|
|
|
|
#define XVT_FNTID void*
|
|
typedef void* XVT_PALETTE;
|
|
typedef unsigned long XVT_PALETTE_ATTR;
|
|
|
|
#define XVT_ESC_GET_PRINTER_INFO 883
|
|
#define XVT_ESC_SET_PRINTER_INFO 884
|
|
|
|
typedef enum e_display_type {
|
|
XVT_DISPLAY_MONO, /* monochromatic display */
|
|
XVT_DISPLAY_GRAY_16, /* 16-entry grayscale */
|
|
XVT_DISPLAY_GRAY_256, /* 256-entry grayscale */
|
|
XVT_DISPLAY_COLOR_16, /* 16-entry color */
|
|
XVT_DISPLAY_COLOR_256, /* 256-entry color */
|
|
XVT_DISPLAY_DIRECT_COLOR, /* full color capabilities */
|
|
} XVT_DISPLAY_TYPE;
|
|
|
|
typedef enum {
|
|
|
|
XVT_PALETTE_NONE,
|
|
XVT_PALETTE_STOCK,
|
|
XVT_PALETTE_CURRENT,
|
|
XVT_PALETTE_CUBE16,
|
|
XVT_PALETTE_CUBE256,
|
|
XVT_PALETTE_USER
|
|
} XVT_PALETTE_TYPE;
|
|
|
|
typedef enum { /* response from ask fcn */
|
|
RESP_DEFAULT, /* default button */
|
|
RESP_2, /* second button */
|
|
RESP_3, /* third button */
|
|
} ASK_RESPONSE;
|
|
|
|
typedef enum { /* result from file open & save dialogs */
|
|
FL_BAD, /* error occurred */
|
|
FL_CANCEL, /* cancel button clicked */
|
|
FL_OK, /* OK button clicked */
|
|
} FL_STATUS;
|
|
|
|
typedef struct
|
|
{
|
|
char path[_MAX_DIR];
|
|
} DIRECTORY;
|
|
|
|
typedef struct s_mitem {
|
|
|
|
MENU_TAG tag; /* menu tag */
|
|
char *text; /* text to appear in menu */
|
|
short mkey; /* mnemonic */
|
|
unsigned enabled: 1; /* enabled? */
|
|
unsigned checked: 1; /* checked? */
|
|
unsigned checkable: 1; /* checkable? */
|
|
unsigned separator: 1; /* separator? */
|
|
struct s_mitem *child; /* pointer to submenu */
|
|
} MENU_ITEM;
|
|
|
|
typedef enum e_popup_alignment {
|
|
XVT_POPUP_CENTER,
|
|
XVT_POPUP_LEFT_ALIGN,
|
|
XVT_POPUP_RIGHT_ALIGN,
|
|
XVT_POPUP_OVER_ITEM
|
|
} XVT_POPUP_ALIGNMENT;
|
|
|
|
#define SZ_FNAME _MAX_FNAME
|
|
|
|
typedef struct { /* file specification */
|
|
DIRECTORY dir; /* directory */
|
|
char type[6]; /* file type/extension */
|
|
char name[SZ_FNAME]; /* filename */
|
|
char creator[6]; /* file creator */
|
|
} FILE_SPEC;
|
|
|
|
typedef struct
|
|
{
|
|
void* pr;
|
|
} PRINT_RCD;
|
|
|
|
typedef struct
|
|
{
|
|
short v, h;
|
|
} PNT;
|
|
|
|
typedef struct { char* str; long data; void* next; } SLIST_ITEM;
|
|
typedef SLIST_ITEM* SLIST_ELT;
|
|
|
|
typedef struct { SLIST_ELT head; long count; } xvtList;
|
|
typedef xvtList* SLIST;
|
|
|
|
typedef enum { /* drawing (transfer) mode */
|
|
M_COPY,
|
|
M_OR,
|
|
M_XOR,
|
|
M_CLEAR,
|
|
M_NOT_COPY,
|
|
M_NOT_OR,
|
|
M_NOT_XOR,
|
|
M_NOT_CLEAR
|
|
} DRAW_MODE;
|
|
|
|
typedef enum e_pen_style { /* pen style */
|
|
P_SOLID, /* solid */
|
|
P_DOT, /* dotted line */
|
|
P_DASH /* dashed line */
|
|
} PEN_STYLE;
|
|
|
|
typedef enum {
|
|
PAT_NONE, /* no pattern */
|
|
PAT_HOLLOW, /* hollow */
|
|
PAT_SOLID, /* solid fill */
|
|
PAT_HORZ, /* horizontal lines */
|
|
PAT_VERT, /* vertical lines */
|
|
PAT_FDIAG, /* diagonal lines -- top-left to bottom-right */
|
|
PAT_BDIAG, /* diagonal lines -- top-right to bottom-left */
|
|
PAT_CROSS, /* horizontal and vertical crossing lines */
|
|
PAT_DIAGCROSS, /* diagonal crossing lines */
|
|
PAT_RUBBER, /* rubber banding */
|
|
PAT_SPECIAL
|
|
} PAT_STYLE;
|
|
|
|
typedef struct { /* color pen tool */
|
|
short width; /* width */
|
|
PAT_STYLE pat; /* pattern */
|
|
PEN_STYLE style; /* style */
|
|
COLOR color; /* color */
|
|
} CPEN;
|
|
|
|
typedef struct
|
|
{
|
|
PAT_STYLE pat;
|
|
COLOR color;
|
|
} CBRUSH;
|
|
|
|
typedef struct { /* color drawing tools */
|
|
CPEN pen; /* color pen */
|
|
CBRUSH brush; /* color brush */
|
|
DRAW_MODE mode; /* drawing mode */
|
|
COLOR fore_color; /* foreground color */
|
|
COLOR back_color; /* background color */
|
|
BOOLEAN opaque_text; /* is text opaque*/
|
|
} DRAW_CTOOLS;
|
|
|
|
typedef enum { /* scrollbar activity */
|
|
SC_NONE, /* nowhere (ignore) */
|
|
SC_LINE_UP, /* one line up */
|
|
SC_LINE_DOWN, /* one line down */
|
|
SC_PAGE_UP, /* previous page */
|
|
SC_PAGE_DOWN, /* next page */
|
|
SC_THUMB, /* thumb repositioning */
|
|
SC_THUMBTRACK /* thumb tracking */
|
|
} SCROLL_CONTROL;
|
|
|
|
typedef enum { /* type of window */
|
|
|
|
W_NONE, /* marker for end of WIN_DEF array */
|
|
W_DOC, /* document window */
|
|
W_PLAIN, /* window with plain border */
|
|
W_DBL, /* window with double border */
|
|
W_PRINT, /* XVT internal use only */
|
|
W_TASK, /* task window */
|
|
W_SCREEN, /* screen window */
|
|
W_NO_BORDER, /* no border */
|
|
W_PIXMAP, /* pixmap */
|
|
W_MODAL, /* modal window */
|
|
WD_MODAL, /* modal dialog */
|
|
WD_MODELESS, /* modeless dialog */
|
|
WC_PUSHBUTTON, /* button control */
|
|
WC_RADIOBUTTON, /* radio button control */
|
|
WC_CHECKBOX, /* check box control */
|
|
WC_HSCROLL, /* horizontal scrollbar control */
|
|
WC_VSCROLL, /* vertical scrollbar control */
|
|
//WC_EDIT, /* edit control */ commentato perche' rompe le scatole
|
|
WC_TEXT, /* static text control */
|
|
WC_LBOX, /* list box control */
|
|
WC_LISTBUTTON, /* button with list */
|
|
WC_CHECKBUTTON, /* check button control */
|
|
WC_LISTEDIT, /* edit with field list */
|
|
WC_GROUPBOX, /* group box */
|
|
WC_TEXTEDIT, /* text edit object */
|
|
WC_ICON, /* icon control */
|
|
WO_TE, /* text edit */
|
|
WC_HGAUGE, /* horizontal progress bar */
|
|
WC_VGAUGE, /* vertical progress bar */
|
|
WC_NOTEBK, /* notebook control */
|
|
WC_HTML, /* HTML control */
|
|
WC_TREE, /* tree view */
|
|
WC_OUTLOOKBAR, /* Barra di outlook */
|
|
WC_HSLIDER, /* horizontal slider control */
|
|
WC_VSLIDER, /* vertical slider control */
|
|
} WIN_TYPE;
|
|
|
|
typedef enum {
|
|
SEV_NONE,
|
|
SEV_WARNING,
|
|
SEV_ERROR,
|
|
SEV_FATAL,
|
|
} XVT_ERRSEV;
|
|
|
|
typedef enum { /* type of scrollbar */
|
|
|
|
HSCROLL, /* horizontal */
|
|
VSCROLL, /* vertical */
|
|
HVSCROLL, /* either */
|
|
HVGAUGE, /* progress bar */
|
|
HVSLIDER, /* slider */
|
|
|
|
} SCROLL_TYPE;
|
|
|
|
/* Treeview - Types */
|
|
|
|
typedef void * XVT_TREEVIEW_NODE;
|
|
|
|
typedef enum e_treeview_node_type {
|
|
XVT_TREEVIEW_NODE_TERMINAL, /* leaf - no children */
|
|
XVT_TREEVIEW_NODE_NONTERMINAL, /* branch - may have children */
|
|
XVT_ENUM_DUMMY26 = XVT_CC_ENUM_END
|
|
} XVT_TREEVIEW_NODE_TYPE;
|
|
|
|
typedef XVT_CALLCONV_TYPEDEF( BOOLEAN, XVT_TREEVIEW_CALLBACK,
|
|
(WINDOW ctl_win, XVT_TREEVIEW_NODE node) );
|
|
|
|
typedef struct s_ctlinfo {
|
|
|
|
WIN_TYPE type;
|
|
WINDOW win;
|
|
union {
|
|
|
|
struct s_scroll {
|
|
|
|
SCROLL_CONTROL what;
|
|
short pos;
|
|
|
|
} scroll;
|
|
struct s_edit {
|
|
|
|
BOOLEAN focus_change;
|
|
BOOLEAN active;
|
|
|
|
} edit;
|
|
struct s_lbox {
|
|
|
|
BOOLEAN dbl_click;
|
|
|
|
} lbox;
|
|
struct s_listedit {
|
|
|
|
BOOLEAN focus_change;
|
|
BOOLEAN active;
|
|
|
|
} listedit;
|
|
struct s_notebk {
|
|
|
|
WINDOW face;
|
|
short tab_no;
|
|
short page_no;
|
|
|
|
} notebk;
|
|
struct s_html {
|
|
|
|
int reserved; /* Reserved...no usage yet.*/
|
|
|
|
} html;
|
|
struct s_treeview {
|
|
|
|
XVT_TREEVIEW_NODE node; /* Node */
|
|
BOOLEAN sgl_click; /* Single click */
|
|
BOOLEAN dbl_click; /* Double click */
|
|
BOOLEAN expanded; /* Node was expanded */
|
|
BOOLEAN collapsed; /* Node was collapsed */
|
|
|
|
} treeview;
|
|
|
|
} v;
|
|
|
|
} CONTROL_INFO;
|
|
|
|
typedef struct s_xvt_color_component {
|
|
XVT_COLOR_TYPE type; /* color component being defined */
|
|
COLOR color; /* RGB color value */
|
|
} XVT_COLOR_COMPONENT;
|
|
|
|
typedef enum s_xvt_color_action {
|
|
XVT_COLOR_ACTION_SET,/* set the colors */
|
|
XVT_COLOR_ACTION_UNSET/* unset the colors */
|
|
} XVT_COLOR_ACTION;
|
|
|
|
typedef struct s_win_def {
|
|
|
|
WIN_TYPE wtype; /* WC_* or WO_* type */
|
|
|
|
RCT rct;
|
|
char *text;
|
|
UNIT_TYPE units;
|
|
XVT_COLOR_COMPONENT * ctlcolors;
|
|
union {
|
|
|
|
struct s_win_def_win { /* WINDOW's */
|
|
|
|
short int menu_rid; /* menu resource id */
|
|
MENU_ITEM *menu_p; /* pointer to menu tree */
|
|
long flags; /* WSF_* flags */
|
|
XVT_FNTID ctl_font_id; /* control font id */
|
|
|
|
} win;
|
|
|
|
struct s_win_def_dlg { /* DIALOG's */
|
|
|
|
long flags; /* WSF_* flags */
|
|
XVT_FNTID ctl_font_id; /* control font id */
|
|
|
|
} dlg;
|
|
|
|
struct s_win_def_ctl { /* CONTROL's */
|
|
|
|
short int ctrl_id;
|
|
|
|
short int icon_id; /* for icons only */
|
|
long flags; /* CTL_* flags */
|
|
XVT_FNTID font_id; /* logical font */
|
|
|
|
} ctl;
|
|
|
|
struct s_win_def_tx { /* text edit objects */
|
|
|
|
unsigned short attrib; /* TX_* flags */
|
|
XVT_FNTID font_id; /* logical font */
|
|
short margin; /* right margin */
|
|
short limit; /* max chars */
|
|
short int tx_id; /* text ID */
|
|
|
|
} tx;
|
|
|
|
} v;
|
|
|
|
} WIN_DEF;
|
|
|
|
typedef enum {
|
|
E_CREATE, /* creation */
|
|
E_DESTROY, /* destruction */
|
|
E_FOCUS, /* window focus gain/loss */
|
|
E_SIZE, /* resize */
|
|
E_UPDATE, /* update */
|
|
E_CLOSE, /* close window request */
|
|
E_MOUSE_DOWN, /* mouse down */
|
|
E_MOUSE_UP, /* mouse up */
|
|
E_MOUSE_MOVE, /* mouse move */
|
|
E_MOUSE_DBL, /* mouse double click */
|
|
E_CHAR, /* character typed */
|
|
E_VSCROLL, /* vert. window scrollbar activity */
|
|
E_HSCROLL, /* horz. window scrollbar activity */
|
|
E_COMMAND, /* menu command */
|
|
E_FONT, /* font menu selection */
|
|
E_CONTROL, /* control activity */
|
|
E_TIMER, /* timer */
|
|
E_QUIT, /* application shutdown request */
|
|
E_HELP, /* help invoked */
|
|
E_USER, /* user defined */
|
|
} EVENT_TYPE;
|
|
|
|
typedef struct s_event {
|
|
|
|
EVENT_TYPE type;
|
|
union {
|
|
|
|
struct s_mouse {
|
|
|
|
PNT where;
|
|
BOOLEAN shift;
|
|
BOOLEAN control;
|
|
short button;
|
|
|
|
} mouse;
|
|
struct s_char {
|
|
|
|
XVT_WCHAR ch;
|
|
BOOLEAN shift;
|
|
BOOLEAN control;
|
|
BOOLEAN virtual_key;
|
|
unsigned long modifiers;
|
|
|
|
} chr;
|
|
BOOLEAN active;
|
|
BOOLEAN query;
|
|
struct s_scroll_info {
|
|
|
|
SCROLL_CONTROL what;
|
|
short pos;
|
|
|
|
} scroll;
|
|
struct s_cmd {
|
|
|
|
MENU_TAG tag;
|
|
BOOLEAN shift;
|
|
BOOLEAN control;
|
|
|
|
} cmd;
|
|
struct s_size {
|
|
|
|
short height;
|
|
short width;
|
|
|
|
} size;
|
|
struct s_efont {
|
|
|
|
XVT_FNTID font_id;
|
|
|
|
} font;
|
|
struct s_ctl {
|
|
|
|
short id;
|
|
CONTROL_INFO ci;
|
|
|
|
} ctl;
|
|
struct s_update {
|
|
|
|
RCT rct;
|
|
|
|
} update;
|
|
struct s_timer {
|
|
|
|
long id;
|
|
|
|
} timer;
|
|
struct s_user {
|
|
|
|
long id;
|
|
void *ptr;
|
|
|
|
} user;
|
|
struct s_help {
|
|
|
|
WINDOW obj;
|
|
MENU_TAG tag;
|
|
XVT_HELP_TID tid;
|
|
|
|
}help;
|
|
|
|
} v;
|
|
|
|
} EVENT;
|
|
|
|
typedef unsigned long EVENT_MASK;
|
|
typedef long (* EVENT_HANDLER) (WINDOW win, EVENT *ep);
|
|
typedef BOOLEAN (* XVT_ERRMSG_HANDLER) (XVT_ERRMSG err, DATA_PTR context);
|
|
typedef BOOLEAN (* XVT_ENUM_CHILDREN)(WINDOW child, long data);
|
|
|
|
typedef enum { /* std. clipboard format */
|
|
CB_TEXT, /* ASCII text */
|
|
CB_PICT, /* encapsulated picture */
|
|
CB_APPL /* app's own (must have name) */
|
|
} CB_FORMAT;
|
|
|
|
typedef struct s_xvt_config
|
|
{
|
|
short menu_bar_ID; /* task menubar ResID */
|
|
short about_box_ID; /* default aboutbox ResID */
|
|
const char* base_appl_name; /* application's "filename" */
|
|
const char* appl_name; /* application's name */
|
|
const char* taskwin_title; /* title for task window */
|
|
} XVT_CONFIG;
|