home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
wpentk.zip
/
WBPENTK1.DSK
/
SKETSAMP.H
< prev
next >
Wrap
Text File
|
1994-10-06
|
17KB
|
301 lines
/*****************************************************************************/
/* */
/* File Name : SKETSAMP.H */
/* */
/* Description : Sample Program for SKETCH Controls */
/* Copyright (C) 1993 IBM Corporation */
/* */
/* DISCLAIMER OF WARRANTIES. The following [enclosed] code is */
/* sample code created by IBM Corporation. This sample code is not */
/* part of any standard or IBM product and is provided to you solely */
/* for the purpose of assisting you in the development of your */
/* applications. The code is provided "AS IS", without */
/* warranty of any kind. IBM shall not be liable for any damages */
/* arising out of your use of the sample code, even if they have been */
/* advised of the possibility of such damages. */
/* */
/*****************************************************************************/
#define ID_MAIN 1000 /* main window */
/***************/
/* Dialog ID's */
/***************/
#define IDC_SELECT 501 /* Pushbutton to Select Control*/
#define IDC_SKETCH 502
#define IDC_SKETCH_HELP 503
#define IDC_CANCEL 504
#define MESSAGE_MAX 40 /* Maximum length of a Control Message */
#define MAXTEXTLEN 75 /* Maximum length for text. */
/****************************/
/* Draw Pointer ID's */
/****************************/
#define PTR_PEN 202
/************************************************/
/* List Box ID's - Control Message Selection */
/************************************************/
#define IDD_SELECTCONTROL 525
#define IDC_SELECTBOX 526
#define IDC_MESSAGE_HELP 527
/************************************************/
/* Dlg Box ID's - Color Selection */
/************************************************/
#define IDD_COLORSELECTION 535
#define IDC_WHITE 536
#define IDC_BLACK 537
#define IDC_BLUE 538
#define IDC_RED 539
#define IDC_PINK 540
#define IDC_GREEN 541
#define IDC_CYAN 542
#define IDC_YELLOW 543
#define IDC_DARKGRAY 544
#define IDC_DARKBLUE 545
#define IDC_DARKRED 546
#define IDC_DARKPINK 547
#define IDC_DARKGREEN 548
#define IDC_DARKCYAN 549
#define IDC_BROWN 550
#define IDC_PALEGRAY 551
/**************************************************/
/* Dlg Box ID's - Visible/Invisible Selection */
/**************************************************/
#define IDD_VISIBLE 560
#define IDC_VISIBLE 561
#define IDC_INVISIBLE 562
/*************************************************/
/* Dlg Box ID's - Stroke Number Selection */
/*************************************************/
#define IDD_GETSTROKENUMBER 563
#define IDC_STROKETEXT 564
#define IDC_STROKEINPUT 565
/************************************************/
/* Dlg Box ID's - Stroke Width Selection */
/************************************************/
#define IDD_GETWIDTH 566
#define IDC_WIDTHTEXT 567
#define IDC_WIDTHINPUT 568
/**************************************************/
/* Dlg Box ID's - Auxiliary Data Selection */
/**************************************************/
#define IDD_AUX 570
#define IDC_ALLAUX 571
#define IDC_NONEAUX 572
#define IDC_AUX_HELP 573
/************************************************/
/* Dlg Box ID's - Display Stroke Info */
/************************************************/
#define IDD_STROKE_INFO 575
#define IDC_STROKE_NUMBER 576
#define IDC_STROKE_NUMBER_DATA 577
#define IDC_STROKE_COLOR 578
#define IDC_STROKE_COLOR_DATA 579
#define IDC_STROKE_WIDTH 580
#define IDC_STROKE_WIDTH_DATA 581
#define IDC_TIMESTAMP 582
#define IDC_TIMESTAMP_DATA 583
#define IDC_STRUCT_SIZE 584
#define IDC_STRUCT_SIZE_DATA 585
#define IDC_SOURCE 586
#define IDC_SOURCE_DATA 587
#define IDC_RESOLUTION 588
#define IDC_RESOLUTION_DATA 589
#define IDC_SAMPLE_RATE 590
#define IDC_SAMPLE_RATE_DATA 591
#define IDC_NUMPOINTS 592
#define IDC_NUMPOINTS_DATA 593
/****************************/
/* Message Box ID */
/****************************/
#define IDD_MSGBOX 600
/*********************************************/
/* Test Messagetable Ids */
/*********************************************/
#define IDMSG_SHOWINFO 700 /* Information Message */
#define IDMSG_INK_COLOR_QUERY 701 /* The INK color is %s. */
#define IDMSG_INK_COLOR_SET 702 /* The INK color has been set to %s. */
#define IDMSG_INK_WIDTH_QUERY 703 /* The INK width is %s. */
#define IDMSG_INK_WIDTH_SET 704 /* The INK width has been set to %s. */
#define IDMSG_DISPLAY_MODE 705 /* The display mode is %s. */
#define IDMSG_DRAWPOINTER_QUERY 706 /* The drawing pointer is %s." */
#define IDMSG_DRAWPOINTER_SET 707 /* Set Drawing Pointer:%s" */
#define IDMSG_INK_COLOR_CHANGE 708 /* COLOR CHANGE NOTIFICATION: Ink color changed to %s! */
#define IDMSG_INK_WIDTH_CHANGE 709 /* WIDTH CHANGE NOTIFICATION: Ink width changed to %s! */
#define IDMSG_NOTHING_CLEAR 710 /* No Strokes in Database to clear! */
#define IDMSG_NOTHING_UNDO 711 /* No Strokes in Database to undo! */
#define IDMSG_STROKE_COUNT 712 /* Database Stroke Count = %s. */
#define IDMSG_AUX_ALL_SET 714 /* Subsequent strokes will retrieve auxiliary data. */
#define IDMSG_AUX_NONE_SET 715 /* Subsequent strokes will NOT retrieve auxiliary data. */
#define IDMSG_BMP_SAVED_OK 716 /* Bitmap Saved to file %s!" */
#define IDMSG_BITMAP_SIZE_QUERY 717 /* Bitmap Size:%s" */
#define IDMSG_STROKE_COLOR_QUERY 718 /* Query Stroke Color:%s" */
#define IDMSG_STROKE_COLOR_SET 719 /* Set Stroke Color:%s */
#define IDMSG_STROKE_WIDTH_QUERY 720 /* Query Stroke Width:%s" */
#define IDMSG_STROKE_WIDTH_SET 721 /* Set Stroke Width:%s */
#define IDMSG_STROKE_LENGTH_QUERY 722 /* Query Stroke Length:%s" */
#define IDMSG_ALL_STROKES_CLEARED 723 /* All Strokes Cleared! */
#define IDMSG_LAST_STROKE_CLEARED 724 /* Last Stroke Cleared! */
#define IDMSG_SHOWWARNING 740 /* Warning Message */
#define IDMSG_STROKE_ADD 741 /* STROKE ADD NOTIFICATION: Press OK to add stroke #%s to the database. */
#define IDMSG_STROKE_UNDO 742 /* STROKE UNDO NOTIFICATION: Press OK to delete stroke #%s from the database.*/
#define IDMSG_STROKE_CLEAR 743 /* STROKE CLEAR NOTIFICATION: Press OK to clear all(%s) strokes. */
#define IDMSG_BITMAP_HANDLE_SAVE 744 /* Bitmap Handle = %sPress OK to save the bitmap to a file.*/
#define IDMSG_BITMAP_REALLY_SAVE 745 /* File %s already exists and WILL BE ERASED! */
#define IDMSG_SHOWERROR 750 /* Error Message */
#define IDMSG_MESSAGE_FAIL 751 /* %s FAILED. */
#define IDMSG_NO_PEN_RUNNING 752 /* Pen for OS/2 is not running. */
#define IDMSG_NO_HELP 753 /* Missing HELP. */
#define IDMSG_MEMORY_ERROR 754 /* Memory Failure - Bitmap cannot be saved. */
#define IDMSG_FILE_ERROR 755 /* File Error - Bitmap cannot be saved. */
#define IDMSG_MEMORY_FAIL_GETSTROKE 756 /* Memory Fail during Stroke #%s retrieve! */
#define IDMSG_INK_WIDTH_SET_FAIL 757 /* FAIL! Width can only be set to 1 or 2 pels. */
#define IDMSG_STROKE_INVALID 758 /* Stroke #%s is invalid! */
/*********************************************/
/* Help IDs */
/*********************************************/
#define SKETCH_HELPTABLE 800
#define DLG_CHOOSE_HELPSUBTABLE 801
#define SKETCH_HELPSUBTABLE 802
#define DLG_CHOOSE_AUXSUBTABLE 803
#define PANEL_SKETCH 804 /* F1 or Help button pressed at Sketch Window */
#define PANEL_MESSAGE 805 /* F1 pressed at Select Window */
#define PANEL_AUX 806 /* F1 pressed at Choose Aux */
#define PANEL_SKM_DELETE_ALL_STROKES 815 /* Help button pressed at SKM_DELETE_ALL_STROKES */
#define PANEL_SKM_UNDO_LAST_STROKE 816 /* Help button pressed at SKM_UNDO__LAST_STROKE */
#define PANEL_SKM_QUERY_CTL_DRAW_POINTER 817 /* Help button pressed at SKM_QUERY_CTL_DRAW_POINTER */
#define PANEL_SKM_QUERY_CTL_INK_WIDTH 818 /* Help button pressed at SKM_QUERY_CTL_INK_WIDTH */
#define PANEL_SKM_QUERY_CTL_INK_COLOR 819 /* Help button pressed at SKM_QUERY_CTL_INK_COLOR */
#define PANEL_SKM_QUERY_CTL_INVISIBLE_MODE 820
#define PANEL_SKM_SET_CTL_DRAW_POINTER 821
#define PANEL_SKM_SET_CTL_INK_WIDTH 822
#define PANEL_SKM_SET_CTL_INK_COLOR 823
#define PANEL_SKM_SET_CTL_INVISIBLE_MODE 824
#define PANEL_SKM_RENDER_TO_CLIPBOARD 825
#define PANEL_SKM_QUERY_CTL_STROKE_COUNT 826
#define PANEL_SKM_SET_STROKE_INK_COLOR 827
#define PANEL_SKM_SET_STROKE_INK_WIDTH 828
#define PANEL_SKN_INK_COLOR_CHANGE 829
#define PANEL_SKN_STROKE_ADD 830
#define PANEL_SKN_STROKE_UNDO 831
#define PANEL_SKN_CONTROL_CLEARED 832
#define PANEL_SKM_SET_CTL_AUXDATA_MODE 833
#define PANEL_SKN_INK_WIDTH_CHANGE 834
#define PANEL_SKM_GET_BITMAP 835
#define PANEL_SKM_QUERY_BITMAP_SIZE 836
#define PANEL_SKM_QUERY_STROKE_LENGTH 837
#define PANEL_SKM_QUERY_STROKE_DATA 838
#define PANEL_SKM_QUERY_STROKE_INK_COLOR 839
#define PANEL_SKM_QUERY_STROKE_INK_WIDTH 840
MRESULT EXPENTRY ClientWndProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 );
MRESULT EXPENTRY ChooseControlProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2 );
MRESULT EXPENTRY ColorDlgProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2 );
MRESULT EXPENTRY VisibleDlgProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2 );
MRESULT EXPENTRY AllNoneAuxDlgProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2 );
MRESULT EXPENTRY GetStrokeNumberProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2 );
MRESULT EXPENTRY WidthDlgProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2 );
MRESULT EXPENTRY DisplayStrokeInfoDlgProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2 );
int main( VOID );
VOID ExecuteControlMessage(LONG lMessageValue, PSZ pszChosenItem, HWND hwnd);
VOID GetColorString(LONG ColNum, PSZ szColor);
USHORT ShowMessageBox(HWND hwnd, USHORT idMsg, PSZ szExtendedMessage);
VOID InitHelp(VOID);
VOID SaveBmpInFile(HWND hwndDlg, HBITMAP hBitmap);
VOID CreateControls(HWND hwnd);
/*************************/
/* Global Variables */
/*************************/
HWND hwndFrame; /* window handle */
HAB hab; /* anchor block handle */
HWND hSKETCHControl; /* Sketch Window */
HWND hSELECTButton;
HWND hCANCELButton;
HWND hHELPButton;
HWND hwndSelectDlg; /* Select Dialog handle */
HPOINTER hptrt1; /* Black Pen Drawing Pointer */
HPOINTER hpDefault; /* Default Sketch Control Drawing Pointer */
CHAR szMessageBoxString[240]; /* Complete message to user */
BOOL bLookAtNotification; /* flag to verify that a notification message was received */
/* TRUE if want to display message showing that notification was received */
BOOL bWindowsCreated; /* TRUE if successfully create sketch control, and action buttons */
HWND hwndHelp;
USHORT usAux = FALSE; /* TRUE if want all Aux data */
PSKETCHSTROKEDEF pStrokeData = NULL; /* Stroke Data Structure */
/**********************************************************/
/* Select Control Listbox, Execution and Help Information */
/**********************************************************/
struct MessageData
{
PSZ pszMessageName; /* Control Message Name String */
LONG lMessageValue; /* Control Message Value */
ULONG ulMessageHelpValue; /* Control Message Help */
};
struct MessageData MessageList[27] = {
{"SKM_DELETE_ALL_STROKES", SKM_DELETE_ALL_STROKES, PANEL_SKM_DELETE_ALL_STROKES },
{"SKM_UNDO_LAST_STROKE", SKM_UNDO_LAST_STROKE, PANEL_SKM_UNDO_LAST_STROKE },
{"SKM_QUERY_CTL_DRAW_POINTER", SKM_QUERY_CTL_DRAW_POINTER, PANEL_SKM_QUERY_CTL_DRAW_POINTER },
{"SKM_SET_CTL_DRAW_POINTER", SKM_SET_CTL_DRAW_POINTER, PANEL_SKM_SET_CTL_DRAW_POINTER },
{"SKM_QUERY_CTL_INK_WIDTH", SKM_QUERY_CTL_INK_WIDTH, PANEL_SKM_QUERY_CTL_INK_WIDTH },
{"SKM_SET_CTL_INK_WIDTH", SKM_SET_CTL_INK_WIDTH, PANEL_SKM_SET_CTL_INK_WIDTH },
{"SKM_QUERY_CTL_INK_COLOR", SKM_QUERY_CTL_INK_COLOR, PANEL_SKM_QUERY_CTL_INK_COLOR },
{"SKM_SET_CTL_INK_COLOR", SKM_SET_CTL_INK_COLOR, PANEL_SKM_SET_CTL_INK_COLOR },
{"SKM_QUERY_CTL_INVISIBLE_MODE",SKM_QUERY_CTL_INVISIBLE_MODE, PANEL_SKM_QUERY_CTL_INVISIBLE_MODE},
{"SKM_SET_CTL_INVISIBLE_MODE", SKM_SET_CTL_INVISIBLE_MODE, PANEL_SKM_SET_CTL_INVISIBLE_MODE },
{"SKM_QUERY_STROKE_INK_COLOR", SKM_QUERY_STROKE_INK_COLOR, PANEL_SKM_QUERY_STROKE_INK_COLOR },
{"SKM_SET_STROKE_INK_COLOR", SKM_SET_STROKE_INK_COLOR, PANEL_SKM_SET_STROKE_INK_COLOR },
{"SKM_QUERY_STROKE_INK_WIDTH", SKM_QUERY_STROKE_INK_WIDTH, PANEL_SKM_QUERY_STROKE_INK_WIDTH },
{"SKM_SET_STROKE_INK_WIDTH", SKM_SET_STROKE_INK_WIDTH, PANEL_SKM_SET_STROKE_INK_WIDTH },
{"SKM_QUERY_STROKE_LENGTH", SKM_QUERY_STROKE_LENGTH, PANEL_SKM_QUERY_STROKE_LENGTH },
{"SKM_QUERY_STROKE_DATA", SKM_QUERY_STROKE_DATA, PANEL_SKM_QUERY_STROKE_DATA },
{"SKM_QUERY_CTL_STROKE_COUNT", SKM_QUERY_CTL_STROKE_COUNT, PANEL_SKM_QUERY_CTL_STROKE_COUNT },
{"SKM_GET_BITMAP", SKM_GET_BITMAP, PANEL_SKM_GET_BITMAP },
{"SKM_QUERY_BITMAP_SIZE", SKM_QUERY_BITMAP_SIZE, PANEL_SKM_QUERY_BITMAP_SIZE },
{"SKM_SET_CTL_AUXDATA_MODE", SKM_SET_CTL_AUXDATA_MODE, PANEL_SKM_SET_CTL_AUXDATA_MODE },
{"SKM_RENDER_TO_CLIPBOARD", SKM_RENDER_TO_CLIPBOARD, PANEL_SKM_RENDER_TO_CLIPBOARD },
{"SKN_INK_COLOR_CHANGE", SKN_INK_COLOR_CHANGE, PANEL_SKN_INK_COLOR_CHANGE },
{"SKN_INK_WIDTH_CHANGE", SKN_INK_WIDTH_CHANGE, PANEL_SKN_INK_WIDTH_CHANGE },
{"SKN_STROKE_ADD", SKN_STROKE_ADD, PANEL_SKN_STROKE_ADD },
{"SKN_STROKE_UNDO", SKN_STROKE_UNDO, PANEL_SKN_STROKE_UNDO },
{"SKN_CONTROL_CLEARED", SKN_CONTROL_CLEARED, PANEL_SKN_CONTROL_CLEARED },
{NULL, 0L, 0UL }
};