From b5e3f8cb0a19ec0672cd27c8df0f3393643aaf42 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 12 Aug 2015 13:59:08 +0200 Subject: Get rid of all the tabs. So annoying. --- Linux_C_12/Clean.h | 10 +- Linux_C_12/cCCallSystem_121.c | 20 +- Linux_C_12/cCCallWindows_121.c | 142 +- Linux_C_12/cCCallWindows_121.h | 4 +- Linux_C_12/cCrossCallClipboard_121.c | 42 +- Linux_C_12/cCrossCallFileSelectors_121.c | 274 +-- Linux_C_12/cCrossCallFont_121.c | 70 +- Linux_C_12/cCrossCallMenus_121.c | 336 ++-- Linux_C_12/cCrossCallPrinter_121.c | 128 +- Linux_C_12/cCrossCallProcedureTable_121.c | 180 +- Linux_C_12/cCrossCallProcedureTable_121.h | 6 +- Linux_C_12/cCrossCallWindows_121.c | 3040 ++++++++++++++--------------- Linux_C_12/cCrossCall_121.c | 702 +++---- Linux_C_12/cCrossCall_121.h | 14 +- Linux_C_12/cCrossCallxDI_121.c | 622 +++--- Linux_C_12/cTCP_121.c | 1092 +++++------ Linux_C_12/cTCP_121.h | 34 +- Linux_C_12/cdebug_121.c | 36 +- Linux_C_12/clean_types.h | 28 +- Linux_C_12/cpicture_121.h | 4 +- Linux_C_12/cprinter_121.c | 708 +++---- Linux_C_12/cprinter_121.h | 34 +- Linux_C_12/util_121.c | 2838 +++++++++++++-------------- 23 files changed, 5182 insertions(+), 5182 deletions(-) diff --git a/Linux_C_12/Clean.h b/Linux_C_12/Clean.h index 26513a0..f422e81 100644 --- a/Linux_C_12/Clean.h +++ b/Linux_C_12/Clean.h @@ -4,11 +4,11 @@ typedef struct clean_string *CleanString; /* a string in Clean is: - struct clean_string { - int clean_string_length; - char clean_string_characters[clean_string_length]; - }; - The string does not end with a '\0' ! + struct clean_string { + int clean_string_length; + char clean_string_characters[clean_string_length]; + }; + The string does not end with a '\0' ! */ /* CleanStringLength(clean_string) returns length of the clean_string in characters */ diff --git a/Linux_C_12/cCCallSystem_121.c b/Linux_C_12/cCCallSystem_121.c index cab13a8..fb890b3 100644 --- a/Linux_C_12/cCCallSystem_121.c +++ b/Linux_C_12/cCCallSystem_121.c @@ -1,12 +1,12 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Routines related to system handling that is not part of standard cross call handling. + About this module: + Routines related to system handling that is not part of standard cross call handling. ********************************************************************************************/ #include "cCCallSystem_121.h" #include @@ -92,14 +92,14 @@ void WinGetDate (OS ios, int *year, int *month, int *day, gettimeofday(&t,NULL); gmtime_r(&t.tv_sec,&theTime); - *year = 1900 + theTime.tm_year; - *month = 1 + theTime.tm_mon; - *day = theTime.tm_mday; + *year = 1900 + theTime.tm_year; + *month = 1 + theTime.tm_mon; + *day = theTime.tm_mday; /* Clean treats 1 == Weekend, 2 == Weekday */ - *weekday = ((theTime.tm_wday == 0) || (theTime.tm_wday == 6)) ? 1 : 2; + *weekday = ((theTime.tm_wday == 0) || (theTime.tm_wday == 6)) ? 1 : 2; printf("Date: %d-%d-%d\n",*month, *day, *year); - *oos = ios; + *oos = ios; } diff --git a/Linux_C_12/cCCallWindows_121.c b/Linux_C_12/cCCallWindows_121.c index b6d521e..526a68e 100644 --- a/Linux_C_12/cCCallWindows_121.c +++ b/Linux_C_12/cCCallWindows_121.c @@ -1,12 +1,12 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Routines related to window/dialog handling. + About this module: + Routines related to window/dialog handling. ********************************************************************************************/ #include "cCCallWindows_121.h" #include "cCrossCallWindows_121.h" @@ -14,7 +14,7 @@ OS WinInvalidateWindow (GtkWidget *widget, OS ios) { rprintf("WinInvalidateWindow\n"); - gtk_widget_queue_draw(widget); + gtk_widget_queue_draw(widget); return ios; } @@ -22,19 +22,19 @@ OS WinInvalidateRect (GtkWidget *widget, int left, int top, int right, int bottom, OS ios) { /* rprintf("WinInvalidateRect\n"); */ - gint temp; - GdkRectangle* rect = g_new(GdkRectangle,1); - if (top > bottom) { - temp = top; - top = bottom; - bottom = top; - } - rect->x = (gint)left; - rect->y = (gint)top; - rect->width = (gint)(right - left); - rect->height = (gint)(bottom - top); - gdk_window_invalidate_rect(GDK_WINDOW(widget),rect, 1); - /* FIXME: destroy the Rectangle here? */ + gint temp; + GdkRectangle* rect = g_new(GdkRectangle,1); + if (top > bottom) { + temp = top; + top = bottom; + bottom = top; + } + rect->x = (gint)left; + rect->y = (gint)top; + rect->width = (gint)(right - left); + rect->height = (gint)(bottom - top); + gdk_window_invalidate_rect(GDK_WINDOW(widget),rect, 1); + /* FIXME: destroy the Rectangle here? */ return ios; } @@ -52,96 +52,96 @@ OS WinValidateRgn (GtkWidget *widget, GdkRegion *region, OS ios) } /* Win(M/S)DIClientToOuterSizeDims returns the width and height needed to add/subtract - from the client/outer size to obtain the outer/client size. - These values must be the same as used by W95AdjustClean(M/S)DIWindowDimensions! + from the client/outer size to obtain the outer/client size. + These values must be the same as used by W95AdjustClean(M/S)DIWindowDimensions! */ void WinMDIClientToOuterSizeDims (int styleFlags, OS ios, int *dw, int *dh, OS* oos) { /* if ((styleFlags&WS_THICKFRAME) != 0) - { // resizable window - *dw = 2 * GetSystemMetrics (SM_CXSIZEFRAME); - *dh = 2 * GetSystemMetrics (SM_CYSIZEFRAME) + GetSystemMetrics (SM_CYCAPTION); - } else - { // fixed size window - *dw = 2 * GetSystemMetrics (SM_CXFIXEDFRAME); - *dh = 2 * GetSystemMetrics (SM_CYFIXEDFRAME) + GetSystemMetrics (SM_CYCAPTION); - } + { // resizable window + *dw = 2 * GetSystemMetrics (SM_CXSIZEFRAME); + *dh = 2 * GetSystemMetrics (SM_CYSIZEFRAME) + GetSystemMetrics (SM_CYCAPTION); + } else + { // fixed size window + *dw = 2 * GetSystemMetrics (SM_CXFIXEDFRAME); + *dh = 2 * GetSystemMetrics (SM_CYFIXEDFRAME) + GetSystemMetrics (SM_CYCAPTION); + } */ - *dw = 0; + *dw = 0; *dh = 0; - printf("WinMDIClientOuterSizeDims -> not implemented\n"); + printf("WinMDIClientOuterSizeDims -> not implemented\n"); *oos = ios; } void WinSDIClientToOuterSizeDims (int styleFlags, OS ios, int *dw, int *dh, OS *oos) { - *dw = 0; //2 * GetSystemMetrics (SM_CXSIZEFRAME); - *dh = 0; //2 * GetSystemMetrics (SM_CYSIZEFRAME) + GetSystemMetrics (SM_CYCAPTION); - printf("WinSDIClientOuterSizeDims -> not implemented\n"); + *dw = 0; //2 * GetSystemMetrics (SM_CXSIZEFRAME); + *dh = 0; //2 * GetSystemMetrics (SM_CYSIZEFRAME) + GetSystemMetrics (SM_CYCAPTION); + printf("WinSDIClientOuterSizeDims -> not implemented\n"); *oos = ios; } /* UpdateWindowScrollbars updates any window scrollbars and non-client area if present. - Uses the following access procedures to the GWL_STYLE of a windowhandle: - GetGWL_STYLE (hwnd) returns the GWL_STYLE value of hwnd; - WindowHasHScroll (hwnd) returns TRUE iff hwnd has a horizontal scrollbar; - WindowHasVScroll (hwnd) returns TRUE iff hwnd has a vertical scrollbar; + Uses the following access procedures to the GWL_STYLE of a windowhandle: + GetGWL_STYLE (hwnd) returns the GWL_STYLE value of hwnd; + WindowHasHScroll (hwnd) returns TRUE iff hwnd has a horizontal scrollbar; + WindowHasVScroll (hwnd) returns TRUE iff hwnd has a vertical scrollbar; */ void UpdateWindowScrollbars (GtkWidget *widget) { /* int w,h; - RECT rect; - - GetWindowRect (hwnd, &rect); - w = rect.right -rect.left; - h = rect.bottom-rect.top; - - if (WindowHasHScroll (hwnd)) - { - rect.left = 0; - rect.top = h-GetSystemMetrics (SM_CYHSCROLL); - rect.right = w; - rect.bottom = h; - InvalidateRect (hwnd,&rect,FALSE); - RedrawWindow (hwnd,&rect,NULL,RDW_FRAME | RDW_VALIDATE | RDW_UPDATENOW | RDW_NOCHILDREN); - ValidateRect (hwnd,&rect); - } - if (WindowHasVScroll (hwnd)) - { - rect.left = w-GetSystemMetrics (SM_CXVSCROLL); - rect.top = 0; - rect.right = w; - rect.bottom = h; - InvalidateRect (hwnd,&rect,FALSE); - RedrawWindow (hwnd,&rect,NULL,RDW_FRAME | RDW_VALIDATE | RDW_UPDATENOW | RDW_NOCHILDREN); - ValidateRect (hwnd,&rect); - } + RECT rect; + + GetWindowRect (hwnd, &rect); + w = rect.right -rect.left; + h = rect.bottom-rect.top; + + if (WindowHasHScroll (hwnd)) + { + rect.left = 0; + rect.top = h-GetSystemMetrics (SM_CYHSCROLL); + rect.right = w; + rect.bottom = h; + InvalidateRect (hwnd,&rect,FALSE); + RedrawWindow (hwnd,&rect,NULL,RDW_FRAME | RDW_VALIDATE | RDW_UPDATENOW | RDW_NOCHILDREN); + ValidateRect (hwnd,&rect); + } + if (WindowHasVScroll (hwnd)) + { + rect.left = w-GetSystemMetrics (SM_CXVSCROLL); + rect.top = 0; + rect.right = w; + rect.bottom = h; + InvalidateRect (hwnd,&rect,FALSE); + RedrawWindow (hwnd,&rect,NULL,RDW_FRAME | RDW_VALIDATE | RDW_UPDATENOW | RDW_NOCHILDREN); + ValidateRect (hwnd,&rect); + } */ - printf("UpdateWindowScrollbars -> not implemented\n"); + printf("UpdateWindowScrollbars -> not implemented\n"); } void WinScreenYSize (OS ios, int *py, OS *oos) { rprintf("WinScreenYSize\n"); - *py = gdk_screen_height(); + *py = gdk_screen_height(); *oos = ios; } void WinScreenXSize (OS ios, int *px, OS *oos) { rprintf("WinScreenXSize\n"); - *px = gdk_screen_width(); + *px = gdk_screen_width(); *oos = ios; } void WinMinimumWinSize (int *mx, int *my) { rprintf("WinMinimumWinSize\n"); - *mx = 48; - *my = 0; + *mx = 48; + *my = 0; } /* WinScrollbarSize determines system metrics of width and height of scrollbars. @@ -157,9 +157,9 @@ void WinScrollbarSize (OS ios, int *width, int *height, OS *oos) gtk_widget_size_request(vbar, &req); - *width = req.width; /* Width of the vertical arrow */ + *width = req.width; /* Width of the vertical arrow */ gtk_widget_size_request(hbar, &req); - *height = req.height; /* Height of the horizontal bar */ + *height = req.height; /* Height of the horizontal bar */ gtk_widget_destroy(vbar); gtk_widget_destroy(hbar); diff --git a/Linux_C_12/cCCallWindows_121.h b/Linux_C_12/cCCallWindows_121.h index 45823ab..25ae776 100644 --- a/Linux_C_12/cCCallWindows_121.h +++ b/Linux_C_12/cCCallWindows_121.h @@ -8,8 +8,8 @@ extern OS WinValidateRect (OSWindowPtr wnd, int left, int top, int right, extern OS WinValidateRgn (OSWindowPtr wnd, OSRgnHandle rgn, OS ios); /* Win(M/S)DIClientToOuterSizeDims returns the width and height needed to add/subtract - from the client/outer size to obtain the outer/client size. - These values must be the same as used by W95AdjustClean(M/S)DIWindowDimensions! + from the client/outer size to obtain the outer/client size. + These values must be the same as used by W95AdjustClean(M/S)DIWindowDimensions! */ extern void WinMDIClientToOuterSizeDims (int styleFlags, OS ios, int *dw, int *dh, OS *oos); extern void WinSDIClientToOuterSizeDims (int styleFlags, OS ios, int *dw, int *dh, OS *oos); diff --git a/Linux_C_12/cCrossCallClipboard_121.c b/Linux_C_12/cCrossCallClipboard_121.c index 014349b..0c092b7 100644 --- a/Linux_C_12/cCrossCallClipboard_121.c +++ b/Linux_C_12/cCrossCallClipboard_121.c @@ -1,12 +1,12 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Routines related to clipboard handling. + About this module: + Routines related to clipboard handling. ********************************************************************************************/ #include #include "cCrossCallClipboard_121.h" @@ -14,50 +14,50 @@ /* Cross call procedure implementations. - Eval corresponds with a CrossCallEntry generated by NewCrossCallEntry (nr,Eval). + Eval corresponds with a CrossCallEntry generated by NewCrossCallEntry (nr,Eval). */ void EvalCcRqCLIPBOARDHASTEXT (CrossCallInfo *pcci) /* no arguments; bool result. */ { printf("EvalCcRqCLIPBOARDHASTEXT\n"); - MakeReturn1Cci (pcci,(int) gtk_clipboard_wait_is_text_available(gtk_clipboard_get(GDK_NONE))); + MakeReturn1Cci (pcci,(int) gtk_clipboard_wait_is_text_available(gtk_clipboard_get(GDK_NONE))); } void EvalCcRqSETCLIPBOARDTEXT (CrossCallInfo *pcci) /* textptr; no result. */ { - const gchar *text = (const gchar *) pcci->p1; + const gchar *text = (const gchar *) pcci->p1; printf("EvalCcRqSETCLIPBOARDTEXT\n"); - gtk_clipboard_set_text (gtk_clipboard_get(GDK_NONE), + gtk_clipboard_set_text (gtk_clipboard_get(GDK_NONE), text, strlen(text)); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } void EvalCcRqGETCLIPBOARDTEXT (CrossCallInfo *pcci) /* no params; string result. */ { - gchar *text, *result; + gchar *text, *result; printf("EvalCcRqGETCLIPBOARDTEXT\n"); - text = gtk_clipboard_wait_for_text(gtk_clipboard_get(GDK_NONE)); - result = g_strdup(text); - g_free(text); + text = gtk_clipboard_wait_for_text(gtk_clipboard_get(GDK_NONE)); + result = g_strdup(text); + g_free(text); - MakeReturn1Cci (pcci, (int64_t) result); + MakeReturn1Cci (pcci, (int64_t) result); } /* Install the cross call procedures in the gCrossCallProcedureTable of cCrossCall_121. */ OS InstallCrossCallClipboard (OS ios) { - CrossCallProcedureTable newTable; + CrossCallProcedureTable newTable; printf("InstallCrossCallClipboard\n"); - newTable = EmptyCrossCallProcedureTable (); - AddCrossCallEntry (newTable, CcRqCLIPBOARDHASTEXT, EvalCcRqCLIPBOARDHASTEXT); - AddCrossCallEntry (newTable, CcRqSETCLIPBOARDTEXT, EvalCcRqSETCLIPBOARDTEXT); - AddCrossCallEntry (newTable, CcRqGETCLIPBOARDTEXT, EvalCcRqGETCLIPBOARDTEXT); - AddCrossCallEntries (gCrossCallProcedureTable, newTable); + newTable = EmptyCrossCallProcedureTable (); + AddCrossCallEntry (newTable, CcRqCLIPBOARDHASTEXT, EvalCcRqCLIPBOARDHASTEXT); + AddCrossCallEntry (newTable, CcRqSETCLIPBOARDTEXT, EvalCcRqSETCLIPBOARDTEXT); + AddCrossCallEntry (newTable, CcRqGETCLIPBOARDTEXT, EvalCcRqGETCLIPBOARDTEXT); + AddCrossCallEntries (gCrossCallProcedureTable, newTable); return ios; } diff --git a/Linux_C_12/cCrossCallFileSelectors_121.c b/Linux_C_12/cCrossCallFileSelectors_121.c index ff06bc0..c7f0009 100644 --- a/Linux_C_12/cCrossCallFileSelectors_121.c +++ b/Linux_C_12/cCrossCallFileSelectors_121.c @@ -1,12 +1,12 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Routines related to standard file selector dialogues. + About this module: + Routines related to standard file selector dialogues. ********************************************************************************************/ #include "cCrossCallFileSelectors_121.h" #include "util_121.h" @@ -16,143 +16,143 @@ extern GtkWidget *gActiveTopLevelWindow; void EvalCcRqDIRECTORYDIALOG (CrossCallInfo *pcci) /* no params; bool, textptr result; */ { - GtkWidget *file_selector; + GtkWidget *file_selector; printf("EvalCcRqDIRECTORYDIALOG\n"); - file_selector = gtk_file_selection_new("Select directory"); - - if (gActiveTopLevelWindow) - { - gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gActiveTopLevelWindow)); - } - - for (;;) - { - if (gtk_dialog_run(GTK_DIALOG(file_selector)) == GTK_RESPONSE_OK) - { - gchar *file_name; - G_CONST_RETURN gchar *fname = gtk_file_selection_get_filename(GTK_FILE_SELECTION(file_selector)); - if (!g_file_test(fname, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR)) - { - GtkWidget *dialog = - gtk_message_dialog_new (GTK_WINDOW(file_selector), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, - "%s directory not found", - fname); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); - continue; - } - - file_name = g_strdup(fname); - gtk_widget_destroy(file_selector); - MakeReturn2Cci(pcci, gtk_true(), (int64_t) file_name); - return; - } - else - { - gtk_widget_destroy(file_selector); - MakeReturn2Cci(pcci, gtk_false(), (int64_t) NULL); - return; - } - } + file_selector = gtk_file_selection_new("Select directory"); + + if (gActiveTopLevelWindow) + { + gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gActiveTopLevelWindow)); + } + + for (;;) + { + if (gtk_dialog_run(GTK_DIALOG(file_selector)) == GTK_RESPONSE_OK) + { + gchar *file_name; + G_CONST_RETURN gchar *fname = gtk_file_selection_get_filename(GTK_FILE_SELECTION(file_selector)); + if (!g_file_test(fname, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR)) + { + GtkWidget *dialog = + gtk_message_dialog_new (GTK_WINDOW(file_selector), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + "%s directory not found", + fname); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + continue; + } + + file_name = g_strdup(fname); + gtk_widget_destroy(file_selector); + MakeReturn2Cci(pcci, gtk_true(), (int64_t) file_name); + return; + } + else + { + gtk_widget_destroy(file_selector); + MakeReturn2Cci(pcci, gtk_false(), (int64_t) NULL); + return; + } + } } void EvalCcRqFILEOPENDIALOG (CrossCallInfo *pcci) /* no params; bool, textptr result; */ { - GtkWidget *file_selector; + GtkWidget *file_selector; printf("EvalCcFILEOPENDIALOG\n"); - file_selector = gtk_file_selection_new("Open"); - - if (gActiveTopLevelWindow) - { - gtk_widget_set_parent(file_selector, gActiveTopLevelWindow); - gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gActiveTopLevelWindow)); - } - - for (;;) - { - if (gtk_dialog_run(GTK_DIALOG(file_selector)) == GTK_RESPONSE_OK) - { - gchar *file_name; - G_CONST_RETURN gchar *fname = gtk_file_selection_get_filename(GTK_FILE_SELECTION(file_selector)); - if (!g_file_test(fname, G_FILE_TEST_EXISTS)) - { - GtkWidget *dialog = - gtk_message_dialog_new (GTK_WINDOW(file_selector), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, - "%s file not found", - fname); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); - continue; - } - - file_name = g_strdup(fname); - gtk_widget_destroy(file_selector); - MakeReturn2Cci(pcci, gtk_true(), (int64_t) file_name); - return; - } - else - { - gtk_widget_destroy(file_selector); - MakeReturn2Cci(pcci, gtk_false(), (int64_t) NULL); - return; - } - } + file_selector = gtk_file_selection_new("Open"); + + if (gActiveTopLevelWindow) + { + gtk_widget_set_parent(file_selector, gActiveTopLevelWindow); + gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gActiveTopLevelWindow)); + } + + for (;;) + { + if (gtk_dialog_run(GTK_DIALOG(file_selector)) == GTK_RESPONSE_OK) + { + gchar *file_name; + G_CONST_RETURN gchar *fname = gtk_file_selection_get_filename(GTK_FILE_SELECTION(file_selector)); + if (!g_file_test(fname, G_FILE_TEST_EXISTS)) + { + GtkWidget *dialog = + gtk_message_dialog_new (GTK_WINDOW(file_selector), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + "%s file not found", + fname); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + continue; + } + + file_name = g_strdup(fname); + gtk_widget_destroy(file_selector); + MakeReturn2Cci(pcci, gtk_true(), (int64_t) file_name); + return; + } + else + { + gtk_widget_destroy(file_selector); + MakeReturn2Cci(pcci, gtk_false(), (int64_t) NULL); + return; + } + } } void EvalCcRqFILESAVEDIALOG (CrossCallInfo *pcci) /* promptptr, nameptr; bool, textptr result; */ { - GtkWidget *file_selector; + GtkWidget *file_selector; printf("EvalCcFILESAVEDDIALOG\n"); - file_selector = gtk_file_selection_new((gchar *) pcci->p1); - - if (gActiveTopLevelWindow) - { - gtk_widget_set_parent(file_selector, gActiveTopLevelWindow); - gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gActiveTopLevelWindow)); - } - - gtk_file_selection_set_filename((GtkFileSelection*) file_selector, (gchar *) pcci->p2); - - for (;;) - { - if (gtk_dialog_run(GTK_DIALOG(file_selector)) == GTK_RESPONSE_OK) - { - gchar *file_name; - G_CONST_RETURN gchar *fname = gtk_file_selection_get_filename(GTK_FILE_SELECTION(file_selector)); - if (g_file_test(fname, G_FILE_TEST_EXISTS)) - { - gint res; - GtkWidget *dialog = - gtk_message_dialog_new (GTK_WINDOW(file_selector), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_WARNING, - GTK_BUTTONS_YES_NO, - "%s already exists. Do you want to replace id?", - fname); - res = gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); - - if (res == GTK_RESPONSE_NO) continue; - } - - file_name = g_strdup(fname); - gtk_widget_destroy(file_selector); - MakeReturn2Cci(pcci, gtk_true(), (int64_t) file_name); - return; - } - else - { - gtk_widget_destroy(file_selector); - MakeReturn2Cci(pcci, gtk_false(), (int64_t) NULL); - return; - } - } + file_selector = gtk_file_selection_new((gchar *) pcci->p1); + + if (gActiveTopLevelWindow) + { + gtk_widget_set_parent(file_selector, gActiveTopLevelWindow); + gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gActiveTopLevelWindow)); + } + + gtk_file_selection_set_filename((GtkFileSelection*) file_selector, (gchar *) pcci->p2); + + for (;;) + { + if (gtk_dialog_run(GTK_DIALOG(file_selector)) == GTK_RESPONSE_OK) + { + gchar *file_name; + G_CONST_RETURN gchar *fname = gtk_file_selection_get_filename(GTK_FILE_SELECTION(file_selector)); + if (g_file_test(fname, G_FILE_TEST_EXISTS)) + { + gint res; + GtkWidget *dialog = + gtk_message_dialog_new (GTK_WINDOW(file_selector), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_YES_NO, + "%s already exists. Do you want to replace id?", + fname); + res = gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + + if (res == GTK_RESPONSE_NO) continue; + } + + file_name = g_strdup(fname); + gtk_widget_destroy(file_selector); + MakeReturn2Cci(pcci, gtk_true(), (int64_t) file_name); + return; + } + else + { + gtk_widget_destroy(file_selector); + MakeReturn2Cci(pcci, gtk_false(), (int64_t) NULL); + return; + } + } } @@ -160,14 +160,14 @@ void EvalCcRqFILESAVEDIALOG (CrossCallInfo *pcci) /* promptptr, nameptr; bool, */ OS InstallCrossCallFileSelectors(OS ios) { - CrossCallProcedureTable newTable; + CrossCallProcedureTable newTable; printf("InstallCrossCallFileSelectors\n"); - newTable = EmptyCrossCallProcedureTable (); - AddCrossCallEntry (newTable, CcRqDIRECTORYDIALOG,EvalCcRqDIRECTORYDIALOG); - AddCrossCallEntry (newTable, CcRqFILEOPENDIALOG, EvalCcRqFILEOPENDIALOG); - AddCrossCallEntry (newTable, CcRqFILESAVEDIALOG, EvalCcRqFILESAVEDIALOG); - AddCrossCallEntries (gCrossCallProcedureTable, newTable); + newTable = EmptyCrossCallProcedureTable (); + AddCrossCallEntry (newTable, CcRqDIRECTORYDIALOG,EvalCcRqDIRECTORYDIALOG); + AddCrossCallEntry (newTable, CcRqFILEOPENDIALOG, EvalCcRqFILEOPENDIALOG); + AddCrossCallEntry (newTable, CcRqFILESAVEDIALOG, EvalCcRqFILESAVEDIALOG); + AddCrossCallEntries (gCrossCallProcedureTable, newTable); return ios; } diff --git a/Linux_C_12/cCrossCallFont_121.c b/Linux_C_12/cCrossCallFont_121.c index c0e1cd3..57e367f 100644 --- a/Linux_C_12/cCrossCallFont_121.c +++ b/Linux_C_12/cCrossCallFont_121.c @@ -1,12 +1,12 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Routines related to font handling. + About this module: + Routines related to font handling. ********************************************************************************************/ #include "cCrossCallFont_121.h" #include "cCrossCall_121.h" @@ -14,43 +14,43 @@ /* static int CALLBACK EnumFontNameProc (ENUMLOGFONT FAR * lpelf, // pointer to logical-font data - NEWTEXTMETRIC FAR * lpntm, // pointer to physical-font data - int fontType, // type of font - LPARAM lParam // address of application-defined data - ) + NEWTEXTMETRIC FAR * lpntm, // pointer to physical-font data + int fontType, // type of font + LPARAM lParam // address of application-defined data + ) { - SendMessage1ToClean (CcCbFONTNAME, lpelf->elfLogFont.lfFaceName); + SendMessage1ToClean (CcCbFONTNAME, lpelf->elfLogFont.lfFaceName); - return 1; + return 1; } static int CALLBACK EnumFontSizeProc (ENUMLOGFONT FAR * lpelf, // pointer to logical-font data - NEWTEXTMETRIC FAR * lpntm, // pointer to physical-font data - int fontType, // type of font - LPARAM lParam // address of application-defined data - ) + NEWTEXTMETRIC FAR * lpntm, // pointer to physical-font data + int fontType, // type of font + LPARAM lParam // address of application-defined data + ) { - SendMessage2ToClean (CcCbFONTSIZE,lpntm->tmHeight - lpntm->tmInternalLeading, fontType == TRUETYPE_FONTTYPE); + SendMessage2ToClean (CcCbFONTSIZE,lpntm->tmHeight - lpntm->tmInternalLeading, fontType == TRUETYPE_FONTTYPE); - if (fontType == TRUETYPE_FONTTYPE) - return 0; - else - return 1; + if (fontType == TRUETYPE_FONTTYPE) + return 0; + else + return 1; } */ /* Cross call procedure implementations. - Eval corresponds with a CrossCallEntry generated by NewCrossCallEntry (nr,Eval). + Eval corresponds with a CrossCallEntry generated by NewCrossCallEntry (nr,Eval). */ void EvalCcRqGETFONTNAMES (CrossCallInfo *pcci) // no params; no result. { /* HDC hdc; - hdc = GetDC (ghMainWindow); - EnumFontFamilies (hdc, NULL, (FONTENUMPROC) EnumFontNameProc, 0); - ReleaseDC (ghMainWindow, hdc); - MakeReturn0Cci (pcci); + hdc = GetDC (ghMainWindow); + EnumFontFamilies (hdc, NULL, (FONTENUMPROC) EnumFontNameProc, 0); + ReleaseDC (ghMainWindow, hdc); + MakeReturn0Cci (pcci); */ printf("EvalCcRqGETFONTNAMES -> not implemented"); MakeReturn0Cci(pcci); @@ -60,11 +60,11 @@ void EvalCcRqGETFONTSIZES (CrossCallInfo *pcci) // textptr; no result. { /* HDC hdc; - hdc = GetDC (ghMainWindow); - EnumFontFamilies (hdc, (char *) pcci->p1, (FONTENUMPROC) EnumFontSizeProc, 0); - ReleaseDC (ghMainWindow, hdc); - rfree ((char *) pcci->p1); - MakeReturn0Cci (pcci); + hdc = GetDC (ghMainWindow); + EnumFontFamilies (hdc, (char *) pcci->p1, (FONTENUMPROC) EnumFontSizeProc, 0); + ReleaseDC (ghMainWindow, hdc); + rfree ((char *) pcci->p1); + MakeReturn0Cci (pcci); */ printf("EvalCcRqGETFONTSIZES -> not implemented"); MakeReturn0Cci(pcci); @@ -75,13 +75,13 @@ void EvalCcRqGETFONTSIZES (CrossCallInfo *pcci) // textptr; no result. // cross call procedures managed by cCrossCall_121.c. OS InstallCrossCallFont (OS ios) { - CrossCallProcedureTable newTable; + CrossCallProcedureTable newTable; printf("InstallCrossCallFont\n"); - newTable = EmptyCrossCallProcedureTable (); - AddCrossCallEntry (newTable, CcRqGETFONTNAMES,EvalCcRqGETFONTNAMES); - AddCrossCallEntry (newTable, CcRqGETFONTSIZES,EvalCcRqGETFONTSIZES); - AddCrossCallEntries (gCrossCallProcedureTable, newTable); + newTable = EmptyCrossCallProcedureTable (); + AddCrossCallEntry (newTable, CcRqGETFONTNAMES,EvalCcRqGETFONTNAMES); + AddCrossCallEntry (newTable, CcRqGETFONTSIZES,EvalCcRqGETFONTSIZES); + AddCrossCallEntries (gCrossCallProcedureTable, newTable); return ios; } diff --git a/Linux_C_12/cCrossCallMenus_121.c b/Linux_C_12/cCrossCallMenus_121.c index d3ae18e..745adef 100644 --- a/Linux_C_12/cCrossCallMenus_121.c +++ b/Linux_C_12/cCrossCallMenus_121.c @@ -1,71 +1,71 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Routines related to menu handling. + About this module: + Routines related to menu handling. ********************************************************************************************/ #include "cCrossCallMenus_121.h" #include "cCrossCall_121.h" /* Cross call procedure implementations. - Eval corresponds with a CrossCallEntry generated by NewCrossCallEntry (nr,Eval). + Eval corresponds with a CrossCallEntry generated by NewCrossCallEntry (nr,Eval). */ /* Remove a shortkey from a framewindow shortkey table. */ static gboolean dummy_find_accel(GtkAccelKey *key, GClosure *closure, gpointer data) { printf("dummy_find_accel\n"); - return gtk_true(); + return gtk_true(); } void EvalCcRqREMOVEMENUSHORTKEY (CrossCallInfo *pcci) /* frameptr, cmd; no result. */ { - GtkWidget *frame; - GtkWidget *box; - GtkWidget *menu_item; - GtkAccelGroup *accel_group; + GtkWidget *frame; + GtkWidget *box; + GtkWidget *menu_item; + GtkAccelGroup *accel_group; printf("EvalCcRqREMOVEMENUSHORTKEY\n"); - frame = GTK_WIDGET(pcci->p1); - menu_item = GTK_WIDGET(pcci->p2); + frame = GTK_WIDGET(pcci->p1); + menu_item = GTK_WIDGET(pcci->p2); - accel_group = ((GtkAccelGroup*)gtk_accel_groups_from_object(G_OBJECT(frame))->data); + accel_group = ((GtkAccelGroup*)gtk_accel_groups_from_object(G_OBJECT(frame))->data); - for (;;) - { - GtkAccelKey *key = gtk_accel_group_find(accel_group, dummy_find_accel, NULL); - if (!key) break; + for (;;) + { + GtkAccelKey *key = gtk_accel_group_find(accel_group, dummy_find_accel, NULL); + if (!key) break; - gtk_widget_remove_accelerator(menu_item, - accel_group, - key->accel_key, - key->accel_mods); - } + gtk_widget_remove_accelerator(menu_item, + accel_group, + key->accel_key, + key->accel_mods); + } - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } void EvalCcRqMODIFYMENUITEM (CrossCallInfo *pcci) /* hitem, hmenu, textptr; no result. */ { - GtkWidget *menu, *menu_item, *label; - gchar *title; + GtkWidget *menu, *menu_item, *label; + gchar *title; printf("EvalCcRqMODIFYMENUITEM\n"); - title = createMnemonicString((gchar *) pcci->p3); + title = createMnemonicString((gchar *) pcci->p3); - menu = GTK_WIDGET(pcci->p2); - menu_item = GTK_WIDGET(pcci->p1); - label = gtk_bin_get_child(GTK_BIN(menu_item)); - gtk_label_set_text_with_mnemonic(GTK_LABEL(label), title); + menu = GTK_WIDGET(pcci->p2); + menu_item = GTK_WIDGET(pcci->p1); + label = gtk_bin_get_child(GTK_BIN(menu_item)); + gtk_label_set_text_with_mnemonic(GTK_LABEL(label), title); - rfree(title); + rfree(title); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } static int in_handler_flag = 0; @@ -73,20 +73,20 @@ static int in_handler_flag = 0; static void menuitem_activate_handler(GtkMenuItem *menu_item) { printf("menuitem_activate_handler\n"); - if (in_handler_flag == 0) - { - in_handler_flag = 1; - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_item), !(GTK_CHECK_MENU_ITEM(menu_item)->active)); - SendMessage2ToClean (CcWmCOMMAND, GTK_WIDGET(menu_item), GetModifiers ()); - in_handler_flag = 0; - } + if (in_handler_flag == 0) + { + in_handler_flag = 1; + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_item), !(GTK_CHECK_MENU_ITEM(menu_item)->active)); + SendMessage2ToClean (CcWmCOMMAND, GTK_WIDGET(menu_item), GetModifiers ()); + in_handler_flag = 0; + } } void EvalCcRqINSERTMENUITEM (CrossCallInfo *pcci) { - gchar *title; - GtkWidget *menu, *menu_item, *label; - GtkAccelGroup *accel_group; + gchar *title; + GtkWidget *menu, *menu_item, *label; + GtkAccelGroup *accel_group; guint graystate, checkstate; printf("EvalCcRqINSERTMENUITEM\n"); @@ -111,58 +111,58 @@ void EvalCcRqINSERTMENUITEM (CrossCallInfo *pcci) printf("%s\n", (checkstate ? "checked" : "unchecked")); printf("Calling Make Mnemonic string with: %s\n", (gchar*)pcci->p3); - title = createMnemonicString((gchar *) pcci->p3); + title = createMnemonicString((gchar *) pcci->p3); printf("Got title: %s\n", title); - menu = GTK_WIDGET(pcci->p2); + menu = GTK_WIDGET(pcci->p2); printf("Menu widget: %s\n", gtk_menu_get_title(GTK_MENU(menu))); printf("Creating new menu item\n"); - menu_item = gtk_menu_item_new_with_mnemonic(title); + menu_item = gtk_menu_item_new_with_mnemonic(title); gtk_menu_shell_insert( GTK_MENU_SHELL (menu), menu_item, (gint) pcci->p5); - //gtk_accel_label_set_accel_widget(GTK_ACCEL_LABEL(label), menu_item); - //gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_item), ((pcci->p1 & 1) != 0)); - //gtk_widget_set_sensitive(menu_item, ((pcci->p1 & 2) != 0)); + //gtk_accel_label_set_accel_widget(GTK_ACCEL_LABEL(label), menu_item); + //gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_item), ((pcci->p1 & 1) != 0)); + //gtk_widget_set_sensitive(menu_item, ((pcci->p1 & 2) != 0)); - gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (menuitem_activate_handler), menu_item); + gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate", + GTK_SIGNAL_FUNC (menuitem_activate_handler), menu_item); - gtk_widget_show(menu_item); + gtk_widget_show(menu_item); printf("About to free title: %s\n", title); - rfree(title); + rfree(title); printf("Freed title\n"); /* if (key != 0) - { + { printf("Creating accellerators\n"); - accel_group = ((GtkAccelGroup *) gtk_accel_groups_from_object (G_OBJECT(frame))->data); - - gtk_widget_add_accelerator(menu_item, "activate", - accel_group, - key, - GDK_CONTROL_MASK, - GTK_ACCEL_VISIBLE); - gtk_widget_add_accelerator(menu_item, "activate", - accel_group, - key, - GDK_CONTROL_MASK | GDK_SHIFT_MASK, - 0); - gtk_widget_add_accelerator(menu_item, "activate", - accel_group, - key, - GDK_CONTROL_MASK | GDK_MOD1_MASK, - 0); - gtk_widget_add_accelerator(menu_item, "activate", - accel_group, - key, - GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SHIFT_MASK, - 0); - } + accel_group = ((GtkAccelGroup *) gtk_accel_groups_from_object (G_OBJECT(frame))->data); + + gtk_widget_add_accelerator(menu_item, "activate", + accel_group, + key, + GDK_CONTROL_MASK, + GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator(menu_item, "activate", + accel_group, + key, + GDK_CONTROL_MASK | GDK_SHIFT_MASK, + 0); + gtk_widget_add_accelerator(menu_item, "activate", + accel_group, + key, + GDK_CONTROL_MASK | GDK_MOD1_MASK, + 0); + gtk_widget_add_accelerator(menu_item, "activate", + accel_group, + key, + GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SHIFT_MASK, + 0); + } */ printf("Creating return Cci\n"); - MakeReturn1Cci (pcci, (int64_t) menu_item); + MakeReturn1Cci (pcci, (int64_t) menu_item); } /* Cross call procedure implementations. @@ -195,23 +195,23 @@ void EvalCcRqADDMENUSHORTKEY (CrossCallInfo *pcci) /* frameptr, cmd, key; no re static void find_item_callback(GtkWidget *menu_item, gpointer data) { printf("find_item_callback\n"); - if (GTK_IS_MENU_ITEM(menu_item) && GTK_MENU_ITEM (menu_item)->submenu == ((GtkWidget *) data)) - *((GtkWidget **) data) = menu_item; + if (GTK_IS_MENU_ITEM(menu_item) && GTK_MENU_ITEM (menu_item)->submenu == ((GtkWidget *) data)) + *((GtkWidget **) data) = menu_item; } void EvalCcRqITEMENABLE (CrossCallInfo *pcci) /* parent, HITEM, onoff; no result. */ { - GtkWidget *menu, *menu_item; + GtkWidget *menu, *menu_item; printf("EvalCcRqITEMENABLE\n"); - menu = GTK_WIDGET(pcci->p1); - menu_item = GTK_WIDGET(pcci->p2); + menu = GTK_WIDGET(pcci->p1); + menu_item = GTK_WIDGET(pcci->p2); printf("Menu widget: %s\n", gtk_menu_get_title((GtkMenu*)menu)); printf("EvalCcRqITEMENABLE\n"); - gtk_widget_set_sensitive(menu_item, (gboolean) pcci->p3); + gtk_widget_set_sensitive(menu_item, (gboolean) pcci->p3); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } /* Destroy a menu 'physically' */ @@ -228,100 +228,100 @@ void EvalCcRqDESTROYMENU (CrossCallInfo *pcci) /* HMENU; no result. */ /* Remove a menu logically */ void EvalCcRqDELETEMENU (CrossCallInfo *pcci) /* HMENU, HITEM; no result. */ { - GtkWidget *menu, *menu_item; + GtkWidget *menu, *menu_item; printf("EvalCcRqDELETEMENU\n"); - menu = GTK_WIDGET(pcci->p1); - menu_item = GTK_WIDGET(pcci->p2); + menu = GTK_WIDGET(pcci->p1); + menu_item = GTK_WIDGET(pcci->p2); - gtk_container_foreach(GTK_CONTAINER(menu), find_item_callback, (gpointer) &menu_item); - if (menu_item != GTK_WIDGET(pcci->p2)) - { - gtk_menu_item_remove_submenu(GTK_MENU_ITEM(menu_item)); - gtk_widget_destroy(menu_item); - } + gtk_container_foreach(GTK_CONTAINER(menu), find_item_callback, (gpointer) &menu_item); + if (menu_item != GTK_WIDGET(pcci->p2)) + { + gtk_menu_item_remove_submenu(GTK_MENU_ITEM(menu_item)); + gtk_widget_destroy(menu_item); + } - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } void EvalCcRqREMOVEMENUITEM (CrossCallInfo *pcci) /* menu, HITEM; no result. */ { - GtkWidget *menu, *menu_item; + GtkWidget *menu, *menu_item; printf("EvalCcRqREMOVEMENUITEM\n"); - menu = GTK_WIDGET(pcci->p1); - menu_item = GTK_WIDGET(pcci->p2); + menu = GTK_WIDGET(pcci->p1); + menu_item = GTK_WIDGET(pcci->p2); - gtk_menu_item_remove_submenu(GTK_MENU_ITEM(menu_item)); - gtk_widget_destroy(menu_item); + gtk_menu_item_remove_submenu(GTK_MENU_ITEM(menu_item)); + gtk_widget_destroy(menu_item); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } void EvalCcRqINSERTSEPARATOR (CrossCallInfo *pcci) /* hmenu, pos no result. */ { - GtkWidget *menu, *menu_item; + GtkWidget *menu, *menu_item; printf("EvalCcRqINSERTSEPARATOR\n"); - menu = GTK_WIDGET(pcci->p1); - menu_item = gtk_menu_item_new(); + menu = GTK_WIDGET(pcci->p1); + menu_item = gtk_menu_item_new(); - gtk_menu_insert(GTK_MENU(menu), menu_item, (gint) pcci->p2); - gtk_widget_show_all(menu_item); + gtk_menu_insert(GTK_MENU(menu), menu_item, (gint) pcci->p2); + gtk_widget_show_all(menu_item); - MakeReturn1Cci (pcci, (int64_t) menu_item); + MakeReturn1Cci (pcci, (int64_t) menu_item); } void EvalCcRqMODIFYMENU (CrossCallInfo *pcci) /* hitem, hmenu, textptr; no result. */ { - gint i; - GtkWidget *menu, *menu_item, *label; - gchar *title; + gint i; + GtkWidget *menu, *menu_item, *label; + gchar *title; printf("EvalCcRqMODIFYMENU\n"); - title = createMnemonicString((gchar *) pcci->p3); + title = createMnemonicString((gchar *) pcci->p3); - menu = GTK_WIDGET(pcci->p2); - menu_item = GTK_WIDGET(pcci->p1); - label = gtk_bin_get_child(GTK_BIN(menu_item)); - gtk_label_set_text_with_mnemonic(GTK_LABEL(label), title); + menu = GTK_WIDGET(pcci->p2); + menu_item = GTK_WIDGET(pcci->p1); + label = gtk_bin_get_child(GTK_BIN(menu_item)); + gtk_label_set_text_with_mnemonic(GTK_LABEL(label), title); - rfree(title); + rfree(title); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } /* Insert a menu into the menu bar. */ void EvalCcRqINSERTMENU (CrossCallInfo *pcci) { - gint i; - gchar *title; - GtkWidget *parent_menu, *root_menu, *sub_menu; - GtkAccelGroup *accel_group; + gint i; + gchar *title; + GtkWidget *parent_menu, *root_menu, *sub_menu; + GtkAccelGroup *accel_group; printf("EvalCcRqINSERTMENU\n"); - title = createMnemonicString((gchar *) pcci->p3); - parent_menu = GTK_WIDGET(pcci->p2); - sub_menu = GTK_WIDGET(pcci->p4); + title = createMnemonicString((gchar *) pcci->p3); + parent_menu = GTK_WIDGET(pcci->p2); + sub_menu = GTK_WIDGET(pcci->p4); - if (GTK_IS_MENU_BAR(parent_menu)) - { + if (GTK_IS_MENU_BAR(parent_menu)) + { printf("Adding to a menu bar.\n"); printf("Menu Bar Name: %s\n", gtk_menu_get_title((GtkMenu*)parent_menu)); - GtkWidget *frame = gtk_widget_get_parent(gtk_widget_get_parent(parent_menu)); - accel_group = ((GtkAccelGroup*)gtk_accel_groups_from_object (G_OBJECT(frame))->data); - } - else - { + GtkWidget *frame = gtk_widget_get_parent(gtk_widget_get_parent(parent_menu)); + accel_group = ((GtkAccelGroup*)gtk_accel_groups_from_object (G_OBJECT(frame))->data); + } + else + { printf("We're not adding to a menu bar!?!\n"); printf("Parent Menu widget: %s\n", gtk_menu_get_title((GtkMenu*)parent_menu)); - accel_group = gtk_menu_get_accel_group (GTK_MENU(parent_menu)); - } + accel_group = gtk_menu_get_accel_group (GTK_MENU(parent_menu)); + } - gtk_menu_set_accel_group (GTK_MENU(sub_menu), accel_group); + gtk_menu_set_accel_group (GTK_MENU(sub_menu), accel_group); - root_menu = gtk_menu_item_new_with_mnemonic(title); - gtk_widget_set_sensitive(root_menu, (gboolean) pcci->p1); + root_menu = gtk_menu_item_new_with_mnemonic(title); + gtk_widget_set_sensitive(root_menu, (gboolean) pcci->p1); gtk_widget_show_all (root_menu); gtk_menu_item_set_submenu (GTK_MENU_ITEM (root_menu), sub_menu); @@ -330,15 +330,15 @@ void EvalCcRqINSERTMENU (CrossCallInfo *pcci) gtk_menu_get_title(GTK_MENU(root_menu)), (gint) pcci->p5, title); if (GTK_IS_MENU_BAR(parent_menu)) { - gtk_menu_shell_insert(GTK_MENU_SHELL(parent_menu), root_menu, (gint) pcci->p5); + gtk_menu_shell_insert(GTK_MENU_SHELL(parent_menu), root_menu, (gint) pcci->p5); } else { - gtk_menu_insert(GTK_MENU(parent_menu), root_menu, (gint) pcci->p5); + gtk_menu_insert(GTK_MENU(parent_menu), root_menu, (gint) pcci->p5); } - rfree(title); + rfree(title); printf("New menu is called: %s\n", gtk_menu_get_title((GtkMenu*)root_menu)); - MakeReturn1Cci (pcci, (int64_t) sub_menu); + MakeReturn1Cci (pcci, (int64_t) sub_menu); } static void enable_menu_callback(GtkWidget *menu_item, gpointer data) @@ -346,10 +346,10 @@ static void enable_menu_callback(GtkWidget *menu_item, gpointer data) printf("enable_menu_callback\n"); gint *val = (gint*) data; printf("Checking: %d\n", *val); - if (GTK_IS_MENU_ITEM(menu_item) + if (GTK_IS_MENU_ITEM(menu_item) && (*val == 0)) { - gtk_widget_set_sensitive(menu_item, gtk_true()); + gtk_widget_set_sensitive(menu_item, gtk_true()); } else { @@ -363,10 +363,10 @@ static void disable_menu_callback(GtkWidget *menu_item, gpointer data) gint *val = (gint*) data; printf("Checking: %d\n", *val); - if (GTK_IS_MENU_ITEM(menu_item) + if (GTK_IS_MENU_ITEM(menu_item) && (*val == 0)) { - gtk_widget_set_sensitive(menu_item, gtk_false()); + gtk_widget_set_sensitive(menu_item, gtk_false()); } else { @@ -376,7 +376,7 @@ static void disable_menu_callback(GtkWidget *menu_item, gpointer data) void EvalCcRqMENUENABLE (CrossCallInfo *pcci) /* parent, zero based position of menu, onoff; no result. */ { - GtkWidget *parent_menu, *sub_menu; + GtkWidget *parent_menu, *sub_menu; printf("EvalCcRqMENUENABLE\n"); gint index = pcci->p2; @@ -391,13 +391,13 @@ void EvalCcRqMENUENABLE (CrossCallInfo *pcci) /* parent, zero based position of (gpointer) (&index)); } - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } void EvalCcRqDRAWMBAR (CrossCallInfo *pcci) /* framePtr, clientPtr; no result. */ { printf("EvalCcRqDRAWMBAR\n"); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } /* Track pop up menu. */ @@ -416,7 +416,7 @@ void EvalCcRqTRACKPOPMENU (CrossCallInfo *pcci) /* popupmenu,framePtr; BOOL resu gdk_event_get_time(event)); } - MakeReturn1Cci (pcci,(int64_t)gtk_true()); + MakeReturn1Cci (pcci,(int64_t)gtk_true()); } void EvalCcRqCREATEPOPMENU (CrossCallInfo *pcci) /* no params; MENU result. */ @@ -428,7 +428,7 @@ void EvalCcRqCREATEPOPMENU (CrossCallInfo *pcci) /* no params; MENU result. */ * This menu should be added to a menu bar. */ printf("EvalCcRqCREATEPOPMENU\n"); - MakeReturn1Cci (pcci, (int64_t) gtk_menu_new()); + MakeReturn1Cci (pcci, (int64_t) gtk_menu_new()); } void EvalCcRqCHECKMENUITEM (CrossCallInfo *pcci) /* menu, HITEM, on/off; no result. */ @@ -443,7 +443,7 @@ void EvalCcRqCHECKMENUITEM (CrossCallInfo *pcci) /* menu, HITEM, on/off; no resu (gboolean) pcci->p3); } - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } @@ -451,27 +451,27 @@ void EvalCcRqCHECKMENUITEM (CrossCallInfo *pcci) /* menu, HITEM, on/off; no resu */ OS InstallCrossCallMenus (OS ios) { - CrossCallProcedureTable newTable; + CrossCallProcedureTable newTable; printf("InstallCrossCallMenus\n"); - newTable = EmptyCrossCallProcedureTable (); - AddCrossCallEntry (newTable, CcRqADDMENUSHORTKEY, EvalCcRqADDMENUSHORTKEY); - AddCrossCallEntry (newTable, CcRqREMOVEMENUSHORTKEY, EvalCcRqREMOVEMENUSHORTKEY); - AddCrossCallEntry (newTable, CcRqMODIFYMENUITEM, EvalCcRqMODIFYMENUITEM); - AddCrossCallEntry (newTable, CcRqINSERTMENUITEM, EvalCcRqINSERTMENUITEM); - AddCrossCallEntry (newTable, CcRqITEMENABLE, EvalCcRqITEMENABLE); - AddCrossCallEntry (newTable, CcRqDELETEMENU, EvalCcRqDELETEMENU); + newTable = EmptyCrossCallProcedureTable (); + AddCrossCallEntry (newTable, CcRqADDMENUSHORTKEY, EvalCcRqADDMENUSHORTKEY); + AddCrossCallEntry (newTable, CcRqREMOVEMENUSHORTKEY, EvalCcRqREMOVEMENUSHORTKEY); + AddCrossCallEntry (newTable, CcRqMODIFYMENUITEM, EvalCcRqMODIFYMENUITEM); + AddCrossCallEntry (newTable, CcRqINSERTMENUITEM, EvalCcRqINSERTMENUITEM); + AddCrossCallEntry (newTable, CcRqITEMENABLE, EvalCcRqITEMENABLE); + AddCrossCallEntry (newTable, CcRqDELETEMENU, EvalCcRqDELETEMENU); AddCrossCallEntry (newTable, CcRqDESTROYMENU, EvalCcRqDESTROYMENU); - AddCrossCallEntry (newTable, CcRqREMOVEMENUITEM, EvalCcRqREMOVEMENUITEM); - AddCrossCallEntry (newTable, CcRqINSERTSEPARATOR, EvalCcRqINSERTSEPARATOR); - AddCrossCallEntry (newTable, CcRqMODIFYMENU, EvalCcRqMODIFYMENU); - AddCrossCallEntry (newTable, CcRqINSERTMENU, EvalCcRqINSERTMENU); - AddCrossCallEntry (newTable, CcRqMENUENABLE, EvalCcRqMENUENABLE); - AddCrossCallEntry (newTable, CcRqDRAWMBAR, EvalCcRqDRAWMBAR); - AddCrossCallEntry (newTable, CcRqTRACKPOPMENU, EvalCcRqTRACKPOPMENU); - AddCrossCallEntry (newTable, CcRqCREATEPOPMENU, EvalCcRqCREATEPOPMENU); - AddCrossCallEntry (newTable, CcRqCHECKMENUITEM, EvalCcRqCHECKMENUITEM); - AddCrossCallEntries (gCrossCallProcedureTable, newTable); + AddCrossCallEntry (newTable, CcRqREMOVEMENUITEM, EvalCcRqREMOVEMENUITEM); + AddCrossCallEntry (newTable, CcRqINSERTSEPARATOR, EvalCcRqINSERTSEPARATOR); + AddCrossCallEntry (newTable, CcRqMODIFYMENU, EvalCcRqMODIFYMENU); + AddCrossCallEntry (newTable, CcRqINSERTMENU, EvalCcRqINSERTMENU); + AddCrossCallEntry (newTable, CcRqMENUENABLE, EvalCcRqMENUENABLE); + AddCrossCallEntry (newTable, CcRqDRAWMBAR, EvalCcRqDRAWMBAR); + AddCrossCallEntry (newTable, CcRqTRACKPOPMENU, EvalCcRqTRACKPOPMENU); + AddCrossCallEntry (newTable, CcRqCREATEPOPMENU, EvalCcRqCREATEPOPMENU); + AddCrossCallEntry (newTable, CcRqCHECKMENUITEM, EvalCcRqCHECKMENUITEM); + AddCrossCallEntries (gCrossCallProcedureTable, newTable); return ios; } diff --git a/Linux_C_12/cCrossCallPrinter_121.c b/Linux_C_12/cCrossCallPrinter_121.c index 593d736..c015036 100644 --- a/Linux_C_12/cCrossCallPrinter_121.c +++ b/Linux_C_12/cCrossCallPrinter_121.c @@ -1,12 +1,12 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Routines related to printer handling. + About this module: + Routines related to printer handling. ********************************************************************************************/ #include "cCrossCallPrinter_121.h" @@ -22,77 +22,77 @@ extern HWND hwndText; /* MW: hwndText is the handle of the page count text in /* Cross call procedure implementations. - Eval corresponds with a CrossCallEntry generated by NewCrossCallEntry (nr,Eval). + Eval corresponds with a CrossCallEntry generated by NewCrossCallEntry (nr,Eval). */ void EvalCcRqDO_PRINT_SETUP (CrossCallInfo *pcci) { int ok; - PRINTDLG *pdPtr; - printSetup(0, pcci->p1, - (char*) pcci->p2, (char*) pcci->p3, (char*) pcci->p4, (char*) pcci->p5, - &ok, &pdPtr); - MakeReturn2Cci (pcci, ok, (int) pdPtr); + PRINTDLG *pdPtr; + printSetup(0, pcci->p1, + (char*) pcci->p2, (char*) pcci->p3, (char*) pcci->p4, (char*) pcci->p5, + &ok, &pdPtr); + MakeReturn2Cci (pcci, ok, (int) pdPtr); } void EvalCcRqGET_PRINTER_DC (CrossCallInfo *pcci) { int doDialog,emulateScreenRes, - err,first,last,copies,pPrintDlg,deviceContext; + err,first,last,copies,pPrintDlg,deviceContext; - // unpack doDialog and emulateScreenRes - doDialog = (pcci->p1) & 1; - emulateScreenRes = (pcci->p1) & 2; + // unpack doDialog and emulateScreenRes + doDialog = (pcci->p1) & 1; + emulateScreenRes = (pcci->p1) & 2; - getDC( doDialog,emulateScreenRes,FALSE,pcci->p2, - (char*) pcci->p3,(char*) pcci->p4,(char*) pcci->p5,(char*) pcci->p6, - &err,&first,&last,&copies,(PRINTDLG**)&pPrintDlg,&deviceContext); - MakeReturn6Cci (pcci,err,first,last,copies,pPrintDlg,deviceContext); + getDC( doDialog,emulateScreenRes,FALSE,pcci->p2, + (char*) pcci->p3,(char*) pcci->p4,(char*) pcci->p5,(char*) pcci->p6, + &err,&first,&last,&copies,(PRINTDLG**)&pPrintDlg,&deviceContext); + MakeReturn6Cci (pcci,err,first,last,copies,pPrintDlg,deviceContext); } void EvalCcRqSTARTDOC (CrossCallInfo *pcci) { - HDC hdc = (HDC) pcci->p1; - int err; - - EnableWindow (ghMainWindow, FALSE) ; - hDlgPrint = CreateCancelDialog (); - SetAbortProc (hdc, AbortProc) ; - err = startDoc((int) hdc); - if (err<=0 && ghMainWindow!=NULL && !bUserAbort) - { - EnableWindow (ghMainWindow, TRUE) ; - DestroyWindow (hDlgPrint) ; - }; - MakeReturn1Cci (pcci,err); + HDC hdc = (HDC) pcci->p1; + int err; + + EnableWindow (ghMainWindow, FALSE) ; + hDlgPrint = CreateCancelDialog (); + SetAbortProc (hdc, AbortProc) ; + err = startDoc((int) hdc); + if (err<=0 && ghMainWindow!=NULL && !bUserAbort) + { + EnableWindow (ghMainWindow, TRUE) ; + DestroyWindow (hDlgPrint) ; + }; + MakeReturn1Cci (pcci,err); } void EvalCcRqENDDOC (CrossCallInfo *pcci) { - HDC hdc = (HDC) pcci->p1; - - endDoc((int) hdc); - if (ghMainWindow!=NULL && !bUserAbort) - { - EnableWindow (ghMainWindow, TRUE) ; - DestroyWindow (hDlgPrint) ; - }; - MakeReturn0Cci (pcci); + HDC hdc = (HDC) pcci->p1; + + endDoc((int) hdc); + if (ghMainWindow!=NULL && !bUserAbort) + { + EnableWindow (ghMainWindow, TRUE) ; + DestroyWindow (hDlgPrint) ; + }; + MakeReturn0Cci (pcci); } void EvalCcRqDISPATCH_MESSAGES_WHILE_PRINTING (CrossCallInfo *pcci) { - MSG msg ; - char *pageMessage= (char *) (pcci->p1); - - SetWindowText(hwndText,pageMessage); - - while (!bUserAbort && PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) - { - if (!hDlgPrint || !IsDialogMessage (hDlgPrint, &msg)) - { - TranslateMessage (&msg) ; - DispatchMessage (&msg) ; - } - } - MakeReturn0Cci (pcci); + MSG msg ; + char *pageMessage= (char *) (pcci->p1); + + SetWindowText(hwndText,pageMessage); + + while (!bUserAbort && PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) + { + if (!hDlgPrint || !IsDialogMessage (hDlgPrint, &msg)) + { + TranslateMessage (&msg) ; + DispatchMessage (&msg) ; + } + } + MakeReturn0Cci (pcci); } @@ -100,15 +100,15 @@ void EvalCcRqDISPATCH_MESSAGES_WHILE_PRINTING (CrossCallInfo *pcci) */ void InstallCrossCallPrinter () { - CrossCallProcedureTable newTable; - - newTable = EmptyCrossCallProcedureTable (); - AddCrossCallEntry (newTable, CcRqDO_PRINT_SETUP, EvalCcRqDO_PRINT_SETUP); - AddCrossCallEntry (newTable, CcRqGET_PRINTER_DC, EvalCcRqGET_PRINTER_DC); - AddCrossCallEntry (newTable, CcRqSTARTDOC, EvalCcRqSTARTDOC); - AddCrossCallEntry (newTable, CcRqENDDOC, EvalCcRqENDDOC); - AddCrossCallEntry (newTable, CcRqDISPATCH_MESSAGES_WHILE_PRINTING, EvalCcRqDISPATCH_MESSAGES_WHILE_PRINTING); - AddCrossCallEntries (gCrossCallProcedureTable, newTable); + CrossCallProcedureTable newTable; + + newTable = EmptyCrossCallProcedureTable (); + AddCrossCallEntry (newTable, CcRqDO_PRINT_SETUP, EvalCcRqDO_PRINT_SETUP); + AddCrossCallEntry (newTable, CcRqGET_PRINTER_DC, EvalCcRqGET_PRINTER_DC); + AddCrossCallEntry (newTable, CcRqSTARTDOC, EvalCcRqSTARTDOC); + AddCrossCallEntry (newTable, CcRqENDDOC, EvalCcRqENDDOC); + AddCrossCallEntry (newTable, CcRqDISPATCH_MESSAGES_WHILE_PRINTING, EvalCcRqDISPATCH_MESSAGES_WHILE_PRINTING); + AddCrossCallEntries (gCrossCallProcedureTable, newTable); } #else diff --git a/Linux_C_12/cCrossCallProcedureTable_121.c b/Linux_C_12/cCrossCallProcedureTable_121.c index 9e15e26..3816e8c 100644 --- a/Linux_C_12/cCrossCallProcedureTable_121.c +++ b/Linux_C_12/cCrossCallProcedureTable_121.c @@ -1,16 +1,16 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Implementation of cross call procedure table. - In this table a linked list of cross call entries is kept. - A cross call entry is a pair of a cross call code (CcRq...) number (see intrface_121.h) - and a pointer to a cross call procedure. - Routines related to printer handling. + About this module: + Implementation of cross call procedure table. + In this table a linked list of cross call entries is kept. + A cross call entry is a pair of a cross call code (CcRq...) number (see intrface_121.h) + and a pointer to a cross call procedure. + Routines related to printer handling. ********************************************************************************************/ #include "cCrossCallProcedureTable_121.h" #include @@ -22,9 +22,9 @@ struct _crosscallentry { int cce_code; /* CcRq... number */ - CrossCallProcedure cce_proc; /* The procedure to be called in case of + CrossCallProcedure cce_proc; /* The procedure to be called in case of cce_code */ - CrossCallEntry cce_next; /* The next entry in the list */ + CrossCallEntry cce_next; /* The next entry in the list */ }; /* @@ -32,44 +32,44 @@ struct _crosscallentry */ struct _crosscallproceduretable { int ccpt_size; // nr of entries - CrossCallEntry ccpt_first; // first entry - CrossCallEntry ccpt_last; // last entry + CrossCallEntry ccpt_first; // first entry + CrossCallEntry ccpt_last; // last entry }; /* NewCrossCallEntry creates a CrossCallEntry with cce_next field NULL. */ CrossCallEntry NewCrossCallEntry (int cce_code, CrossCallProcedure cce_proc) { - CrossCallEntry cce; + CrossCallEntry cce; /* printf("NewCrossCallEntry\n"); */ cce = rmalloc (sizeof (struct _crosscallentry)); - cce->cce_code = cce_code; - cce->cce_proc = cce_proc; - cce->cce_next = NULL; + cce->cce_code = cce_code; + cce->cce_proc = cce_proc; + cce->cce_next = NULL; - return cce; + return cce; } /* FreeCrossCallEntry frees a CrossCallEntry. */ void FreeCrossCallEntry (CrossCallEntry cce) { /* printf("FreeCrossCallEntry\n"); */ - rfree (cce); + rfree (cce); } /* EmptyCrossCallProcedureTable creates an empty table. */ CrossCallProcedureTable EmptyCrossCallProcedureTable (void) { - CrossCallProcedureTable ccpt; + CrossCallProcedureTable ccpt; /* printf("EmptyCrossCallProcedureTable\n"); */ ccpt = rmalloc (sizeof (struct _crosscallproceduretable)); - ccpt->ccpt_size = 0; - ccpt->ccpt_first = NULL; - ccpt->ccpt_last = NULL; + ccpt->ccpt_size = 0; + ccpt->ccpt_first = NULL; + ccpt->ccpt_last = NULL; - return ccpt; + return ccpt; } /* @@ -79,34 +79,34 @@ CrossCallProcedureTable EmptyCrossCallProcedureTable (void) int GetCrossCallProcedureTableSize (CrossCallProcedureTable ccpt) { /* printf("GetCrossCallProcedureTableSize\n"); */ - return ccpt->ccpt_size; + return ccpt->ccpt_size; } /* FreeCrossCallProcedureTable frees a CrossCallProcedureTable. */ void FreeCrossCallProcedureTable (CrossCallProcedureTable ccpt) { /* printf("FreeCrossCallProcedureTable\n"); */ - rfree (ccpt); + rfree (ccpt); } /* SearchCrossCallEntry (nr,entry) returns the first CrossCallEntry - following/including entry that either: - matches nr, or - is the entry after which a new entry with nr should be added, or - NULL in case nr should be placed before entry. + following/including entry that either: + matches nr, or + is the entry after which a new entry with nr should be added, or + NULL in case nr should be placed before entry. */ static CrossCallEntry SearchCrossCallEntry (int nr,CrossCallEntry entry) { /* printf("SearchCrossCallEntry\n"); */ - if (nr == entry->cce_code) - return entry; // entry found - if (nr < entry->cce_code) - return NULL; // no entry found - if (entry->cce_next == NULL) - return entry; // last entry; should insert new entry after this one - if (nr < entry->cce_next->cce_code) - return entry; // next entry exceeds nr; should insert new entry after this one - return SearchCrossCallEntry (nr,entry->cce_next); + if (nr == entry->cce_code) + return entry; // entry found + if (nr < entry->cce_code) + return NULL; // no entry found + if (entry->cce_next == NULL) + return entry; // last entry; should insert new entry after this one + if (nr < entry->cce_next->cce_code) + return entry; // next entry exceeds nr; should insert new entry after this one + return SearchCrossCallEntry (nr,entry->cce_next); } /* @@ -116,57 +116,57 @@ static CrossCallEntry SearchCrossCallEntry (int nr,CrossCallEntry entry) void AddCrossCallEntry (CrossCallProcedureTable ccpt, int cce_code, CrossCallProcedure cce_proc) { - CrossCallEntry entry; + CrossCallEntry entry; /* printf("AddCrossCallEntry\n"); */ entry = NewCrossCallEntry (cce_code,cce_proc); - if (ccpt->ccpt_size == 0) - { /* table is empty; create entry and add it */ - ccpt->ccpt_size = 1; - ccpt->ccpt_first = entry; - ccpt->ccpt_last = entry; - } - else if (cce_code < ccpt->ccpt_first->cce_code) - { /* entry should be inserted before first entry */ - ccpt->ccpt_size += 1; - entry->cce_next = ccpt->ccpt_first; - ccpt->ccpt_first= entry; - } - else if (cce_code > ccpt->ccpt_first->cce_code) - { /* entry could be in table; look for it and add it if not present */ - CrossCallEntry searchCCE; - searchCCE = SearchCrossCallEntry (cce_code,ccpt->ccpt_first); - - if (searchCCE == NULL) - { - /* printf("\'AddCrossCallEntry\' SearchCrossCallEntry returned NULL CrossCallEntry"); */ - exit(1); - } - if (searchCCE->cce_code != cce_code) - { /* entry not in table but should be linked after searchCCE */ - gboolean appendLast = (ccpt->ccpt_last == searchCCE); - ccpt->ccpt_size += 1; - entry->cce_next = searchCCE->cce_next; - searchCCE->cce_next = entry; - - if (appendLast) - ccpt->ccpt_last = entry; // adjust last if entry is appended at end - } - } + if (ccpt->ccpt_size == 0) + { /* table is empty; create entry and add it */ + ccpt->ccpt_size = 1; + ccpt->ccpt_first = entry; + ccpt->ccpt_last = entry; + } + else if (cce_code < ccpt->ccpt_first->cce_code) + { /* entry should be inserted before first entry */ + ccpt->ccpt_size += 1; + entry->cce_next = ccpt->ccpt_first; + ccpt->ccpt_first= entry; + } + else if (cce_code > ccpt->ccpt_first->cce_code) + { /* entry could be in table; look for it and add it if not present */ + CrossCallEntry searchCCE; + searchCCE = SearchCrossCallEntry (cce_code,ccpt->ccpt_first); + + if (searchCCE == NULL) + { + /* printf("\'AddCrossCallEntry\' SearchCrossCallEntry returned NULL CrossCallEntry"); */ + exit(1); + } + if (searchCCE->cce_code != cce_code) + { /* entry not in table but should be linked after searchCCE */ + gboolean appendLast = (ccpt->ccpt_last == searchCCE); + ccpt->ccpt_size += 1; + entry->cce_next = searchCCE->cce_next; + searchCCE->cce_next = entry; + + if (appendLast) + ccpt->ccpt_last = entry; // adjust last if entry is appended at end + } + } } /* AddCrossCallEntries (table,entries) adds the entries to table */ void AddCrossCallEntries (CrossCallProcedureTable theTable, CrossCallProcedureTable entries) { - CrossCallEntry cce; + CrossCallEntry cce; /* printf("AddCrossCallEntries\n"); */ cce = entries->ccpt_first; - while (cce != NULL) - { - AddCrossCallEntry (theTable, cce->cce_code, cce->cce_proc); - cce = cce->cce_next; - } + while (cce != NULL) + { + AddCrossCallEntry (theTable, cce->cce_code, cce->cce_proc); + cce = cce->cce_next; + } } /* @@ -175,18 +175,18 @@ void AddCrossCallEntries (CrossCallProcedureTable theTable, CrossCallProcedureTa CrossCallProcedure FindCrossCallEntry (CrossCallProcedureTable ccpt, int cce_code) { /* printf("FindCrossCallEntry\n"); */ - if (ccpt->ccpt_size == 0) + if (ccpt->ccpt_size == 0) { /* table is empty, return NULL */ - return NULL; + return NULL; + } + else + { + CrossCallEntry searchCCE; + searchCCE = SearchCrossCallEntry (cce_code,ccpt->ccpt_first); + if (searchCCE && searchCCE->cce_code == cce_code) + return searchCCE->cce_proc; + else + return NULL; } - else - { - CrossCallEntry searchCCE; - searchCCE = SearchCrossCallEntry (cce_code,ccpt->ccpt_first); - if (searchCCE && searchCCE->cce_code == cce_code) - return searchCCE->cce_proc; - else - return NULL; - } } diff --git a/Linux_C_12/cCrossCallProcedureTable_121.h b/Linux_C_12/cCrossCallProcedureTable_121.h index 6be6d2d..5326b0b 100644 --- a/Linux_C_12/cCrossCallProcedureTable_121.h +++ b/Linux_C_12/cCrossCallProcedureTable_121.h @@ -1,7 +1,7 @@ /* Implementation of cross call procedure table. - In this table a linked list of cross call entries is kept. - A cross call entry is a pair of a cross call code (CcRq...) number (see intrface_121.h) - and a pointer to a cross call procedure. + In this table a linked list of cross call entries is kept. + A cross call entry is a pair of a cross call code (CcRq...) number (see intrface_121.h) + and a pointer to a cross call procedure. */ #ifndef CROSSCALLPROCEDURETABLE_H #define CROSSCALLPROCEDURETABLE_H diff --git a/Linux_C_12/cCrossCallWindows_121.c b/Linux_C_12/cCrossCallWindows_121.c index 93112ea..0ca7d4d 100644 --- a/Linux_C_12/cCrossCallWindows_121.c +++ b/Linux_C_12/cCrossCallWindows_121.c @@ -1,12 +1,12 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Routines related to window/dialog handling. + About this module: + Routines related to window/dialog handling. ********************************************************************************************/ #include "cCrossCallWindows_121.h" @@ -59,1012 +59,1012 @@ static GtkWidget *GetControlParent (GtkWidget *widget) GtkWidget *parent = widget, *res = NULL, *last = NULL; printf("GetControlParent\n"); - while (parent != NULL) - { - if (GTK_IS_SCROLLED_WINDOW(parent)) - res = parent; + while (parent != NULL) + { + if (GTK_IS_SCROLLED_WINDOW(parent)) + res = parent; - last = parent; - parent = gtk_widget_get_parent (parent); - } + last = parent; + parent = gtk_widget_get_parent (parent); + } - return (GTK_IS_DIALOG(last)) ? last : res; + return (GTK_IS_DIALOG(last)) ? last : res; } static GtkFixed *GetFixed (GtkWidget *widget) { printf("GetFixed\n"); - if (GTK_IS_DIALOG(widget)) - { - return GTK_FIXED( + if (GTK_IS_DIALOG(widget)) + { + return GTK_FIXED( GTK_WIDGET(gtk_container_children( GTK_CONTAINER(GTK_DIALOG(widget)->vbox))->data)); - } - else - { - return GTK_FIXED(GTK_BIN(GTK_BIN(widget)->child)->child); - } + } + else + { + return GTK_FIXED(GTK_BIN(GTK_BIN(widget)->child)->child); + } } /********************************************************************************************* - The callback routine for a compound control. + The callback routine for a compound control. *********************************************************************************************/ #if 0 static LRESULT CALLBACK CompoundControlProcedure (HWND hwnd, UINT uMess, WPARAM wParam, LPARAM lParam) { - switch (uMess) - { - case WM_COMMAND: - { - switch (HIWORD (wParam)) - { - case BN_CLICKED: - { - if (lParam != 0) - { - /* Send also modifiers to Clean */ - SendMessage4ToClean (CcWmBUTTONCLICKED, GetControlParent (hwnd), lParam, GetModifiers (), LOWORD (wParam)); - } - return 0; - } - break; - case CBN_SETFOCUS: - { - gComboSelection = SendMessage ((HWND) lParam, CB_GETCURSEL, 0, 0); - return 0; - } - break; - case CBN_KILLFOCUS: - { - gComboSelection = -1; - return 0; - } - break; - case CBN_SELENDOK: - { - char text[256]; - int newsel; - HWND combo; - - combo = (HWND) lParam; - newsel = SendMessage (combo, CB_GETCURSEL, 0, 0); - SendMessage (combo, CB_GETLBTEXT, newsel, (LPARAM) text); - if (!SendMessage (combo, CB_GETITEMDATA, newsel, 0)) - { - SendMessage (combo, CB_SETCURSEL, gComboSelection, (LPARAM) text); - MessageBeep (0xFFFFFFFF); - return 0; - } - else - { - gComboSelection = newsel; - if (newsel!=CB_ERR) - SendMessage3ToClean (CcWmITEMSELECT, GetControlParent (hwnd), combo, newsel); - return 1; - } - } - break; - } - return 0; - } break; - case WM_PAINT: - { - HWND parentwindow; - HDC hdc; - PAINTSTRUCT ps; - - if (GetUpdateRect(hwnd,NULL,FALSE)) // determine if there is really an update area. - { - parentwindow = GetControlParent (hwnd); - hdc = BeginPaint (hwnd, &ps); - SendMessage3ToClean (CcWmDRAWCONTROL, parentwindow, hwnd, hdc); - EndPaint (hwnd, &ps); - } - return 0; - } break; - case WM_HSCROLL: - { - int nPos,nScrollCode,controlkind; - HWND parentwindow, hwndScrollBar; - - nScrollCode = LOWORD (wParam); - - if (nScrollCode != SB_ENDSCROLL) /* Do not send the SB_ENDSCROLL to Clean. */ - { - nPos = (short int) HIWORD (wParam); - parentwindow = GetControlParent (hwnd); - hwndScrollBar = (HWND) lParam; - - if (hwndScrollBar==0) - { - controlkind = SB_HORZ; /* lParam==0 in case of Compound scrollbars. */ - hwndScrollBar = hwnd; /* pass the compound control handle to Clean. */ - UpdateWindow (hwnd); /* but first ensure that compound control is updated. */ - } - else - { - controlkind = SB_CTL; /* lParam!==0 in case of SliderControls. */ - } - SendMessage5ToClean (CcWmSCROLLBARACTION, parentwindow, hwndScrollBar, controlkind, nScrollCode, nPos); - } - return 0; - } - break; - case WM_VSCROLL: - { - int nPos,nScrollCode,controlkind; - HWND parentwindow, hwndScrollBar; - - nScrollCode = LOWORD (wParam); - - if (nScrollCode != SB_ENDSCROLL) /* Do not send the SB_ENDSCROLL to Clean. */ - { - nPos = (short int) HIWORD (wParam); - parentwindow = GetControlParent (hwnd); - hwndScrollBar = (HWND) lParam; - - if (hwndScrollBar==0) - { - controlkind = SB_VERT; /* lParam==0 in case of Compound scrollbars. */ - hwndScrollBar = hwnd; /* pass the compound control handle to Clean. */ - UpdateWindow (hwnd); /* but first ensure that compound control is updated. */ - } - else - { - controlkind = SB_CTL; /* lParam!==0 in case of SliderControls. */ - } - SendMessage5ToClean (CcWmSCROLLBARACTION, parentwindow, hwndScrollBar, controlkind, nScrollCode, nPos); - } - return 0; - } - break; - /* The following cases concerning mouse events - (WM_LBUTTONDOWN upto WM_TIMER) have been copied from CustomControlProcedure. - */ - case WM_LBUTTONDOWN: - { + switch (uMess) + { + case WM_COMMAND: + { + switch (HIWORD (wParam)) + { + case BN_CLICKED: + { + if (lParam != 0) + { + /* Send also modifiers to Clean */ + SendMessage4ToClean (CcWmBUTTONCLICKED, GetControlParent (hwnd), lParam, GetModifiers (), LOWORD (wParam)); + } + return 0; + } + break; + case CBN_SETFOCUS: + { + gComboSelection = SendMessage ((HWND) lParam, CB_GETCURSEL, 0, 0); + return 0; + } + break; + case CBN_KILLFOCUS: + { + gComboSelection = -1; + return 0; + } + break; + case CBN_SELENDOK: + { + char text[256]; + int newsel; + HWND combo; + + combo = (HWND) lParam; + newsel = SendMessage (combo, CB_GETCURSEL, 0, 0); + SendMessage (combo, CB_GETLBTEXT, newsel, (LPARAM) text); + if (!SendMessage (combo, CB_GETITEMDATA, newsel, 0)) + { + SendMessage (combo, CB_SETCURSEL, gComboSelection, (LPARAM) text); + MessageBeep (0xFFFFFFFF); + return 0; + } + else + { + gComboSelection = newsel; + if (newsel!=CB_ERR) + SendMessage3ToClean (CcWmITEMSELECT, GetControlParent (hwnd), combo, newsel); + return 1; + } + } + break; + } + return 0; + } break; + case WM_PAINT: + { + HWND parentwindow; + HDC hdc; + PAINTSTRUCT ps; + + if (GetUpdateRect(hwnd,NULL,FALSE)) // determine if there is really an update area. + { + parentwindow = GetControlParent (hwnd); + hdc = BeginPaint (hwnd, &ps); + SendMessage3ToClean (CcWmDRAWCONTROL, parentwindow, hwnd, hdc); + EndPaint (hwnd, &ps); + } + return 0; + } break; + case WM_HSCROLL: + { + int nPos,nScrollCode,controlkind; + HWND parentwindow, hwndScrollBar; + + nScrollCode = LOWORD (wParam); + + if (nScrollCode != SB_ENDSCROLL) /* Do not send the SB_ENDSCROLL to Clean. */ + { + nPos = (short int) HIWORD (wParam); + parentwindow = GetControlParent (hwnd); + hwndScrollBar = (HWND) lParam; + + if (hwndScrollBar==0) + { + controlkind = SB_HORZ; /* lParam==0 in case of Compound scrollbars. */ + hwndScrollBar = hwnd; /* pass the compound control handle to Clean. */ + UpdateWindow (hwnd); /* but first ensure that compound control is updated. */ + } + else + { + controlkind = SB_CTL; /* lParam!==0 in case of SliderControls. */ + } + SendMessage5ToClean (CcWmSCROLLBARACTION, parentwindow, hwndScrollBar, controlkind, nScrollCode, nPos); + } + return 0; + } + break; + case WM_VSCROLL: + { + int nPos,nScrollCode,controlkind; + HWND parentwindow, hwndScrollBar; + + nScrollCode = LOWORD (wParam); + + if (nScrollCode != SB_ENDSCROLL) /* Do not send the SB_ENDSCROLL to Clean. */ + { + nPos = (short int) HIWORD (wParam); + parentwindow = GetControlParent (hwnd); + hwndScrollBar = (HWND) lParam; + + if (hwndScrollBar==0) + { + controlkind = SB_VERT; /* lParam==0 in case of Compound scrollbars. */ + hwndScrollBar = hwnd; /* pass the compound control handle to Clean. */ + UpdateWindow (hwnd); /* but first ensure that compound control is updated. */ + } + else + { + controlkind = SB_CTL; /* lParam!==0 in case of SliderControls. */ + } + SendMessage5ToClean (CcWmSCROLLBARACTION, parentwindow, hwndScrollBar, controlkind, nScrollCode, nPos); + } + return 0; + } + break; + /* The following cases concerning mouse events + (WM_LBUTTONDOWN upto WM_TIMER) have been copied from CustomControlProcedure. + */ + case WM_LBUTTONDOWN: + { /* SendMouseDownToClean (GetControlParent (hwnd), hwnd, SIGNEDLOWORD (lParam), SIGNEDHIWORD (lParam));*/ - return 0; - } break; - case WM_MOUSEMOVE: - { - if (gInMouseDown) - { + return 0; + } break; + case WM_MOUSEMOVE: + { + if (gInMouseDown) + { /* SendMouseStillDownToClean (GetControlParent (hwnd), hwnd, SIGNEDLOWORD (lParam), SIGNEDHIWORD (lParam)); */ - } - else - { + } + else + { /* SendMouseStillUpToClean (GetControlParent (hwnd), hwnd, SIGNEDLOWORD (lParam), SIGNEDHIWORD (lParam)); */ - } - return 0; - } break; - case WM_LBUTTONUP: - { - if (gInMouseDown) - { - ReleaseCapture (); /* rely on WM_CAPTURECHANGED to send the mouseUp event */ - } - return 0; - } break; - case WM_CANCELMODE: - { - if (gInMouseDown) - { - ReleaseCapture (); /* rely on WM_CAPTURECHANGED to send the mouseUp event */ - } - return DefWindowProc (hwnd, uMess, wParam, lParam); - } break; - case WM_CAPTURECHANGED: - { - if (gInMouseDown) - { - POINT p; - GetCursorPos (&p); - ScreenToClient (hwnd, &p); + } + return 0; + } break; + case WM_LBUTTONUP: + { + if (gInMouseDown) + { + ReleaseCapture (); /* rely on WM_CAPTURECHANGED to send the mouseUp event */ + } + return 0; + } break; + case WM_CANCELMODE: + { + if (gInMouseDown) + { + ReleaseCapture (); /* rely on WM_CAPTURECHANGED to send the mouseUp event */ + } + return DefWindowProc (hwnd, uMess, wParam, lParam); + } break; + case WM_CAPTURECHANGED: + { + if (gInMouseDown) + { + POINT p; + GetCursorPos (&p); + ScreenToClient (hwnd, &p); /* SendMouseUpToClean (GetControlParent (hwnd), hwnd, p.x, p.y); */ - } - return 0; - } break; - /* The following cases concerning key events and focus events - (WM_SYSKEYDOWN upto WM_GETDLGCODE) have been copied from CustomControlProcedure. - */ - case WM_SYSKEYDOWN: - case WM_KEYDOWN: - { - int c = 0; - HWND hwndParent; - - c = CheckVirtualKeyCode ((int) wParam); - - if (!c) - /* Ignore non-virtual keys, because they arrive as WM_SYSCHAR and WM_CHAR. */ - { - return DefWindowProc (hwnd, uMess, wParam, lParam); - } - /* Handle virtual keys analogously to keys received as WM_SYSCHAR and WM_CHAR. */ - hwndParent = GetControlParent (hwnd); + } + return 0; + } break; + /* The following cases concerning key events and focus events + (WM_SYSKEYDOWN upto WM_GETDLGCODE) have been copied from CustomControlProcedure. + */ + case WM_SYSKEYDOWN: + case WM_KEYDOWN: + { + int c = 0; + HWND hwndParent; + + c = CheckVirtualKeyCode ((int) wParam); + + if (!c) + /* Ignore non-virtual keys, because they arrive as WM_SYSCHAR and WM_CHAR. */ + { + return DefWindowProc (hwnd, uMess, wParam, lParam); + } + /* Handle virtual keys analogously to keys received as WM_SYSCHAR and WM_CHAR. */ + hwndParent = GetControlParent (hwnd); /* if (gInKey) - { - if (gCurChar == c) - SendKeyStillDownToClean (hwndParent, hwnd, gCurChar); - else - { - SendKeyUpToClean (hwndParent, hwnd, gCurChar); - gCurChar = c; - SendKeyDownToClean (hwndParent, hwnd, gCurChar); - } - } - else - { - gCurChar = c; - SendKeyDownToClean (hwndParent, hwnd, gCurChar); - gInKey = TRUE; - } + { + if (gCurChar == c) + SendKeyStillDownToClean (hwndParent, hwnd, gCurChar); + else + { + SendKeyUpToClean (hwndParent, hwnd, gCurChar); + gCurChar = c; + SendKeyDownToClean (hwndParent, hwnd, gCurChar); + } + } + else + { + gCurChar = c; + SendKeyDownToClean (hwndParent, hwnd, gCurChar); + gInKey = TRUE; + } */ - return 0; - } - break; - case WM_SYSCHAR: - case WM_CHAR: - { - HWND hwndParent = GetControlParent (hwnd); + return 0; + } + break; + case WM_SYSCHAR: + case WM_CHAR: + { + HWND hwndParent = GetControlParent (hwnd); /* if (gInKey) - { - if (gCurChar == (int) wParam) - SendKeyStillDownToClean (hwndParent, hwnd, gCurChar); - else - { - SendKeyUpToClean (hwndParent, hwnd, gCurChar); - gCurChar = wParam; - SendKeyDownToClean (hwndParent, hwnd, gCurChar); - } - } - else - { - gCurChar = wParam; - SendKeyDownToClean (hwndParent, hwnd, gCurChar); - gInKey = TRUE; - } + { + if (gCurChar == (int) wParam) + SendKeyStillDownToClean (hwndParent, hwnd, gCurChar); + else + { + SendKeyUpToClean (hwndParent, hwnd, gCurChar); + gCurChar = wParam; + SendKeyDownToClean (hwndParent, hwnd, gCurChar); + } + } + else + { + gCurChar = wParam; + SendKeyDownToClean (hwndParent, hwnd, gCurChar); + gInKey = TRUE; + } */ - return 0; - } - break; - case WM_SYSKEYUP: - case WM_KEYUP: - { - if (gInKey) - SendKeyUpToClean (GetControlParent (hwnd), hwnd, gCurChar); - gInKey = FALSE; - gCurChar = 0; - return DefWindowProc (hwnd, uMess, wParam, lParam); - } - break; - case WM_KILLFOCUS: - { - HWND hwndParent = GetControlParent (hwnd); - if (gInKey) - SendKeyUpToClean (hwndParent, hwnd, gCurChar); - gInKey = FALSE; - gCurChar = 0; - /* WM_KILLFOCUS now also sends the CcWmKILLFOCUS message to - Clean (because of the ControlDeactivate attribute). - */ - SendMessage2ToClean (CcWmKILLFOCUS, hwndParent, hwnd); - return 0; - } - break; - case WM_SETFOCUS: - { - /* WM_SETFOCUS sends the CcWmSETFOCUS message to Clean because - of the ControlActivate attribute. - */ - SendMessage2ToClean (CcWmSETFOCUS, GetControlParent (hwnd), hwnd); - return 0; - } - break; - /* The WM_CLOSE event is generated when a user presses escape inside an EditControl that exists - within the CompoundControl which exists within a Dialog. - */ - case WM_CLOSE: - { - SendMessage1ToClean (CcWmCLOSE, GetControlParent (hwnd)); - return 0; - } - break; - case WM_GETDLGCODE: /* Inform dialog procedure to pass all keyboard input to the control. */ - return (DLGC_WANTCHARS | DLGC_WANTARROWS); - break; - case WM_DRAWITEM: - { - LPDRAWITEMSTRUCT lpdis; - lpdis = (LPDRAWITEMSTRUCT) lParam; - - switch (lpdis->CtlType) - { - case ODT_COMBOBOX: - { - char text[256]; - COLORREF forecolor, bkcolor; - SendMessage (lpdis->hwndItem, CB_GETLBTEXT, lpdis->itemID, (LPARAM) text); - if (lpdis->itemState & ODS_DISABLED) - { - forecolor = SetTextColor (lpdis->hDC, GetSysColor (COLOR_GRAYTEXT)); - bkcolor = SetBkColor (lpdis->hDC, GetSysColor (COLOR_3DFACE)); - } - else if (lpdis->itemState & ODS_SELECTED) - { - if (lpdis->itemData) - { - forecolor = SetTextColor (lpdis->hDC, GetSysColor (COLOR_HIGHLIGHTTEXT)); - bkcolor = SetBkColor (lpdis->hDC, GetSysColor (COLOR_HIGHLIGHT)); - } - else - { - forecolor = SetTextColor (lpdis->hDC, GetSysColor (COLOR_GRAYTEXT)); - bkcolor = SetBkColor (lpdis->hDC, GetSysColor (COLOR_WINDOW)); - } - } - else - { - if (lpdis->itemData) - forecolor = SetTextColor (lpdis->hDC, GetSysColor (COLOR_WINDOWTEXT)); - else - forecolor = SetTextColor (lpdis->hDC, GetSysColor (COLOR_GRAYTEXT)); - bkcolor = SetBkColor (lpdis->hDC, GetSysColor (COLOR_WINDOW)); - } - - ExtTextOut (lpdis->hDC, /* device context */ - lpdis->rcItem.left + 2, /* ref point x */ - lpdis->rcItem.top + 1, /* ref point y */ - ETO_CLIPPED | ETO_OPAQUE, /* options */ - &lpdis->rcItem, /* clipping rect */ - text, /* text to draw */ - lstrlen (text), /* length of text to draw */ - NULL /* no kerning array */ - ); - - SetTextColor (lpdis->hDC, forecolor); - SetBkColor (lpdis->hDC, bkcolor); - - if (lpdis->itemState & ODS_FOCUS) - DrawFocusRect (lpdis->hDC, &lpdis->rcItem); - return 0; - } break; - case ODT_BUTTON: - { - HWND parentwindow; - parentwindow = GetControlParent (hwnd); - - SendMessage3ToClean (CcWmDRAWCONTROL, parentwindow, lpdis->hwndItem, lpdis->hDC); - - if (lpdis->itemState & ODS_SELECTED) - InvertRect (lpdis->hDC, &lpdis->rcItem); - - if (lpdis->itemState & ODS_FOCUS) - DrawFocusRect (lpdis->hDC, &lpdis->rcItem); - return 0; - } break; - } - return 0; - } - break; - default: - return DefWindowProc (hwnd, uMess, wParam, lParam); - break; - } - ErrorExit ("Fatal error: case leak in CompoundControlProcedure (%d).",uMess); + return 0; + } + break; + case WM_SYSKEYUP: + case WM_KEYUP: + { + if (gInKey) + SendKeyUpToClean (GetControlParent (hwnd), hwnd, gCurChar); + gInKey = FALSE; + gCurChar = 0; + return DefWindowProc (hwnd, uMess, wParam, lParam); + } + break; + case WM_KILLFOCUS: + { + HWND hwndParent = GetControlParent (hwnd); + if (gInKey) + SendKeyUpToClean (hwndParent, hwnd, gCurChar); + gInKey = FALSE; + gCurChar = 0; + /* WM_KILLFOCUS now also sends the CcWmKILLFOCUS message to + Clean (because of the ControlDeactivate attribute). + */ + SendMessage2ToClean (CcWmKILLFOCUS, hwndParent, hwnd); + return 0; + } + break; + case WM_SETFOCUS: + { + /* WM_SETFOCUS sends the CcWmSETFOCUS message to Clean because + of the ControlActivate attribute. + */ + SendMessage2ToClean (CcWmSETFOCUS, GetControlParent (hwnd), hwnd); + return 0; + } + break; + /* The WM_CLOSE event is generated when a user presses escape inside an EditControl that exists + within the CompoundControl which exists within a Dialog. + */ + case WM_CLOSE: + { + SendMessage1ToClean (CcWmCLOSE, GetControlParent (hwnd)); + return 0; + } + break; + case WM_GETDLGCODE: /* Inform dialog procedure to pass all keyboard input to the control. */ + return (DLGC_WANTCHARS | DLGC_WANTARROWS); + break; + case WM_DRAWITEM: + { + LPDRAWITEMSTRUCT lpdis; + lpdis = (LPDRAWITEMSTRUCT) lParam; + + switch (lpdis->CtlType) + { + case ODT_COMBOBOX: + { + char text[256]; + COLORREF forecolor, bkcolor; + SendMessage (lpdis->hwndItem, CB_GETLBTEXT, lpdis->itemID, (LPARAM) text); + if (lpdis->itemState & ODS_DISABLED) + { + forecolor = SetTextColor (lpdis->hDC, GetSysColor (COLOR_GRAYTEXT)); + bkcolor = SetBkColor (lpdis->hDC, GetSysColor (COLOR_3DFACE)); + } + else if (lpdis->itemState & ODS_SELECTED) + { + if (lpdis->itemData) + { + forecolor = SetTextColor (lpdis->hDC, GetSysColor (COLOR_HIGHLIGHTTEXT)); + bkcolor = SetBkColor (lpdis->hDC, GetSysColor (COLOR_HIGHLIGHT)); + } + else + { + forecolor = SetTextColor (lpdis->hDC, GetSysColor (COLOR_GRAYTEXT)); + bkcolor = SetBkColor (lpdis->hDC, GetSysColor (COLOR_WINDOW)); + } + } + else + { + if (lpdis->itemData) + forecolor = SetTextColor (lpdis->hDC, GetSysColor (COLOR_WINDOWTEXT)); + else + forecolor = SetTextColor (lpdis->hDC, GetSysColor (COLOR_GRAYTEXT)); + bkcolor = SetBkColor (lpdis->hDC, GetSysColor (COLOR_WINDOW)); + } + + ExtTextOut (lpdis->hDC, /* device context */ + lpdis->rcItem.left + 2, /* ref point x */ + lpdis->rcItem.top + 1, /* ref point y */ + ETO_CLIPPED | ETO_OPAQUE, /* options */ + &lpdis->rcItem, /* clipping rect */ + text, /* text to draw */ + lstrlen (text), /* length of text to draw */ + NULL /* no kerning array */ + ); + + SetTextColor (lpdis->hDC, forecolor); + SetBkColor (lpdis->hDC, bkcolor); + + if (lpdis->itemState & ODS_FOCUS) + DrawFocusRect (lpdis->hDC, &lpdis->rcItem); + return 0; + } break; + case ODT_BUTTON: + { + HWND parentwindow; + parentwindow = GetControlParent (hwnd); + + SendMessage3ToClean (CcWmDRAWCONTROL, parentwindow, lpdis->hwndItem, lpdis->hDC); + + if (lpdis->itemState & ODS_SELECTED) + InvertRect (lpdis->hDC, &lpdis->rcItem); + + if (lpdis->itemState & ODS_FOCUS) + DrawFocusRect (lpdis->hDC, &lpdis->rcItem); + return 0; + } break; + } + return 0; + } + break; + default: + return DefWindowProc (hwnd, uMess, wParam, lParam); + break; + } + ErrorExit ("Fatal error: case leak in CompoundControlProcedure (%d).",uMess); } /* CompoundControlProcedure */ #endif /********************************************************************************************* - Cross call procedure implementations. - Eval corresponds with a CrossCallEntry generated by NewCrossCallEntry (nr,Eval). + Cross call procedure implementations. + Eval corresponds with a CrossCallEntry generated by NewCrossCallEntry (nr,Eval). *********************************************************************************************/ void EvalCcRqBEGINPAINT (CrossCallInfo *pcci) /* hwnd; HDC result. */ { /* HDC hdc; - hdc = BeginPaint ((HWND) pcci->p1, &gPaintStruct); + hdc = BeginPaint ((HWND) pcci->p1, &gPaintStruct); */ - rprintf("EvalCcRqBEGINPAINT -> not implemented\n"); - MakeReturn1Cci (pcci, (int64_t) NULL /*hdc*/); + rprintf("EvalCcRqBEGINPAINT -> not implemented\n"); + MakeReturn1Cci (pcci, (int64_t) NULL /*hdc*/); } void EvalCcRqENDPAINT (CrossCallInfo *pcci) /* hwnd; no result. */ { /* EndPaint ((HWND) pcci->p1, &gPaintStruct); */ - rprintf("EvalCcRqEndPaint -> not implemented\n"); - MakeReturn0Cci (pcci); + rprintf("EvalCcRqEndPaint -> not implemented\n"); + MakeReturn0Cci (pcci); } void EvalCcRqFAKEPAINT (CrossCallInfo *pcci) /* hwnd; no result. */ { /* HWND hwnd = (HWND) pcci->p1; - BeginPaint (hwnd, &gPaintStruct); - EndPaint (hwnd,&gPaintStruct); - InvalidateRect (hwnd, NULL, FALSE); + BeginPaint (hwnd, &gPaintStruct); + EndPaint (hwnd,&gPaintStruct); + InvalidateRect (hwnd, NULL, FALSE); */ - printf("EvalCcRqFAKEPAINT -> not implemented\n"); - MakeReturn0Cci (pcci); + printf("EvalCcRqFAKEPAINT -> not implemented\n"); + MakeReturn0Cci (pcci); } void EvalCcRqDESTROYMODALDIALOG (CrossCallInfo *pcci) /* hwnd; no result. */ { - GtkWidget *dialog; + GtkWidget *dialog; printf("EvalCcRqDESTROYMODALDIALOG\n"); dialog = GTK_WIDGET(pcci->p1); - gtk_dialog_response (GTK_DIALOG(dialog), 0); - MakeReturn0Cci (pcci); + gtk_dialog_response (GTK_DIALOG(dialog), 0); + MakeReturn0Cci (pcci); } void EvalCcRqDESTROYMDIDOCWINDOW (CrossCallInfo *pcci) /* hwndFrame, hwndClient, wPtr; no result. */ { - gint page_num; - GtkWidget *frame, *client, *window; + gint page_num; + GtkWidget *frame, *client, *window; printf("EvalCcRqDESTROYMDIDOCWINDOW\n"); - frame = GTK_WIDGET(pcci->p1); - client = GTK_WIDGET(pcci->p2); - window = GTK_WIDGET(pcci->p3); + frame = GTK_WIDGET(pcci->p1); + client = GTK_WIDGET(pcci->p2); + window = GTK_WIDGET(pcci->p3); - page_num = gtk_notebook_page_num(GTK_NOTEBOOK(client), window); - gtk_notebook_remove_page(GTK_NOTEBOOK(client), page_num); + page_num = gtk_notebook_page_num(GTK_NOTEBOOK(client), window); + gtk_notebook_remove_page(GTK_NOTEBOOK(client), page_num); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } static gint client_expose_handler(GtkWidget *widget, GdkEventExpose *event, gpointer user_data) { printf("client_expose_handler\n"); - SendMessage6ToClean(CcWmPAINT, (int64_t)gtk_widget_get_parent(gtk_widget_get_parent(widget)), - event->area.x, - event->area.y, - event->area.x+event->area.width, - event->area.y+event->area.height, - (int64_t) GDK_DRAWABLE(event->window)); + SendMessage6ToClean(CcWmPAINT, (int64_t)gtk_widget_get_parent(gtk_widget_get_parent(widget)), + event->area.x, + event->area.y, + event->area.x+event->area.width, + event->area.y+event->area.height, + (int64_t) GDK_DRAWABLE(event->window)); - return GTK_WIDGET_GET_CLASS(widget)->expose_event(widget,event); + return GTK_WIDGET_GET_CLASS(widget)->expose_event(widget,event); } static void sw_focus_out_handler(GtkWidget *widget, GdkEventFocus *event, gpointer user_data) { printf("sw_focus_out_handler\n"); - if (gInKey) + if (gInKey) { - SendKeyUpToClean (widget, widget, gCurChar); + SendKeyUpToClean (widget, widget, gCurChar); } - gInKey = gtk_false(); - gCurChar = 0; + gInKey = gtk_false(); + gCurChar = 0; } static gboolean sw_button_press_handler(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { printf("sw_button_press_handler\n"); - if (event->button == 1) - { - GtkWidget *client = gtk_widget_get_parent(widget); - - gInMouseDown = TRUE; - - switch (event->type) - { - case GDK_BUTTON_PRESS: - SendMessage6ToClean (CcWmMOUSE, client, client, BUTTONDOWN, event->x, event->y, GetModifiers()); - break; - case GDK_2BUTTON_PRESS: - SendMessage6ToClean (CcWmMOUSE, client, client, BUTTONDOUBLEDOWN, event->x, event->y, GetModifiers()); - break; - case GDK_3BUTTON_PRESS: - SendMessage6ToClean (CcWmMOUSE, client, client, BUTTONTRIPLEDOWN, event->x, event->y, GetModifiers()); - break; - } + if (event->button == 1) + { + GtkWidget *client = gtk_widget_get_parent(widget); + + gInMouseDown = TRUE; + + switch (event->type) + { + case GDK_BUTTON_PRESS: + SendMessage6ToClean (CcWmMOUSE, client, client, BUTTONDOWN, event->x, event->y, GetModifiers()); + break; + case GDK_2BUTTON_PRESS: + SendMessage6ToClean (CcWmMOUSE, client, client, BUTTONDOUBLEDOWN, event->x, event->y, GetModifiers()); + break; + case GDK_3BUTTON_PRESS: + SendMessage6ToClean (CcWmMOUSE, client, client, BUTTONTRIPLEDOWN, event->x, event->y, GetModifiers()); + break; + } return gtk_true(); - } + } return gtk_false(); } static gboolean sw_button_release_handler(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { printf("sw_button_release_handler\n"); - if (event->button == 1) - { - GtkWidget *client = gtk_widget_get_parent(widget); + if (event->button == 1) + { + GtkWidget *client = gtk_widget_get_parent(widget); - gInMouseDown = FALSE; - SendMessage6ToClean (CcWmMOUSE, client, client, BUTTONUP, event->x, event->y, GetModifiers()); + gInMouseDown = FALSE; + SendMessage6ToClean (CcWmMOUSE, client, client, BUTTONUP, event->x, event->y, GetModifiers()); return gtk_true(); - } + } return gtk_false(); } static gboolean sw_motion_notify_handler(GtkWidget *widget, GdkEventMotion *event, gpointer user_data) { - GtkWidget *client; + GtkWidget *client; printf("sw_motion_notify_handler\n"); client = gtk_widget_get_parent(widget); - if (gInMouseDown) + if (gInMouseDown) { - SendMessage6ToClean(CcWmMOUSE, client, client, BUTTONSTILLDOWN, event->x, event->y, GetModifiers()); + SendMessage6ToClean(CcWmMOUSE, client, client, BUTTONSTILLDOWN, event->x, event->y, GetModifiers()); } else { - SendMessage6ToClean (CcWmMOUSE, client, client, BUTTONSTILLUP, event->x, event->y, GetModifiers()); + SendMessage6ToClean (CcWmMOUSE, client, client, BUTTONSTILLUP, event->x, event->y, GetModifiers()); } return gtk_true(); } static void client_size_allocate(GtkWidget *widget, GtkAllocation *allocation, gpointer user_data) { - GtkWidget *sw; + GtkWidget *sw; printf("client_size_allocate\n"); sw = GTK_WIDGET(user_data); - SendMessage4ToClean (CcWmSIZE, sw, allocation->width, allocation->height, (int)FALSE); + SendMessage4ToClean (CcWmSIZE, sw, allocation->width, allocation->height, (int)FALSE); } static void client_size_request(GtkWidget *widget, GtkRequisition *requisition, gpointer user_data) { printf("client_size_request\n"); - *requisition = *((GtkRequisition *) user_data); - printf("client_size_request(%d,%d)\n", requisition->width, requisition->height); + *requisition = *((GtkRequisition *) user_data); + printf("client_size_request(%d,%d)\n", requisition->width, requisition->height); } static gboolean client_delete_handler(GtkWidget *widget, GdkEvent *event, gpointer user_data) { - printf("client_delete_handler(%d,%d)\n", ((GtkRequisition *) user_data)->width, ((GtkRequisition *) user_data)->height); - g_free(((GtkRequisition*)user_data)); - return gtk_true(); + printf("client_delete_handler(%d,%d)\n", ((GtkRequisition *) user_data)->width, ((GtkRequisition *) user_data)->height); + g_free(((GtkRequisition*)user_data)); + return gtk_true(); } static void compute_height(GtkWidget *widget, gpointer data) { - GtkRequisition requisition; + GtkRequisition requisition; printf("compute_height\n"); - gtk_widget_size_request(widget,&requisition); - *((int *) data) += requisition.height; + gtk_widget_size_request(widget,&requisition); + *((int *) data) += requisition.height; } /* Create a SDI document window. */ void EvalCcRqCREATESDIDOCWINDOW (CrossCallInfo *pcci) /* textptr, frameptr, packed pos, w,h, flags; client ptr result. */ { - GtkWidget *window, *fixed, *box, *sw; - const gchar *pwintitle; - gint left, top, width, height; - GtkRequisition *requisition; + GtkWidget *window, *fixed, *box, *sw; + const gchar *pwintitle; + gint left, top, width, height; + GtkRequisition *requisition; printf("EvalCcRqCREATESDIDOCWINDOW\n"); - pwintitle = (const gchar *) pcci->p1; - window = GTK_WIDGET(pcci->p2); - left = pcci->p3>>16; - top = (pcci->p3<<16)>>16; - width = pcci->p4; - height = pcci->p5; - - requisition = g_new(GtkRequisition, 1); - requisition->width = 0; - requisition->height = 0; - - /* Adjust the pos and size of the frame window. */ - gtk_widget_set_uposition(window, left, top); - - if (pwintitle) - { - gtk_window_set_title(GTK_WINDOW(window), pwintitle); - } - - /* Create a Scrolled Window */ - sw = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), - GTK_POLICY_AUTOMATIC, - GTK_POLICY_AUTOMATIC); - box = gtk_bin_get_child(GTK_BIN(window)); - gtk_box_pack_end (GTK_BOX (box), sw, TRUE, TRUE, 0); - - /* Create a Fixed Container */ - fixed = gtk_fixed_new(); - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), fixed); - - /* Signals */ - gtk_signal_connect (GTK_OBJECT(fixed), "expose-event", - GTK_SIGNAL_FUNC(client_expose_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "focus-out-event", - GTK_SIGNAL_FUNC(sw_focus_out_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "button-press-event", - GTK_SIGNAL_FUNC(sw_button_press_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "button-release-event", - GTK_SIGNAL_FUNC(sw_button_release_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "motion_notify_event", - GTK_SIGNAL_FUNC(sw_motion_notify_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(fixed), "size-allocate", - GTK_SIGNAL_FUNC(client_size_allocate), - sw); - gtk_signal_connect (GTK_OBJECT(fixed), "size-request", - GTK_SIGNAL_FUNC(client_size_request), - requisition); - gtk_signal_connect (GTK_OBJECT(fixed), "delete-event", - GTK_SIGNAL_FUNC(client_delete_handler), - requisition); + pwintitle = (const gchar *) pcci->p1; + window = GTK_WIDGET(pcci->p2); + left = pcci->p3>>16; + top = (pcci->p3<<16)>>16; + width = pcci->p4; + height = pcci->p5; + + requisition = g_new(GtkRequisition, 1); + requisition->width = 0; + requisition->height = 0; + + /* Adjust the pos and size of the frame window. */ + gtk_widget_set_uposition(window, left, top); + + if (pwintitle) + { + gtk_window_set_title(GTK_WINDOW(window), pwintitle); + } + + /* Create a Scrolled Window */ + sw = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + box = gtk_bin_get_child(GTK_BIN(window)); + gtk_box_pack_end (GTK_BOX (box), sw, TRUE, TRUE, 0); + + /* Create a Fixed Container */ + fixed = gtk_fixed_new(); + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), fixed); + + /* Signals */ + gtk_signal_connect (GTK_OBJECT(fixed), "expose-event", + GTK_SIGNAL_FUNC(client_expose_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "focus-out-event", + GTK_SIGNAL_FUNC(sw_focus_out_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "button-press-event", + GTK_SIGNAL_FUNC(sw_button_press_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "button-release-event", + GTK_SIGNAL_FUNC(sw_button_release_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "motion_notify_event", + GTK_SIGNAL_FUNC(sw_motion_notify_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(fixed), "size-allocate", + GTK_SIGNAL_FUNC(client_size_allocate), + sw); + gtk_signal_connect (GTK_OBJECT(fixed), "size-request", + GTK_SIGNAL_FUNC(client_size_request), + requisition); + gtk_signal_connect (GTK_OBJECT(fixed), "delete-event", + GTK_SIGNAL_FUNC(client_delete_handler), + requisition); g_object_set_data(G_OBJECT(sw), SCROLL_SIZE_KEY, (gpointer)requisition); - SendMessage1ToClean (CcWmCREATE, sw); + SendMessage1ToClean (CcWmCREATE, sw); - gtk_widget_realize(window); + gtk_widget_realize(window); - { - gint depth; - GdkRectangle ext_rect, rect; + { + gint depth; + GdkRectangle ext_rect, rect; - gdk_window_get_geometry(window->window, &rect.x, &rect.y, &rect.width, &rect.height, &depth); - gdk_window_get_frame_extents (window->window,&ext_rect); + gdk_window_get_geometry(window->window, &rect.x, &rect.y, &rect.width, &rect.height, &depth); + gdk_window_get_frame_extents (window->window,&ext_rect); - gtk_container_foreach(GTK_CONTAINER(GTK_BIN(window)->child), compute_height, &ext_rect.height); + gtk_container_foreach(GTK_CONTAINER(GTK_BIN(window)->child), compute_height, &ext_rect.height); - gtk_window_set_default_size(GTK_WINDOW(window), width+(ext_rect.width - rect.width), height+(ext_rect.height - rect.height)); - } + gtk_window_set_default_size(GTK_WINDOW(window), width+(ext_rect.width - rect.width), height+(ext_rect.height - rect.height)); + } - gtk_widget_show_all(window); + gtk_widget_show_all(window); - gdk_window_set_events(GTK_BIN(sw)->child->window, - gdk_window_get_events(GTK_BIN(sw)->child->window) | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK); - fprintf(stderr,"EvalCcRqCREATESDIDOCWINDOW - window: %d sw: %d\n",window,sw); - MakeReturn1Cci (pcci, (int64_t) sw); + gdk_window_set_events(GTK_BIN(sw)->child->window, + gdk_window_get_events(GTK_BIN(sw)->child->window) | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK); + fprintf(stderr,"EvalCcRqCREATESDIDOCWINDOW - window: %d sw: %d\n",window,sw); + MakeReturn1Cci (pcci, (int64_t) sw); } /* Create MDI child window. */ void EvalCcRqCREATEMDIDOCWINDOW (CrossCallInfo *pcci) /* textptr, clientPtr, behindPtr, packed pos, packed size, flags; HWND result. */ { - GtkWidget *window, *fixed, *client, *behind, *sw; - const gchar *pwintitle; - gint left, top, width, height; - GtkRequisition *requisition; - gint index; + GtkWidget *window, *fixed, *client, *behind, *sw; + const gchar *pwintitle; + gint left, top, width, height; + GtkRequisition *requisition; + gint index; printf("EvalCcRqCREATEMDIDOCWINDOW\n"); - pwintitle = (const gchar *) pcci->p1; - client = GTK_WIDGET(pcci->p2); - behind = GTK_WIDGET(pcci->p3); - left = pcci->p4>>16; - top = (pcci->p4<<16)>>16; - width = pcci->p5>>16; - height = (pcci->p5<<16)>>16; - - window = gtk_widget_get_parent(gtk_widget_get_parent(client)); - - requisition = g_new(GtkRequisition, 1); - requisition->width = 0; - requisition->height = 0; - - /* Create a Scrolled Window */ - sw = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), - GTK_POLICY_AUTOMATIC, - GTK_POLICY_AUTOMATIC); - index = gtk_notebook_page_num(GTK_NOTEBOOK(client), behind); - gtk_notebook_insert_page(GTK_NOTEBOOK(client), sw, - pwintitle ? gtk_label_new(pwintitle) : NULL, - index); - - /* Create a Fixed Container */ - fixed = gtk_fixed_new(); - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), fixed); - - /* Signals */ - gtk_signal_connect (GTK_OBJECT(fixed), "expose-event", - GTK_SIGNAL_FUNC(client_expose_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "focus-out-event", - GTK_SIGNAL_FUNC(sw_focus_out_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "button-press-event", - GTK_SIGNAL_FUNC(sw_button_press_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "button-release-event", - GTK_SIGNAL_FUNC(sw_button_release_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "motion_notify_event", - GTK_SIGNAL_FUNC(sw_motion_notify_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(fixed), "size-allocate", - GTK_SIGNAL_FUNC(client_size_allocate), - sw); - gtk_signal_connect (GTK_OBJECT(fixed), "size-request", - GTK_SIGNAL_FUNC(client_size_request), - requisition); - gtk_signal_connect (GTK_OBJECT(fixed), "delete-event", - GTK_SIGNAL_FUNC(client_delete_handler), - requisition); + pwintitle = (const gchar *) pcci->p1; + client = GTK_WIDGET(pcci->p2); + behind = GTK_WIDGET(pcci->p3); + left = pcci->p4>>16; + top = (pcci->p4<<16)>>16; + width = pcci->p5>>16; + height = (pcci->p5<<16)>>16; + + window = gtk_widget_get_parent(gtk_widget_get_parent(client)); + + requisition = g_new(GtkRequisition, 1); + requisition->width = 0; + requisition->height = 0; + + /* Create a Scrolled Window */ + sw = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + index = gtk_notebook_page_num(GTK_NOTEBOOK(client), behind); + gtk_notebook_insert_page(GTK_NOTEBOOK(client), sw, + pwintitle ? gtk_label_new(pwintitle) : NULL, + index); + + /* Create a Fixed Container */ + fixed = gtk_fixed_new(); + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), fixed); + + /* Signals */ + gtk_signal_connect (GTK_OBJECT(fixed), "expose-event", + GTK_SIGNAL_FUNC(client_expose_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "focus-out-event", + GTK_SIGNAL_FUNC(sw_focus_out_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "button-press-event", + GTK_SIGNAL_FUNC(sw_button_press_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "button-release-event", + GTK_SIGNAL_FUNC(sw_button_release_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(GTK_BIN(sw)->child), "motion_notify_event", + GTK_SIGNAL_FUNC(sw_motion_notify_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(fixed), "size-allocate", + GTK_SIGNAL_FUNC(client_size_allocate), + sw); + gtk_signal_connect (GTK_OBJECT(fixed), "size-request", + GTK_SIGNAL_FUNC(client_size_request), + requisition); + gtk_signal_connect (GTK_OBJECT(fixed), "delete-event", + GTK_SIGNAL_FUNC(client_delete_handler), + requisition); g_object_set_data(G_OBJECT(sw), SCROLL_SIZE_KEY, (gpointer)requisition); - SendMessage1ToClean (CcWmCREATE, sw); + SendMessage1ToClean (CcWmCREATE, sw); - gtk_widget_show_all(sw); - gtk_notebook_set_current_page(GTK_NOTEBOOK(client), gtk_notebook_page_num(GTK_NOTEBOOK(client),sw)); + gtk_widget_show_all(sw); + gtk_notebook_set_current_page(GTK_NOTEBOOK(client), gtk_notebook_page_num(GTK_NOTEBOOK(client),sw)); - gdk_window_set_events(GTK_BIN(sw)->child->window, - gdk_window_get_events(GTK_BIN(sw)->child->window) | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK); + gdk_window_set_events(GTK_BIN(sw)->child->window, + gdk_window_get_events(GTK_BIN(sw)->child->window) | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK); - MakeReturn1Cci (pcci, (int64_t) sw); + MakeReturn1Cci (pcci, (int64_t) sw); } void EvalCcRqSETWINDOWTITLE (CrossCallInfo *pcci) /* hwnd, textptr no result. */ { - GtkWidget *window; - gchar *title = (gchar *) pcci->p2; + GtkWidget *window; + gchar *title = (gchar *) pcci->p2; printf("EvalCcRqSETWINDOWTITLE\n"); - printf("Requested title (%p): %s\n", title, title); + printf("Requested title (%p): %s\n", title, title); window = GTK_WIDGET(pcci->p1); - if (GTK_IS_WINDOW(window)) - { - printf("Setting for window.\n"); - gtk_window_set_title(GTK_WINDOW(window), title); - } - else if (GTK_IS_LABEL(window)) - { - printf("Setting for label.\n"); - gtk_label_set_text(GTK_LABEL(window), title); - } - else if (GTK_IS_BUTTON(window)) - { - printf("Setting for button.\n"); - title = createMnemonicString(title); - gtk_button_set_label(GTK_BUTTON(window), title); - rfree(title); - } - else if (GTK_IS_ENTRY(window)) - { - printf("Setting for entry.\n"); - gtk_entry_set_text(GTK_ENTRY(window), title); - } - else if (GTK_IS_TEXT_VIEW(window)) - { - printf("Setting for text view.\n"); - GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(window)); - gtk_text_buffer_set_text (buffer, title, strlen(title)); - } - else - { - printf("EvalCcRqSETWINDOWTITLE -> unknown widget type\n"); - } - - MakeReturn0Cci (pcci); + if (GTK_IS_WINDOW(window)) + { + printf("Setting for window.\n"); + gtk_window_set_title(GTK_WINDOW(window), title); + } + else if (GTK_IS_LABEL(window)) + { + printf("Setting for label.\n"); + gtk_label_set_text(GTK_LABEL(window), title); + } + else if (GTK_IS_BUTTON(window)) + { + printf("Setting for button.\n"); + title = createMnemonicString(title); + gtk_button_set_label(GTK_BUTTON(window), title); + rfree(title); + } + else if (GTK_IS_ENTRY(window)) + { + printf("Setting for entry.\n"); + gtk_entry_set_text(GTK_ENTRY(window), title); + } + else if (GTK_IS_TEXT_VIEW(window)) + { + printf("Setting for text view.\n"); + GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(window)); + gtk_text_buffer_set_text (buffer, title, strlen(title)); + } + else + { + printf("EvalCcRqSETWINDOWTITLE -> unknown widget type\n"); + } + + MakeReturn0Cci (pcci); } void EvalCcRqGETWINDOWTEXT (CrossCallInfo *pcci) /* hwnd; textptr result. */ { - G_CONST_RETURN gchar *title = NULL; + G_CONST_RETURN gchar *title = NULL; GtkWidget *window; - gchar *textptr; + gchar *textptr; printf("EvalCcRqGETWINDOWTEXT\n"); - window = GTK_WIDGET(pcci->p1); + window = GTK_WIDGET(pcci->p1); - if (GTK_IS_WINDOW(window)) + if (GTK_IS_WINDOW(window)) { - title = gtk_window_get_title(GTK_WINDOW(window)); + title = gtk_window_get_title(GTK_WINDOW(window)); } - else + else { - if (GTK_IS_LABEL(window)) + if (GTK_IS_LABEL(window)) { - title = gtk_label_get_text(GTK_LABEL(window)); + title = gtk_label_get_text(GTK_LABEL(window)); } else { - if (GTK_IS_BUTTON(window)) + if (GTK_IS_BUTTON(window)) { - title = gtk_button_get_label(GTK_BUTTON(window)); + title = gtk_button_get_label(GTK_BUTTON(window)); } - else + else { - if (GTK_IS_ENTRY(window)) + if (GTK_IS_ENTRY(window)) { - title = gtk_entry_get_text(GTK_ENTRY(window)); + title = gtk_entry_get_text(GTK_ENTRY(window)); } - else + else { - if (GTK_IS_TEXT_VIEW(window)) - { - GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(window)); - GtkTextIter start, end; - - gtk_text_buffer_get_start_iter(buffer, &start); - gtk_text_buffer_get_end_iter(buffer, &end); - title = gtk_text_buffer_get_text (buffer, &start, &end, gtk_true()); - } - else + if (GTK_IS_TEXT_VIEW(window)) { - printf("EvalCcRqSETWINDOWTITLE -> unknown widget type"); + GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(window)); + GtkTextIter start, end; + + gtk_text_buffer_get_start_iter(buffer, &start); + gtk_text_buffer_get_end_iter(buffer, &end); + title = gtk_text_buffer_get_text (buffer, &start, &end, gtk_true()); + } + else + { + printf("EvalCcRqSETWINDOWTITLE -> unknown widget type"); } } } } } - if (GTK_IS_BUTTON(window)) + if (GTK_IS_BUTTON(window)) { - textptr = createMnemonicString((gchar*) title); + textptr = createMnemonicString((gchar*) title); } else { - textptr = g_strdup(title); + textptr = g_strdup(title); } - MakeReturn1Cci (pcci, (int64_t) textptr); + MakeReturn1Cci (pcci, (int64_t) textptr); } /* Update rect part of a window. */ void EvalCcRqUPDATEWINDOWRECT (CrossCallInfo *pcci) /* hwnd, left,top,right,bottom; no result. */ { /* RECT rect; - HWND hwnd; + HWND hwnd; - hwnd = (HWND) pcci->p1; - rect.left = pcci->p2; - rect.top = pcci->p3; - rect.right = pcci->p4; - rect.bottom= pcci->p5; + hwnd = (HWND) pcci->p1; + rect.left = pcci->p2; + rect.top = pcci->p3; + rect.right = pcci->p4; + rect.bottom= pcci->p5; - InvalidateRect (hwnd,&rect,FALSE); - UpdateWindow (hwnd); - RedrawWindow (hwnd,&rect,NULL,RDW_FRAME | RDW_VALIDATE | RDW_UPDATENOW | RDW_NOCHILDREN); + InvalidateRect (hwnd,&rect,FALSE); + UpdateWindow (hwnd); + RedrawWindow (hwnd,&rect,NULL,RDW_FRAME | RDW_VALIDATE | RDW_UPDATENOW | RDW_NOCHILDREN); */ - printf("EvalCcRqUPDATEWINDOWRECT -> not implemented\n"); - MakeReturn0Cci (pcci); + printf("EvalCcRqUPDATEWINDOWRECT -> not implemented\n"); + MakeReturn0Cci (pcci); } /* Set the ClientRect. */ void EvalCcRqSETCLIENTSIZE (CrossCallInfo *pcci) /* hwnd, width, height; no result. */ { /* HWND hwnd; - int w,h,curw,curh,clientw,clienth; - UINT flags; - RECT clientRect,windowRect; - - hwnd = (HWND) pcci->p1; - w = pcci->p2; - h = pcci->p3; - flags = SWP_NOMOVE // retain position - | SWP_NOZORDER; // retain Z order - - GetClientRect (hwnd, &clientRect); - GetWindowRect (hwnd, &windowRect); - clientw = clientRect.right - clientRect.left; - clienth = clientRect.bottom- clientRect.top; - curw = windowRect.right - windowRect.left; - curh = windowRect.bottom- windowRect.top; - - SetWindowPos (hwnd, HWND_TOP, 0,0, curw+w-clientw,curh+h-clienth, flags);*/ - printf("EvalCcRqSETCLIENTSIZE -> not implemented\n"); - MakeReturn0Cci (pcci); + int w,h,curw,curh,clientw,clienth; + UINT flags; + RECT clientRect,windowRect; + + hwnd = (HWND) pcci->p1; + w = pcci->p2; + h = pcci->p3; + flags = SWP_NOMOVE // retain position + | SWP_NOZORDER; // retain Z order + + GetClientRect (hwnd, &clientRect); + GetWindowRect (hwnd, &windowRect); + clientw = clientRect.right - clientRect.left; + clienth = clientRect.bottom- clientRect.top; + curw = windowRect.right - windowRect.left; + curh = windowRect.bottom- windowRect.top; + + SetWindowPos (hwnd, HWND_TOP, 0,0, curw+w-clientw,curh+h-clienth, flags);*/ + printf("EvalCcRqSETCLIENTSIZE -> not implemented\n"); + MakeReturn0Cci (pcci); } /* (En/Dis)able windows/dialogues. */ void EvalCcRqSETSELECTWINDOW (CrossCallInfo *pcci) /* hwnd, hasHScroll, hasVScroll, toAble, modalContext; no result. */ { #if 0 - HWND window; - BOOL hasHScroll, hasVScroll, toAble, modalContext; - - window = (HWND) pcci->p1; - hasHScroll = (BOOL) pcci->p2; - hasVScroll = (BOOL) pcci->p3; - toAble = (BOOL) pcci->p4; - modalContext = (BOOL) pcci->p5; - - if (modalContext) /* if not a modal context, then do not disable window */ - EnableWindow (window,toAble); /* because it can't be moved, or closed. */ - if (hasHScroll) - EnableScrollBar (window,SB_HORZ,toAble ? ESB_ENABLE_BOTH : ESB_DISABLE_BOTH); - if (hasVScroll) - EnableScrollBar (window,SB_VERT,toAble ? ESB_ENABLE_BOTH : ESB_DISABLE_BOTH); + HWND window; + BOOL hasHScroll, hasVScroll, toAble, modalContext; + + window = (HWND) pcci->p1; + hasHScroll = (BOOL) pcci->p2; + hasVScroll = (BOOL) pcci->p3; + toAble = (BOOL) pcci->p4; + modalContext = (BOOL) pcci->p5; + + if (modalContext) /* if not a modal context, then do not disable window */ + EnableWindow (window,toAble); /* because it can't be moved, or closed. */ + if (hasHScroll) + EnableScrollBar (window,SB_HORZ,toAble ? ESB_ENABLE_BOTH : ESB_DISABLE_BOTH); + if (hasVScroll) + EnableScrollBar (window,SB_VERT,toAble ? ESB_ENABLE_BOTH : ESB_DISABLE_BOTH); #endif - printf("EvalCcRqSETSELECTWINDOW -> not implemented\n"); - MakeReturn0Cci (pcci); + printf("EvalCcRqSETSELECTWINDOW -> not implemented\n"); + MakeReturn0Cci (pcci); } /* Set the position of windows/controls. */ void EvalCcRqSETWINDOWPOS (CrossCallInfo *pcci) /* hwnd, x,y, update, include scrollbars ; no result. */ { - GtkWidget *widget, *parent; - int x,y; - gboolean update,inclScrollbars; + GtkWidget *widget, *parent; + int x,y; + gboolean update,inclScrollbars; printf("EvalCcRqSETWINDOWPOS\n"); - widget = GTK_WIDGET(pcci->p1); - x = pcci->p2; - y = pcci->p3; - update = pcci->p4; - inclScrollbars = pcci->p5; - parent = gtk_widget_get_parent(widget); + widget = GTK_WIDGET(pcci->p1); + x = pcci->p2; + y = pcci->p3; + update = pcci->p4; + inclScrollbars = pcci->p5; + parent = gtk_widget_get_parent(widget); - if (parent) + if (parent) { - gtk_fixed_move(GTK_FIXED(parent), widget, x, y); + gtk_fixed_move(GTK_FIXED(parent), widget, x, y); } else { - gtk_widget_set_uposition(widget, x, y); + gtk_widget_set_uposition(widget, x, y); } - if (GTK_WIDGET_VISIBLE(widget) && update!=0) - { // only if window is visible and update is requested, proceed to enforce update. - if (inclScrollbars) - { - } - else - { - gtk_widget_queue_draw(widget); - } - } + if (GTK_WIDGET_VISIBLE(widget) && update!=0) + { // only if window is visible and update is requested, proceed to enforce update. + if (inclScrollbars) + { + } + else + { + gtk_widget_queue_draw(widget); + } + } - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } /* Get the size of the bounding rectangle of windows/controls. */ void EvalCcRqGETWINDOWSIZE (CrossCallInfo *pcci) /* hwnd; width,height result. */ { - GtkAllocation *alloc; + GtkAllocation *alloc; printf("EvalCcRqGETWINDOWSIZE\n"); alloc = &((GTK_WIDGET(pcci->p1))->allocation); - MakeReturn2Cci (pcci, alloc->width, alloc->height); + MakeReturn2Cci (pcci, alloc->width, alloc->height); } /* Set the size of windows/controls. */ void EvalCcRqSETWINDOWSIZE (CrossCallInfo *pcci) /* hwnd, w,h, update; no result. */ { - GtkWindow *window; - gint width, height; - gboolean update,inclScrollbars; + GtkWindow *window; + gint width, height; + gboolean update,inclScrollbars; /* printf("EvalCcRqSETWINDOWSIZE\n"); */ - window = GTK_WINDOW(pcci->p1); - width = pcci->p2; - height = pcci->p3; - update = pcci->p4; - gtk_window_resize(window, width, height); + window = GTK_WINDOW(pcci->p1); + width = pcci->p2; + height = pcci->p3; + update = pcci->p4; + gtk_window_resize(window, width, height); #if 0 - if (update!=0) /* still, updates are not sufficient using SetWindowPos only. */ - UpdateWindowScrollbars (hwnd); + if (update!=0) /* still, updates are not sufficient using SetWindowPos only. */ + UpdateWindowScrollbars (hwnd); #endif - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } /* Activate control. */ void EvalCcRqACTIVATECONTROL (CrossCallInfo *pcci) /* controlPtr; no result. */ { printf("EvalCcRqACTIVATERCONTROL\n"); - gtk_widget_grab_focus(GTK_WIDGET(pcci->p1)); - MakeReturn0Cci (pcci); + gtk_widget_grab_focus(GTK_WIDGET(pcci->p1)); + MakeReturn0Cci (pcci); } /* Activate window. */ void EvalCcRqACTIVATEWINDOW (CrossCallInfo *pcci) /* isMDI, clientPtr, thisWindow; no result. */ { - gboolean isMDI; - GtkWidget *client, *thisWindow; + gboolean isMDI; + GtkWidget *client, *thisWindow; printf("EvalCcRqACTIVATEWINDOW\n"); - isMDI = (gboolean) pcci->p1; - client = GTK_WIDGET(pcci->p2); - thisWindow = GTK_WIDGET(pcci->p3); + isMDI = (gboolean) pcci->p1; + client = GTK_WIDGET(pcci->p2); + thisWindow = GTK_WIDGET(pcci->p3); - if (isMDI) + if (isMDI) { - gtk_notebook_set_page(GTK_NOTEBOOK(client), gtk_notebook_page_num(GTK_NOTEBOOK(client), thisWindow)); + gtk_notebook_set_page(GTK_NOTEBOOK(client), gtk_notebook_page_num(GTK_NOTEBOOK(client), thisWindow)); } - else + else { - gtk_window_activate_focus (GTK_WINDOW(thisWindow)); + gtk_window_activate_focus (GTK_WINDOW(thisWindow)); } - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } static unsigned char hidden_cursor_bits[] = { @@ -1075,72 +1075,72 @@ static unsigned char hidden_cursor_bits[] = { static GdkColor black_color = { 0, 0, 0, 0 }; void EvalCcRqCHANGEWINDOWCURSOR (CrossCallInfo *pcci) /* hwnd, cursor code; no result. It is assumed that the hwnd argument */ - /* corresponds to either a SDI/MDI window (and not frame). */ + /* corresponds to either a SDI/MDI window (and not frame). */ { - GtkWidget *widget; - int cursorcode; + GtkWidget *widget; + int cursorcode; printf("EvalCcRqCHANGEWINDOWCURSOR\n"); - widget = GTK_BIN(GTK_BIN(GTK_WIDGET(pcci->p1))->child)->child; - cursorcode = pcci->p2; - - switch (cursorcode) - { - case CURSARROW: - if (!gArrowCursor) - { - gArrowCursor = gdk_cursor_new(GDK_ARROW); - }; - - gdk_window_set_cursor(widget->window, gArrowCursor); - break; - case CURSBUSY: - if (!gBusyCursor) - { - gBusyCursor = gdk_cursor_new(GDK_CLOCK); - }; - - gdk_window_set_cursor(widget->window, gBusyCursor); - break; - case CURSIBEAM: - if (!gIBeamCursor) - { - gIBeamCursor = gdk_cursor_new(GDK_XTERM); - }; - - gdk_window_set_cursor(widget->window, gIBeamCursor); - break; - case CURSCROSS: - if (!gCrossCursor) - { - gCrossCursor = gdk_cursor_new(GDK_CROSSHAIR); - }; - - gdk_window_set_cursor(widget->window, gCrossCursor); - break; - case CURSFATCROSS: - if (!gFatCrossCursor) - { - gFatCrossCursor = gdk_cursor_new(GDK_CROSS); - }; - - gdk_window_set_cursor(widget->window, gFatCrossCursor); - break; - case CURSHIDDEN: - if (!gHiddenCursor) - { - GdkPixmap *pixmap; - - pixmap = gdk_bitmap_create_from_data (NULL, hidden_cursor_bits, 16, 16); - gHiddenCursor = gdk_cursor_new_from_pixmap (pixmap, pixmap, &black_color, &black_color, 8, 8); - gdk_pixmap_unref (pixmap); - }; - - gdk_window_set_cursor(widget->window, gHiddenCursor); - break; - } - - MakeReturn0Cci (pcci); + widget = GTK_BIN(GTK_BIN(GTK_WIDGET(pcci->p1))->child)->child; + cursorcode = pcci->p2; + + switch (cursorcode) + { + case CURSARROW: + if (!gArrowCursor) + { + gArrowCursor = gdk_cursor_new(GDK_ARROW); + }; + + gdk_window_set_cursor(widget->window, gArrowCursor); + break; + case CURSBUSY: + if (!gBusyCursor) + { + gBusyCursor = gdk_cursor_new(GDK_CLOCK); + }; + + gdk_window_set_cursor(widget->window, gBusyCursor); + break; + case CURSIBEAM: + if (!gIBeamCursor) + { + gIBeamCursor = gdk_cursor_new(GDK_XTERM); + }; + + gdk_window_set_cursor(widget->window, gIBeamCursor); + break; + case CURSCROSS: + if (!gCrossCursor) + { + gCrossCursor = gdk_cursor_new(GDK_CROSSHAIR); + }; + + gdk_window_set_cursor(widget->window, gCrossCursor); + break; + case CURSFATCROSS: + if (!gFatCrossCursor) + { + gFatCrossCursor = gdk_cursor_new(GDK_CROSS); + }; + + gdk_window_set_cursor(widget->window, gFatCrossCursor); + break; + case CURSHIDDEN: + if (!gHiddenCursor) + { + GdkPixmap *pixmap; + + pixmap = gdk_bitmap_create_from_data (NULL, hidden_cursor_bits, 16, 16); + gHiddenCursor = gdk_cursor_new_from_pixmap (pixmap, pixmap, &black_color, &black_color, 8, 8); + gdk_pixmap_unref (pixmap); + }; + + gdk_window_set_cursor(widget->window, gHiddenCursor); + break; + } + + MakeReturn0Cci (pcci); } void EvalCcRqOBSCURECURSOR (CrossCallInfo *pcci) /* no params; no result. */ @@ -1152,11 +1152,11 @@ void EvalCcRqOBSCURECURSOR (CrossCallInfo *pcci) /* no params; no result. */ if (!gHiddenCursor) { - GdkPixmap *pixmap; + GdkPixmap *pixmap; - pixmap = gdk_bitmap_create_from_data (NULL, hidden_cursor_bits, 16, 16); - gHiddenCursor = gdk_cursor_new_from_pixmap (pixmap, pixmap, &black_color, &black_color, 8, 8); - gdk_pixmap_unref (pixmap); + pixmap = gdk_bitmap_create_from_data (NULL, hidden_cursor_bits, 16, 16); + gHiddenCursor = gdk_cursor_new_from_pixmap (pixmap, pixmap, &black_color, &black_color, 8, 8); + gdk_pixmap_unref (pixmap); }; gdk_window_set_cursor(widget->window, gHiddenCursor); @@ -1166,58 +1166,58 @@ void EvalCcRqOBSCURECURSOR (CrossCallInfo *pcci) /* no params; no result. */ void DeleteCursors() { printf("DeleteCursors\n"); - if (gArrowCursor) - { - gdk_cursor_destroy(gArrowCursor); - gArrowCursor = NULL; - } - - if (gBusyCursor) - { - gdk_cursor_destroy(gBusyCursor); - gIBeamCursor = NULL; - } - - if (gIBeamCursor) - { - gdk_cursor_destroy(gIBeamCursor); - gIBeamCursor = NULL; - } - - if (gCrossCursor) - { - gdk_cursor_destroy(gCrossCursor); - gCrossCursor = NULL; - } - - if (gFatCrossCursor) - { - gdk_cursor_destroy(gFatCrossCursor); - gFatCrossCursor = NULL; - } - - if (gHiddenCursor) - { - gdk_cursor_destroy(gHiddenCursor); - gHiddenCursor = NULL; - } + if (gArrowCursor) + { + gdk_cursor_destroy(gArrowCursor); + gArrowCursor = NULL; + } + + if (gBusyCursor) + { + gdk_cursor_destroy(gBusyCursor); + gIBeamCursor = NULL; + } + + if (gIBeamCursor) + { + gdk_cursor_destroy(gIBeamCursor); + gIBeamCursor = NULL; + } + + if (gCrossCursor) + { + gdk_cursor_destroy(gCrossCursor); + gCrossCursor = NULL; + } + + if (gFatCrossCursor) + { + gdk_cursor_destroy(gFatCrossCursor); + gFatCrossCursor = NULL; + } + + if (gHiddenCursor) + { + gdk_cursor_destroy(gHiddenCursor); + gHiddenCursor = NULL; + } } /* Set range of scrollbars. */ void EvalCcRqSETSCROLLRANGE (CrossCallInfo *pcci) /* hwnd, iBar, min, max, redraw, no result */ { - GtkWidget *widget, *parent; - GtkAdjustment *adj; - GtkRequisition *requisition; - gint iBar, min, max; - gboolean redraw; + GtkWidget *widget, *parent; + GtkAdjustment *adj; + GtkRequisition *requisition; + gint iBar, min, max; + gboolean redraw; printf("EvalCcRqSETSCROLLRANGE\n"); - widget = GTK_WIDGET(pcci->p1); - iBar = pcci->p2; - min = pcci->p3; - max = pcci->p4; - redraw = pcci->p5; + widget = GTK_WIDGET(pcci->p1); + iBar = pcci->p2; + min = pcci->p3; + max = pcci->p4; + redraw = pcci->p5; parent = (GtkWidget*) GTK_SCROLLED_WINDOW(gtk_widget_get_ancestor(widget, GTK_TYPE_SCROLLED_WINDOW)); @@ -1272,22 +1272,22 @@ void EvalCcRqSETSCROLLRANGE (CrossCallInfo *pcci) /* hwnd, iBar, min, max, redra printf("No adjustment to change.\n"); } - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } /* Set pos of scrollbars. */ void EvalCcRqSETSCROLLPOS (CrossCallInfo *pcci) /* hwnd, iBar, thumb, maxx, maxy, extent, no result */ { - GtkWidget *widget; + GtkWidget *widget; GtkAdjustment *adj; - gint thumb, iBar, maxx, maxy, extent; + gint thumb, iBar, maxx, maxy, extent; - widget = GTK_WIDGET(pcci->p1); - iBar = pcci->p2; - thumb = pcci->p3; - maxx = pcci->p4; // maxx is the right-most x coordinate of the enclosing rectangle of the scrollbar - maxy = pcci->p5; // maxy is the bottom-most y coordinate of the enclosing rectangle of the scrollbar - extent = pcci->p6; // extent is the width (height) of the vertical (horizontal) scrollbar + widget = GTK_WIDGET(pcci->p1); + iBar = pcci->p2; + thumb = pcci->p3; + maxx = pcci->p4; // maxx is the right-most x coordinate of the enclosing rectangle of the scrollbar + maxy = pcci->p5; // maxy is the bottom-most y coordinate of the enclosing rectangle of the scrollbar + extent = pcci->p6; // extent is the width (height) of the vertical (horizontal) scrollbar printf("EvalCcRqSETSCROLLPOS: %d\n", thumb); if (GTK_IS_SCROLLED_WINDOW(widget)) @@ -1304,26 +1304,26 @@ void EvalCcRqSETSCROLLPOS (CrossCallInfo *pcci) /* hwnd, iBar, thumb, maxx, maxy adj = gtk_range_get_adjustment(GTK_RANGE(widget)); } - gtk_adjustment_set_value(adj, (gdouble)thumb); + gtk_adjustment_set_value(adj, (gdouble)thumb); gtk_adjustment_value_changed(adj); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } /* Set thumb size of scrollbars. */ void EvalCcRqSETSCROLLSIZE (CrossCallInfo *pcci) /* hwnd, iBar, size, maxx, maxy, extent, no result */ { - GtkWidget *widget, *parent; - GtkAdjustment *adj; - int size, iBar, maxx, maxy, extent; + GtkWidget *widget, *parent; + GtkAdjustment *adj; + int size, iBar, maxx, maxy, extent; printf("EvalCcRqSETSCROLLSIZE\n"); - widget = GTK_WIDGET(pcci->p1); - iBar = pcci->p2; - size = pcci->p3; - maxx = pcci->p4; // maxx is the right-most x coordinate of the enclosing rectangle of the scrollbar - maxy = pcci->p5; // maxy is the bottom-most y coordinate of the enclosing rectangle of the scrollbar - extent = pcci->p6; // extent is the width (height) of the vertical (horizontal) scrollbar + widget = GTK_WIDGET(pcci->p1); + iBar = pcci->p2; + size = pcci->p3; + maxx = pcci->p4; // maxx is the right-most x coordinate of the enclosing rectangle of the scrollbar + maxy = pcci->p5; // maxy is the bottom-most y coordinate of the enclosing rectangle of the scrollbar + extent = pcci->p6; // extent is the width (height) of the vertical (horizontal) scrollbar if (GTK_IS_SCROLLED_WINDOW(widget)) { @@ -1339,348 +1339,348 @@ void EvalCcRqSETSCROLLSIZE (CrossCallInfo *pcci) /* hwnd, iBar, size, maxx, maxy adj = gtk_range_get_adjustment(GTK_RANGE(widget)); } - adj->page_size = size; - gtk_adjustment_changed(adj); + adj->page_size = size; + gtk_adjustment_changed(adj); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } /* Set selection of edit controls. */ void EvalCcRqSETEDITSELECTION (CrossCallInfo *pcci) /* hwnd, first, last, no result. */ { /* HWND hwnd; - int first,last; + int first,last; - hwnd = (HWND) pcci->p1; - first = pcci->p2; - last = pcci->p3; + hwnd = (HWND) pcci->p1; + first = pcci->p2; + last = pcci->p3; - SendMessage (hwnd, EM_SETSEL, (WPARAM) first, (LPARAM) last); // Set the selection of the edit control. - SendMessage (hwnd, EM_SCROLLCARET, 0,0); // Let the caret be displayed - (w/l)Param MUST be 0. + SendMessage (hwnd, EM_SETSEL, (WPARAM) first, (LPARAM) last); // Set the selection of the edit control. + SendMessage (hwnd, EM_SCROLLCARET, 0,0); // Let the caret be displayed - (w/l)Param MUST be 0. */ - printf("EvalCcRqSETEDITSELECTION -> not implemented\n"); - MakeReturn0Cci (pcci); + printf("EvalCcRqSETEDITSELECTION -> not implemented\n"); + MakeReturn0Cci (pcci); } static void dialog_focus_in_handler(GtkWidget *widget, GdkEventFocus *event, gpointer user_data) { printf("dialog_focus_in_handler\n"); - SendMessage1ToClean (CcWmACTIVATE, widget); - GTK_WIDGET_GET_CLASS(widget)->focus_in_event(widget, event); - gActiveTopLevelWindow = widget; + SendMessage1ToClean (CcWmACTIVATE, widget); + GTK_WIDGET_GET_CLASS(widget)->focus_in_event(widget, event); + gActiveTopLevelWindow = widget; } static void dialog_focus_out_handler(GtkWidget *widget, GdkEventFocus *event, gpointer user_data) { printf("dialog_focus_out_handler\n"); - SendMessage1ToClean (CcWmDEACTIVATE, widget); - GTK_WIDGET_GET_CLASS(widget)->focus_out_event(widget, event); - gActiveTopLevelWindow = NULL; + SendMessage1ToClean (CcWmDEACTIVATE, widget); + GTK_WIDGET_GET_CLASS(widget)->focus_out_event(widget, event); + gActiveTopLevelWindow = NULL; } static gboolean dialog_close_handler(GtkWidget *dialog, GdkEvent *event, gpointer user_data) { printf("dialog_close_handler\n"); - SendMessage1ToClean(CcWmCLOSE, (int64_t) dialog); - gtk_signal_emit_stop_by_name(GTK_OBJECT(dialog), "delete-event"); - return gtk_true(); + SendMessage1ToClean(CcWmCLOSE, (int64_t) dialog); + gtk_signal_emit_stop_by_name(GTK_OBJECT(dialog), "delete-event"); + return gtk_true(); } /* EvalCcRqCREATEDIALOG is now restricted to modeless dialogues only. */ void EvalCcRqCREATEDIALOG (CrossCallInfo *pcci) // textptr,parentptr,behindPtr; HWND result. { - GtkWidget *dialog, *fixed, *defctrl; - const gchar *pwintitle; - gint x, y, w, h; + GtkWidget *dialog, *fixed, *defctrl; + const gchar *pwintitle; + gint x, y, w, h; printf("EvalCcRqCREATEDIALOG\n"); - pwintitle = (const gchar *) pcci->p1; - - dialog = gtk_dialog_new(); - gtk_dialog_set_has_separator(GTK_DIALOG(dialog), gtk_true()); - gtk_window_set_resizable(GTK_WINDOW(dialog), gtk_false()); - gtk_signal_connect (GTK_OBJECT(dialog), "delete-event", - GTK_SIGNAL_FUNC(dialog_close_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(dialog), "focus-in-event", - GTK_SIGNAL_FUNC(dialog_focus_in_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(dialog), "focus-out-event", - GTK_SIGNAL_FUNC(dialog_focus_out_handler), - NULL); - - if (pwintitle) + pwintitle = (const gchar *) pcci->p1; + + dialog = gtk_dialog_new(); + gtk_dialog_set_has_separator(GTK_DIALOG(dialog), gtk_true()); + gtk_window_set_resizable(GTK_WINDOW(dialog), gtk_false()); + gtk_signal_connect (GTK_OBJECT(dialog), "delete-event", + GTK_SIGNAL_FUNC(dialog_close_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(dialog), "focus-in-event", + GTK_SIGNAL_FUNC(dialog_focus_in_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(dialog), "focus-out-event", + GTK_SIGNAL_FUNC(dialog_focus_out_handler), + NULL); + + if (pwintitle) { - gtk_window_set_title(GTK_WINDOW(dialog), pwintitle); + gtk_window_set_title(GTK_WINDOW(dialog), pwintitle); } - /* Create a Fixed Container */ - fixed = gtk_fixed_new(); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), fixed, TRUE, TRUE, 0); - gtk_widget_show(fixed); + /* Create a Fixed Container */ + fixed = gtk_fixed_new(); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), fixed, TRUE, TRUE, 0); + gtk_widget_show(fixed); - SendMessage1ToClean (CcWmINITDIALOG, (int64_t) dialog); + SendMessage1ToClean (CcWmINITDIALOG, (int64_t) dialog); - x = gCci.p1; - y = gCci.p2; - w = gCci.p3; - h = gCci.p4; - defctrl = GTK_WIDGET(gCci.p5); + x = gCci.p1; + y = gCci.p2; + w = gCci.p3; + h = gCci.p4; + defctrl = GTK_WIDGET(gCci.p5); - w += GTK_WINDOW(dialog)->frame_left + GTK_WINDOW(dialog)->frame_right; - h += GTK_WINDOW(dialog)->frame_top + GTK_WINDOW(dialog)->frame_bottom; + w += GTK_WINDOW(dialog)->frame_left + GTK_WINDOW(dialog)->frame_right; + h += GTK_WINDOW(dialog)->frame_top + GTK_WINDOW(dialog)->frame_bottom; - /* Adjust the pos and size of the frame window. */ - gtk_widget_set_size_request(dialog, w, h); - if (x == -1 && y == -1) + /* Adjust the pos and size of the frame window. */ + gtk_widget_set_size_request(dialog, w, h); + if (x == -1 && y == -1) { - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); + gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); } - else + else { - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_NONE); - gtk_widget_set_uposition(dialog, x, y); + gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_NONE); + gtk_widget_set_uposition(dialog, x, y); } - if (defctrl != NULL) - { + if (defctrl != NULL) + { printf("EvalCcRqCREATEDIALOG -- grab focus call\n"); - gtk_widget_grab_focus(defctrl); - } + gtk_widget_grab_focus(defctrl); + } - gtk_widget_show(dialog); + gtk_widget_show(dialog); printf("Dialog width: %d\n", w); - MakeReturn1Cci (pcci, (int64_t) dialog); + MakeReturn1Cci (pcci, (int64_t) dialog); } // Create modal dialogues. void EvalCcRqCREATEMODALDIALOG (CrossCallInfo *pcci) /* textptr,parentptr; error code result. */ { - GtkWidget *dialog, *fixed, *defctrl, *parent; - const gchar *pwintitle; - gint x, y, w, h; - guint delete_handler; + GtkWidget *dialog, *fixed, *defctrl, *parent; + const gchar *pwintitle; + gint x, y, w, h; + guint delete_handler; printf("EvalCcRqCREATEMODALDIALOG\n"); - pwintitle = (const gchar *) pcci->p1; - parent = GTK_WIDGET(pcci->p2); - - dialog = gtk_dialog_new(); - gtk_dialog_set_has_separator(GTK_DIALOG(dialog), gtk_false()); - gtk_window_set_resizable(GTK_WINDOW(dialog), gtk_false()); - gtk_signal_connect (GTK_OBJECT(dialog), "focus-in-event", - GTK_SIGNAL_FUNC(dialog_focus_in_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(dialog), "focus-out-event", - GTK_SIGNAL_FUNC(dialog_focus_out_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(dialog), "delete-event", - GTK_SIGNAL_FUNC(dialog_close_handler), - NULL); - - if (pwintitle) + pwintitle = (const gchar *) pcci->p1; + parent = GTK_WIDGET(pcci->p2); + + dialog = gtk_dialog_new(); + gtk_dialog_set_has_separator(GTK_DIALOG(dialog), gtk_false()); + gtk_window_set_resizable(GTK_WINDOW(dialog), gtk_false()); + gtk_signal_connect (GTK_OBJECT(dialog), "focus-in-event", + GTK_SIGNAL_FUNC(dialog_focus_in_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(dialog), "focus-out-event", + GTK_SIGNAL_FUNC(dialog_focus_out_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(dialog), "delete-event", + GTK_SIGNAL_FUNC(dialog_close_handler), + NULL); + + if (pwintitle) { - gtk_window_set_title(GTK_WINDOW(dialog), pwintitle); + gtk_window_set_title(GTK_WINDOW(dialog), pwintitle); } - /* Create a Fixed Container */ - fixed = gtk_fixed_new(); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), fixed, TRUE, TRUE, 0); - gtk_widget_show(fixed); + /* Create a Fixed Container */ + fixed = gtk_fixed_new(); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), fixed, TRUE, TRUE, 0); + gtk_widget_show(fixed); - SendMessage1ToClean (CcWmINITDIALOG, (int64_t) dialog); + SendMessage1ToClean (CcWmINITDIALOG, (int64_t) dialog); - x = gCci.p1; - y = gCci.p2; - w = gCci.p3; - h = gCci.p4; - defctrl = GTK_WIDGET(gCci.p5); + x = gCci.p1; + y = gCci.p2; + w = gCci.p3; + h = gCci.p4; + defctrl = GTK_WIDGET(gCci.p5); - w += GTK_WINDOW(dialog)->frame_left + GTK_WINDOW(dialog)->frame_right; - h += GTK_WINDOW(dialog)->frame_top + GTK_WINDOW(dialog)->frame_bottom; + w += GTK_WINDOW(dialog)->frame_left + GTK_WINDOW(dialog)->frame_right; + h += GTK_WINDOW(dialog)->frame_top + GTK_WINDOW(dialog)->frame_bottom; - /* Adjust the pos and size of the frame window. */ - gtk_widget_set_size_request(dialog, w, h); - if (x == -1 && y == -1) + /* Adjust the pos and size of the frame window. */ + gtk_widget_set_size_request(dialog, w, h); + if (x == -1 && y == -1) { - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); + gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); } - else + else { - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_NONE); - gtk_widget_set_uposition(dialog, x, y); + gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_NONE); + gtk_widget_set_uposition(dialog, x, y); } - if (defctrl != NULL) - { + if (defctrl != NULL) + { printf("EvalCcRqCREATEMODALDIALOG -- grab focus call\n"); - gtk_widget_grab_focus(defctrl); - } + gtk_widget_grab_focus(defctrl); + } - while (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_DELETE_EVENT); - gtk_widget_destroy(dialog); + while (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_DELETE_EVENT); + gtk_widget_destroy(dialog); - MakeReturn1Cci (pcci,0/*errorcode*/); + MakeReturn1Cci (pcci,0/*errorcode*/); } static gboolean widget_focus_in_handler(GtkWidget *widget, GdkEventFocus *event, gpointer user_data) { - GtkWidget *my_widget; + GtkWidget *my_widget; printf("widget_focus_in_handler\n"); my_widget = GTK_WIDGET(user_data); - GTK_WIDGET_GET_CLASS(widget)->focus_in_event(widget, event); - SendMessage2ToClean (CcWmSETFOCUS, GetControlParent(my_widget), my_widget); - return gtk_true(); + GTK_WIDGET_GET_CLASS(widget)->focus_in_event(widget, event); + SendMessage2ToClean (CcWmSETFOCUS, GetControlParent(my_widget), my_widget); + return gtk_true(); } static gboolean widget_focus_out_handler(GtkWidget *widget, GdkEventFocus *event, gpointer user_data) { - GtkWidget *my_widget, *parent; + GtkWidget *my_widget, *parent; printf("widget_focus_out_handler\n"); my_widget = GTK_WIDGET(user_data); - parent = GetControlParent(my_widget); - GTK_WIDGET_GET_CLASS(widget)->focus_in_event(widget, event); + parent = GetControlParent(my_widget); + GTK_WIDGET_GET_CLASS(widget)->focus_in_event(widget, event); - if (gInKey) - { - SendKeyUpToClean (parent, my_widget, gCurChar); - gInKey = FALSE; - gCurChar = 0; - } + if (gInKey) + { + SendKeyUpToClean (parent, my_widget, gCurChar); + gInKey = FALSE; + gCurChar = 0; + } - SendMessage2ToClean (CcWmKILLFOCUS, parent, my_widget); - return gtk_true(); + SendMessage2ToClean (CcWmKILLFOCUS, parent, my_widget); + return gtk_true(); } static gboolean widget_key_press_handler(GtkWidget *widget, GdkEventKey *event, gpointer user_data) { - GtkWidget *my_widget, *parent; + GtkWidget *my_widget, *parent; gint c; printf("widget_key_press_handler\n"); my_widget = GTK_WIDGET(user_data); parent = GetControlParent(my_widget); - c = (event->length > 0) ? + c = (event->length > 0) ? event->string[0] : CheckVirtualKeyCode (event->keyval); - if (!c) + if (!c) { return gtk_false(); } - if (event->keyval == GDK_Tab) + if (event->keyval == GDK_Tab) { - return gtk_false(); + return gtk_false(); } - GTK_WIDGET_GET_CLASS(widget)->key_press_event(widget, event); + GTK_WIDGET_GET_CLASS(widget)->key_press_event(widget, event); - if (gInKey) - { - if (gCurChar == c) + if (gInKey) + { + if (gCurChar == c) + { + SendKeyStillDownToClean (parent, my_widget, gCurChar); + } + else { - SendKeyStillDownToClean (parent, my_widget, gCurChar); + SendKeyUpToClean (parent, my_widget, gCurChar); + gCurChar = c; + SendKeyDownToClean (parent, my_widget, gCurChar); } - else - { - SendKeyUpToClean (parent, my_widget, gCurChar); - gCurChar = c; - SendKeyDownToClean (parent, my_widget, gCurChar); - } - } - else - { - gCurChar = c; - SendKeyDownToClean (parent, my_widget, gCurChar); - gInKey = TRUE; - } - - return gtk_true(); + } + else + { + gCurChar = c; + SendKeyDownToClean (parent, my_widget, gCurChar); + gInKey = TRUE; + } + + return gtk_true(); } static gboolean widget_key_release_handler(GtkWidget *widget, GdkEventKey *event, gpointer user_data) { - GtkWidget *my_widget; + GtkWidget *my_widget; printf("widget_key_release_handler\n"); my_widget = GTK_WIDGET(user_data); - if (event->keyval == GDK_Tab) + if (event->keyval == GDK_Tab) { - return gtk_false(); + return gtk_false(); } - GTK_WIDGET_GET_CLASS(widget)->key_press_event(widget, event); + GTK_WIDGET_GET_CLASS(widget)->key_press_event(widget, event); - if (gInKey) - { - SendKeyUpToClean (GetControlParent(my_widget), my_widget, gCurChar); - gInKey = FALSE; - gCurChar = 0; - } + if (gInKey) + { + SendKeyUpToClean (GetControlParent(my_widget), my_widget, gCurChar); + gInKey = FALSE; + gCurChar = 0; + } - return gtk_true(); + return gtk_true(); } static gboolean widget_button_press_handler(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { printf("widget_button_press_handler\n"); - if (event->button == 1) - { - GtkWidget *parent = GetControlParent(widget); + if (event->button == 1) + { + GtkWidget *parent = GetControlParent(widget); printf("Widget_button_press_handler -- grab focus call\n"); - gtk_widget_grab_focus(widget); - - gInMouseDown = TRUE; - - switch (event->type) - { - case GDK_BUTTON_PRESS: - SendMessage6ToClean (CcWmMOUSE, parent, widget, BUTTONDOWN, event->x, event->y, GetModifiers()); - break; - case GDK_2BUTTON_PRESS: - SendMessage6ToClean (CcWmMOUSE, parent, widget, BUTTONDOUBLEDOWN, event->x, event->y, GetModifiers()); - break; - case GDK_3BUTTON_PRESS: - SendMessage6ToClean (CcWmMOUSE, parent, widget, BUTTONTRIPLEDOWN, event->x, event->y, GetModifiers()); - break; - } + gtk_widget_grab_focus(widget); + + gInMouseDown = TRUE; + + switch (event->type) + { + case GDK_BUTTON_PRESS: + SendMessage6ToClean (CcWmMOUSE, parent, widget, BUTTONDOWN, event->x, event->y, GetModifiers()); + break; + case GDK_2BUTTON_PRESS: + SendMessage6ToClean (CcWmMOUSE, parent, widget, BUTTONDOUBLEDOWN, event->x, event->y, GetModifiers()); + break; + case GDK_3BUTTON_PRESS: + SendMessage6ToClean (CcWmMOUSE, parent, widget, BUTTONTRIPLEDOWN, event->x, event->y, GetModifiers()); + break; + } return gtk_true(); - } + } return gtk_false(); } static gboolean widget_button_release_handler(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { printf("widget_button_release_handler\n"); - if (event->button == 1) - { - GtkWidget *parent = GetControlParent(widget); + if (event->button == 1) + { + GtkWidget *parent = GetControlParent(widget); - gInMouseDown = FALSE; - SendMessage6ToClean (CcWmMOUSE, parent, widget, BUTTONUP, event->x, event->y, GetModifiers()); + gInMouseDown = FALSE; + SendMessage6ToClean (CcWmMOUSE, parent, widget, BUTTONUP, event->x, event->y, GetModifiers()); return gtk_true(); - } + } return gtk_false(); } static gboolean widget_motion_notify_handler(GtkWidget *widget, GdkEventMotion *event, gpointer user_data) { - GtkWidget *parent; + GtkWidget *parent; printf("widget_motion_notify_handler\n"); parent = GetControlParent(widget); - if (gInMouseDown) + if (gInMouseDown) { - SendMessage6ToClean(CcWmMOUSE, parent, widget, BUTTONSTILLDOWN, event->x, event->y, GetModifiers()); + SendMessage6ToClean(CcWmMOUSE, parent, widget, BUTTONSTILLDOWN, event->x, event->y, GetModifiers()); } else { - SendMessage6ToClean (CcWmMOUSE, parent, widget, BUTTONSTILLUP, event->x, event->y, GetModifiers()); + SendMessage6ToClean (CcWmMOUSE, parent, widget, BUTTONSTILLUP, event->x, event->y, GetModifiers()); } return gtk_true(); @@ -1690,42 +1690,42 @@ static gboolean widget_motion_notify_handler(GtkWidget *widget, GdkEventMotion * void EvalCcRqCREATECOMPOUND (CrossCallInfo *pcci) /* hwnd, packed pos,w,h, scrollbars, transparent; HWND result. */ { #if 0 - HWND parentwindow, compoundhandle; - int left,top, width,height; - int compoundstyle; - BOOL transparent; - DWORD compoundExStyle; - - parentwindow = (HWND) pcci->p1; - left = pcci->p2>>16; - top = (pcci->p2<<16)>>16; - width = pcci->p3; - height = pcci->p4; - compoundstyle = pcci->p5; - transparent = (BOOL) pcci->p6; - - compoundExStyle = WS_EX_CONTROLPARENT; - if (transparent) - compoundExStyle |= WS_EX_TRANSPARENT; - - compoundstyle |= WS_CHILD;// | WS_CLIPSIBLINGS; - - /* create the compound window */ - compoundhandle - = CreateWindowEx (compoundExStyle, /* Extended style */ - CompoundControlClassName, /* Class name */ - "", /* Window title */ - compoundstyle, /* style flags */ - left, top, /* x, y */ - width, height, /* width, height */ - parentwindow, /* Parent window */ - NULL, /* menu handle */ - (HANDLE) ghInst, /* Instance that owns the window */ - 0); - SetWindowPos (compoundhandle, HWND_BOTTOM, 0,0,0,0, SWP_NOMOVE+SWP_NOSIZE); // This should implement control stack + HWND parentwindow, compoundhandle; + int left,top, width,height; + int compoundstyle; + BOOL transparent; + DWORD compoundExStyle; + + parentwindow = (HWND) pcci->p1; + left = pcci->p2>>16; + top = (pcci->p2<<16)>>16; + width = pcci->p3; + height = pcci->p4; + compoundstyle = pcci->p5; + transparent = (BOOL) pcci->p6; + + compoundExStyle = WS_EX_CONTROLPARENT; + if (transparent) + compoundExStyle |= WS_EX_TRANSPARENT; + + compoundstyle |= WS_CHILD;// | WS_CLIPSIBLINGS; + + /* create the compound window */ + compoundhandle + = CreateWindowEx (compoundExStyle, /* Extended style */ + CompoundControlClassName, /* Class name */ + "", /* Window title */ + compoundstyle, /* style flags */ + left, top, /* x, y */ + width, height, /* width, height */ + parentwindow, /* Parent window */ + NULL, /* menu handle */ + (HANDLE) ghInst, /* Instance that owns the window */ + 0); + SetWindowPos (compoundhandle, HWND_BOTTOM, 0,0,0,0, SWP_NOMOVE+SWP_NOSIZE); // This should implement control stack #endif - printf("EvalCcRqCREATECOMPOUND -> not implemented\n"); - MakeReturn1Cci (pcci, (int64_t) NULL /*compoundhandle*/); + printf("EvalCcRqCREATECOMPOUND -> not implemented\n"); + MakeReturn1Cci (pcci, (int64_t) NULL /*compoundhandle*/); } static void scrollbar_value_changed(GtkRange *range, gpointer user_data) @@ -1749,9 +1749,9 @@ static void scrollbar_value_changed(GtkRange *range, gpointer user_data) /* - * GTK Handles a lot of the scrollbar plumbing internally. We have to fool the ObjectIO - * event loop a bit here. So, we just report a "SB_THUMBPOSITION" message, so it runs around - * notifying changes, but does not try to modify the scrollbar itself. + * GTK Handles a lot of the scrollbar plumbing internally. We have to fool the ObjectIO + * event loop a bit here. So, we just report a "SB_THUMBPOSITION" message, so it runs around + * notifying changes, but does not try to modify the scrollbar itself. */ scrollCode = SB_THUMBPOSITION; @@ -1776,13 +1776,13 @@ static void scrollbar_value_changed(GtkRange *range, gpointer user_data) g_object_set_data(G_OBJECT(range), SCROLL_POS_KEY, (gpointer)val); /* - * Force redraw of changed widget, but only during times when the - * scrollbar was moved by the user. + * Force redraw of changed widget, but only during times when the + * scrollbar was moved by the user. */ - if (discr != 0) { - SendMessage5ToClean(CcWmSCROLLBARACTION, parent, (int64_t)widget, + if (discr != 0) { + SendMessage5ToClean(CcWmSCROLLBARACTION, parent, (int64_t)widget, controlKind, scrollCode, position); - } + } gtk_widget_queue_draw(widget); } @@ -1790,63 +1790,63 @@ static void scrollbar_value_changed(GtkRange *range, gpointer user_data) /* Create scrollbars. */ void EvalCcRqCREATESCROLLBAR (CrossCallInfo *pcci) /* hwnd, x,y,w,h bool; HWND result. */ { - gint x, y, w, h; + gint x, y, w, h; gint *val; - GtkWidget *scroll; - GtkWidget *parent; - gboolean ishorizontal; + GtkWidget *scroll; + GtkWidget *parent; + gboolean ishorizontal; /* printf("EvalCcRqCREATESCROLLBAR\n"); */ if (pcci->p1 == 0) { - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } - parent = GTK_WIDGET(pcci->p1); - x = pcci->p2; - y = pcci->p3; - w = pcci->p4; - h = pcci->p5; - ishorizontal = pcci->p6; - - if (ishorizontal) + parent = GTK_WIDGET(pcci->p1); + x = pcci->p2; + y = pcci->p3; + w = pcci->p4; + h = pcci->p5; + ishorizontal = pcci->p6; + + if (ishorizontal) { - scroll = gtk_hscrollbar_new(NULL); + scroll = gtk_hscrollbar_new(NULL); } else { - scroll = gtk_vscrollbar_new(NULL); + scroll = gtk_vscrollbar_new(NULL); } - g_signal_connect(GTK_OBJECT(scroll), SCROLL_VALUE_CHANGED, G_CALLBACK(scrollbar_value_changed), parent);/*NULL);*/ + g_signal_connect(GTK_OBJECT(scroll), SCROLL_VALUE_CHANGED, G_CALLBACK(scrollbar_value_changed), parent);/*NULL);*/ val = g_new(gint,1); - gtk_widget_set_size_request(scroll, w, h); - gtk_fixed_put(GetFixed(parent), scroll, x, y); + gtk_widget_set_size_request(scroll, w, h); + gtk_fixed_put(GetFixed(parent), scroll, x, y); *val = 0; g_object_set_data(G_OBJECT(scroll), SCROLL_POS_KEY, (gpointer)val); printf("EvalCcRqCREATESCROLLBAR - %p,%p\n",parent,scroll); - MakeReturn1Cci (pcci, (int64_t) scroll); + MakeReturn1Cci (pcci, (int64_t) scroll); } static void button_clicked (GtkButton *button, gpointer user_data) { - GtkWidget *wbutton, *window; + GtkWidget *wbutton, *window; printf("button_clicked\n"); - wbutton = GTK_WIDGET(button); - window = GetControlParent(wbutton); + wbutton = GTK_WIDGET(button); + window = GetControlParent(wbutton); - switch (GPOINTER_TO_INT(user_data)) - { - case ISOKBUTTON: - SendMessage2ToClean (CcWmSPECIALBUTTON, window, ISOKBUTTON); - return; - case ISCANCELBUTTON: - SendMessage2ToClean (CcWmSPECIALBUTTON, window, ISCANCELBUTTON); - return; - default: - SendMessage4ToClean (CcWmBUTTONCLICKED, window, wbutton, GetModifiers (), 0); - return; - } + switch (GPOINTER_TO_INT(user_data)) + { + case ISOKBUTTON: + SendMessage2ToClean (CcWmSPECIALBUTTON, window, ISOKBUTTON); + return; + case ISCANCELBUTTON: + SendMessage2ToClean (CcWmSPECIALBUTTON, window, ISCANCELBUTTON); + return; + default: + SendMessage4ToClean (CcWmBUTTONCLICKED, window, wbutton, GetModifiers (), 0); + return; + } } static gint button_expose_handler(GtkWidget *widget, GdkEventExpose *event, gpointer user_data) @@ -1856,520 +1856,520 @@ static gint button_expose_handler(GtkWidget *widget, GdkEventExpose *event, gpoi button = gtk_widget_get_parent(widget); parent = gtk_widget_get_parent(gtk_widget_get_parent(gtk_widget_get_parent(button))); - SendMessage3ToClean(CcWmDRAWCONTROL, (int64_t) parent, (int64_t) button, (int64_t) GDK_DRAWABLE(event->window)); - return 0; + SendMessage3ToClean(CcWmDRAWCONTROL, (int64_t) parent, (int64_t) button, (int64_t) GDK_DRAWABLE(event->window)); + return 0; } void EvalCcRqCREATEBUTTON (CrossCallInfo *pcci) /* hwnd, x,y,w,h, kind; HWND result. */ { - GtkWidget *button, *parent; + GtkWidget *button, *parent; GtkRequisition asked; - gint x, y, w, h, kind; + gint x, y, w, h, kind; printf("EvalCcRqCREATEBUTTON\n"); - parent = GTK_WIDGET(pcci->p1); - x = pcci->p2; - y = pcci->p3; - w = pcci->p4; - h = pcci->p5; - kind = pcci->p6; - - if (kind==ISOKBUTTON) - { - button = gtk_button_new_from_stock("gtk-ok"); - } - else - { - if (kind==ISCANCELBUTTON) - { - button = gtk_button_new_from_stock("gtk-quit"); - } - else - { - button = gtk_button_new(); - gtk_button_set_use_underline(GTK_BUTTON(button), gtk_true()); - } - } - - gtk_signal_connect (GTK_OBJECT (button), "clicked", - GTK_SIGNAL_FUNC(button_clicked), - GINT_TO_POINTER(kind)); - gtk_widget_set_size_request(button, w, h); - gtk_fixed_put (GetFixed(parent), button, x, y); - - MakeReturn1Cci (pcci, (int64_t) button); + parent = GTK_WIDGET(pcci->p1); + x = pcci->p2; + y = pcci->p3; + w = pcci->p4; + h = pcci->p5; + kind = pcci->p6; + + if (kind==ISOKBUTTON) + { + button = gtk_button_new_from_stock("gtk-ok"); + } + else + { + if (kind==ISCANCELBUTTON) + { + button = gtk_button_new_from_stock("gtk-quit"); + } + else + { + button = gtk_button_new(); + gtk_button_set_use_underline(GTK_BUTTON(button), gtk_true()); + } + } + + gtk_signal_connect (GTK_OBJECT (button), "clicked", + GTK_SIGNAL_FUNC(button_clicked), + GINT_TO_POINTER(kind)); + gtk_widget_set_size_request(button, w, h); + gtk_fixed_put (GetFixed(parent), button, x, y); + + MakeReturn1Cci (pcci, (int64_t) button); } void EvalCcRqCREATEICONBUT (CrossCallInfo *pcci) /* hwnd, x,y,w,h,kind; HWND result. */ { - GtkWidget *button, *parent, *drawing_area; - gint x, y, w, h, kind; + GtkWidget *button, *parent, *drawing_area; + gint x, y, w, h, kind; printf("EvalCcRqCREATEICONBUT\n"); - parent = GTK_WIDGET(pcci->p1); - x = pcci->p2; - y = pcci->p3; - w = pcci->p4; - h = pcci->p5; - kind = pcci->p6; + parent = GTK_WIDGET(pcci->p1); + x = pcci->p2; + y = pcci->p3; + w = pcci->p4; + h = pcci->p5; + kind = pcci->p6; - button = gtk_button_new(); - drawing_area = gtk_drawing_area_new(); - gtk_container_add(GTK_CONTAINER(button), drawing_area); - gtk_signal_connect(GTK_OBJECT (button), "clicked", - GTK_SIGNAL_FUNC(button_clicked), - GINT_TO_POINTER(kind)); - gtk_signal_connect (GTK_OBJECT(drawing_area), "expose-event", - GTK_SIGNAL_FUNC(button_expose_handler), - NULL); + button = gtk_button_new(); + drawing_area = gtk_drawing_area_new(); + gtk_container_add(GTK_CONTAINER(button), drawing_area); + gtk_signal_connect(GTK_OBJECT (button), "clicked", + GTK_SIGNAL_FUNC(button_clicked), + GINT_TO_POINTER(kind)); + gtk_signal_connect (GTK_OBJECT(drawing_area), "expose-event", + GTK_SIGNAL_FUNC(button_expose_handler), + NULL); - gtk_widget_set_size_request(button, w, h); - gtk_fixed_put(GetFixed(parent), button, x, y); + gtk_widget_set_size_request(button, w, h); + gtk_fixed_put(GetFixed(parent), button, x, y); - MakeReturn1Cci(pcci, (int64_t) button); + MakeReturn1Cci(pcci, (int64_t) button); } static gint custom_expose_handler(GtkWidget *widget, GdkEventExpose *event, gpointer user_data) { - GtkWidget *parent; + GtkWidget *parent; printf("custom_expose_handler\n"); parent = gtk_widget_get_parent(gtk_widget_get_parent(gtk_widget_get_parent(widget))); - SendMessage3ToClean(CcWmDRAWCONTROL, (int64_t) parent, (int64_t) widget, (int64_t) GDK_DRAWABLE(event->window)); - return 0; + SendMessage3ToClean(CcWmDRAWCONTROL, (int64_t) parent, (int64_t) widget, (int64_t) GDK_DRAWABLE(event->window)); + return 0; } void EvalCcRqCREATECUSTOM (CrossCallInfo *pcci) /* hwnd, x,y,w,h; HWND result. */ { - GtkWidget *ctrl, *parent; - gint x, y, w, h; + GtkWidget *ctrl, *parent; + gint x, y, w, h; printf("EvalCcRqCREATECUSTOM\n"); - parent = GTK_WIDGET(pcci->p1); - x = pcci->p2; - y = pcci->p3; - w = pcci->p4; - h = pcci->p5; - - ctrl = gtk_drawing_area_new(); - GTK_WIDGET_SET_FLAGS(ctrl, GTK_CAN_FOCUS); - gtk_signal_connect(GTK_OBJECT(ctrl), "expose-event", - GTK_SIGNAL_FUNC(custom_expose_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(ctrl), "focus-in-event", - GTK_SIGNAL_FUNC(widget_focus_in_handler), - ctrl); - gtk_signal_connect (GTK_OBJECT(ctrl), "focus-out-event", - GTK_SIGNAL_FUNC(widget_focus_out_handler), - ctrl); - gtk_signal_connect (GTK_OBJECT(ctrl), "key-press-event", - GTK_SIGNAL_FUNC(widget_key_press_handler), - ctrl); - gtk_signal_connect (GTK_OBJECT(ctrl), "key-release-event", - GTK_SIGNAL_FUNC(widget_key_release_handler), - ctrl); - gtk_signal_connect (GTK_OBJECT(ctrl), "button-press-event", - GTK_SIGNAL_FUNC(widget_button_press_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(ctrl), "button-release-event", - GTK_SIGNAL_FUNC(widget_button_release_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(ctrl), "motion_notify_event", - GTK_SIGNAL_FUNC(widget_motion_notify_handler), - NULL); + parent = GTK_WIDGET(pcci->p1); + x = pcci->p2; + y = pcci->p3; + w = pcci->p4; + h = pcci->p5; + + ctrl = gtk_drawing_area_new(); + GTK_WIDGET_SET_FLAGS(ctrl, GTK_CAN_FOCUS); + gtk_signal_connect(GTK_OBJECT(ctrl), "expose-event", + GTK_SIGNAL_FUNC(custom_expose_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(ctrl), "focus-in-event", + GTK_SIGNAL_FUNC(widget_focus_in_handler), + ctrl); + gtk_signal_connect (GTK_OBJECT(ctrl), "focus-out-event", + GTK_SIGNAL_FUNC(widget_focus_out_handler), + ctrl); + gtk_signal_connect (GTK_OBJECT(ctrl), "key-press-event", + GTK_SIGNAL_FUNC(widget_key_press_handler), + ctrl); + gtk_signal_connect (GTK_OBJECT(ctrl), "key-release-event", + GTK_SIGNAL_FUNC(widget_key_release_handler), + ctrl); + gtk_signal_connect (GTK_OBJECT(ctrl), "button-press-event", + GTK_SIGNAL_FUNC(widget_button_press_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(ctrl), "button-release-event", + GTK_SIGNAL_FUNC(widget_button_release_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(ctrl), "motion_notify_event", + GTK_SIGNAL_FUNC(widget_motion_notify_handler), + NULL); gtk_widget_set_size_request(ctrl, w, h); - gtk_fixed_put (GetFixed(parent), ctrl, x, y); + gtk_fixed_put (GetFixed(parent), ctrl, x, y); - gtk_widget_realize(ctrl); - gtk_widget_add_events(ctrl, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); + gtk_widget_realize(ctrl); + gtk_widget_add_events(ctrl, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); - MakeReturn1Cci (pcci, (int64_t) ctrl); + MakeReturn1Cci (pcci, (int64_t) ctrl); } void EvalCcRqCREATESTATICTXT (CrossCallInfo *pcci) /* hwnd, x,y,w,h; HWND result. */ { - int x, y, w, h; - GtkWidget *parent, *label; + int x, y, w, h; + GtkWidget *parent, *label; printf("EvalCcRqCREATESTATICTXT\n"); - parent = GTK_WIDGET(pcci->p1); - x = pcci->p2; - y = pcci->p3; - w = pcci->p4; - h = pcci->p5; + parent = GTK_WIDGET(pcci->p1); + x = pcci->p2; + y = pcci->p3; + w = pcci->p4; + h = pcci->p5; printf("Width: %d\n", w); - label = gtk_label_new(NULL); + label = gtk_label_new(NULL); gtk_widget_set_size_request(label, w, h); - gtk_fixed_put (GetFixed(parent), label, x, y); + gtk_fixed_put (GetFixed(parent), label, x, y); - MakeReturn1Cci (pcci, (int64_t) label); + MakeReturn1Cci (pcci, (int64_t) label); } void EvalCcRqCREATEEDITTXT (CrossCallInfo *pcci) /* hwnd, x,y,w,h, flags; HWND result. */ { - GtkWidget *edit; - GtkWidget *parent; - int x, y, w, h, flags; + GtkWidget *edit; + GtkWidget *parent; + int x, y, w, h, flags; printf("EvalCcRqCREATEEDITTXT\n"); - parent = GTK_WIDGET(pcci->p1); - x = pcci->p2; - y = pcci->p3; - w = pcci->p4; - h = pcci->p5; - flags = pcci->p6; - - if (flags & EDITISMULTILINE) - edit = gtk_text_view_new(); - else - edit = gtk_entry_new(); + parent = GTK_WIDGET(pcci->p1); + x = pcci->p2; + y = pcci->p3; + w = pcci->p4; + h = pcci->p5; + flags = pcci->p6; + + if (flags & EDITISMULTILINE) + edit = gtk_text_view_new(); + else + edit = gtk_entry_new(); printf("Edit Control: %ld\n", edit); printf("Dimensions: x=%d, y=%d, w=%d, h=%d\n", x, y, w, h); gtk_widget_set_size_request(edit, w, h); - gtk_fixed_put (GetFixed(parent), edit, x, y); + gtk_fixed_put (GetFixed(parent), edit, x, y); - gtk_signal_connect (GTK_OBJECT(edit), "focus-in-event", - GTK_SIGNAL_FUNC(widget_focus_in_handler), - edit); - gtk_signal_connect (GTK_OBJECT(edit), "focus-out-event", - GTK_SIGNAL_FUNC(widget_focus_out_handler), - edit); - if (flags & EDITISKEYSENSITIVE) - { - gtk_signal_connect (GTK_OBJECT(edit), "key-press-event", - GTK_SIGNAL_FUNC(widget_key_press_handler), - edit); - gtk_signal_connect (GTK_OBJECT(edit), "key-release-event", - GTK_SIGNAL_FUNC(widget_key_release_handler), - edit); - } + gtk_signal_connect (GTK_OBJECT(edit), "focus-in-event", + GTK_SIGNAL_FUNC(widget_focus_in_handler), + edit); + gtk_signal_connect (GTK_OBJECT(edit), "focus-out-event", + GTK_SIGNAL_FUNC(widget_focus_out_handler), + edit); + if (flags & EDITISKEYSENSITIVE) + { + gtk_signal_connect (GTK_OBJECT(edit), "key-press-event", + GTK_SIGNAL_FUNC(widget_key_press_handler), + edit); + gtk_signal_connect (GTK_OBJECT(edit), "key-release-event", + GTK_SIGNAL_FUNC(widget_key_release_handler), + edit); + } - MakeReturn1Cci (pcci, (int64_t) edit); + MakeReturn1Cci (pcci, (int64_t) edit); } static void radio_button_clicked (GtkButton *button, gpointer user_data) { - GtkWidget *wbutton, *window; + GtkWidget *wbutton, *window; printf("radio_button_clicked\n"); - wbutton = GTK_WIDGET(button); - window = GetControlParent(wbutton); + wbutton = GTK_WIDGET(button); + window = GetControlParent(wbutton); - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(wbutton))) - SendMessage4ToClean (CcWmBUTTONCLICKED, window, wbutton, GetModifiers (), 0); + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(wbutton))) + SendMessage4ToClean (CcWmBUTTONCLICKED, window, wbutton, GetModifiers (), 0); } void EvalCcRqCREATERADIOBUT (CrossCallInfo *pcci) /* hwnd, x,y,w,h, isfirst; HWND result. */ { - GtkWidget *radio_btn; - GtkWidget *parent; - int x, y, w, h, first; + GtkWidget *radio_btn; + GtkWidget *parent; + int x, y, w, h, first; printf("EvalCcRqCREATERADIOBUT\n"); - parent = GTK_WIDGET(pcci->p1); - x = pcci->p2; - y = pcci->p3; - w = pcci->p4; - h = pcci->p5; - first = pcci->p6; + parent = GTK_WIDGET(pcci->p1); + x = pcci->p2; + y = pcci->p3; + w = pcci->p4; + h = pcci->p5; + first = pcci->p6; - if (first || !gFirstRadioButton) - { - radio_btn = gtk_radio_button_new(NULL); - gFirstRadioButton = radio_btn; - } - else + if (first || !gFirstRadioButton) + { + radio_btn = gtk_radio_button_new(NULL); + gFirstRadioButton = radio_btn; + } + else { - radio_btn = gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(gFirstRadioButton)); + radio_btn = gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(gFirstRadioButton)); } - gtk_button_set_use_underline(GTK_BUTTON(radio_btn), gtk_true()); + gtk_button_set_use_underline(GTK_BUTTON(radio_btn), gtk_true()); gtk_widget_set_size_request(radio_btn, w, h); - gtk_fixed_put (GetFixed(parent), radio_btn, x, y); + gtk_fixed_put (GetFixed(parent), radio_btn, x, y); - gtk_signal_connect (GTK_OBJECT (radio_btn), "clicked", - GTK_SIGNAL_FUNC(radio_button_clicked), - NULL); + gtk_signal_connect (GTK_OBJECT (radio_btn), "clicked", + GTK_SIGNAL_FUNC(radio_button_clicked), + NULL); - MakeReturn1Cci (pcci, (int64_t) radio_btn); + MakeReturn1Cci (pcci, (int64_t) radio_btn); } void EvalCcRqCREATECHECKBOX (CrossCallInfo *pcci) /* hwnd, x,y,w,h, isfirst; HWND result. */ { - GtkWidget *check_btn; - GtkWidget *parent; - int x, y, w, h, first; + GtkWidget *check_btn; + GtkWidget *parent; + int x, y, w, h, first; printf("EvalCcRqCREATECHECKBOX\n"); - parent = GTK_WIDGET(pcci->p1); + parent = GTK_WIDGET(pcci->p1); x = pcci->p2; - y = pcci->p3; - w = pcci->p4; - h = pcci->p5; - first = pcci->p6; + y = pcci->p3; + w = pcci->p4; + h = pcci->p5; + first = pcci->p6; - check_btn = gtk_check_button_new(); - gtk_button_set_use_underline(GTK_BUTTON(check_btn), gtk_true()); + check_btn = gtk_check_button_new(); + gtk_button_set_use_underline(GTK_BUTTON(check_btn), gtk_true()); gtk_widget_set_size_request(check_btn, w, h); - gtk_fixed_put (GetFixed(parent), check_btn, x, y); + gtk_fixed_put (GetFixed(parent), check_btn, x, y); - gtk_signal_connect (GTK_OBJECT (check_btn), "toggled", - GTK_SIGNAL_FUNC(button_clicked), - NULL); + gtk_signal_connect (GTK_OBJECT (check_btn), "toggled", + GTK_SIGNAL_FUNC(button_clicked), + NULL); - MakeReturn1Cci (pcci, (int64_t) check_btn); + MakeReturn1Cci (pcci, (int64_t) check_btn); } void EvalCcRqSETITEMCHECK (CrossCallInfo *pcci) /* hwnd, bool; no result. */ { - GtkWidget *widget; - gboolean on; + GtkWidget *widget; + gboolean on; printf("EvalCcRqSETITEMCHECK\n"); - widget = GTK_WIDGET(pcci->p1); - on = (gboolean) pcci->p2; + widget = GTK_WIDGET(pcci->p1); + on = (gboolean) pcci->p2; - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), on); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), on); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } void EvalCcRqENABLECONTROL (CrossCallInfo *pcci) /* hwnd, bool; no result. */ { - GtkWidget *widget; - gboolean newSelect; + GtkWidget *widget; + gboolean newSelect; printf("EvalCcRqENABLECONTROL\n"); widget = GTK_WIDGET(pcci->p1); - newSelect = (gboolean) pcci->p2; + newSelect = (gboolean) pcci->p2; - gtk_widget_set_sensitive(widget, newSelect); - MakeReturn0Cci (pcci); + gtk_widget_set_sensitive(widget, newSelect); + MakeReturn0Cci (pcci); } void EvalCcRqSHOWCONTROL (CrossCallInfo *pcci) // hwnd, bool; no result. { - GtkWidget *control; - gboolean show; + GtkWidget *control; + gboolean show; printf("EvalCcRqSHOWCONTROL\n"); - control = GTK_WIDGET(pcci->p1); + control = GTK_WIDGET(pcci->p1); printf("Control: %p; show: 0x%x\n", control, pcci->p2); if (control) { - show = (gboolean) pcci->p2; + show = (gboolean) pcci->p2; - if (!show) - gtk_widget_hide(control); - else - gtk_widget_show(control); + if (!show) + gtk_widget_hide(control); + else + gtk_widget_show(control); } - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } /* Hide/show windows. */ void EvalCcRqSHOWWINDOW (CrossCallInfo *pcci) /* hwnd, show, activate; no result. */ { - GtkWidget *window; - gboolean show, activate; + GtkWidget *window; + gboolean show, activate; printf("EvalCcRqSHOWWINDOW\n"); - window = GTK_WIDGET(pcci->p1); - show = (gboolean) pcci->p2; - activate = (gboolean) pcci->p3; + window = GTK_WIDGET(pcci->p1); + show = (gboolean) pcci->p2; + activate = (gboolean) pcci->p3; - if (!show) - gtk_widget_hide(window); - else - gtk_widget_show(window); + if (!show) + gtk_widget_hide(window); + else + gtk_widget_show(window); - if (activate) - gtk_window_activate_default(GTK_WINDOW(window)); + if (activate) + gtk_window_activate_default(GTK_WINDOW(window)); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } static void combo_changed_handler(GtkWidget *entry, gpointer user_data) { - gint newsel = 0; - GtkWidget *combo; + gint newsel = 0; + GtkWidget *combo; GList *child; printf("combo_changed_handler\n"); - combo = GTK_WIDGET(user_data); - child = GTK_LIST(GTK_COMBO(combo)->list)->children; + combo = GTK_WIDGET(user_data); + child = GTK_LIST(GTK_COMBO(combo)->list)->children; - while (child) - { - GtkWidget *item = GTK_WIDGET(child->data); - if (item->state == GTK_STATE_SELECTED) - { - SendMessage3ToClean (CcWmITEMSELECT, (int64_t) GetControlParent(combo), (int64_t) combo, newsel); - return; - } + while (child) + { + GtkWidget *item = GTK_WIDGET(child->data); + if (item->state == GTK_STATE_SELECTED) + { + SendMessage3ToClean (CcWmITEMSELECT, (int64_t) GetControlParent(combo), (int64_t) combo, newsel); + return; + } - child = child->next; - newsel++; - } + child = child->next; + newsel++; + } } void EvalCcRqCREATEPOPUP (CrossCallInfo *pcci) /* hwnd, x,y,w,h,isEditable; HWND hwndPopUp,hwndEdit (if isEditable). */ { - GtkWidget *combo; - GtkWidget *parent; - int x, y, w, h; - gboolean isEditable; + GtkWidget *combo; + GtkWidget *parent; + int x, y, w, h; + gboolean isEditable; printf("EvalCcRqCREATEPOPUP\n"); - parent = GTK_WIDGET(pcci->p1); - x = pcci->p2; - y = pcci->p3; - w = pcci->p4; - h = pcci->p5; - isEditable = (gboolean) pcci->p6; - - combo = gtk_combo_new(); - gtk_combo_set_use_arrows_always(GTK_COMBO(combo), gtk_true()); + parent = GTK_WIDGET(pcci->p1); + x = pcci->p2; + y = pcci->p3; + w = pcci->p4; + h = pcci->p5; + isEditable = (gboolean) pcci->p6; + + combo = gtk_combo_new(); + gtk_combo_set_use_arrows_always(GTK_COMBO(combo), gtk_true()); gtk_widget_set_size_request(combo, w, h); - gtk_fixed_put (GetFixed(parent), combo, x, y); + gtk_fixed_put (GetFixed(parent), combo, x, y); - gtk_signal_connect(GTK_OBJECT(GTK_COMBO(combo)->entry), "changed", - GTK_SIGNAL_FUNC(combo_changed_handler), - combo); + gtk_signal_connect(GTK_OBJECT(GTK_COMBO(combo)->entry), "changed", + GTK_SIGNAL_FUNC(combo_changed_handler), + combo); - if (isEditable) - { - gtk_signal_connect (GTK_OBJECT (GTK_COMBO(combo)->entry), "focus-in-event", - GTK_SIGNAL_FUNC(widget_focus_in_handler), - combo); + if (isEditable) + { + gtk_signal_connect (GTK_OBJECT (GTK_COMBO(combo)->entry), "focus-in-event", + GTK_SIGNAL_FUNC(widget_focus_in_handler), + combo); - gtk_signal_connect (GTK_OBJECT (GTK_COMBO(combo)->entry), "focus-out-event", - GTK_SIGNAL_FUNC(widget_focus_out_handler), - combo); + gtk_signal_connect (GTK_OBJECT (GTK_COMBO(combo)->entry), "focus-out-event", + GTK_SIGNAL_FUNC(widget_focus_out_handler), + combo); - gtk_signal_connect (GTK_OBJECT (GTK_COMBO(combo)->entry), "key-press-event", - GTK_SIGNAL_FUNC(widget_key_press_handler), - combo); + gtk_signal_connect (GTK_OBJECT (GTK_COMBO(combo)->entry), "key-press-event", + GTK_SIGNAL_FUNC(widget_key_press_handler), + combo); - gtk_signal_connect (GTK_OBJECT (GTK_COMBO(combo)->entry), "key-release-event", - GTK_SIGNAL_FUNC(widget_key_release_handler), - combo); - } - else - { - gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(combo)->entry), gtk_false()); - } + gtk_signal_connect (GTK_OBJECT (GTK_COMBO(combo)->entry), "key-release-event", + GTK_SIGNAL_FUNC(widget_key_release_handler), + combo); + } + else + { + gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(combo)->entry), gtk_false()); + } - MakeReturn2Cci (pcci, (int64_t) combo, (int64_t) GTK_COMBO(combo)->entry); + MakeReturn2Cci (pcci, (int64_t) combo, (int64_t) GTK_COMBO(combo)->entry); } void EvalCcRqADDTOPOPUP (CrossCallInfo *pcci) /* hwnd, textptr, enabled, selected, index; Pos result. */ { - gint pos; - GtkWidget *combo, *li; - gchar *text; - gboolean selected; + gint pos; + GtkWidget *combo, *li; + gchar *text; + gboolean selected; printf("EvalCcRqADDTOPOPUP\n"); - combo = GTK_WIDGET(pcci->p1); - text = (gchar *) pcci->p2; - selected = (gboolean) pcci->p3; + combo = GTK_WIDGET(pcci->p1); + text = (gchar *) pcci->p2; + selected = (gboolean) pcci->p3; - li = gtk_list_item_new_with_label(text); - gtk_widget_show (li); - gtk_container_add(GTK_CONTAINER(GTK_COMBO(combo)->list), li); + li = gtk_list_item_new_with_label(text); + gtk_widget_show (li); + gtk_container_add(GTK_CONTAINER(GTK_COMBO(combo)->list), li); - pos = gtk_list_child_position(GTK_LIST(GTK_COMBO(combo)->list), li); + pos = gtk_list_child_position(GTK_LIST(GTK_COMBO(combo)->list), li); - if (selected) + if (selected) { - gtk_list_select_item(GTK_LIST(GTK_COMBO(combo)->list), pos); + gtk_list_select_item(GTK_LIST(GTK_COMBO(combo)->list), pos); } - MakeReturn1Cci (pcci, pos); + MakeReturn1Cci (pcci, pos); } void EvalCcRqSELECTPOPUPITEM (CrossCallInfo *pcci) /* hwnd, pos; no result */ { - GtkWidget *combo; - gint pos; + GtkWidget *combo; + gint pos; printf("EvalCcRqSELECTPOPUP\n"); - combo = GTK_WIDGET(pcci->p1); - pos = pcci->p2; + combo = GTK_WIDGET(pcci->p1); + pos = pcci->p2; - gtk_list_select_item(GTK_LIST(GTK_COMBO(combo)->list), pos); + gtk_list_select_item(GTK_LIST(GTK_COMBO(combo)->list), pos); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } void EvalCcRqRESTACKWINDOW (CrossCallInfo *pcci) /* thewindow,behind; no result. */ { /* HWND thePtr, behindPtr; - UINT uflags = SWP_NOMOVE + SWP_NOSIZE; // Do not change current size or location + UINT uflags = SWP_NOMOVE + SWP_NOSIZE; // Do not change current size or location - thePtr = (HWND) pcci->p1; - behindPtr = (HWND) pcci->p2; + thePtr = (HWND) pcci->p1; + behindPtr = (HWND) pcci->p2; - SetWindowPos (thePtr, behindPtr, 0, 0, 0, 0, uflags); + SetWindowPos (thePtr, behindPtr, 0, 0, 0, 0, uflags); */ - printf("EvalCcRqRESTACKWINDOW -> not implemented\n"); - MakeReturn0Cci (pcci); + printf("EvalCcRqRESTACKWINDOW -> not implemented\n"); + MakeReturn0Cci (pcci); } /* Add controls to tooltip area. */ void EvalCcRqADDCONTROLTIP (CrossCallInfo *pcci) /* parentPtr, controlPtr, textPtr; no result. */ { - GtkWidget *parent, *control; + GtkWidget *parent, *control; gchar *text; printf("EvalCcRqADDCONTROLTIP\n"); - parent = GTK_WIDGET(pcci->p1); - control = GTK_WIDGET(pcci->p2); - text = (gchar *)pcci->p3; + parent = GTK_WIDGET(pcci->p1); + control = GTK_WIDGET(pcci->p2); + text = (gchar *)pcci->p3; - gtk_tooltips_set_tip(GTK_TOOLTIPS(gTooltip), control, text, text); + gtk_tooltips_set_tip(GTK_TOOLTIPS(gTooltip), control, text, text); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } /* Remove controls from tooltip area. */ void EvalCcRqDELCONTROLTIP (CrossCallInfo *pcci) /* parentPtr, controlPtr; no result. */ { - GtkWidget *parent, *control; + GtkWidget *parent, *control; printf("EvalCcRqDELCONTROLTIP\n"); - parent = GTK_WIDGET(pcci->p1); - control = GTK_WIDGET(pcci->p2); + parent = GTK_WIDGET(pcci->p1); + control = GTK_WIDGET(pcci->p2); - gtk_tooltips_set_tip(GTK_TOOLTIPS(gTooltip), control, NULL, NULL); + gtk_tooltips_set_tip(GTK_TOOLTIPS(gTooltip), control, NULL, NULL); - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } void EvalCcRqCREATECARET(CrossCallInfo *pcci) { /* - HWND hWnd = (HWND) pcci->p1; - int nWidth = max(max(GetSystemMetrics(SM_CYBORDER), GetSystemMetrics(SM_CXBORDER)) * 2, pcci->p2); - int nHeight = pcci->p3; + HWND hWnd = (HWND) pcci->p1; + int nWidth = max(max(GetSystemMetrics(SM_CYBORDER), GetSystemMetrics(SM_CXBORDER)) * 2, pcci->p2); + int nHeight = pcci->p3; - ghCaretWnd = hWnd; - CreateCaret(hWnd, NULL, nWidth, nHeight); - ShowCaret(hWnd); + ghCaretWnd = hWnd; + CreateCaret(hWnd, NULL, nWidth, nHeight); + ShowCaret(hWnd); */ - printf("EvalCcRqCREATECARET -> not implemented\n"); - MakeReturn0Cci (pcci); + printf("EvalCcRqCREATECARET -> not implemented\n"); + MakeReturn0Cci (pcci); } void EvalCcRqSETCARETPOS(CrossCallInfo *pcci) @@ -2378,8 +2378,8 @@ void EvalCcRqSETCARETPOS(CrossCallInfo *pcci) // { // SetCaretPos(pcci->p2, pcci->p3); // }; - printf("EvalCcRqSETCARETPOS -> not implemented\n"); - MakeReturn0Cci (pcci); + printf("EvalCcRqSETCARETPOS -> not implemented\n"); + MakeReturn0Cci (pcci); } void EvalCcRqDESTROYCARET(CrossCallInfo *pcci) @@ -2389,82 +2389,82 @@ void EvalCcRqDESTROYCARET(CrossCallInfo *pcci) /// HideCaret(hWnd); // DestroyCaret(); // ghCaretWnd = NULL; - printf("EvalCcRqDESTROYCARET -> not implemented\n"); - MakeReturn0Cci (pcci); + printf("EvalCcRqDESTROYCARET -> not implemented\n"); + MakeReturn0Cci (pcci); } void EvalCcRqSHOWCARET(CrossCallInfo *pcci) { // ShowCaret((HWND) pcci->p1); - printf("EvalCcRqSHOWCARET -> not implemented\n"); - MakeReturn0Cci (pcci); + printf("EvalCcRqSHOWCARET -> not implemented\n"); + MakeReturn0Cci (pcci); } void EvalCcRqHIDECARET(CrossCallInfo *pcci) { // HideCaret((HWND) pcci->p1); - printf("EvalCcRqHIDECARET -> not implemented\n"); - MakeReturn0Cci (pcci); + printf("EvalCcRqHIDECARET -> not implemented\n"); + MakeReturn0Cci (pcci); } /* Install the cross call procedures in the gCrossCallProcedureTable of cCrossCall_121. */ OS InstallCrossCallWindows (OS ios) { - CrossCallProcedureTable newTable; + CrossCallProcedureTable newTable; printf("InstallCrossCallWindows\n"); - newTable = EmptyCrossCallProcedureTable (); - AddCrossCallEntry (newTable, CcRqBEGINPAINT, EvalCcRqBEGINPAINT); - AddCrossCallEntry (newTable, CcRqENDPAINT, EvalCcRqENDPAINT); - AddCrossCallEntry (newTable, CcRqFAKEPAINT, EvalCcRqFAKEPAINT); - AddCrossCallEntry (newTable, CcRqDESTROYMODALDIALOG, EvalCcRqDESTROYMODALDIALOG); - AddCrossCallEntry (newTable, CcRqDESTROYMDIDOCWINDOW, EvalCcRqDESTROYMDIDOCWINDOW); - AddCrossCallEntry (newTable, CcRqCREATESDIDOCWINDOW, EvalCcRqCREATESDIDOCWINDOW); - AddCrossCallEntry (newTable, CcRqCREATEMDIDOCWINDOW, EvalCcRqCREATEMDIDOCWINDOW); - AddCrossCallEntry (newTable, CcRqSETWINDOWTITLE, EvalCcRqSETWINDOWTITLE); - AddCrossCallEntry (newTable, CcRqGETWINDOWTEXT, EvalCcRqGETWINDOWTEXT); - AddCrossCallEntry (newTable, CcRqUPDATEWINDOWRECT, EvalCcRqUPDATEWINDOWRECT); - AddCrossCallEntry (newTable, CcRqSETCLIENTSIZE, EvalCcRqSETCLIENTSIZE); - AddCrossCallEntry (newTable, CcRqSETSELECTWINDOW, EvalCcRqSETSELECTWINDOW); - AddCrossCallEntry (newTable, CcRqSETWINDOWPOS, EvalCcRqSETWINDOWPOS); - AddCrossCallEntry (newTable, CcRqGETWINDOWSIZE, EvalCcRqGETWINDOWSIZE); - AddCrossCallEntry (newTable, CcRqSETWINDOWSIZE, EvalCcRqSETWINDOWSIZE); - AddCrossCallEntry (newTable, CcRqACTIVATECONTROL, EvalCcRqACTIVATECONTROL); - AddCrossCallEntry (newTable, CcRqACTIVATEWINDOW, EvalCcRqACTIVATEWINDOW); - AddCrossCallEntry (newTable, CcRqCHANGEWINDOWCURSOR, EvalCcRqCHANGEWINDOWCURSOR); - AddCrossCallEntry (newTable, CcRqOBSCURECURSOR, EvalCcRqOBSCURECURSOR); - AddCrossCallEntry (newTable, CcRqSETSCROLLRANGE, EvalCcRqSETSCROLLRANGE); - AddCrossCallEntry (newTable, CcRqSETSCROLLPOS, EvalCcRqSETSCROLLPOS); - AddCrossCallEntry (newTable, CcRqSETSCROLLSIZE, EvalCcRqSETSCROLLSIZE); - AddCrossCallEntry (newTable, CcRqSETEDITSELECTION, EvalCcRqSETEDITSELECTION); - AddCrossCallEntry (newTable, CcRqCREATEDIALOG, EvalCcRqCREATEDIALOG); - AddCrossCallEntry (newTable, CcRqCREATEMODALDIALOG, EvalCcRqCREATEMODALDIALOG); - AddCrossCallEntry (newTable, CcRqCREATECOMPOUND, EvalCcRqCREATECOMPOUND); - AddCrossCallEntry (newTable, CcRqCREATESCROLLBAR, EvalCcRqCREATESCROLLBAR); - AddCrossCallEntry (newTable, CcRqCREATEBUTTON, EvalCcRqCREATEBUTTON); - AddCrossCallEntry (newTable, CcRqCREATEICONBUT, EvalCcRqCREATEICONBUT); - AddCrossCallEntry (newTable, CcRqCREATECUSTOM, EvalCcRqCREATECUSTOM); - AddCrossCallEntry (newTable, CcRqCREATESTATICTXT, EvalCcRqCREATESTATICTXT); - AddCrossCallEntry (newTable, CcRqCREATEEDITTXT, EvalCcRqCREATEEDITTXT); - AddCrossCallEntry (newTable, CcRqCREATERADIOBUT, EvalCcRqCREATERADIOBUT); - AddCrossCallEntry (newTable, CcRqCREATECHECKBOX, EvalCcRqCREATECHECKBOX); - AddCrossCallEntry (newTable, CcRqSETITEMCHECK, EvalCcRqSETITEMCHECK); - AddCrossCallEntry (newTable, CcRqENABLECONTROL, EvalCcRqENABLECONTROL); - AddCrossCallEntry (newTable, CcRqSHOWCONTROL, EvalCcRqSHOWCONTROL); - AddCrossCallEntry (newTable, CcRqSHOWWINDOW, EvalCcRqSHOWWINDOW); - AddCrossCallEntry (newTable, CcRqCREATEPOPUP, EvalCcRqCREATEPOPUP); - AddCrossCallEntry (newTable, CcRqADDTOPOPUP, EvalCcRqADDTOPOPUP); - AddCrossCallEntry (newTable, CcRqSELECTPOPUPITEM, EvalCcRqSELECTPOPUPITEM); - AddCrossCallEntry (newTable, CcRqRESTACKWINDOW, EvalCcRqRESTACKWINDOW); - AddCrossCallEntry (newTable, CcRqADDCONTROLTIP, EvalCcRqADDCONTROLTIP); - AddCrossCallEntry (newTable, CcRqDELCONTROLTIP, EvalCcRqDELCONTROLTIP); - AddCrossCallEntry (newTable, CcRqCREATECARET, EvalCcRqCREATECARET); - AddCrossCallEntry (newTable, CcRqSETCARETPOS, EvalCcRqSETCARETPOS); - AddCrossCallEntry (newTable, CcRqDESTROYCARET, EvalCcRqDESTROYCARET); - AddCrossCallEntry (newTable, CcRqHIDECARET, EvalCcRqHIDECARET); - AddCrossCallEntry (newTable, CcRqSHOWCARET, EvalCcRqSHOWCARET); - AddCrossCallEntries (gCrossCallProcedureTable, newTable); + newTable = EmptyCrossCallProcedureTable (); + AddCrossCallEntry (newTable, CcRqBEGINPAINT, EvalCcRqBEGINPAINT); + AddCrossCallEntry (newTable, CcRqENDPAINT, EvalCcRqENDPAINT); + AddCrossCallEntry (newTable, CcRqFAKEPAINT, EvalCcRqFAKEPAINT); + AddCrossCallEntry (newTable, CcRqDESTROYMODALDIALOG, EvalCcRqDESTROYMODALDIALOG); + AddCrossCallEntry (newTable, CcRqDESTROYMDIDOCWINDOW, EvalCcRqDESTROYMDIDOCWINDOW); + AddCrossCallEntry (newTable, CcRqCREATESDIDOCWINDOW, EvalCcRqCREATESDIDOCWINDOW); + AddCrossCallEntry (newTable, CcRqCREATEMDIDOCWINDOW, EvalCcRqCREATEMDIDOCWINDOW); + AddCrossCallEntry (newTable, CcRqSETWINDOWTITLE, EvalCcRqSETWINDOWTITLE); + AddCrossCallEntry (newTable, CcRqGETWINDOWTEXT, EvalCcRqGETWINDOWTEXT); + AddCrossCallEntry (newTable, CcRqUPDATEWINDOWRECT, EvalCcRqUPDATEWINDOWRECT); + AddCrossCallEntry (newTable, CcRqSETCLIENTSIZE, EvalCcRqSETCLIENTSIZE); + AddCrossCallEntry (newTable, CcRqSETSELECTWINDOW, EvalCcRqSETSELECTWINDOW); + AddCrossCallEntry (newTable, CcRqSETWINDOWPOS, EvalCcRqSETWINDOWPOS); + AddCrossCallEntry (newTable, CcRqGETWINDOWSIZE, EvalCcRqGETWINDOWSIZE); + AddCrossCallEntry (newTable, CcRqSETWINDOWSIZE, EvalCcRqSETWINDOWSIZE); + AddCrossCallEntry (newTable, CcRqACTIVATECONTROL, EvalCcRqACTIVATECONTROL); + AddCrossCallEntry (newTable, CcRqACTIVATEWINDOW, EvalCcRqACTIVATEWINDOW); + AddCrossCallEntry (newTable, CcRqCHANGEWINDOWCURSOR, EvalCcRqCHANGEWINDOWCURSOR); + AddCrossCallEntry (newTable, CcRqOBSCURECURSOR, EvalCcRqOBSCURECURSOR); + AddCrossCallEntry (newTable, CcRqSETSCROLLRANGE, EvalCcRqSETSCROLLRANGE); + AddCrossCallEntry (newTable, CcRqSETSCROLLPOS, EvalCcRqSETSCROLLPOS); + AddCrossCallEntry (newTable, CcRqSETSCROLLSIZE, EvalCcRqSETSCROLLSIZE); + AddCrossCallEntry (newTable, CcRqSETEDITSELECTION, EvalCcRqSETEDITSELECTION); + AddCrossCallEntry (newTable, CcRqCREATEDIALOG, EvalCcRqCREATEDIALOG); + AddCrossCallEntry (newTable, CcRqCREATEMODALDIALOG, EvalCcRqCREATEMODALDIALOG); + AddCrossCallEntry (newTable, CcRqCREATECOMPOUND, EvalCcRqCREATECOMPOUND); + AddCrossCallEntry (newTable, CcRqCREATESCROLLBAR, EvalCcRqCREATESCROLLBAR); + AddCrossCallEntry (newTable, CcRqCREATEBUTTON, EvalCcRqCREATEBUTTON); + AddCrossCallEntry (newTable, CcRqCREATEICONBUT, EvalCcRqCREATEICONBUT); + AddCrossCallEntry (newTable, CcRqCREATECUSTOM, EvalCcRqCREATECUSTOM); + AddCrossCallEntry (newTable, CcRqCREATESTATICTXT, EvalCcRqCREATESTATICTXT); + AddCrossCallEntry (newTable, CcRqCREATEEDITTXT, EvalCcRqCREATEEDITTXT); + AddCrossCallEntry (newTable, CcRqCREATERADIOBUT, EvalCcRqCREATERADIOBUT); + AddCrossCallEntry (newTable, CcRqCREATECHECKBOX, EvalCcRqCREATECHECKBOX); + AddCrossCallEntry (newTable, CcRqSETITEMCHECK, EvalCcRqSETITEMCHECK); + AddCrossCallEntry (newTable, CcRqENABLECONTROL, EvalCcRqENABLECONTROL); + AddCrossCallEntry (newTable, CcRqSHOWCONTROL, EvalCcRqSHOWCONTROL); + AddCrossCallEntry (newTable, CcRqSHOWWINDOW, EvalCcRqSHOWWINDOW); + AddCrossCallEntry (newTable, CcRqCREATEPOPUP, EvalCcRqCREATEPOPUP); + AddCrossCallEntry (newTable, CcRqADDTOPOPUP, EvalCcRqADDTOPOPUP); + AddCrossCallEntry (newTable, CcRqSELECTPOPUPITEM, EvalCcRqSELECTPOPUPITEM); + AddCrossCallEntry (newTable, CcRqRESTACKWINDOW, EvalCcRqRESTACKWINDOW); + AddCrossCallEntry (newTable, CcRqADDCONTROLTIP, EvalCcRqADDCONTROLTIP); + AddCrossCallEntry (newTable, CcRqDELCONTROLTIP, EvalCcRqDELCONTROLTIP); + AddCrossCallEntry (newTable, CcRqCREATECARET, EvalCcRqCREATECARET); + AddCrossCallEntry (newTable, CcRqSETCARETPOS, EvalCcRqSETCARETPOS); + AddCrossCallEntry (newTable, CcRqDESTROYCARET, EvalCcRqDESTROYCARET); + AddCrossCallEntry (newTable, CcRqHIDECARET, EvalCcRqHIDECARET); + AddCrossCallEntry (newTable, CcRqSHOWCARET, EvalCcRqSHOWCARET); + AddCrossCallEntries (gCrossCallProcedureTable, newTable); return ios; } diff --git a/Linux_C_12/cCrossCall_121.c b/Linux_C_12/cCrossCall_121.c index 56b74e4..7028348 100644 --- a/Linux_C_12/cCrossCall_121.c +++ b/Linux_C_12/cCrossCall_121.c @@ -1,26 +1,26 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - cCrossCall_121 defines the infrastructure required by the Object I/O library to call - system procedures that interact with the Windows callback mechanism. + About this module: + cCrossCall_121 defines the infrastructure required by the Object I/O library to call + system procedures that interact with the Windows callback mechanism. - The basic principle in cCrossCall_121 is to have a minimal cross call kernel. If Clean - code requires extension of the functionality of the OS thread, then this functionality - must be registered before being applicable. + The basic principle in cCrossCall_121 is to have a minimal cross call kernel. If Clean + code requires extension of the functionality of the OS thread, then this functionality + must be registered before being applicable. - In this version the request codes are still statically fixed and are assumed to be - globally available both in the OS thread and the Clean thread. In a future version this - will probably be replaced by a dynamic allocation of cross call request codes. + In this version the request codes are still statically fixed and are assumed to be + globally available both in the OS thread and the Clean thread. In a future version this + will probably be replaced by a dynamic allocation of cross call request codes. ********************************************************************************************/ /******************************************************************************************** - Include section. + Include section. ********************************************************************************************/ #include "cCrossCall_121.h" @@ -40,14 +40,14 @@ int global_argc = 0; #define _MAX_PATH 255 /********************************************************************************************** - External global data section. + External global data section. **********************************************************************************************/ CrossCallInfo gCci; /* The global cross call information struct. */ GtkTooltips *gTooltip = NULL; /* The tooltip control. */ CrossCallProcedureTable gCrossCallProcedureTable; /********************************************************************************************** - Internal global data section. + Internal global data section. **********************************************************************************************/ static pthread_mutex_t gCleanMutex; @@ -63,213 +63,213 @@ static CrossCallInfo *MakeQuitCci (CrossCallInfo * pcci); */ int GetModifiers (void) { - int mods = 0; - GdkModifierType state; + int mods = 0; + GdkModifierType state; /*printf("GetModifiers\n");*/ - gdk_event_get_state(gtk_get_current_event(), &state); + gdk_event_get_state(gtk_get_current_event(), &state); - if (state & GDK_SHIFT_MASK) { - mods |= SHIFTBIT; + if (state & GDK_SHIFT_MASK) { + mods |= SHIFTBIT; } - if (state & GDK_CONTROL_MASK) { - mods |= CTRLBIT; + if (state & GDK_CONTROL_MASK) { + mods |= CTRLBIT; } - if (state & GDK_MOD1_MASK) { - mods |= ALTBIT; + if (state & GDK_MOD1_MASK) { + mods |= ALTBIT; } - return mods; + return mods; } /* Translate virtual key codes to the codes shared with Clean. - This procedure has been filtered from TranslateKeyboardMessage. - If the keycode could not be translated, zero is returned. + This procedure has been filtered from TranslateKeyboardMessage. + If the keycode could not be translated, zero is returned. */ int CheckVirtualKeyCode (int keycode) { - int c = 0; + int c = 0; /* printf("CheckVirtualKeyCode\n");*/ - switch (keycode) - { - case GDK_Up: - c = WinUpKey; - break; - case GDK_Down: - c = WinDownKey; - break; - case GDK_Left: - c = WinLeftKey; - break; - case GDK_Right: - c = WinRightKey; - break; - case GDK_Page_Up: - c = WinPgUpKey; - break; - case GDK_Page_Down: - c = WinPgDownKey; - break; - case GDK_End: - c = WinEndKey; - break; - case GDK_Begin: - c = WinBeginKey; - break; - case GDK_BackSpace: - c = WinBackSpKey; - break; - case GDK_Delete: - c = WinDelKey; - break; - case GDK_Tab: - c = WinTabKey; - break; - case GDK_Return: - c = WinReturnKey; - break; - case GDK_Escape: - c = WinEscapeKey; - break; - case GDK_Help: - c = WinHelpKey; - break; - case GDK_F1: - c = WinF1Key; - break; - case GDK_F2: - c = WinF2Key; - break; - case GDK_F3: - c = WinF3Key; - break; - case GDK_F4: - c = WinF4Key; - break; - case GDK_F5: - c = WinF5Key; - break; - case GDK_F6: - c = WinF6Key; - break; - case GDK_F7: - c = WinF7Key; - break; - case GDK_F8: - c = WinF8Key; - break; - case GDK_F9: - c = WinF9Key; - break; - case GDK_F10: - c = WinF10Key; - break; - case GDK_F11: - c = WinF11Key; - break; - case GDK_F12: - c = WinF12Key; - break; - } - return c; + switch (keycode) + { + case GDK_Up: + c = WinUpKey; + break; + case GDK_Down: + c = WinDownKey; + break; + case GDK_Left: + c = WinLeftKey; + break; + case GDK_Right: + c = WinRightKey; + break; + case GDK_Page_Up: + c = WinPgUpKey; + break; + case GDK_Page_Down: + c = WinPgDownKey; + break; + case GDK_End: + c = WinEndKey; + break; + case GDK_Begin: + c = WinBeginKey; + break; + case GDK_BackSpace: + c = WinBackSpKey; + break; + case GDK_Delete: + c = WinDelKey; + break; + case GDK_Tab: + c = WinTabKey; + break; + case GDK_Return: + c = WinReturnKey; + break; + case GDK_Escape: + c = WinEscapeKey; + break; + case GDK_Help: + c = WinHelpKey; + break; + case GDK_F1: + c = WinF1Key; + break; + case GDK_F2: + c = WinF2Key; + break; + case GDK_F3: + c = WinF3Key; + break; + case GDK_F4: + c = WinF4Key; + break; + case GDK_F5: + c = WinF5Key; + break; + case GDK_F6: + c = WinF6Key; + break; + case GDK_F7: + c = WinF7Key; + break; + case GDK_F8: + c = WinF8Key; + break; + case GDK_F9: + c = WinF9Key; + break; + case GDK_F10: + c = WinF10Key; + break; + case GDK_F11: + c = WinF11Key; + break; + case GDK_F12: + c = WinF12Key; + break; + } + return c; } static gboolean TimerCallback (gpointer data) { /*printf("TimerCallback\n");*/ - SendMessage0ToClean (CcWmIDLETIMER); + SendMessage0ToClean (CcWmIDLETIMER); return TRUE; } void HandleCleanRequest (CrossCallInfo * pcci) { /*printf("HandleCleanRequest: Message = %d\n", pcci->mess);*/ - switch (pcci->mess) - { - case CcRqDOMESSAGE: /* idleTimerOn, sleeptime; no result. */ - { - gboolean gIdleTimerOn = (gboolean) pcci->p1; - gint interval = (gint) pcci->p2; + switch (pcci->mess) + { + case CcRqDOMESSAGE: /* idleTimerOn, sleeptime; no result. */ + { + gboolean gIdleTimerOn = (gboolean) pcci->p1; + gint interval = (gint) pcci->p2; /*printf("CcRqDOMESSAGE\n");*/ - if (gIdleTimerOn) - { - GSource *source = g_timeout_source_new(interval); - g_source_set_callback(source,TimerCallback,NULL,NULL); - g_source_attach(source,NULL); - - gtk_main_iteration(); - - g_source_destroy(source); - } - else - { - gtk_main_iteration(); - } - - MakeReturn0Cci (pcci); - } - break; - default: - { - CrossCallProcedure action; - - action = FindCrossCallEntry (gCrossCallProcedureTable, pcci->mess); + if (gIdleTimerOn) + { + GSource *source = g_timeout_source_new(interval); + g_source_set_callback(source,TimerCallback,NULL,NULL); + g_source_attach(source,NULL); + + gtk_main_iteration(); + + g_source_destroy(source); + } + else + { + gtk_main_iteration(); + } + + MakeReturn0Cci (pcci); + } + break; + default: + { + CrossCallProcedure action; + + action = FindCrossCallEntry (gCrossCallProcedureTable, pcci->mess); /*printf("Handle Request for action logged for: %d\n", pcci->mess);*/ - if (action == NULL) - { /* Cross call request code not installed. */ - /*printf("\'HandleCleanRequest\' got uninstalled CcRq request code from Haskell: %d\n", pcci->mess);*/ - exit(1); - } - else - { /* Cross call request code found. Apply it to pcci. */ + if (action == NULL) + { /* Cross call request code not installed. */ + /*printf("\'HandleCleanRequest\' got uninstalled CcRq request code from Haskell: %d\n", pcci->mess);*/ + exit(1); + } + else + { /* Cross call request code found. Apply it to pcci. */ /*printf("Action Requested: %d\n", pcci->mess);*/ - action (pcci); - } - } - } - KickCleanThread (pcci); + action (pcci); + } + } + } + KickCleanThread (pcci); } /* HandleCleanRequest */ void InitGTK() { - static gboolean gInitiated = FALSE; + static gboolean gInitiated = FALSE; /*printf("InitGTK\n"); */ - if (!gInitiated) - { - gtk_set_locale(); - gtk_init(&global_argc,&global_argv); - gInitiated = TRUE; - }; + if (!gInitiated) + { + gtk_set_locale(); + gtk_init(&global_argc,&global_argv); + gInitiated = TRUE; + }; } /* InitGTK */ static gpointer OsThreadFunction (gpointer param); OS WinStartOsThread(OS os) { - pthread_attr_t attr; + pthread_attr_t attr; /* rprintf ("WinStartOSThread\n"); */ - InitGTK(); + InitGTK(); - /* The cross call procedure table is set to the empty table. */ - gCrossCallProcedureTable = EmptyCrossCallProcedureTable (); + /* The cross call procedure table is set to the empty table. */ + gCrossCallProcedureTable = EmptyCrossCallProcedureTable (); /* rprintf ("Created CC Table\n"); */ - pthread_mutex_init(&gCleanMutex,NULL); - pthread_mutex_lock(&gCleanMutex); - pthread_mutex_init(&gOSMutex,NULL); - pthread_mutex_lock(&gOSMutex); - gOSThreadIsRunning = TRUE; + pthread_mutex_init(&gCleanMutex,NULL); + pthread_mutex_lock(&gCleanMutex); + pthread_mutex_init(&gOSMutex,NULL); + pthread_mutex_lock(&gOSMutex); + gOSThreadIsRunning = TRUE; /* rprintf ("OS is running.\n"); */ - pthread_attr_init(&attr); - pthread_create(&gOSThread,&attr,OsThreadFunction,NULL); - pthread_attr_destroy(&attr); + pthread_attr_init(&attr); + pthread_create(&gOSThread,&attr,OsThreadFunction,NULL); + pthread_attr_destroy(&attr); /* rprintf ("Exiting initializer.\n"); */ return os; @@ -278,84 +278,84 @@ OS WinStartOsThread(OS os) OS WinKillOsThread (OS os) { /* printf("WinKillOsThread\n"); */ - if (gOSThread != FALSE) - { - gOSThreadIsRunning = FALSE; - gOSThread = FALSE; + if (gOSThread != FALSE) + { + gOSThreadIsRunning = FALSE; + gOSThread = FALSE; - DeleteCursors(); + DeleteCursors(); - if (gCrossCallProcedureTable) - FreeCrossCallProcedureTable (gCrossCallProcedureTable); - } + if (gCrossCallProcedureTable) + FreeCrossCallProcedureTable (gCrossCallProcedureTable); + } return os; } /*WinKillOsThread*/ #define PRINTCROSSCALLS void WinKickOsThread (int64_t imess, - int64_t ip1, int64_t ip2, int64_t ip3, - int64_t ip4, int64_t ip5, int64_t ip6, + int64_t ip1, int64_t ip2, int64_t ip3, + int64_t ip4, int64_t ip5, int64_t ip6, OS ios, - int64_t *omess, - int64_t *op1, int64_t *op2, int64_t *op3, - int64_t *op4, int64_t *op5, int64_t *op6, + int64_t *omess, + int64_t *op1, int64_t *op2, int64_t *op3, + int64_t *op4, int64_t *op5, int64_t *op6, OS *oos - ) + ) { - gCci.mess = imess; - gCci.p1 = ip1; - gCci.p2 = ip2; - gCci.p3 = ip3; - gCci.p4 = ip4; - gCci.p5 = ip5; - gCci.p6 = ip6; + gCci.mess = imess; + gCci.p1 = ip1; + gCci.p2 = ip2; + gCci.p3 = ip3; + gCci.p4 = ip4; + gCci.p5 = ip5; + gCci.p6 = ip6; #ifdef PRINTCROSSCALLS - rprintf("WinKickOsThread ("); - printCCI (&gCci); - printf(" - data: %p, %p, %p, %p, %p, %p, %p\n", - gCci.p1, gCci.p2, gCci.p3, gCci.p4, - gCci.p5, gCci.p6, ios); - rprintf(")\n"); + rprintf("WinKickOsThread ("); + printCCI (&gCci); + printf(" - data: %p, %p, %p, %p, %p, %p, %p\n", + gCci.p1, gCci.p2, gCci.p3, gCci.p4, + gCci.p5, gCci.p6, ios); + rprintf(")\n"); #endif - if (gOSThread != FALSE) - { + if (gOSThread != FALSE) + { #ifdef PRINTCROSSCALLS rprintf("Unlocking Clean mutex.\n"); #endif - pthread_mutex_unlock(&gCleanMutex); + pthread_mutex_unlock(&gCleanMutex); #ifdef PRINTCROSSCALLS rprintf("Locking OS mutex.\n"); #endif - pthread_mutex_lock(&gOSMutex); + pthread_mutex_lock(&gOSMutex); #ifdef PRINTCROSSCALLS rprintf("OS mutex locked.\n"); #endif - *omess = gCci.mess; - *op1 = gCci.p1; - *op2 = gCci.p2; - *op3 = gCci.p3; - *op4 = gCci.p4; - *op5 = gCci.p5; - *op6 = gCci.p6; + *omess = gCci.mess; + *op1 = gCci.p1; + *op2 = gCci.p2; + *op3 = gCci.p3; + *op4 = gCci.p4; + *op5 = gCci.p5; + *op6 = gCci.p6; *oos = ios; printf("Data: %p, %p, %p, %p, %p, %p, %p\n", gCci.p1, gCci.p2, gCci.p3, gCci.p4, gCci.p5, gCci.p6, ios); - } - else - { - *omess = CcWASQUIT; - *op1 = 0; - *op2 = 0; - *op3 = 0; - *op4 = 0; - *op5 = 0; - *op6 = 0; + } + else + { + *omess = CcWASQUIT; + *op1 = 0; + *op2 = 0; + *op3 = 0; + *op4 = 0; + *op5 = 0; + *op6 = 0; *oos = ios; - } + } } /* WinKickOsThread */ @@ -370,197 +370,197 @@ void KickCleanThread (CrossCallInfo * pcci) { /* rprintf("KickCleanThread\n"); */ #ifdef PRINTCROSSCALLS - if (ossp == -1) - { - for (ossp = 0; ossp < 10; ossp++) - { - osstack[ossp].mess = -1; - } - ossp = 1; - osstack[ossp].mess = -2; - } - - if (clsp == -1) - { - for (clsp = 0; clsp < 10; clsp++) - { - clstack[clsp].mess = -1; - } - clsp = 1; - clstack[clsp].mess = -2; - } + if (ossp == -1) + { + for (ossp = 0; ossp < 10; ossp++) + { + osstack[ossp].mess = -1; + } + ossp = 1; + osstack[ossp].mess = -2; + } + + if (clsp == -1) + { + for (clsp = 0; clsp < 10; clsp++) + { + clstack[clsp].mess = -1; + } + clsp = 1; + clstack[clsp].mess = -2; + } #endif - if (pcci != &gCci) + if (pcci != &gCci) { - gCci = *pcci; + gCci = *pcci; } #ifdef PRINTCROSSCALLS - rprintf ("KCT: started\n"); - if (gCci.mess < 20) - { - rprintf (" -- %d --> OS returning <", clsp + ossp - 2); - printCCI (&gCci); - rprintf ("> from <"); - printCCI (&(clstack[clsp])); - rprintf (">\n"); - clsp--; - } - else - { - ossp++; - osstack[ossp] = gCci; - rprintf (" -- %d --> OS calling with <", clsp + ossp - 2); - printCCI (&gCci); - rprintf (">\n"); - } - - rprintf ("KCT: setting event\n"); + rprintf ("KCT: started\n"); + if (gCci.mess < 20) + { + rprintf (" -- %d --> OS returning <", clsp + ossp - 2); + printCCI (&gCci); + rprintf ("> from <"); + printCCI (&(clstack[clsp])); + rprintf (">\n"); + clsp--; + } + else + { + ossp++; + osstack[ossp] = gCci; + rprintf (" -- %d --> OS calling with <", clsp + ossp - 2); + printCCI (&gCci); + rprintf (">\n"); + } + + rprintf ("KCT: setting event\n"); #endif - pthread_mutex_unlock(&gOSMutex); + pthread_mutex_unlock(&gOSMutex); #ifdef PRINTCROSSCALLS - rprintf ("KCT: starting wait\n"); + rprintf ("KCT: starting wait\n"); #endif - pthread_mutex_lock(&gCleanMutex); + pthread_mutex_lock(&gCleanMutex); #ifdef PRINTCROSSCALLS - rprintf ("KCT: wait done.\n"); + rprintf ("KCT: wait done.\n"); #endif - if (pcci != &gCci) - *pcci = gCci; + if (pcci != &gCci) + *pcci = gCci; #ifdef PRINTCROSSCALLS - if (gCci.mess < 20) - { - rprintf (" <-- %d -- Clean returning <", clsp + ossp - 2); - printCCI (&gCci); - rprintf ("> from <"); - printCCI (&(osstack[ossp])); - rprintf (">\n"); - ossp--; - } - else - { - clsp++; - clstack[clsp] = gCci; - rprintf (" <-- %d -- Clean calling with <", clsp + ossp - 2); - printCCI (&gCci); - rprintf (">\n"); - } + if (gCci.mess < 20) + { + rprintf (" <-- %d -- Clean returning <", clsp + ossp - 2); + printCCI (&gCci); + rprintf ("> from <"); + printCCI (&(osstack[ossp])); + rprintf (">\n"); + ossp--; + } + else + { + clsp++; + clstack[clsp] = gCci; + rprintf (" <-- %d -- Clean calling with <", clsp + ossp - 2); + printCCI (&gCci); + rprintf (">\n"); + } #endif } /* KickCleanThread */ void SendMessageToClean (int64_t mess, int64_t p1, int64_t p2, int64_t p3, int64_t p4, int64_t p5, int64_t p6) { /* printf("SendMessageToClean -- Message: %d\n", mess); */ - gCci.mess = mess; - gCci.p1 = p1; - gCci.p2 = p2; - gCci.p3 = p3; - gCci.p4 = p4; - gCci.p5 = p5; - gCci.p6 = p6; - - KickCleanThread (&gCci); - while (!IsReturnCci (&gCci)) - { - HandleCleanRequest (&gCci); - } + gCci.mess = mess; + gCci.p1 = p1; + gCci.p2 = p2; + gCci.p3 = p3; + gCci.p4 = p4; + gCci.p5 = p5; + gCci.p6 = p6; + + KickCleanThread (&gCci); + while (!IsReturnCci (&gCci)) + { + HandleCleanRequest (&gCci); + } } CrossCallInfo *MakeReturn0Cci (CrossCallInfo * pcci) { - pcci->mess = CcRETURN0; - return pcci; + pcci->mess = CcRETURN0; + return pcci; } CrossCallInfo *MakeReturn1Cci (CrossCallInfo * pcci, int64_t v1) { - pcci->mess = CcRETURN1; - pcci->p1 = v1; - return pcci; + pcci->mess = CcRETURN1; + pcci->p1 = v1; + return pcci; } CrossCallInfo *MakeReturn2Cci (CrossCallInfo * pcci, int64_t v1, int64_t v2) { - pcci->mess = CcRETURN2; - pcci->p1 = v1; - pcci->p2 = v2; - return pcci; + pcci->mess = CcRETURN2; + pcci->p1 = v1; + pcci->p2 = v2; + return pcci; } CrossCallInfo *MakeReturn3Cci (CrossCallInfo * pcci, int64_t v1, int64_t v2, int64_t v3) { - pcci->mess = CcRETURN3; - pcci->p1 = v1; - pcci->p2 = v2; - pcci->p3 = v3; - return pcci; + pcci->mess = CcRETURN3; + pcci->p1 = v1; + pcci->p2 = v2; + pcci->p3 = v3; + return pcci; } CrossCallInfo *MakeReturn4Cci (CrossCallInfo * pcci, int64_t v1, int64_t v2, int64_t v3, int64_t v4) { - pcci->mess = CcRETURN4; - pcci->p1 = v1; - pcci->p2 = v2; - pcci->p3 = v3; - pcci->p4 = v4; - return pcci; + pcci->mess = CcRETURN4; + pcci->p1 = v1; + pcci->p2 = v2; + pcci->p3 = v3; + pcci->p4 = v4; + return pcci; } CrossCallInfo *MakeReturn5Cci (CrossCallInfo * pcci, int64_t v1, int64_t v2, int64_t v3, int64_t v4, int64_t v5) { - pcci->mess = CcRETURN5; - pcci->p1 = v1; - pcci->p2 = v2; - pcci->p3 = v3; - pcci->p4 = v4; - pcci->p5 = v5; - return pcci; + pcci->mess = CcRETURN5; + pcci->p1 = v1; + pcci->p2 = v2; + pcci->p3 = v3; + pcci->p4 = v4; + pcci->p5 = v5; + return pcci; } CrossCallInfo *MakeReturn6Cci (CrossCallInfo * pcci, int64_t v1, int64_t v2, int64_t v3, int64_t v4, int64_t v5, int64_t v6) { - pcci->mess = CcRETURN6; - pcci->p1 = v1; - pcci->p2 = v2; - pcci->p3 = v3; - pcci->p4 = v4; - pcci->p5 = v5; - pcci->p6 = v6; - return pcci; + pcci->mess = CcRETURN6; + pcci->p1 = v1; + pcci->p2 = v2; + pcci->p3 = v3; + pcci->p4 = v4; + pcci->p5 = v5; + pcci->p6 = v6; + return pcci; } gboolean IsReturnCci (CrossCallInfo * pcci) { /* printf("Checking message %d: ", pcci->mess);*/ - if (pcci->mess >= CcRETURNmin && pcci->mess <= CcRETURNmax) + if (pcci->mess >= CcRETURNmin && pcci->mess <= CcRETURNmax) { - return TRUE; + return TRUE; } - return FALSE; + return FALSE; } static gpointer OsThreadFunction (gpointer param) { /* printf("OsThreadFunction\n"); */ - gTooltip = gtk_tooltips_new(); + gTooltip = gtk_tooltips_new(); - pthread_mutex_lock(&gCleanMutex); + pthread_mutex_lock(&gCleanMutex); - while (gOSThreadIsRunning) - { - HandleCleanRequest (&gCci); - } + while (gOSThreadIsRunning) + { + HandleCleanRequest (&gCci); + } - pthread_mutex_unlock(&gCleanMutex); + pthread_mutex_unlock(&gCleanMutex); - pthread_mutex_destroy(&gOSMutex); - pthread_mutex_destroy(&gCleanMutex); + pthread_mutex_destroy(&gOSMutex); + pthread_mutex_destroy(&gCleanMutex); - return NULL; + return NULL; } /* OsThreadFunction */ void WinInitOs (Bool* ok, OS* os) @@ -643,16 +643,16 @@ void WinLaunchApp2 (CLEAN_STRING commandline, CLEAN_STRING pathname, pi = fork(); if (pi == 0) { - /* I'm a child -- launch the desired program. */ - execlp(exname, cl); + /* I'm a child -- launch the desired program. */ + execlp(exname, cl); } else if (pi == -1) { - /* Error condition */ - error = errno; + /* Error condition */ + error = errno; rprintf ("WLA: failure %d\n", error); - fsuccess = FALSE; + fsuccess = FALSE; } else { rprintf ("WLA: success\n"); - fsuccess = TRUE; + fsuccess = TRUE; } rprintf ("WLA: step 5: returning\n"); diff --git a/Linux_C_12/cCrossCall_121.h b/Linux_C_12/cCrossCall_121.h index fbd6f93..759a4ce 100644 --- a/Linux_C_12/cCrossCall_121.h +++ b/Linux_C_12/cCrossCall_121.h @@ -25,11 +25,11 @@ extern HWND ghTCPWindow; /* The handle to the TCP HWND of the OS thread. /* Menu(item)IDs are not allowed to exceed OSMenuIDEnd. - This is because window ids start at (OSMenuIDEnd+5), and need to be distinct from menu ids - in case of MDI processes. - The global gMenuItemID (initially 0) is incremented by NextMenuItemID each time a new - menu(item)ID is required. - This implementation does not reuse freed ids and is therefore not adequate!! + This is because window ids start at (OSMenuIDEnd+5), and need to be distinct from menu ids + in case of MDI processes. + The global gMenuItemID (initially 0) is incremented by NextMenuItemID each time a new + menu(item)ID is required. + This implementation does not reuse freed ids and is therefore not adequate!! */ #define OSMenuIDEnd 10000 extern UINT NextMenuItemID (void); @@ -41,7 +41,7 @@ extern UINT NextMenuItemID (void); extern int GetModifiers (void); /* Translate virtual key codes to the codes shared with Clean. - If the keycode could not be translated, zero is returned. + If the keycode could not be translated, zero is returned. */ extern int CheckVirtualKeyCode (int keycode); @@ -50,7 +50,7 @@ extern void HandleCleanRequest( CrossCallInfo *pcci ); extern OS WinStartOsThread (OS); extern OS WinKillOsThread (OS); extern void WinKickOsThread (int64_t,int64_t,int64_t,int64_t,int64_t,int64_t,int64_t,OS, - int64_t*,int64_t*,int64_t*,int64_t*,int64_t*,int64_t*,int64_t*,OS*); + int64_t*,int64_t*,int64_t*,int64_t*,int64_t*,int64_t*,int64_t*,OS*); extern void KickCleanThread( CrossCallInfo *pcci ); extern void SendMessageToClean( int64_t mess, int64_t p1,int64_t p2,int64_t p3, int64_t p4,int64_t p5,int64_t p6 ); diff --git a/Linux_C_12/cCrossCallxDI_121.c b/Linux_C_12/cCrossCallxDI_121.c index 9fcd617..aa509f7 100644 --- a/Linux_C_12/cCrossCallxDI_121.c +++ b/Linux_C_12/cCrossCallxDI_121.c @@ -1,13 +1,13 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - This module contains the cross call implementations required for - NDI, SDI, and MDI document interfaces. + About this module: + This module contains the cross call implementations required for + NDI, SDI, and MDI document interfaces. ********************************************************************************************/ #include "util_121.h" #include @@ -25,28 +25,28 @@ gint gCurChar; /* GetSDIClientWindow finds the first SDI client window of the argument hwnd. - This procedure assumes that hwnd is the handle of a SDI frame window. - If no SDI client window could be found then GetSDIClientWindow returns NULL. + This procedure assumes that hwnd is the handle of a SDI frame window. + If no SDI client window could be found then GetSDIClientWindow returns NULL. */ /* static HWND GetSDIClientWindow (HWND hwndFrame) { - HWND client; - char *clientclassname; - int classnamelength; - - client = GetWindow (hwndFrame,GW_CHILD); - classnamelength = strlen (SDIWindowClassName) + 1; - clientclassname = rmalloc (classnamelength); - GetClassName (client, clientclassname, classnamelength); - - while (client != NULL && strcmp(clientclassname, SDIWindowClassName) != 0) - { - client = GetWindow (client,GW_HWNDNEXT); - GetClassName (client,clientclassname,classnamelength); - } - rfree (clientclassname); - return client; + HWND client; + char *clientclassname; + int classnamelength; + + client = GetWindow (hwndFrame,GW_CHILD); + classnamelength = strlen (SDIWindowClassName) + 1; + clientclassname = rmalloc (classnamelength); + GetClassName (client, clientclassname, classnamelength); + + while (client != NULL && strcmp(clientclassname, SDIWindowClassName) != 0) + { + client = GetWindow (client,GW_HWNDNEXT); + GetClassName (client,clientclassname,classnamelength); + } + rfree (clientclassname); + return client; } */ @@ -55,72 +55,72 @@ static HWND GetSDIClientWindow (HWND hwndFrame) void SendKeyDownToClean (GtkWidget *parent, GtkWidget *child, gint c) { printf("SendKeyDownToClean\n"); - SendMessage5ToClean (CcWmKEYBOARD, parent, child, c, KEYDOWN, + SendMessage5ToClean (CcWmKEYBOARD, parent, child, c, KEYDOWN, GetModifiers()); } void SendKeyStillDownToClean (GtkWidget *parent, GtkWidget *child, gint c) { printf("SendKeyStillDownToClean\n"); - SendMessage5ToClean (CcWmKEYBOARD, parent, child, c, KEYREPEAT, + SendMessage5ToClean (CcWmKEYBOARD, parent, child, c, KEYREPEAT, GetModifiers()); } void SendKeyUpToClean (GtkWidget *parent, GtkWidget *child, gint c) { printf("SendKeyUpToClean\n"); - SendMessage5ToClean (CcWmKEYBOARD, parent, child, c, KEYUP, GetModifiers()); + SendMessage5ToClean (CcWmKEYBOARD, parent, child, c, KEYUP, GetModifiers()); } static void prcs(GtkWidget *widget, gpointer data) { printf("prcs\n"); - if (GTK_IS_SCROLLED_WINDOW(widget)) - { - *((GtkWidget **) data) = widget; - } + if (GTK_IS_SCROLLED_WINDOW(widget)) + { + *((GtkWidget **) data) = widget; + } } static GtkWidget *get_client(GtkWidget *widget) { - GtkWidget *box; + GtkWidget *box; printf("get_client\n"); box = gtk_bin_get_child(GTK_BIN(widget)); - if (box) - { - GtkWidget *client = NULL; - gtk_container_foreach(GTK_CONTAINER(box), prcs, (gpointer) &client); - return client; - } - - return NULL; + if (box) + { + GtkWidget *client = NULL; + gtk_container_foreach(GTK_CONTAINER(box), prcs, (gpointer) &client); + return client; + } + + return NULL; } static void frame_focus_in_handler(GtkWidget *widget, GdkEventFocus *event, gpointer user_data) { printf("frame_focus_in_handler\n"); - SendMessage1ToClean (CcWmACTIVATE, get_client(widget)); - GTK_WIDGET_GET_CLASS(widget)->focus_in_event(widget, event); - gActiveTopLevelWindow = widget; + SendMessage1ToClean (CcWmACTIVATE, get_client(widget)); + GTK_WIDGET_GET_CLASS(widget)->focus_in_event(widget, event); + gActiveTopLevelWindow = widget; } static void frame_focus_out_handler(GtkWidget *widget, GdkEventFocus *event, gpointer user_data) { - GtkWidget *client; + GtkWidget *client; printf("frame_focus_out_handler\n"); - client = get_client(widget); - if (gInKey) + client = get_client(widget); + if (gInKey) { - SendKeyUpToClean (client, client, gCurChar); + SendKeyUpToClean (client, client, gCurChar); } - SendMessage1ToClean (CcWmDEACTIVATE, client); - GTK_WIDGET_GET_CLASS(widget)->focus_out_event(widget, event); - gActiveTopLevelWindow = NULL; + SendMessage1ToClean (CcWmDEACTIVATE, client); + GTK_WIDGET_GET_CLASS(widget)->focus_out_event(widget, event); + gActiveTopLevelWindow = NULL; } @@ -128,173 +128,173 @@ static gboolean frame_delete_handler(GtkWidget *widget, GdkEvent *event, gpointer user_data) { printf("frame_delete_handler\n"); - if (gActiveTopLevelWindow == widget) + if (gActiveTopLevelWindow == widget) { - gActiveTopLevelWindow = NULL; + gActiveTopLevelWindow = NULL; } - if (gtk_object_get_data(GTK_OBJECT (widget), "gtk-drag-dest") != NULL) + if (gtk_object_get_data(GTK_OBJECT (widget), "gtk-drag-dest") != NULL) { - gtk_drag_dest_unset(widget); + gtk_drag_dest_unset(widget); } - SendMessage1ToClean (CcWmPROCESSCLOSE, widget); - return gtk_true(); + SendMessage1ToClean (CcWmPROCESSCLOSE, widget); + return gtk_true(); } static void frame_drag_data_handler - (GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *data, - guint info, - guint time) + (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + GtkSelectionData *data, + guint info, + guint time) { printf("frame_drag_data_handler\n"); - if ((data->length >= 0) && (data->format == 8)) + if ((data->length >= 0) && (data->format == 8)) { - char *filenames = rmalloc(data->length); - if (filenames) - { - guchar *s = data->data; - guchar *e = s + data->length - 2; - gchar *d = filenames; - - while (s < e) - { - if (*s != '\r') *(d++) = *s; - s++; - } - *d = 0; - - gtk_drag_finish (context, TRUE, FALSE, time); - SendMessage2ToClean (CcWmPROCESSDROPFILES, (int64_t) widget, (int64_t) filenames); - } + char *filenames = rmalloc(data->length); + if (filenames) + { + guchar *s = data->data; + guchar *e = s + data->length - 2; + gchar *d = filenames; + + while (s < e) + { + if (*s != '\r') *(d++) = *s; + s++; + } + *d = 0; + + gtk_drag_finish (context, TRUE, FALSE, time); + SendMessage2ToClean (CcWmPROCESSDROPFILES, (int64_t) widget, (int64_t) filenames); + } } - else + else { - gtk_drag_finish (context, FALSE, FALSE, time); + gtk_drag_finish (context, FALSE, FALSE, time); } } static gboolean frame_key_press_handler(GtkWidget *widget, GdkEventKey *event, gpointer user_data) { - GtkWidget *client; + GtkWidget *client; gint c; printf("frame_key_press_handler\n"); - client = get_client(widget); + client = get_client(widget); - c = (event->length > 0) ? + c = (event->length > 0) ? event->string[0] : CheckVirtualKeyCode (event->keyval); - if (!c) + if (!c) { return gtk_false(); } - if (event->keyval == GDK_Tab) + if (event->keyval == GDK_Tab) { - return gtk_false(); + return gtk_false(); } - GTK_WIDGET_GET_CLASS(widget)->key_press_event(widget, event); + GTK_WIDGET_GET_CLASS(widget)->key_press_event(widget, event); - if (gInKey) - { - if (gCurChar == c) + if (gInKey) + { + if (gCurChar == c) { - SendKeyStillDownToClean (client, client, gCurChar); + SendKeyStillDownToClean (client, client, gCurChar); } else - { - SendKeyUpToClean (client, client, gCurChar); - gCurChar = c; - SendKeyDownToClean (client, client, gCurChar); - } - } - else - { - gCurChar = c; - SendKeyDownToClean (client, client, gCurChar); - gInKey = TRUE; - } - - return gtk_true(); + { + SendKeyUpToClean (client, client, gCurChar); + gCurChar = c; + SendKeyDownToClean (client, client, gCurChar); + } + } + else + { + gCurChar = c; + SendKeyDownToClean (client, client, gCurChar); + gInKey = TRUE; + } + + return gtk_true(); } static gboolean frame_key_release_handler(GtkWidget *widget, GdkEventKey *event, gpointer user_data) { - GtkWidget *client; + GtkWidget *client; printf("frame_key_release_handler\n"); - client = get_client(widget); - if (event->keyval == GDK_Tab) - return gtk_false(); + client = get_client(widget); + if (event->keyval == GDK_Tab) + return gtk_false(); - GTK_WIDGET_GET_CLASS(widget)->key_press_event(widget, event); + GTK_WIDGET_GET_CLASS(widget)->key_press_event(widget, event); - if (gInKey) - { - SendKeyUpToClean (client, client, gCurChar); - gInKey = FALSE; - gCurChar = 0; - } + if (gInKey) + { + SendKeyUpToClean (client, client, gCurChar); + gInKey = FALSE; + gCurChar = 0; + } - return gtk_true(); + return gtk_true(); } /* Create a SDI frame window. */ void EvalCcRqCREATESDIFRAMEWINDOW (CrossCallInfo *pcci) /* accept file open; frame ptr, menubar results. */ { - GtkWidget *window, *menuBar, *box; + GtkWidget *window, *menuBar, *box; printf("EvalCcRqCREATESDIFRAMEWINDOW\n"); - /* Create the menubar. */ - menuBar = gtk_menu_bar_new(); - - /* Create the window. */ - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_signal_connect (GTK_OBJECT (window), "focus-in-event", - GTK_SIGNAL_FUNC(frame_focus_in_handler), - NULL); - gtk_signal_connect (GTK_OBJECT (window), "focus-out-event", - GTK_SIGNAL_FUNC(frame_focus_out_handler), - NULL); - gtk_signal_connect (GTK_OBJECT (window), "delete-event", - GTK_SIGNAL_FUNC(frame_delete_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(window), "key-press-event", - GTK_SIGNAL_FUNC(frame_key_press_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(window), "key-release-event", - GTK_SIGNAL_FUNC(frame_key_release_handler), - NULL); - - if ((gboolean) pcci->p1) /* respond to file open events. */ - { - static GtkTargetEntry target_table = { "text/uri-list", 0, 0 }; - - gtk_drag_dest_set (window, - GTK_DEST_DEFAULT_ALL, - &target_table, 1, /* no rootwin */ - GDK_ACTION_COPY | GDK_ACTION_MOVE); - - gtk_signal_connect(GTK_OBJECT(window), "drag_data_received", - GTK_SIGNAL_FUNC(frame_drag_data_handler), NULL); - } - - gtk_window_add_accel_group (GTK_WINDOW (window), gtk_accel_group_new()); - - box = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(window), box); - gtk_box_pack_start(GTK_BOX(box), menuBar, FALSE, FALSE, 0); + /* Create the menubar. */ + menuBar = gtk_menu_bar_new(); + + /* Create the window. */ + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_signal_connect (GTK_OBJECT (window), "focus-in-event", + GTK_SIGNAL_FUNC(frame_focus_in_handler), + NULL); + gtk_signal_connect (GTK_OBJECT (window), "focus-out-event", + GTK_SIGNAL_FUNC(frame_focus_out_handler), + NULL); + gtk_signal_connect (GTK_OBJECT (window), "delete-event", + GTK_SIGNAL_FUNC(frame_delete_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(window), "key-press-event", + GTK_SIGNAL_FUNC(frame_key_press_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(window), "key-release-event", + GTK_SIGNAL_FUNC(frame_key_release_handler), + NULL); + + if ((gboolean) pcci->p1) /* respond to file open events. */ + { + static GtkTargetEntry target_table = { "text/uri-list", 0, 0 }; + + gtk_drag_dest_set (window, + GTK_DEST_DEFAULT_ALL, + &target_table, 1, /* no rootwin */ + GDK_ACTION_COPY | GDK_ACTION_MOVE); + + gtk_signal_connect(GTK_OBJECT(window), "drag_data_received", + GTK_SIGNAL_FUNC(frame_drag_data_handler), NULL); + } + + gtk_window_add_accel_group (GTK_WINDOW (window), gtk_accel_group_new()); + + box = gtk_vbox_new(FALSE, 0); + gtk_container_add(GTK_CONTAINER(window), box); + gtk_box_pack_start(GTK_BOX(box), menuBar, FALSE, FALSE, 0); gtk_widget_show(menuBar); - MakeReturn2Cci (pcci, (int64_t) window, (int64_t) menuBar); + MakeReturn2Cci (pcci, (int64_t) window, (int64_t) menuBar); } static void frame_close_page_handler(GtkWidget *client) @@ -303,48 +303,48 @@ static void frame_close_page_handler(GtkWidget *client) printf("frame_close_page_handler\n"); window = gtk_notebook_get_nth_page(GTK_NOTEBOOK(client), gtk_notebook_get_current_page(GTK_NOTEBOOK(client))); - SendMessage1ToClean(CcWmCLOSE, window); + SendMessage1ToClean(CcWmCLOSE, window); } static void frame_notebook_top_handler(GtkWidget *client) { printf("frame_notebook_top_handler\n"); - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(client), GTK_POS_TOP); + gtk_notebook_set_tab_pos(GTK_NOTEBOOK(client), GTK_POS_TOP); } static void frame_notebook_bottom_handler(GtkWidget *client) { printf("frame_notebook_bottom_handler\n"); - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(client), GTK_POS_BOTTOM); + gtk_notebook_set_tab_pos(GTK_NOTEBOOK(client), GTK_POS_BOTTOM); } static void frame_notebook_left_handler(GtkWidget *client) { printf("frame_notebook_left_handler\n"); - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(client), GTK_POS_LEFT); + gtk_notebook_set_tab_pos(GTK_NOTEBOOK(client), GTK_POS_LEFT); } static void frame_notebook_right_handler(GtkWidget *client) { printf("frame_notebook_right_handler\n"); - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(client), GTK_POS_RIGHT); + gtk_notebook_set_tab_pos(GTK_NOTEBOOK(client), GTK_POS_RIGHT); } static void frame_switch_page_handler(GtkNotebook *notebook, GtkNotebookPage *page, gint page_num, gpointer user_data) { /* send deactivate message for old */ - gint old_page_num; + gint old_page_num; printf("frame_switch_page_handler\n"); - old_page_num = g_list_index(notebook->children, notebook->cur_page); + old_page_num = g_list_index(notebook->children, notebook->cur_page); - SendMessage1ToClean (CcWmDEACTIVATE, gtk_notebook_get_nth_page(notebook, + SendMessage1ToClean (CcWmDEACTIVATE, gtk_notebook_get_nth_page(notebook, old_page_num)); - /* send activate message for new */ - SendMessage1ToClean (CcWmACTIVATE, gtk_notebook_get_nth_page(notebook, + /* send activate message for new */ + SendMessage1ToClean (CcWmACTIVATE, gtk_notebook_get_nth_page(notebook, page_num)); - gActiveTopLevelWindow = gtk_widget_get_parent( + gActiveTopLevelWindow = gtk_widget_get_parent( gtk_widget_get_parent(GTK_WIDGET(notebook))); } @@ -352,133 +352,133 @@ static void frame_switch_page_handler(GtkNotebook *notebook, /* Create MDI frame window. */ void EvalCcRqCREATEMDIFRAMEWINDOW (CrossCallInfo *pcci) /* show, accept file open; frame ptr, client ptr, menubar, windowmenu results. */ { - GtkWidget *window, *client, *menuBar, *box; - GtkWidget *notebook_menu, *menu_item, *pages_menu; - GtkAccelGroup *accel_group; - GSList *group; + GtkWidget *window, *client, *menuBar, *box; + GtkWidget *notebook_menu, *menu_item, *pages_menu; + GtkAccelGroup *accel_group; + GSList *group; printf("EvalCcRqCREATEMDIFRAMEWINDOW\n"); - /* Create the window. */ - - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_signal_connect (GTK_OBJECT(window), "delete-event", - GTK_SIGNAL_FUNC(frame_delete_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(window), "key-press-event", - GTK_SIGNAL_FUNC(frame_key_press_handler), - NULL); - gtk_signal_connect (GTK_OBJECT(window), "key-release-event", - GTK_SIGNAL_FUNC(frame_key_release_handler), - NULL); - - - if ((gboolean) pcci->p2) /* respond to file open events. */ - { - static GtkTargetEntry target_table = { "text/uri-list", 0, 0 }; - - gtk_drag_dest_set (window, - GTK_DEST_DEFAULT_ALL, - &target_table, 1, /* no rootwin */ - GDK_ACTION_COPY | GDK_ACTION_MOVE); - - gtk_signal_connect(GTK_OBJECT(window), "drag_data_received", - GTK_SIGNAL_FUNC(frame_drag_data_handler), NULL); - } - - /* Create accel_group */ - accel_group = gtk_accel_group_new(); - gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); - - box = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(window), box); - - /* Create the menubar. */ - menuBar = gtk_menu_bar_new(); - gtk_box_pack_start(GTK_BOX(box), menuBar, FALSE, FALSE, 0); - - /* Create client(notebook) */ - client = gtk_notebook_new(); - gtk_notebook_set_scrollable(GTK_NOTEBOOK(client), gtk_true()); - gtk_signal_connect (GTK_OBJECT(client), "switch-page", - GTK_SIGNAL_FUNC(frame_switch_page_handler), - NULL); - gtk_box_pack_end(GTK_BOX(box), client, TRUE, TRUE, 0); - - if ((gboolean) pcci->p1) - gtk_window_maximize(GTK_WINDOW(window)); - gtk_widget_show_all(window); - - /* Create "Pages" menu */ - pages_menu = gtk_menu_new(); - gtk_menu_set_accel_group(GTK_MENU(pages_menu), accel_group); - - menu_item = gtk_menu_item_new_with_label("Pages"); - gtk_menu_item_set_submenu(GTK_MENU_ITEM (menu_item), pages_menu); - gtk_widget_show_all(menu_item); - - gtk_menu_bar_insert(GTK_MENU_BAR(menuBar), menu_item, 0); - - notebook_menu = gtk_menu_new(); - gtk_menu_set_accel_group(GTK_MENU(notebook_menu), accel_group); - - menu_item = gtk_radio_menu_item_new_with_label(NULL, "Top"); - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_item), gtk_true()); - group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(menu_item)); - gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (frame_notebook_top_handler), client); - gtk_menu_append(GTK_MENU(notebook_menu), menu_item); - - menu_item = gtk_radio_menu_item_new_with_label(group, "Bottom"); - group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(menu_item)); - gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (frame_notebook_bottom_handler), client); - gtk_menu_append(GTK_MENU(notebook_menu), menu_item); - - menu_item = gtk_radio_menu_item_new_with_label(group, "Left"); - group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(menu_item)); - gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (frame_notebook_left_handler), client); - gtk_menu_append(GTK_MENU(notebook_menu), menu_item); - - menu_item = gtk_radio_menu_item_new_with_label(group, "Right"); - group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menu_item)); - gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (frame_notebook_right_handler), client); - gtk_menu_append(GTK_MENU(notebook_menu), menu_item); - - menu_item = gtk_menu_item_new_with_label("Notebook"); - gtk_menu_item_set_submenu(GTK_MENU_ITEM (menu_item), notebook_menu); - gtk_menu_append(GTK_MENU(pages_menu), menu_item); - - menu_item = gtk_menu_item_new(); - gtk_menu_append(GTK_MENU(pages_menu), menu_item); - - menu_item = gtk_menu_item_new_with_label("Close page"); - gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (frame_close_page_handler), client); - gtk_menu_append(GTK_MENU(pages_menu), menu_item); + /* Create the window. */ + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_signal_connect (GTK_OBJECT(window), "delete-event", + GTK_SIGNAL_FUNC(frame_delete_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(window), "key-press-event", + GTK_SIGNAL_FUNC(frame_key_press_handler), + NULL); + gtk_signal_connect (GTK_OBJECT(window), "key-release-event", + GTK_SIGNAL_FUNC(frame_key_release_handler), + NULL); + + + if ((gboolean) pcci->p2) /* respond to file open events. */ + { + static GtkTargetEntry target_table = { "text/uri-list", 0, 0 }; + + gtk_drag_dest_set (window, + GTK_DEST_DEFAULT_ALL, + &target_table, 1, /* no rootwin */ + GDK_ACTION_COPY | GDK_ACTION_MOVE); + + gtk_signal_connect(GTK_OBJECT(window), "drag_data_received", + GTK_SIGNAL_FUNC(frame_drag_data_handler), NULL); + } + + /* Create accel_group */ + accel_group = gtk_accel_group_new(); + gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); + + box = gtk_vbox_new(FALSE, 0); + gtk_container_add(GTK_CONTAINER(window), box); + + /* Create the menubar. */ + menuBar = gtk_menu_bar_new(); + gtk_box_pack_start(GTK_BOX(box), menuBar, FALSE, FALSE, 0); + + /* Create client(notebook) */ + client = gtk_notebook_new(); + gtk_notebook_set_scrollable(GTK_NOTEBOOK(client), gtk_true()); + gtk_signal_connect (GTK_OBJECT(client), "switch-page", + GTK_SIGNAL_FUNC(frame_switch_page_handler), + NULL); + gtk_box_pack_end(GTK_BOX(box), client, TRUE, TRUE, 0); + + if ((gboolean) pcci->p1) + gtk_window_maximize(GTK_WINDOW(window)); + gtk_widget_show_all(window); + + /* Create "Pages" menu */ + pages_menu = gtk_menu_new(); + gtk_menu_set_accel_group(GTK_MENU(pages_menu), accel_group); + + menu_item = gtk_menu_item_new_with_label("Pages"); + gtk_menu_item_set_submenu(GTK_MENU_ITEM (menu_item), pages_menu); + gtk_widget_show_all(menu_item); + + gtk_menu_bar_insert(GTK_MENU_BAR(menuBar), menu_item, 0); + + notebook_menu = gtk_menu_new(); + gtk_menu_set_accel_group(GTK_MENU(notebook_menu), accel_group); + + menu_item = gtk_radio_menu_item_new_with_label(NULL, "Top"); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_item), gtk_true()); + group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(menu_item)); + gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate", + GTK_SIGNAL_FUNC (frame_notebook_top_handler), client); + gtk_menu_append(GTK_MENU(notebook_menu), menu_item); + + menu_item = gtk_radio_menu_item_new_with_label(group, "Bottom"); + group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(menu_item)); + gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate", + GTK_SIGNAL_FUNC (frame_notebook_bottom_handler), client); + gtk_menu_append(GTK_MENU(notebook_menu), menu_item); + + menu_item = gtk_radio_menu_item_new_with_label(group, "Left"); + group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(menu_item)); + gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate", + GTK_SIGNAL_FUNC (frame_notebook_left_handler), client); + gtk_menu_append(GTK_MENU(notebook_menu), menu_item); + + menu_item = gtk_radio_menu_item_new_with_label(group, "Right"); + group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menu_item)); + gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate", + GTK_SIGNAL_FUNC (frame_notebook_right_handler), client); + gtk_menu_append(GTK_MENU(notebook_menu), menu_item); + + menu_item = gtk_menu_item_new_with_label("Notebook"); + gtk_menu_item_set_submenu(GTK_MENU_ITEM (menu_item), notebook_menu); + gtk_menu_append(GTK_MENU(pages_menu), menu_item); + + menu_item = gtk_menu_item_new(); + gtk_menu_append(GTK_MENU(pages_menu), menu_item); + + menu_item = gtk_menu_item_new_with_label("Close page"); + gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate", + GTK_SIGNAL_FUNC (frame_close_page_handler), client); + gtk_menu_append(GTK_MENU(pages_menu), menu_item); gtk_widget_show(menuBar); - gtk_widget_show_all(pages_menu); + gtk_widget_show_all(pages_menu); - MakeReturn4Cci (pcci, (int64_t) window, (int64_t) client, (int64_t) menuBar, (int64_t) pages_menu); + MakeReturn4Cci (pcci, (int64_t) window, (int64_t) client, (int64_t) menuBar, (int64_t) pages_menu); } void EvalCcRqDESTROYWINDOW (CrossCallInfo *pcci) { printf("EvalCcRqDESTROYWINDOW\n"); - gtk_widget_destroy(GTK_WIDGET(pcci->p1)); - MakeReturn0Cci (pcci); + gtk_widget_destroy(GTK_WIDGET(pcci->p1)); + MakeReturn0Cci (pcci); } void EvalCcRqGETWINDOWPOS (CrossCallInfo *pcci) { - /* hwnd; width, heigth result */ + /* hwnd; width, heigth result */ gint left, top; - printf("EvalCcRqGETWINDOWPOS\n"); + printf("EvalCcRqGETWINDOWPOS\n"); gtk_window_get_position(GTK_WINDOW(pcci->p1), &left, &top); - MakeReturn2Cci (pcci, left, top); + MakeReturn2Cci (pcci, left, top); } void EvalCcRqGETCLIENTSIZE (CrossCallInfo *pcci) @@ -491,7 +491,7 @@ void EvalCcRqGETCLIENTSIZE (CrossCallInfo *pcci) GtkRequisition requisition; GtkWidget *frame = GTK_WIDGET(pcci->p1); gtk_widget_size_request(frame, &requisition); - MakeReturn2Cci (pcci, requisition.width, requisition.height); + MakeReturn2Cci (pcci, requisition.width, requisition.height); } else { MakeReturn2Cci (pcci, 0, 0); } @@ -499,24 +499,24 @@ void EvalCcRqGETCLIENTSIZE (CrossCallInfo *pcci) static void toolbar_handler(GtkWidget *widget, gpointer data) { - GtkWidget *toolbar, *parent; + GtkWidget *toolbar, *parent; printf("toolbar_handler\n"); - toolbar = gtk_widget_get_parent(widget); - parent = gtk_widget_get_parent(gtk_widget_get_parent(toolbar)); - SendMessage4ToClean (CcWmBUTTONCLICKED, parent, toolbar, GetModifiers(), (int64_t) data); + toolbar = gtk_widget_get_parent(widget); + parent = gtk_widget_get_parent(gtk_widget_get_parent(toolbar)); + SendMessage4ToClean (CcWmBUTTONCLICKED, parent, toolbar, GetModifiers(), (int64_t) data); } /* Create a toolbar in a window. */ void EvalCcRqCREATEMDITOOLBAR (CrossCallInfo *pcci) { - /* hwnd, width, height; toolbarptr, full toolbar height result; */ - GtkWidget *parent,*box,*toolbar; + /* hwnd, width, height; toolbarptr, full toolbar height result; */ + GtkWidget *parent,*box,*toolbar; printf("EvalCcRqCREATEMDITOOLBAR\n"); if (pcci->p1 && (pcci->p1 != OS_NO_WINDOW_PTR)) { - parent = GTK_WIDGET(pcci->p1); + parent = GTK_WIDGET(pcci->p1); box = gtk_bin_get_child(GTK_BIN(parent)); toolbar = gtk_toolbar_new(); @@ -525,14 +525,14 @@ void EvalCcRqCREATEMDITOOLBAR (CrossCallInfo *pcci) gtk_widget_show(toolbar); gtk_window_maximize(GTK_WINDOW(parent)); - MakeReturn2Cci (pcci, (int64_t) toolbar, pcci->p3); + MakeReturn2Cci (pcci, (int64_t) toolbar, pcci->p3); } } /* Create a toolbar in a SDI window. */ void EvalCcRqCREATESDITOOLBAR (CrossCallInfo *pcci) { - GtkWidget *parent,*box,*toolbar; + GtkWidget *parent,*box,*toolbar; printf("EvalCcRqCREATESDITOOLBAR\n"); if (pcci->p1 && (pcci->p1 != OS_NO_WINDOW_PTR)) @@ -552,9 +552,9 @@ void EvalCcRqCREATESDITOOLBAR (CrossCallInfo *pcci) /* Create a bitmap toolbar item. */ void EvalCcRqCREATETOOLBARITEM (CrossCallInfo *pcci) { - GtkWidget *toolbar; - GdkPixbuf *pixbuf; - gpointer index; + GtkWidget *toolbar; + GdkPixbuf *pixbuf; + gpointer index; printf("EvalCcRqCREATETOOLBARITEM\n"); if (pcci->p1 && (pcci->p1 != OS_NO_WINDOW_PTR)) @@ -573,7 +573,7 @@ void EvalCcRqCREATETOOLBARITEM (CrossCallInfo *pcci) /* Create a separator toolbar item. */ void EvalCcRqCREATETOOLBARSEPARATOR (CrossCallInfo *pcci) { - GtkWidget *toolbar; + GtkWidget *toolbar; printf("EvalCcRqCREATETOOLBARSEPARATOR\n"); if (pcci->p1 && (pcci->p1 != OS_NO_WINDOW_PTR)) @@ -582,29 +582,29 @@ void EvalCcRqCREATETOOLBARSEPARATOR (CrossCallInfo *pcci) gtk_toolbar_append_space(GTK_TOOLBAR(toolbar)); } - MakeReturn0Cci (pcci); + MakeReturn0Cci (pcci); } /* Install the cross call procedures in the gCrossCallProcedureTable of cCrossCall_121. */ OS InstallCrossCallxDI (OS ios) { - CrossCallProcedureTable newTable; + CrossCallProcedureTable newTable; printf("InstallCrossCallxDI\n"); - newTable = EmptyCrossCallProcedureTable (); - AddCrossCallEntry (newTable, CcRqCREATESDIFRAMEWINDOW, EvalCcRqCREATESDIFRAMEWINDOW); - AddCrossCallEntry (newTable, CcRqCREATEMDIFRAMEWINDOW, EvalCcRqCREATEMDIFRAMEWINDOW); - AddCrossCallEntry (newTable, CcRqDESTROYWINDOW, EvalCcRqDESTROYWINDOW); - AddCrossCallEntry (newTable, CcRqGETWINDOWPOS, EvalCcRqGETWINDOWPOS); - AddCrossCallEntry (newTable, CcRqGETCLIENTSIZE, EvalCcRqGETCLIENTSIZE); - AddCrossCallEntry (newTable, CcRqCREATEMDITOOLBAR, EvalCcRqCREATEMDITOOLBAR); - AddCrossCallEntry (newTable, CcRqCREATESDITOOLBAR, EvalCcRqCREATESDITOOLBAR); - AddCrossCallEntry (newTable, CcRqCREATETOOLBARITEM, EvalCcRqCREATETOOLBARITEM); - AddCrossCallEntry (newTable, CcRqCREATETOOLBARSEPARATOR, EvalCcRqCREATETOOLBARSEPARATOR); - AddCrossCallEntries (gCrossCallProcedureTable, newTable); - - printf("Done\n"); + newTable = EmptyCrossCallProcedureTable (); + AddCrossCallEntry (newTable, CcRqCREATESDIFRAMEWINDOW, EvalCcRqCREATESDIFRAMEWINDOW); + AddCrossCallEntry (newTable, CcRqCREATEMDIFRAMEWINDOW, EvalCcRqCREATEMDIFRAMEWINDOW); + AddCrossCallEntry (newTable, CcRqDESTROYWINDOW, EvalCcRqDESTROYWINDOW); + AddCrossCallEntry (newTable, CcRqGETWINDOWPOS, EvalCcRqGETWINDOWPOS); + AddCrossCallEntry (newTable, CcRqGETCLIENTSIZE, EvalCcRqGETCLIENTSIZE); + AddCrossCallEntry (newTable, CcRqCREATEMDITOOLBAR, EvalCcRqCREATEMDITOOLBAR); + AddCrossCallEntry (newTable, CcRqCREATESDITOOLBAR, EvalCcRqCREATESDITOOLBAR); + AddCrossCallEntry (newTable, CcRqCREATETOOLBARITEM, EvalCcRqCREATETOOLBARITEM); + AddCrossCallEntry (newTable, CcRqCREATETOOLBARSEPARATOR, EvalCcRqCREATETOOLBARSEPARATOR); + AddCrossCallEntries (gCrossCallProcedureTable, newTable); + + printf("Done\n"); return ios; } diff --git a/Linux_C_12/cTCP_121.c b/Linux_C_12/cTCP_121.c index e880b82..0e8486e 100644 --- a/Linux_C_12/cTCP_121.c +++ b/Linux_C_12/cTCP_121.c @@ -1,12 +1,12 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Routines related to printing. + About this module: + Routines related to printing. ********************************************************************************************/ //#define FD_SETSIZE "maximal number of sockets to select on" (default is 64) @@ -33,9 +33,9 @@ void abortedHost_asyncC(CleanString inetAddr, int *errCode, HANDLE *endpointRef) void openTCP_ListenerC(int portNum, int *pErrCode, SOCKET *pEndpointRef); void acceptC(SOCKET endpointRef, int *pErrCode, int *pInetHost, SOCKET *pEndpointRef); void os_connectTCPC(int isIOProg, int block, int doTimeout, unsigned int stopTime, - int ipAddr, int portnum, - int *errCode, int *timeoutExpiredP, int *endpointRefP - ); + int ipAddr, int portnum, + int *errCode, int *timeoutExpiredP, int *endpointRefP + ); void sendC(SOCKET endpointRef, CleanString data, int begin, int nBytes, int *pErrCode, int *pSentBytes); void receiveC(SOCKET endpointRef, int maxSize, CleanString *data); int getRcvBuffSizeC(); @@ -45,41 +45,41 @@ void disconnectGracefulC(SOCKET endpointRef); void disconnectBrutalC(SOCKET endpointRef); void garbageCollectEndpointC(SOCKET endpointRef); void os_select_inetevents(SOCKET endpointRef, int receiverCategory, - int referenceCount, int getReceiveEvents, int getSendEvents, - int aborted - ); + int referenceCount, int getReceiveEvents, int getSendEvents, + int aborted + ); void selectChC(int justForMac, int nonBlocking, int doTimeout, unsigned int stopTime, - SOCKET *pRChannels, int *justForMac2, SOCKET *pSChannels, - int *pErrCode - ); + SOCKET *pRChannels, int *justForMac2, SOCKET *pSChannels, + int *pErrCode + ); int tcpPossibleC(void); //************************************************ // other functions void StartUp(int abort); - // initialize winsock (if not started yet. uses global "tcpStartedUp") - // if succesful: tcpStartedUp==TRUE afterwards - // if not succesful && abort: aborts - // if not succesful && !abort: tcpStartedUp==FALSE afterwards + // initialize winsock (if not started yet. uses global "tcpStartedUp") + // if succesful: tcpStartedUp==TRUE afterwards + // if not succesful && abort: aborts + // if not succesful && !abort: tcpStartedUp==FALSE afterwards void CleanUp(void); //************************************************ // functions to deal with the endpoint dictionary: int insertNewDictionaryItem(SOCKET endpointRef); - // allocates memory for new dictionary item, initializes it as far as possible and - // adds it to the dictionary. returns error code: 0==ok, 1==not ok + // allocates memory for new dictionary item, initializes it as far as possible and + // adds it to the dictionary. returns error code: 0==ok, 1==not ok dictitem* lookup(SOCKET endpointRef); - // lookup entry (CFN) + // lookup entry (CFN) void setEndpointDataC(int endpointRef, int referenceCount, - int hasReceiveNotifier, int hasSendableNotifier, int aborted); - // set the corresponding fields of the entry + int hasReceiveNotifier, int hasSendableNotifier, int aborted); + // set the corresponding fields of the entry void getEndpointDataC(int endpointRef, int *referenceCount, - int *hasReceiveNotifier, int *hasSendableNotifier, int *aborted); - // returns the corresponding fields of the entry + int *hasReceiveNotifier, int *hasSendableNotifier, int *aborted); + // returns the corresponding fields of the entry void removeDictionaryItem(SOCKET endpointRef); - // remove one item via pointer manipulations (must not be called from notifier) + // remove one item via pointer manipulations (must not be called from notifier) //--------------------- GLOBAL VARIABLES ------------------------------------------ @@ -96,74 +96,74 @@ CleanString pRcvBuff; extern DNSInfo *DNSInfoList; extern HWND ghMainWindow; extern void (*exit_tcpip_function)(); // the function will be called, when the Clean - // program terminates + // program terminates //--------------------- FUNCTION IMPLEMENTATION ----------------------------------- int tcpPossibleC(void) { printf("tcpPossibleC\n"); - StartUp(FALSE); - return tcpStartedUp; + StartUp(FALSE); + return tcpStartedUp; } int os_eom(SOCKET endpointRef) { - int err, err2; - char dummyBuffer[1]; - dictitem *pDictitem; + int err, err2; + char dummyBuffer[1]; + dictitem *pDictitem; printf("os_eom\n"); - err = recv( endpointRef, dummyBuffer, 1, MSG_PEEK); - err2 = WSAGetLastError(); - if (err>0) - return FALSE; - if (err<0 && err2==WSAEWOULDBLOCK) - return FALSE; - pDictitem = lookup(endpointRef); - trace( if (!pDictitem) - rMessageBox(NULL, MB_APPLMODAL, "in os_eom", "ERROR");) - if (pDictitem->availByteValid) - return FALSE; - if (err==0) - return TRUE; - return TRUE; + err = recv( endpointRef, dummyBuffer, 1, MSG_PEEK); + err2 = WSAGetLastError(); + if (err>0) + return FALSE; + if (err<0 && err2==WSAEWOULDBLOCK) + return FALSE; + pDictitem = lookup(endpointRef); + trace( if (!pDictitem) + rMessageBox(NULL, MB_APPLMODAL, "in os_eom", "ERROR");) + if (pDictitem->availByteValid) + return FALSE; + if (err==0) + return TRUE; + return TRUE; } int os_disconnected(SOCKET endpointRef) { - int err; - char string[1]; - dictitem *pDictitem; + int err; + char string[1]; + dictitem *pDictitem; printf("os_disconnected\n"); - pDictitem = lookup(endpointRef); - trace( if (!pDictitem) - rMessageBox(NULL, MB_APPLMODAL, "in os_disconnected", "ERROR");) - if (pDictitem->disconnected) - return TRUE; - err = send( endpointRef, string, 0, 0); - if (err!=SOCKET_ERROR) - return FALSE; - else - return WSAGetLastError()!=WSAEWOULDBLOCK; - // only this error can happen with sockets that can still send + pDictitem = lookup(endpointRef); + trace( if (!pDictitem) + rMessageBox(NULL, MB_APPLMODAL, "in os_disconnected", "ERROR");) + if (pDictitem->disconnected) + return TRUE; + err = send( endpointRef, string, 0, 0); + if (err!=SOCKET_ERROR) + return FALSE; + else + return WSAGetLastError()!=WSAEWOULDBLOCK; + // only this error can happen with sockets that can still send } int os_connectrequestavailable(SOCKET endpointRef) { - FD_SET readSet; - TIMEVAL timeout; - int nr; + FD_SET readSet; + TIMEVAL timeout; + int nr; printf("os_connectrequestavailable\n"); - FD_ZERO(&readSet); - FD_SET(endpointRef,&readSet); + FD_ZERO(&readSet); + FD_SET(endpointRef,&readSet); - timeout.tv_sec = 0; // Timeout in sec's - timeout.tv_usec = 0; // Timeout in microsec's - nr = select(0,&readSet,NULL,NULL,&timeout); - return nr>0 && FD_ISSET(endpointRef,&readSet); + timeout.tv_sec = 0; // Timeout in sec's + timeout.tv_usec = 0; // Timeout in microsec's + nr = select(0,&readSet,NULL,NULL,&timeout); + return nr>0 && FD_ISSET(endpointRef,&readSet); } #define majorVrs 1 @@ -172,524 +172,524 @@ int os_connectrequestavailable(SOCKET endpointRef) void StartUp(int abort) { printf("StartUp\n"); - if (!tcpStartedUp) - { - WORD wVersionRequested; - WSADATA wsaData; - int err, four=4; - SOCKET s; - - wVersionRequested = MAKEWORD(majorVrs, minorVrs); - err = WSAStartup(wVersionRequested, &wsaData); - if (err != 0) { - if (abort) { - rMessageBox(NULL, MB_APPLMODAL, "ERROR", "can't start up winsock" - "\nprogram aborts"); - ExitProcess (255); - } - else - return; - } - - /* Confirm that the Windows Sockets DLL supports version mj.mi.*/ - /* Note that if the DLL supports versions greater */ - /* than mj.mi in addition to mj.mi, it will still return */ - /* mj.mi in wVersion since that is the version we */ - /* requested. */ + if (!tcpStartedUp) + { + WORD wVersionRequested; + WSADATA wsaData; + int err, four=4; + SOCKET s; + + wVersionRequested = MAKEWORD(majorVrs, minorVrs); + err = WSAStartup(wVersionRequested, &wsaData); + if (err != 0) { + if (abort) { + rMessageBox(NULL, MB_APPLMODAL, "ERROR", "can't start up winsock" + "\nprogram aborts"); + ExitProcess (255); + } + else + return; + } + + /* Confirm that the Windows Sockets DLL supports version mj.mi.*/ + /* Note that if the DLL supports versions greater */ + /* than mj.mi in addition to mj.mi, it will still return */ + /* mj.mi in wVersion since that is the version we */ + /* requested. */ - if ( LOBYTE( wsaData.wVersion ) != majorVrs || - HIBYTE( wsaData.wVersion ) != minorVrs ) { - WSACleanup(); - if (abort) { - rMessageBox(NULL, MB_APPLMODAL, "ERROR", "winsock 1.1 or higher not available" - "\nprogram aborts"); - ExitProcess (255); - } - else - return; - }; - - // initialize rcvBuffSize - s = socket(PF_INET, SOCK_STREAM, 0); - if (s==INVALID_SOCKET) { - rMessageBox(NULL, MB_APPLMODAL, "ERROR", "can't create a socket" - "\nprogram aborts"); - ExitProcess (255); - }; - if (getsockopt(s, SOL_SOCKET, SO_RCVBUF, (char*) &rcvBuffSize, &four)) { - rMessageBox(NULL, MB_APPLMODAL, "ERROR", "can't call getsockopt" - "\nprogram aborts"); - ExitProcess (255); - }; - - pRcvBuff = (CleanString) LocalAlloc(LMEM_FIXED, rcvBuffSize+4); - if (pRcvBuff==NULL) { - rMessageBox(NULL, MB_APPLMODAL, "ERROR", "out of memory" - "\nprogram aborts"); - ExitProcess (255); - }; - exit_tcpip_function = CleanUp; - tcpStartedUp = TRUE; - }; + if ( LOBYTE( wsaData.wVersion ) != majorVrs || + HIBYTE( wsaData.wVersion ) != minorVrs ) { + WSACleanup(); + if (abort) { + rMessageBox(NULL, MB_APPLMODAL, "ERROR", "winsock 1.1 or higher not available" + "\nprogram aborts"); + ExitProcess (255); + } + else + return; + }; + + // initialize rcvBuffSize + s = socket(PF_INET, SOCK_STREAM, 0); + if (s==INVALID_SOCKET) { + rMessageBox(NULL, MB_APPLMODAL, "ERROR", "can't create a socket" + "\nprogram aborts"); + ExitProcess (255); + }; + if (getsockopt(s, SOL_SOCKET, SO_RCVBUF, (char*) &rcvBuffSize, &four)) { + rMessageBox(NULL, MB_APPLMODAL, "ERROR", "can't call getsockopt" + "\nprogram aborts"); + ExitProcess (255); + }; + + pRcvBuff = (CleanString) LocalAlloc(LMEM_FIXED, rcvBuffSize+4); + if (pRcvBuff==NULL) { + rMessageBox(NULL, MB_APPLMODAL, "ERROR", "out of memory" + "\nprogram aborts"); + ExitProcess (255); + }; + exit_tcpip_function = CleanUp; + tcpStartedUp = TRUE; + }; } - + void lookupHost_syncC(CleanString inetAddr, int *errCode, int *ipAddrP) // error code: 0 ok, 1 error (also: addr doesn't exist) { - HOSTENT *hostentP; - unsigned long ipAddr; + HOSTENT *hostentP; + unsigned long ipAddr; printf("lookupHost_syncC\n"); - - StartUp(TRUE); - ipAddr = inet_addr(CleanStringCharacters(inetAddr)); - if (ipAddr!=INADDR_NONE) - { - *errCode = 0; - *ipAddrP = ntohl(ipAddr); - return; - }; - *errCode = 1; - hostentP = gethostbyname(CleanStringCharacters(inetAddr)); // string is alphanumerical - if (hostentP!=NULL) - { *ipAddrP = ntohl(((DWORD *)(*(hostentP->h_addr_list)))[0]); - if (*ipAddrP!=0) - *errCode = 0; - }; + + StartUp(TRUE); + ipAddr = inet_addr(CleanStringCharacters(inetAddr)); + if (ipAddr!=INADDR_NONE) + { + *errCode = 0; + *ipAddrP = ntohl(ipAddr); + return; + }; + *errCode = 1; + hostentP = gethostbyname(CleanStringCharacters(inetAddr)); // string is alphanumerical + if (hostentP!=NULL) + { *ipAddrP = ntohl(((DWORD *)(*(hostentP->h_addr_list)))[0]); + if (*ipAddrP!=0) + *errCode = 0; + }; } void lookupHost_asyncC(CleanString inetAddr, int *errCode, HANDLE *endpointRef) // errCode: 0 ok, 1 not ok { - DNSInfo *newPtr; - HANDLE dnsHdl; + DNSInfo *newPtr; + HANDLE dnsHdl; printf("lookupHost_asyncC\n"); - StartUp(TRUE); - - *errCode = 1; - newPtr = (DNSInfo*) LocalAlloc(LMEM_FIXED,sizeof(DNSInfo)); - if (newPtr==NULL) { - *errCode = 1; - return; - }; - - newPtr->next = DNSInfoList; - DNSInfoList = newPtr; - - // and fill the fields and initiate DNS lookup. - dnsHdl = WSAAsyncGetHostByName(ghMainWindow,PM_DNS_EVENT,CleanStringCharacters(inetAddr), - DNSInfoList->junion.freeSpace, - MAXGETHOSTSTRUCT); - // this will cause the sending of a PM_DNS_EVENT message to the main window. - // The wParam value of that message will be equal to dnsHdl so that - // the ipAdress of the lookedup host can be retrieved then. - // The element of the List should be deallocated then - if (dnsHdl==0) - return; - - DNSInfoList->dnsHdl = dnsHdl; - *errCode = 0; - *endpointRef = dnsHdl; + StartUp(TRUE); + + *errCode = 1; + newPtr = (DNSInfo*) LocalAlloc(LMEM_FIXED,sizeof(DNSInfo)); + if (newPtr==NULL) { + *errCode = 1; + return; + }; + + newPtr->next = DNSInfoList; + DNSInfoList = newPtr; + + // and fill the fields and initiate DNS lookup. + dnsHdl = WSAAsyncGetHostByName(ghMainWindow,PM_DNS_EVENT,CleanStringCharacters(inetAddr), + DNSInfoList->junion.freeSpace, + MAXGETHOSTSTRUCT); + // this will cause the sending of a PM_DNS_EVENT message to the main window. + // The wParam value of that message will be equal to dnsHdl so that + // the ipAdress of the lookedup host can be retrieved then. + // The element of the List should be deallocated then + if (dnsHdl==0) + return; + + DNSInfoList->dnsHdl = dnsHdl; + *errCode = 0; + *endpointRef = dnsHdl; } void openTCP_ListenerC(int portNum, int *pErrCode, SOCKET *pEndpointRef) // errCode: 0:ok; otherwise:not ok { - SOCKET s; - SOCKADDR_IN srvAdr; + SOCKET s; + SOCKADDR_IN srvAdr; printf("openTCP_ListenerC\n"); - StartUp(TRUE); - - *pErrCode = 1; - - s = socket(PF_INET, SOCK_STREAM, 0); - if (s==INVALID_SOCKET) - return; - - srvAdr.sin_family = AF_INET; // of course internet adress family - srvAdr.sin_addr.s_addr = INADDR_ANY; // internet address will be given after "accept" - srvAdr.sin_port = htons((short int)portNum); - - *pErrCode = bind(s, (LPSOCKADDR) &srvAdr, sizeof(srvAdr)); - if (*pErrCode) { - closesocket(s); - return; - }; - - *pErrCode = listen(s,5); - if (*pErrCode) { - closesocket(s); - return; - }; - *pEndpointRef = s; - - *pErrCode = insertNewDictionaryItem(s); - if (*pErrCode) - return; - - setEndpointDataC(s, 1,0,0,0); + StartUp(TRUE); + + *pErrCode = 1; + + s = socket(PF_INET, SOCK_STREAM, 0); + if (s==INVALID_SOCKET) + return; + + srvAdr.sin_family = AF_INET; // of course internet adress family + srvAdr.sin_addr.s_addr = INADDR_ANY; // internet address will be given after "accept" + srvAdr.sin_port = htons((short int)portNum); + + *pErrCode = bind(s, (LPSOCKADDR) &srvAdr, sizeof(srvAdr)); + if (*pErrCode) { + closesocket(s); + return; + }; + + *pErrCode = listen(s,5); + if (*pErrCode) { + closesocket(s); + return; + }; + *pEndpointRef = s; + + *pErrCode = insertNewDictionaryItem(s); + if (*pErrCode) + return; + + setEndpointDataC(s, 1,0,0,0); } void acceptC(SOCKET listener, int *pErrCode, int *pInetHost, SOCKET *pEndpointRef) // errCode: 0:ok; otherwise:not ok { - SOCKET endpointRef; - SOCKADDR_IN clientAdr; - int clientAdrSize, tru; + SOCKET endpointRef; + SOCKADDR_IN clientAdr; + int clientAdrSize, tru; printf("acceptC\n"); - - clientAdrSize = sizeof(clientAdr); - endpointRef = accept(listener,(LPSOCKADDR) &clientAdr, &clientAdrSize); - tru = TRUE; - ioctlsocket(endpointRef, FIONBIO, &tru); // set mode to non blocking - *pErrCode = endpointRef==INVALID_SOCKET; - if (*pErrCode) - return; - - *pInetHost = ntohl(clientAdr.sin_addr.s_addr); - *pEndpointRef = endpointRef; - - *pErrCode = insertNewDictionaryItem(endpointRef); - if (*pErrCode) - return; - - setEndpointDataC(endpointRef,2,0,0,0); + + clientAdrSize = sizeof(clientAdr); + endpointRef = accept(listener,(LPSOCKADDR) &clientAdr, &clientAdrSize); + tru = TRUE; + ioctlsocket(endpointRef, FIONBIO, &tru); // set mode to non blocking + *pErrCode = endpointRef==INVALID_SOCKET; + if (*pErrCode) + return; + + *pInetHost = ntohl(clientAdr.sin_addr.s_addr); + *pEndpointRef = endpointRef; + + *pErrCode = insertNewDictionaryItem(endpointRef); + if (*pErrCode) + return; + + setEndpointDataC(endpointRef,2,0,0,0); } void os_connectTCPC(int onlyForMac, int block, int doTimeout, unsigned int stopTime, - int ipAddr, int portnum, - int *errCodeP, int *timeoutExpiredP, int *endpointRefP) + int ipAddr, int portnum, + int *errCodeP, int *timeoutExpiredP, int *endpointRefP) // errCode: 0 ok; 1 not ok { - SOCKET client; - SOCKADDR_IN srvAdr,clientAdr; - int err, tru; + SOCKET client; + SOCKADDR_IN srvAdr,clientAdr; + int err, tru; printf("os_connectTCPC\n"); - *errCodeP = 1; - *timeoutExpiredP = FALSE; - - client = socket(PF_INET, SOCK_STREAM, 0); - if (client==INVALID_SOCKET) - return; - - clientAdr.sin_family = AF_INET; // of course internet adress family - clientAdr.sin_addr.s_addr = INADDR_ANY; // internet adress will be given after "connect" - clientAdr.sin_port = 0; // the winsock library will choose a free number between 1024 and 5000 - - err = bind(client, (LPSOCKADDR) &clientAdr, sizeof(clientAdr)); - if (err) - { - closesocket(client); - return; - }; - - srvAdr.sin_family = AF_INET; // of course internet adress family - srvAdr.sin_addr.s_addr = htonl(ipAddr); - srvAdr.sin_port = htons((short int)portnum); - - tru = TRUE; - - ////////////////////////////////////////////////////////////////////////// - if (block && doTimeout) - { - ioctlsocket(client, FIONBIO, &tru); // set mode to non blocking - err = connect(client, (LPSOCKADDR) &srvAdr, sizeof(srvAdr)); - if (!err) { - *errCodeP = 0; - *timeoutExpiredP = FALSE; - *endpointRefP = client; - } - else if (WSAGetLastError()!=WSAEWOULDBLOCK) { - closesocket(client); - return; - } - else - { - FD_SET writeSet, exptnSet; - TIMEVAL timeout; - unsigned int now; - int noOfWritableSockets, timeoutTicks; - FD_ZERO(&writeSet); - FD_SET(client,&writeSet); - FD_ZERO(&exptnSet); - FD_SET(client,&exptnSet); - - now = GetTickCount(); - timeoutTicks = ((int)stopTime) - ((int)now); - if (timeoutTicks<=0) - { // timeout expired - closesocket(client); - *timeoutExpiredP = TRUE; - return; - }; - timeout.tv_sec = timeoutTicks / 1000; // Timeout in sec's - timeout.tv_usec = (timeoutTicks % 1000)*1000; // Timeout in microsec's - noOfWritableSockets = select(0,NULL,&writeSet,&exptnSet,&timeout); - *errCodeP = noOfWritableSockets<0 - || (noOfWritableSockets>0 && FD_ISSET(client,&exptnSet)); - *timeoutExpiredP = noOfWritableSockets==0; - *endpointRefP = client; - if (*errCodeP || *timeoutExpiredP) { - closesocket(client); - return; - }; - }; - }; - /////////////////////////////////////////////////////////////////////////// - if (block && !doTimeout) - { - err = connect(client, (LPSOCKADDR) &srvAdr, sizeof(srvAdr)); - if (err) - { - closesocket(client); - return; - }; - - ioctlsocket(client, FIONBIO, &tru); // set mode to non blocking - - *errCodeP = 0; - *timeoutExpiredP = FALSE; - *endpointRefP = client; - }; - //////////////////////////////////////////////////////////////////////////// - if (!block) - { - - err = WSAAsyncSelect(client,ghMainWindow,PM_SOCKET_EVENT,FD_CONNECT); - if (err) - { - closesocket(client); - return; - }; - - err = connect(client, (LPSOCKADDR) &srvAdr, sizeof(srvAdr)); - if (err==SOCKET_ERROR) - { - err = WSAGetLastError(); // a WSAEWOULDBLOCK error is a pretty harmless thing - if (err!=WSAEWOULDBLOCK) - { - closesocket(client); - return; - }; - }; - *errCodeP = 0; - *timeoutExpiredP = FALSE; - *endpointRefP = client; - }; - ////////////////////////////////////////////////////////////////////////////// - - *errCodeP = insertNewDictionaryItem(client); - if (*errCodeP) - { - closesocket(client); - return; - }; - if (block) - setEndpointDataC(client,2,0,0,0); - else - { - dictitem *ptr; - ptr = lookup(client); - ptr->referenceCount = 1; - ptr->hasReceiveNotifier = 0; - ptr->hasSendableNotifier = 1; - ptr->aborted = 0; - }; + *errCodeP = 1; + *timeoutExpiredP = FALSE; + + client = socket(PF_INET, SOCK_STREAM, 0); + if (client==INVALID_SOCKET) + return; + + clientAdr.sin_family = AF_INET; // of course internet adress family + clientAdr.sin_addr.s_addr = INADDR_ANY; // internet adress will be given after "connect" + clientAdr.sin_port = 0; // the winsock library will choose a free number between 1024 and 5000 + + err = bind(client, (LPSOCKADDR) &clientAdr, sizeof(clientAdr)); + if (err) + { + closesocket(client); + return; + }; + + srvAdr.sin_family = AF_INET; // of course internet adress family + srvAdr.sin_addr.s_addr = htonl(ipAddr); + srvAdr.sin_port = htons((short int)portnum); + + tru = TRUE; + + ////////////////////////////////////////////////////////////////////////// + if (block && doTimeout) + { + ioctlsocket(client, FIONBIO, &tru); // set mode to non blocking + err = connect(client, (LPSOCKADDR) &srvAdr, sizeof(srvAdr)); + if (!err) { + *errCodeP = 0; + *timeoutExpiredP = FALSE; + *endpointRefP = client; + } + else if (WSAGetLastError()!=WSAEWOULDBLOCK) { + closesocket(client); + return; + } + else + { + FD_SET writeSet, exptnSet; + TIMEVAL timeout; + unsigned int now; + int noOfWritableSockets, timeoutTicks; + FD_ZERO(&writeSet); + FD_SET(client,&writeSet); + FD_ZERO(&exptnSet); + FD_SET(client,&exptnSet); + + now = GetTickCount(); + timeoutTicks = ((int)stopTime) - ((int)now); + if (timeoutTicks<=0) + { // timeout expired + closesocket(client); + *timeoutExpiredP = TRUE; + return; + }; + timeout.tv_sec = timeoutTicks / 1000; // Timeout in sec's + timeout.tv_usec = (timeoutTicks % 1000)*1000; // Timeout in microsec's + noOfWritableSockets = select(0,NULL,&writeSet,&exptnSet,&timeout); + *errCodeP = noOfWritableSockets<0 + || (noOfWritableSockets>0 && FD_ISSET(client,&exptnSet)); + *timeoutExpiredP = noOfWritableSockets==0; + *endpointRefP = client; + if (*errCodeP || *timeoutExpiredP) { + closesocket(client); + return; + }; + }; + }; + /////////////////////////////////////////////////////////////////////////// + if (block && !doTimeout) + { + err = connect(client, (LPSOCKADDR) &srvAdr, sizeof(srvAdr)); + if (err) + { + closesocket(client); + return; + }; + + ioctlsocket(client, FIONBIO, &tru); // set mode to non blocking + + *errCodeP = 0; + *timeoutExpiredP = FALSE; + *endpointRefP = client; + }; + //////////////////////////////////////////////////////////////////////////// + if (!block) + { + + err = WSAAsyncSelect(client,ghMainWindow,PM_SOCKET_EVENT,FD_CONNECT); + if (err) + { + closesocket(client); + return; + }; + + err = connect(client, (LPSOCKADDR) &srvAdr, sizeof(srvAdr)); + if (err==SOCKET_ERROR) + { + err = WSAGetLastError(); // a WSAEWOULDBLOCK error is a pretty harmless thing + if (err!=WSAEWOULDBLOCK) + { + closesocket(client); + return; + }; + }; + *errCodeP = 0; + *timeoutExpiredP = FALSE; + *endpointRefP = client; + }; + ////////////////////////////////////////////////////////////////////////////// + + *errCodeP = insertNewDictionaryItem(client); + if (*errCodeP) + { + closesocket(client); + return; + }; + if (block) + setEndpointDataC(client,2,0,0,0); + else + { + dictitem *ptr; + ptr = lookup(client); + ptr->referenceCount = 1; + ptr->hasReceiveNotifier = 0; + ptr->hasSendableNotifier = 1; + ptr->aborted = 0; + }; } void sendC(SOCKET endpointRef, CleanString data, int begin, int nBytes, - int *pErrCode, int *pSentBytes) + int *pErrCode, int *pSentBytes) { - int sentBytes; + int sentBytes; printf("sendC\n"); - *pErrCode = 0; - sentBytes = send(endpointRef, CleanStringCharacters(data)+begin,nBytes, 0); - if (sentBytes==SOCKET_ERROR) { - int err; - sentBytes = 0; - err = WSAGetLastError(); - if (err!=WSAEWOULDBLOCK) { - dictitem *pDictitem; - pDictitem = lookup(endpointRef); - trace( if (!pDictitem) - rMessageBox(NULL, MB_APPLMODAL, "in sendC", "ERROR");) - pDictitem->disconnected =1; - *pErrCode = 1; - } - }; - *pSentBytes = sentBytes; + *pErrCode = 0; + sentBytes = send(endpointRef, CleanStringCharacters(data)+begin,nBytes, 0); + if (sentBytes==SOCKET_ERROR) { + int err; + sentBytes = 0; + err = WSAGetLastError(); + if (err!=WSAEWOULDBLOCK) { + dictitem *pDictitem; + pDictitem = lookup(endpointRef); + trace( if (!pDictitem) + rMessageBox(NULL, MB_APPLMODAL, "in sendC", "ERROR");) + pDictitem->disconnected =1; + *pErrCode = 1; + } + }; + *pSentBytes = sentBytes; } void receiveC(SOCKET endpointRef, int maxSize, CleanString *pReceived) { - int size, received; - dictitem *pDictitem; + int size, received; + dictitem *pDictitem; printf("receiveC\n"); - *pReceived = (CleanString) pRcvBuff; - size = maxSize<=0 ? rcvBuffSize : maxSize; - received = recv( endpointRef, CleanStringCharacters(pRcvBuff), size, 0); - pDictitem = lookup(endpointRef); - trace( if (!pDictitem) - rMessageBox(NULL, MB_APPLMODAL, "in receiveC", "ERROR");) - if (received>0) { - pDictitem->availByteValid = 0; - CleanStringLength(pRcvBuff) = received; - } - else if (pDictitem->availByteValid) { - CleanStringCharacters(pRcvBuff)[0] = pDictitem->availByte; - pDictitem->availByteValid = 0; - CleanStringLength(pRcvBuff) = 1; - } - else - CleanStringLength(pRcvBuff) = 0; + *pReceived = (CleanString) pRcvBuff; + size = maxSize<=0 ? rcvBuffSize : maxSize; + received = recv( endpointRef, CleanStringCharacters(pRcvBuff), size, 0); + pDictitem = lookup(endpointRef); + trace( if (!pDictitem) + rMessageBox(NULL, MB_APPLMODAL, "in receiveC", "ERROR");) + if (received>0) { + pDictitem->availByteValid = 0; + CleanStringLength(pRcvBuff) = received; + } + else if (pDictitem->availByteValid) { + CleanStringCharacters(pRcvBuff)[0] = pDictitem->availByte; + pDictitem->availByteValid = 0; + CleanStringLength(pRcvBuff) = 1; + } + else + CleanStringLength(pRcvBuff) = 0; } int data_availableC(SOCKET endpointRef) { - dictitem *pDictitem; - int err; + dictitem *pDictitem; + int err; printf("data_availableC\n"); - pDictitem = lookup(endpointRef); - trace( if (!pDictitem) - rMessageBox(NULL, MB_APPLMODAL, "in data_availableC", - "ERROR\nendpoint %i not found", endpointRef);) - if (pDictitem->availByteValid) - return TRUE; - err = recv( endpointRef, &pDictitem->availByte, 1, MSG_PEEK); - if (err>0) { - pDictitem->availByteValid = 1; - return TRUE; - }; - return FALSE; + pDictitem = lookup(endpointRef); + trace( if (!pDictitem) + rMessageBox(NULL, MB_APPLMODAL, "in data_availableC", + "ERROR\nendpoint %i not found", endpointRef);) + if (pDictitem->availByteValid) + return TRUE; + err = recv( endpointRef, &pDictitem->availByte, 1, MSG_PEEK); + if (err>0) { + pDictitem->availByteValid = 1; + return TRUE; + }; + return FALSE; } void disconnectGracefulC(SOCKET endpointRef) { printf("disconnecteGracefulC\n"); - shutdown(endpointRef,1); // 1: graceful + shutdown(endpointRef,1); // 1: graceful } void disconnectBrutalC(SOCKET endpointRef) { - LINGER linger; + LINGER linger; printf("disconnectBrutalC\n"); - linger.l_onoff = 1; - linger.l_linger = 0; - setsockopt(endpointRef, SOL_SOCKET, SO_LINGER, (char*) &linger, sizeof(linger)); + linger.l_onoff = 1; + linger.l_linger = 0; + setsockopt(endpointRef, SOL_SOCKET, SO_LINGER, (char*) &linger, sizeof(linger)); } void garbageCollectEndpointC(SOCKET endpointRef) { - dictitem *pDictitem; + dictitem *pDictitem; printf("garbageCollectEndpointC\n"); - pDictitem = lookup(endpointRef); - if (pDictitem!=NULL && pDictitem->referenceCount==0) { - closesocket(endpointRef); - removeDictionaryItem(endpointRef); - }; + pDictitem = lookup(endpointRef); + if (pDictitem!=NULL && pDictitem->referenceCount==0) { + closesocket(endpointRef); + removeDictionaryItem(endpointRef); + }; } void os_select_inetevents( SOCKET endpointRef, int receiverCategory, - int referenceCount, int getReceiveEvents, int getSendEvents, - int aborted) + int referenceCount, int getReceiveEvents, int getSendEvents, + int aborted) { printf("os_select_inetevents\n"); - setEndpointDataC(endpointRef, referenceCount, getReceiveEvents, getSendEvents, aborted); + setEndpointDataC(endpointRef, referenceCount, getReceiveEvents, getSendEvents, aborted); } void initFD_SET(FD_SET **ppSet, SOCKET sockets[], int n) { - int i; - FD_SET *pSet; + int i; + FD_SET *pSet; printf("initFD_SET\n"); - pSet = (FD_SET*) LocalAlloc(LMEM_FIXED | LMEM_ZEROINIT, n*sizeof(SOCKET)+sizeof(u_int)); - for(i=0; ireferenceCount; - if (referenceCount!=0) { - if (referenceCount==1 && pDictitem->aborted) { - disconnectBrutalC(pDictitem->endpointRef); - } - else - disconnectGracefulC(pDictitem->endpointRef); - closesocket(pDictitem->endpointRef); - }; - pTemp = pDictitem; - pDictitem = pDictitem->next; - GlobalFree((char*) pTemp); - }; - WSACleanup(); + while (pDictitem) { + referenceCount = pDictitem->referenceCount; + if (referenceCount!=0) { + if (referenceCount==1 && pDictitem->aborted) { + disconnectBrutalC(pDictitem->endpointRef); + } + else + disconnectGracefulC(pDictitem->endpointRef); + closesocket(pDictitem->endpointRef); + }; + pTemp = pDictitem; + pDictitem = pDictitem->next; + GlobalFree((char*) pTemp); + }; + WSACleanup(); } @@ -697,85 +697,85 @@ void CleanUp(void) int insertNewDictionaryItem(SOCKET endpointRef) { - dictitem *newItem; + dictitem *newItem; printf("insertNewDictionaryItem\n"); newItem = (dictitem*) GlobalAlloc(LMEM_FIXED, sizeof(dictitem)); - if (newItem==NULL) - return 1; - - newItem->endpointRef = endpointRef; - newItem->next = endpointDict; - newItem->availByteValid = 0; - newItem->aborted = 0; - newItem->disconnected = 0; - endpointDict = newItem; - - return 0; + if (newItem==NULL) + return 1; + + newItem->endpointRef = endpointRef; + newItem->next = endpointDict; + newItem->availByteValid = 0; + newItem->aborted = 0; + newItem->disconnected = 0; + endpointDict = newItem; + + return 0; } dictitem* lookup(SOCKET endpointRef) { - dictitem *ptr=endpointDict; + dictitem *ptr=endpointDict; printf("lookup\n"); - while (ptr!=NULL && (ptr->endpointRef!=endpointRef)) - ptr = ptr->next; - - return ptr; + while (ptr!=NULL && (ptr->endpointRef!=endpointRef)) + ptr = ptr->next; + + return ptr; } void setEndpointDataC( int endpointRef, int referenceCount, - int hasReceiveNotifier, int hasSendableNotifier, int aborted) + int hasReceiveNotifier, int hasSendableNotifier, int aborted) { - dictitem *ptr; + dictitem *ptr; printf("setEndpointDataC\n"); - ptr = lookup((SOCKET) endpointRef); - - if (ptr!=NULL) - { ptr->referenceCount = referenceCount; - ptr->hasReceiveNotifier = hasReceiveNotifier ? 1 : 0; - ptr->hasSendableNotifier = hasSendableNotifier ? 1 : 0; - ptr->aborted = aborted ? 1 : 0; - }; - WSAAsyncSelect(endpointRef, ghMainWindow, PM_SOCKET_EVENT, - (hasReceiveNotifier ? FD_READ | FD_OOB | FD_ACCEPT | FD_CLOSE : 0) - | (hasSendableNotifier ? FD_WRITE | FD_CLOSE : 0)); + ptr = lookup((SOCKET) endpointRef); + + if (ptr!=NULL) + { ptr->referenceCount = referenceCount; + ptr->hasReceiveNotifier = hasReceiveNotifier ? 1 : 0; + ptr->hasSendableNotifier = hasSendableNotifier ? 1 : 0; + ptr->aborted = aborted ? 1 : 0; + }; + WSAAsyncSelect(endpointRef, ghMainWindow, PM_SOCKET_EVENT, + (hasReceiveNotifier ? FD_READ | FD_OOB | FD_ACCEPT | FD_CLOSE : 0) + | (hasSendableNotifier ? FD_WRITE | FD_CLOSE : 0)); } void getEndpointDataC( int endpointRef, int *referenceCount, - int *hasReceiveNotifier, int *hasSendableNotifier, int *aborted) + int *hasReceiveNotifier, int *hasSendableNotifier, int *aborted) { - dictitem *ptr; + dictitem *ptr; printf("getEndpointDataC\n"); - ptr = lookup((SOCKET) endpointRef); - - if (ptr!=NULL) - { *referenceCount = ptr->referenceCount; - *hasReceiveNotifier = ptr->hasReceiveNotifier!=0; - *hasSendableNotifier = ptr->hasSendableNotifier!=0; - *aborted = ptr->aborted!=0; - }; + ptr = lookup((SOCKET) endpointRef); + + if (ptr!=NULL) + { *referenceCount = ptr->referenceCount; + *hasReceiveNotifier = ptr->hasReceiveNotifier!=0; + *hasSendableNotifier = ptr->hasSendableNotifier!=0; + *aborted = ptr->aborted!=0; + }; } void removeDictionaryItem(SOCKET endpointRef) // the dictionary MUST contain a valid item with the endpointRef { - dictitem **ptr, *temp; - int notRemoved; + dictitem **ptr, *temp; + int notRemoved; printf("removeDictionaryItem\n"); - ptr = &endpointDict; - notRemoved = TRUE; - while(notRemoved) - if ((*ptr)->endpointRef==endpointRef) - { - temp = *ptr; - *ptr = (*ptr)->next; - GlobalFree((char*) temp); - notRemoved = FALSE; - } - else - ptr = &((*ptr)->next); + ptr = &endpointDict; + notRemoved = TRUE; + while(notRemoved) + if ((*ptr)->endpointRef==endpointRef) + { + temp = *ptr; + *ptr = (*ptr)->next; + GlobalFree((char*) temp); + notRemoved = FALSE; + } + else + ptr = &((*ptr)->next); } diff --git a/Linux_C_12/cTCP_121.h b/Linux_C_12/cTCP_121.h index 0707781..303eea6 100644 --- a/Linux_C_12/cTCP_121.h +++ b/Linux_C_12/cTCP_121.h @@ -7,31 +7,31 @@ typedef int DNSHdl; struct DNSInfo - { struct DNSInfo *next; - HANDLE dnsHdl; - union { struct hostent Hostent; - char freeSpace[MAXGETHOSTSTRUCT]; - } - junion; - }; + { struct DNSInfo *next; + HANDLE dnsHdl; + union { struct hostent Hostent; + char freeSpace[MAXGETHOSTSTRUCT]; + } + junion; + }; typedef struct DNSInfo DNSInfo; /* the dictionary items */ struct dictitem - { SOCKET endpointRef; - struct dictitem *next; - char availByte; - unsigned availByteValid : 1; - unsigned referenceCount : 2; - unsigned hasReceiveNotifier : 1; + { SOCKET endpointRef; + struct dictitem *next; + char availByte; + unsigned availByteValid : 1; + unsigned referenceCount : 2; + unsigned hasReceiveNotifier : 1; /* * three kinds of receivers: receivers for established connections, * receivers for dns requests, receivers for asynchronous connect */ - unsigned hasSendableNotifier : 1; - unsigned aborted : 1; - unsigned disconnected : 1; - }; + unsigned hasSendableNotifier : 1; + unsigned aborted : 1; + unsigned disconnected : 1; + }; typedef struct dictitem dictitem; #define IE_CONNECTREQUEST 0x0001 diff --git a/Linux_C_12/cdebug_121.c b/Linux_C_12/cdebug_121.c index 9b4a438..c0e124b 100644 --- a/Linux_C_12/cdebug_121.c +++ b/Linux_C_12/cdebug_121.c @@ -1,39 +1,39 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Routines useful for debugging. + About this module: + Routines useful for debugging. ********************************************************************************************/ #include "cdebug_121.h" #include "time.h" int Rand (void) { - static int holdrand; - static int randinited = 0; + static int holdrand; + static int randinited = 0; printf("Rand\n"); - if (!randinited) - { - holdrand = (int) 0; //GetTickCount (); - randinited = -1; - } + if (!randinited) + { + holdrand = (int) 0; //GetTickCount (); + randinited = -1; + } - holdrand = holdrand * 214013 + 2531011; + holdrand = holdrand * 214013 + 2531011; - return ((holdrand >> 16) & 0x7fff); + return ((holdrand >> 16) & 0x7fff); } OS ConsolePrint (CLEAN_STRING cleanstr, OS os) { - char *cstr; + char *cstr; printf("ConsolePrint\n"); - cstr = cstring (cleanstr); - rprintf (cstr); - return os; + cstr = cstring (cleanstr); + rprintf (cstr); + return os; } diff --git a/Linux_C_12/clean_types.h b/Linux_C_12/clean_types.h index d4e9b93..9ce4164 100644 --- a/Linux_C_12/clean_types.h +++ b/Linux_C_12/clean_types.h @@ -3,31 +3,31 @@ #if 0 typedef struct clean_string { - int length; + int length; #ifdef SOLARIS - char characters[4]; + char characters[4]; #else - char characters[0]; + char characters[0]; #endif } *CLEAN_STRING; #endif typedef struct clean_file { - int number; - int position; + int number; + int position; } CLEAN_FILE; struct file { - FILE *file; - unsigned long position; - unsigned long file_length; - char *file_name; - long file_number; - int device_number; - short mode; - short filler_1; - long filler_2; + FILE *file; + unsigned long position; + unsigned long file_length; + char *file_name; + long file_number; + int device_number; + short mode; + short filler_1; + long filler_2; }; #define CLOSED_FILE 0 diff --git a/Linux_C_12/cpicture_121.h b/Linux_C_12/cpicture_121.h index 2b08ef9..68489a4 100644 --- a/Linux_C_12/cpicture_121.h +++ b/Linux_C_12/cpicture_121.h @@ -14,10 +14,10 @@ extern int OsMMtoVPixels(double); extern int OsMMtoHPixels(double); void WinInitPicture (int size, int mode, int pr, int pg, int pb, - int br, int bg, int bb, int x, int y, + int br, int bg, int bb, int x, int y, CLEAN_STRING fname, int fstyle, int fsize, int ox, int oy, OSPictContext inDraw, OS os, - OSPictContext *outDraw, OS *oos); + OSPictContext *outDraw, OS *oos); void WinDonePicture(GdkDrawable *, OS, GdkDrawable **, OS*); diff --git a/Linux_C_12/cprinter_121.c b/Linux_C_12/cprinter_121.c index 8e635a3..83ff63d 100644 --- a/Linux_C_12/cprinter_121.c +++ b/Linux_C_12/cprinter_121.c @@ -1,12 +1,12 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library and Clean 0.8 I/O library - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library and Clean 0.8 I/O library + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Routines related to printing. + About this module: + Routines related to printing. ********************************************************************************************/ #include "util_121.h" @@ -37,169 +37,169 @@ typedef char* LPCTSTR; #define tachtig 80 void getDevmodeSizeC(int *size, HANDLE *phPrinter, - char **device, char **driver, char **output) + char **device, char **driver, char **output) { #if 0 - char szPrinter[80]; - char *szDevice, *szDriver, *szOutput; - - GetProfileString("windows", "device", ",,,", szPrinter, 80); - szDevice = strtok(szPrinter,","); - szDriver = strtok(NULL,", "); - szOutput = strtok(NULL,", "); - *device = g_strdup(szDevice); - *driver = g_strdup(szDriver); - *output = g_strdup(szOutput); - if (*szDevice=='\0' || *szDriver=='\0' || *szOutput=='\0') - { - *size = 0; - return; - }; - OpenPrinter(szDevice,phPrinter,NULL); - *size = DocumentProperties(NULL,*phPrinter,szDevice,NULL,NULL,0); + char szPrinter[80]; + char *szDevice, *szDriver, *szOutput; + + GetProfileString("windows", "device", ",,,", szPrinter, 80); + szDevice = strtok(szPrinter,","); + szDriver = strtok(NULL,", "); + szOutput = strtok(NULL,", "); + *device = g_strdup(szDevice); + *driver = g_strdup(szDriver); + *output = g_strdup(szOutput); + if (*szDevice=='\0' || *szDriver=='\0' || *szOutput=='\0') + { + *size = 0; + return; + }; + OpenPrinter(szDevice,phPrinter,NULL); + *size = DocumentProperties(NULL,*phPrinter,szDevice,NULL,NULL,0); #endif } void getDefaultDevmodeC(char *printSetup, LPHANDLE phPrinter, char **device) { #if 0 - int size,r1; + int size,r1; - size = ((int*)printSetup)[0]; - printSetup +=4; - r1 = DocumentProperties(NULL,phPrinter,((char*)device)+4, - (DEVMODE*)printSetup,NULL,DM_OUT_BUFFER); - ClosePrinter(phPrinter); + size = ((int*)printSetup)[0]; + printSetup +=4; + r1 = DocumentProperties(NULL,phPrinter,((char*)device)+4, + (DEVMODE*)printSetup,NULL,DM_OUT_BUFFER); + ClosePrinter(phPrinter); #endif } #if 0 static HDC myCreateIC(LPCTSTR driver, LPCTSTR device, DEVMODE *devmode) { - HDC icPrint; + HDC icPrint; - icPrint = CreateIC(driver,device,NULL,devmode); - if (!icPrint) - icPrint = CreateIC(driver,device,NULL,devmode); - /* try once again. Adobe printer drivers sometimes need to be told everything twice */ - return icPrint; + icPrint = CreateIC(driver,device,NULL,devmode); + if (!icPrint) + icPrint = CreateIC(driver,device,NULL,devmode); + /* try once again. Adobe printer drivers sometimes need to be told everything twice */ + return icPrint; } #endif #define GetDeviceCapsWithDefault(icPrint, index, defaullt) (icPrint ? GetDeviceCaps(icPrint, index) : defaullt) void os_getpagedimensionsC( DEVMODE *devmode, char *device, char *driver, - int emulateScreenRes, - int *maxX, int *maxY, - int *leftPaper, int *topPaper, - int *rightPaper, int *bottomPaper, - int *xRes, int *yRes - ) + int emulateScreenRes, + int *maxX, int *maxY, + int *leftPaper, int *topPaper, + int *rightPaper, int *bottomPaper, + int *xRes, int *yRes + ) { #if 0 - HDC icPrint; - int horPaperPixels, verPaperPixels, - xResolution,yResolution, - scNX, scNY, scDX, scDY; + HDC icPrint; + int horPaperPixels, verPaperPixels, + xResolution,yResolution, + scNX, scNY, scDX, scDY; - icPrint = myCreateIC(driver,device, devmode); + icPrint = myCreateIC(driver,device, devmode); - xResolution = GetDeviceCapsWithDefault(icPrint, LOGPIXELSX, 300); - yResolution = GetDeviceCapsWithDefault(icPrint, LOGPIXELSY, 300); - if (emulateScreenRes) /* for emulation of the screen resolution */ - { + xResolution = GetDeviceCapsWithDefault(icPrint, LOGPIXELSX, 300); + yResolution = GetDeviceCapsWithDefault(icPrint, LOGPIXELSY, 300); + if (emulateScreenRes) /* for emulation of the screen resolution */ + { scNX = WinGetHorzResolution(); /* all the deviceCaps will be scaled */ - scNY = WinGetVertResolution(); - scDX = xResolution; - scDY = yResolution; - } - else - { scNX = 1; scNY = 1; scDX = 1; scDY = 1; }; + scNY = WinGetVertResolution(); + scDX = xResolution; + scDY = yResolution; + } + else + { scNX = 1; scNY = 1; scDX = 1; scDY = 1; }; - horPaperPixels = (GetDeviceCapsWithDefault(icPrint, PHYSICALWIDTH, 2246)*scNX)/scDX; - verPaperPixels = (GetDeviceCapsWithDefault(icPrint, PHYSICALHEIGHT, 3250)*scNY)/scDY; + horPaperPixels = (GetDeviceCapsWithDefault(icPrint, PHYSICALWIDTH, 2246)*scNX)/scDX; + verPaperPixels = (GetDeviceCapsWithDefault(icPrint, PHYSICALHEIGHT, 3250)*scNY)/scDY; - *maxX = (GetDeviceCapsWithDefault(icPrint, HORZRES, 2241)*scNX)/scDX; - *maxY = (GetDeviceCapsWithDefault(icPrint, VERTRES, 3254)*scNY)/scDY; + *maxX = (GetDeviceCapsWithDefault(icPrint, HORZRES, 2241)*scNX)/scDX; + *maxY = (GetDeviceCapsWithDefault(icPrint, VERTRES, 3254)*scNY)/scDY; *leftPaper = (-GetDeviceCapsWithDefault(icPrint, PHYSICALOFFSETX, 116)*scNX)/scDX; - *topPaper = (-GetDeviceCapsWithDefault(icPrint, PHYSICALOFFSETY, 129)*scNY)/scDY; - *rightPaper = horPaperPixels - *leftPaper; - *bottomPaper = verPaperPixels - *topPaper; - - if (emulateScreenRes) - { *xRes = scNX; *yRes = scNY; } - else - { *xRes = xResolution ; *yRes = yResolution; }; - DeleteDC(icPrint); + *topPaper = (-GetDeviceCapsWithDefault(icPrint, PHYSICALOFFSETY, 129)*scNY)/scDY; + *rightPaper = horPaperPixels - *leftPaper; + *bottomPaper = verPaperPixels - *topPaper; + + if (emulateScreenRes) + { *xRes = scNX; *yRes = scNY; } + else + { *xRes = xResolution ; *yRes = yResolution; }; + DeleteDC(icPrint); #endif } static HANDLE setupDevnames(int deviceLength,int driverLength,int outputLength, - char *device,char *driver,char *output) + char *device,char *driver,char *output) { - HANDLE hDevnames; + HANDLE hDevnames; #if 0 - DEVNAMES *pDevnames; - hDevnames = (HANDLE) LocalAlloc(LMEM_MOVEABLE, 16+deviceLength+driverLength+outputLength); - pDevnames = LocalLock(hDevnames); - pDevnames->wDriverOffset = 16; - pDevnames->wDeviceOffset = 16+driverLength; - pDevnames->wOutputOffset = 16+driverLength+deviceLength; - pDevnames->wDefault = 0; - strcpy(((char*)pDevnames)+pDevnames->wDriverOffset, driver); - strcpy(((char*)pDevnames)+pDevnames->wDeviceOffset, device); - strcpy(((char*)pDevnames)+pDevnames->wOutputOffset, output); - LocalUnlock(hDevnames); + DEVNAMES *pDevnames; + hDevnames = (HANDLE) LocalAlloc(LMEM_MOVEABLE, 16+deviceLength+driverLength+outputLength); + pDevnames = LocalLock(hDevnames); + pDevnames->wDriverOffset = 16; + pDevnames->wDeviceOffset = 16+driverLength; + pDevnames->wOutputOffset = 16+driverLength+deviceLength; + pDevnames->wDefault = 0; + strcpy(((char*)pDevnames)+pDevnames->wDriverOffset, driver); + strcpy(((char*)pDevnames)+pDevnames->wDeviceOffset, device); + strcpy(((char*)pDevnames)+pDevnames->wOutputOffset, output); + LocalUnlock(hDevnames); #endif - return hDevnames; + return hDevnames; } static HANDLE setupDevmode(int size, char *pData) { - HANDLE hDevmode; + HANDLE hDevmode; #if 0 - DEVMODE *pDevmode; + DEVMODE *pDevmode; - hDevmode = (HANDLE) LocalAlloc(LMEM_MOVEABLE, size); - pDevmode = LocalLock(hDevmode); - memcpy((char*)pDevmode, pData, size); - LocalUnlock(hDevmode); + hDevmode = (HANDLE) LocalAlloc(LMEM_MOVEABLE, size); + pDevmode = LocalLock(hDevmode); + memcpy((char*)pDevmode, pData, size); + LocalUnlock(hDevmode); #endif - return hDevmode; + return hDevmode; } void get_printSetup_with_PRINTDLG(PRINTDLG *pd, char **o_devmode, - char **o_device, char **o_driver, char **o_output) + char **o_device, char **o_driver, char **o_output) { #if 0 - char *newDriver, *newDevice, *newOutput; - DEVMODE *pDevmode; - DEVNAMES *pDevnames; - - pDevmode = LocalLock(pd->hDevMode); - *o_devmode = g_strdup(pDevmode->dmDeviceName); - LocalUnlock(pd->hDevMode); - pDevnames = LocalLock(pd->hDevNames); - newDriver = ((char*)pDevnames)+(pDevnames->wDriverOffset); - newDevice = ((char*)pDevnames)+(pDevnames->wDeviceOffset); - newOutput = ((char*)pDevnames)+(pDevnames->wOutputOffset); - *o_driver = g_strdup(newDriver); - *o_device = g_strdup(newDevice); - *o_output = g_strdup(newOutput); - LocalUnlock(pd->hDevNames); + char *newDriver, *newDevice, *newOutput; + DEVMODE *pDevmode; + DEVNAMES *pDevnames; + + pDevmode = LocalLock(pd->hDevMode); + *o_devmode = g_strdup(pDevmode->dmDeviceName); + LocalUnlock(pd->hDevMode); + pDevnames = LocalLock(pd->hDevNames); + newDriver = ((char*)pDevnames)+(pDevnames->wDriverOffset); + newDevice = ((char*)pDevnames)+(pDevnames->wDeviceOffset); + newOutput = ((char*)pDevnames)+(pDevnames->wOutputOffset); + *o_driver = g_strdup(newDriver); + *o_device = g_strdup(newDevice); + *o_output = g_strdup(newOutput); + LocalUnlock(pd->hDevNames); #endif } /* PA: called in Clean. */ int release_memory_handles(PRINTDLG *pd, int os) { #if 0 - LocalFree(pd->hDevNames); - LocalFree(pd->hDevMode); + LocalFree(pd->hDevNames); + LocalFree(pd->hDevMode); #endif - return os; - } + return os; + } /* * This function hooks the Print dialog. It's purpose is to set the dialog in @@ -209,66 +209,66 @@ static UINT APIENTRY DialogToFrontHook(HWND hdl, UINT msg, WPARAM wParam, LPARAM { #if 0 if (msg==WM_INITDIALOG) - { SetForegroundWindow(hdl); - }; + { SetForegroundWindow(hdl); + }; #endif - return FALSE; + return FALSE; } void printSetup(int calledFromCleanThread, int devmodeSize, - char *devmode, char *device, char *driver, char *output, - int *ok, PRINTDLG **pdPtr) + char *devmode, char *device, char *driver, char *output, + int *ok, PRINTDLG **pdPtr) { #if 0 - int deviceLength, driverLength, outputLength; - HANDLE hDevnames,hDevmode; - static PRINTDLG pd; + int deviceLength, driverLength, outputLength; + HANDLE hDevnames,hDevmode; + static PRINTDLG pd; - /* Set up DEVNAMES structure */ + /* Set up DEVNAMES structure */ - /*rMessageBox(NULL, MB_APPLMODAL, "in printSetup", ""); */ - deviceLength = strlen(device)+1; - driverLength = strlen(driver)+1; - outputLength = strlen(output)+1; + /*rMessageBox(NULL, MB_APPLMODAL, "in printSetup", ""); */ + deviceLength = strlen(device)+1; + driverLength = strlen(driver)+1; + outputLength = strlen(output)+1; - hDevnames = setupDevnames(deviceLength,driverLength,outputLength,device,driver,output); + hDevnames = setupDevnames(deviceLength,driverLength,outputLength,device,driver,output); - /* Set up DEVMODE structure */ - hDevmode = setupDevmode(devmodeSize,devmode); + /* Set up DEVMODE structure */ + hDevmode = setupDevmode(devmodeSize,devmode); - /* Set up print dialog record */ - pd.lStructSize = sizeof(PRINTDLG); - pd.hwndOwner = calledFromCleanThread ? NULL : ghMainWindow; /* (NULL = desktop) */ + /* Set up print dialog record */ + pd.lStructSize = sizeof(PRINTDLG); + pd.hwndOwner = calledFromCleanThread ? NULL : ghMainWindow; /* (NULL = desktop) */ /* pd.hwndOwner = NULL; // (NULL = desktop) */ - /* + /* * The handle must belong to the active thread, otherwise PrintDlg * will crash. When this function is called from the Clean thread, * ghMainWindow will not belong to the active thread. */ - pd.hDevMode = hDevmode; - pd.hDevNames = hDevnames; - pd.hDC = NULL; - pd.Flags = PD_PRINTSETUP | PD_ENABLESETUPHOOK; - pd.nFromPage = 1; - pd.nToPage = 1; - pd.nMinPage = 1; - pd.nMaxPage = USHRT_MAX; - pd.nCopies = 1; - pd.hInstance = NULL; - pd.lCustData = 0L; - pd.lpfnPrintHook = NULL; - pd.lpfnSetupHook = DialogToFrontHook; - pd.lpPrintTemplateName = NULL; - pd.lpSetupTemplateName = NULL; - pd.hPrintTemplate = NULL; - pd.hSetupTemplate = NULL; - - /* Open print dialog */ - *ok = PrintDlg(&pd); - *pdPtr = &pd; - - if (hDevnames!=pd.hDevNames) LocalFree(hDevnames); - if (hDevmode!=pd.hDevMode) LocalFree(hDevmode); + pd.hDevMode = hDevmode; + pd.hDevNames = hDevnames; + pd.hDC = NULL; + pd.Flags = PD_PRINTSETUP | PD_ENABLESETUPHOOK; + pd.nFromPage = 1; + pd.nToPage = 1; + pd.nMinPage = 1; + pd.nMaxPage = USHRT_MAX; + pd.nCopies = 1; + pd.hInstance = NULL; + pd.lCustData = 0L; + pd.lpfnPrintHook = NULL; + pd.lpfnSetupHook = DialogToFrontHook; + pd.lpPrintTemplateName = NULL; + pd.lpSetupTemplateName = NULL; + pd.hPrintTemplate = NULL; + pd.hSetupTemplate = NULL; + + /* Open print dialog */ + *ok = PrintDlg(&pd); + *pdPtr = &pd; + + if (hDevnames!=pd.hDevNames) LocalFree(hDevnames); + if (hDevmode!=pd.hDevMode) LocalFree(hDevmode); #endif } @@ -276,8 +276,8 @@ void printSetup(int calledFromCleanThread, int devmodeSize, int startPage(int hdc) { #if 0 - /*rMessageBox(NULL, MB_APPLMODAL, "in startPage", ""); */ - return StartPage((HDC) hdc) > 0; + /*rMessageBox(NULL, MB_APPLMODAL, "in startPage", ""); */ + return StartPage((HDC) hdc) > 0; #else return 0; #endif @@ -286,23 +286,23 @@ int startPage(int hdc) int endPage(int hdc) { #if 0 - /*rMessageBox(NULL, MB_APPLMODAL, "in endPage", ""); */ - return EndPage((HDC) hdc) > 0; + /*rMessageBox(NULL, MB_APPLMODAL, "in endPage", ""); */ + return EndPage((HDC) hdc) > 0; #else return 0; #endif } int startDoc(int hdc) - /* err code: >0:no error, <=0: user cancelled file dialog */ + /* err code: >0:no error, <=0: user cancelled file dialog */ { #if 0 - static DOCINFO docInfo = { sizeof (DOCINFO), "Clean", NULL, NULL, 0 } ; + static DOCINFO docInfo = { sizeof (DOCINFO), "Clean", NULL, NULL, 0 } ; - /*rMessageBox(NULL, MB_APPLMODAL, "in startDoc", "");*/ - bUserAbort = FALSE ; + /*rMessageBox(NULL, MB_APPLMODAL, "in startDoc", "");*/ + bUserAbort = FALSE ; - return StartDoc((HDC) hdc, &docInfo); + return StartDoc((HDC) hdc, &docInfo); #else return 0; #endif @@ -311,27 +311,27 @@ int startDoc(int hdc) void endDoc(int hdc) { #if 0 - /*rMessageBox(NULL, MB_APPLMODAL, "in endDoc", ""); */ - if (bUserAbort) - AbortDoc((HDC) hdc); - else - EndDoc((HDC) hdc); + /*rMessageBox(NULL, MB_APPLMODAL, "in endDoc", ""); */ + if (bUserAbort) + AbortDoc((HDC) hdc); + else + EndDoc((HDC) hdc); #endif } void deleteDC(int hdc) { #if 0 - /*rMessageBox(NULL, MB_APPLMODAL, "in deleteDC", ""); */ - DeleteDC((HDC) hdc); + /*rMessageBox(NULL, MB_APPLMODAL, "in deleteDC", ""); */ + DeleteDC((HDC) hdc); #endif } int wasCanceled(void) { #if 0 - /*rMessageBox(NULL, MB_APPLMODAL, "in wasCanceled", ""); */ - return bUserAbort; + /*rMessageBox(NULL, MB_APPLMODAL, "in wasCanceled", ""); */ + return bUserAbort; #else return 0; #endif @@ -343,116 +343,116 @@ int wasCanceled(void) /* c-strings are passed to this function ! */ void getDC( int doDialog, int emulateScreen, int calledFromCleanThread, int devmodeLength, - char *devmode,char *device,char *driver,char *output, - int *err, - int *first, int *last, int *copies, - PRINTDLG **ppPrintDlg, - int *deviceContext - ) - /* err code: -1:no error, others: non fatal error */ + char *devmode,char *device,char *driver,char *output, + int *err, + int *first, int *last, int *copies, + PRINTDLG **ppPrintDlg, + int *deviceContext + ) + /* err code: -1:no error, others: non fatal error */ { #if 0 - static PRINTDLG pd; - HDC hdcPrint; - int ok; + static PRINTDLG pd; + HDC hdcPrint; + int ok; - *err = -1; + *err = -1; - if (doDialog) - { /* Set up print dialog record */ - HANDLE hDevnames, hDevmode; - int deviceLength,driverLength,outputLength; + if (doDialog) + { /* Set up print dialog record */ + HANDLE hDevnames, hDevmode; + int deviceLength,driverLength,outputLength; - deviceLength = strlen(device)+1; - driverLength = strlen(driver)+1; - outputLength = strlen(output)+1; + deviceLength = strlen(device)+1; + driverLength = strlen(driver)+1; + outputLength = strlen(output)+1; - hDevnames = setupDevnames(deviceLength,driverLength,outputLength, - device,driver,output); - hDevmode = setupDevmode(devmodeLength,devmode); + hDevnames = setupDevnames(deviceLength,driverLength,outputLength, + device,driver,output); + hDevmode = setupDevmode(devmodeLength,devmode); - pd.lStructSize = sizeof(PRINTDLG); - pd.hwndOwner = calledFromCleanThread ? NULL : ghMainWindow; /* (NULL = desktop) */ - /* + pd.lStructSize = sizeof(PRINTDLG); + pd.hwndOwner = calledFromCleanThread ? NULL : ghMainWindow; /* (NULL = desktop) */ + /* * The handle must belong to the active thread, otherwise PrintDlg * will crash. When this function is called from the Clean thread, * ghMainWindow will not belong to the active thread. */ - pd.hDevMode = hDevmode; - pd.hDevNames = hDevnames; - pd.hDC = NULL; - pd.Flags = PD_ALLPAGES | PD_COLLATE | PD_RETURNDC | PD_NOSELECTION - | PD_ENABLEPRINTHOOK; - /* hide some options from print dialog */ - pd.nFromPage = 1; - pd.nToPage = 1; - pd.nMinPage = 1; - pd.nMaxPage = USHRT_MAX; - pd.nCopies = 1; - pd.hInstance = NULL; - pd.lCustData = 0L; - pd.lpfnPrintHook = DialogToFrontHook; - pd.lpfnSetupHook = NULL; - pd.lpPrintTemplateName = NULL; - pd.lpSetupTemplateName = NULL; - pd.hPrintTemplate = NULL; - pd.hSetupTemplate = NULL; - - /* Open print dialog */ - - ok = PrintDlg(&pd); - - if (hDevnames!=pd.hDevNames) LocalFree(hDevnames); - if (hDevmode!=pd.hDevMode) LocalFree(hDevmode); - - if (!ok) - { - *err = CommDlgExtendedError(); /* will return 0 iff user canceled, otherwise positive value */ - release_memory_handles(&pd, 0); - return; - } - - - if (pd.Flags & PD_PAGENUMS) - { *first = pd.nFromPage; - *last = pd.nToPage; - } - else - { *first = 1; - *last = 9999; - }; - *copies = pd.nCopies; - *ppPrintDlg = &pd; - hdcPrint = pd.hDC; - } - - else - - { - hdcPrint = CreateDC(driver, device, output, NULL); - if (hdcPrint==NULL) - { *err = 0; /* non fatal error, iff e.g. no printer driver is installed */ - return; - }; - *first = 1; - *last = 9999; - *copies = 1; - *ppPrintDlg = NULL; - }; - - if (emulateScreen) - { int pXdpi,pYdpi,sXdpi,sYdpi; - pXdpi = GetDeviceCaps(hdcPrint, LOGPIXELSX); - pYdpi = GetDeviceCaps(hdcPrint, LOGPIXELSY); - sXdpi = WinGetHorzResolution(); - sYdpi = WinGetVertResolution(); - SetMapMode(hdcPrint, MM_ISOTROPIC); - SetWindowExtEx (hdcPrint,sXdpi, sYdpi, NULL); - SetViewportExtEx(hdcPrint,pXdpi, pYdpi, NULL); - }; - - *deviceContext = (int) hdcPrint; - /*rMessageBox(NULL, MB_APPLMODAL, "leaving getDC","");*/ + pd.hDevMode = hDevmode; + pd.hDevNames = hDevnames; + pd.hDC = NULL; + pd.Flags = PD_ALLPAGES | PD_COLLATE | PD_RETURNDC | PD_NOSELECTION + | PD_ENABLEPRINTHOOK; + /* hide some options from print dialog */ + pd.nFromPage = 1; + pd.nToPage = 1; + pd.nMinPage = 1; + pd.nMaxPage = USHRT_MAX; + pd.nCopies = 1; + pd.hInstance = NULL; + pd.lCustData = 0L; + pd.lpfnPrintHook = DialogToFrontHook; + pd.lpfnSetupHook = NULL; + pd.lpPrintTemplateName = NULL; + pd.lpSetupTemplateName = NULL; + pd.hPrintTemplate = NULL; + pd.hSetupTemplate = NULL; + + /* Open print dialog */ + + ok = PrintDlg(&pd); + + if (hDevnames!=pd.hDevNames) LocalFree(hDevnames); + if (hDevmode!=pd.hDevMode) LocalFree(hDevmode); + + if (!ok) + { + *err = CommDlgExtendedError(); /* will return 0 iff user canceled, otherwise positive value */ + release_memory_handles(&pd, 0); + return; + } + + + if (pd.Flags & PD_PAGENUMS) + { *first = pd.nFromPage; + *last = pd.nToPage; + } + else + { *first = 1; + *last = 9999; + }; + *copies = pd.nCopies; + *ppPrintDlg = &pd; + hdcPrint = pd.hDC; + } + + else + + { + hdcPrint = CreateDC(driver, device, output, NULL); + if (hdcPrint==NULL) + { *err = 0; /* non fatal error, iff e.g. no printer driver is installed */ + return; + }; + *first = 1; + *last = 9999; + *copies = 1; + *ppPrintDlg = NULL; + }; + + if (emulateScreen) + { int pXdpi,pYdpi,sXdpi,sYdpi; + pXdpi = GetDeviceCaps(hdcPrint, LOGPIXELSX); + pYdpi = GetDeviceCaps(hdcPrint, LOGPIXELSY); + sXdpi = WinGetHorzResolution(); + sYdpi = WinGetVertResolution(); + SetMapMode(hdcPrint, MM_ISOTROPIC); + SetWindowExtEx (hdcPrint,sXdpi, sYdpi, NULL); + SetViewportExtEx(hdcPrint,pXdpi, pYdpi, NULL); + }; + + *deviceContext = (int) hdcPrint; + /*rMessageBox(NULL, MB_APPLMODAL, "leaving getDC","");*/ #endif } @@ -474,7 +474,7 @@ BOOL CALLBACK PrintDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) return TRUE ; } return FALSE; - } + } BOOL CALLBACK AbortProc (HDC hdcPrn, int iCode) { @@ -495,106 +495,106 @@ BOOL CALLBACK AbortProc (HDC hdcPrn, int iCode) #define DIALOG_WIDTH 100 #define DIALOG_HEIGHT 60 - /* in dialog units */ + /* in dialog units */ #if 0 HWND CreateCancelDialog(void) { - HWND hwndButton,dlgHdl; - - WORD *p, *pdlgtemplate,baseunitX,baseunitY; - int nchar; - int scrnWidth,scrnHeight; - int buttonX, buttonY, buttonWidth, buttonHeight; - int textX, textY, textWidth, textHeight; - DWORD lStyle,baseunits; - HDC screen; - LOGFONT lf; - - /* allocate some memory to play with */ - pdlgtemplate = p = (PWORD) rmalloc (1000); - - screen = CreateDC ("DISPLAY", NULL, NULL, NULL); - scrnWidth = GetDeviceCaps (screen, HORZRES); - scrnHeight = GetDeviceCaps (screen, VERTRES); - DeleteDC (screen); - baseunits = GetDialogBaseUnits(); - - /* start to fill in the dlgtemplate information. addressing by WORDs */ - lStyle = WS_CAPTION | DS_MODALFRAME | WS_SYSMENU; - - baseunitX=LOWORD(baseunits); - baseunitY=HIWORD(baseunits); - - *p++ = LOWORD (lStyle); - *p++ = HIWORD (lStyle); - *p++ = 0; /* LOWORD (lExtendedStyle) */ - *p++ = 0; /* HIWORD (lExtendedStyle) */ - *p++ = 0; /* NumberOfItems */ - *p++ = ((scrnWidth*4)/3)/baseunitX; /* x */ - *p++ = ((scrnHeight*8)/3)/baseunitY; /* y */ - *p++ = DIALOG_WIDTH; /* cx */ - *p++ = DIALOG_HEIGHT; /* cy */ - *p++ = 0; /* Menu */ - *p++ = 0; /* Class */ - - /* copy the title of the dialog */ - nchar = NULL; /*nCopyAnsiToWideChar (p, (char *) "Printing in Progress");*/ - p += nchar; - - dlgHdl = CreateDialogIndirectParam (ghInst, (LPDLGTEMPLATE) pdlgtemplate, ghMainWindow, - (DLGPROC) PrintDlgProc, (LPARAM) 0); - - rfree(pdlgtemplate); - - /* Add a text field */ - textWidth = 19*baseunitX; - textHeight = baseunitY; - textX = (((DIALOG_WIDTH*baseunitX)/4) - textWidth) - / 2; - textY = (((DIALOG_HEIGHT*baseunitY)/8) - textHeight) - / 4; - hwndText = CreateWindow ("static", "",WS_VISIBLE | WS_CHILD | SS_CENTER, - textX, textY, textWidth, textHeight, - dlgHdl, (HMENU) 0, ghInst, 0); - - - /* Add a Cancel button: */ - buttonWidth = 10*baseunitX; - buttonHeight = (3*baseunitY)/2; - buttonX = (((DIALOG_WIDTH*baseunitX)/4) - buttonWidth) - / 2; - buttonY = (3 * (((DIALOG_HEIGHT*baseunitY)/8) - buttonHeight)) - / 5; - hwndButton = CreateWindow ("button", "Cancel", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, - buttonX, buttonY, buttonWidth, buttonHeight, - dlgHdl, (HMENU) 0, ghInst, 0); + HWND hwndButton,dlgHdl; + + WORD *p, *pdlgtemplate,baseunitX,baseunitY; + int nchar; + int scrnWidth,scrnHeight; + int buttonX, buttonY, buttonWidth, buttonHeight; + int textX, textY, textWidth, textHeight; + DWORD lStyle,baseunits; + HDC screen; + LOGFONT lf; + + /* allocate some memory to play with */ + pdlgtemplate = p = (PWORD) rmalloc (1000); + + screen = CreateDC ("DISPLAY", NULL, NULL, NULL); + scrnWidth = GetDeviceCaps (screen, HORZRES); + scrnHeight = GetDeviceCaps (screen, VERTRES); + DeleteDC (screen); + baseunits = GetDialogBaseUnits(); + + /* start to fill in the dlgtemplate information. addressing by WORDs */ + lStyle = WS_CAPTION | DS_MODALFRAME | WS_SYSMENU; + + baseunitX=LOWORD(baseunits); + baseunitY=HIWORD(baseunits); + + *p++ = LOWORD (lStyle); + *p++ = HIWORD (lStyle); + *p++ = 0; /* LOWORD (lExtendedStyle) */ + *p++ = 0; /* HIWORD (lExtendedStyle) */ + *p++ = 0; /* NumberOfItems */ + *p++ = ((scrnWidth*4)/3)/baseunitX; /* x */ + *p++ = ((scrnHeight*8)/3)/baseunitY; /* y */ + *p++ = DIALOG_WIDTH; /* cx */ + *p++ = DIALOG_HEIGHT; /* cy */ + *p++ = 0; /* Menu */ + *p++ = 0; /* Class */ + + /* copy the title of the dialog */ + nchar = NULL; /*nCopyAnsiToWideChar (p, (char *) "Printing in Progress");*/ + p += nchar; + + dlgHdl = CreateDialogIndirectParam (ghInst, (LPDLGTEMPLATE) pdlgtemplate, ghMainWindow, + (DLGPROC) PrintDlgProc, (LPARAM) 0); + + rfree(pdlgtemplate); + + /* Add a text field */ + textWidth = 19*baseunitX; + textHeight = baseunitY; + textX = (((DIALOG_WIDTH*baseunitX)/4) - textWidth) + / 2; + textY = (((DIALOG_HEIGHT*baseunitY)/8) - textHeight) + / 4; + hwndText = CreateWindow ("static", "",WS_VISIBLE | WS_CHILD | SS_CENTER, + textX, textY, textWidth, textHeight, + dlgHdl, (HMENU) 0, ghInst, 0); + + + /* Add a Cancel button: */ + buttonWidth = 10*baseunitX; + buttonHeight = (3*baseunitY)/2; + buttonX = (((DIALOG_WIDTH*baseunitX)/4) - buttonWidth) + / 2; + buttonY = (3 * (((DIALOG_HEIGHT*baseunitY)/8) - buttonHeight)) + / 5; + hwndButton = CreateWindow ("button", "Cancel", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, + buttonX, buttonY, buttonWidth, buttonHeight, + dlgHdl, (HMENU) 0, ghInst, 0); /* WinSetFont (&lf,"MS Sans Serif",0,8); */ - SendMessage(hwndButton,WM_SETFONT,(WPARAM)CreateFontIndirect (&lf),MAKELPARAM (TRUE,0)); - SendMessage(hwndText,WM_SETFONT,(WPARAM)CreateFontIndirect (&lf),MAKELPARAM (TRUE,0)); + SendMessage(hwndButton,WM_SETFONT,(WPARAM)CreateFontIndirect (&lf),MAKELPARAM (TRUE,0)); + SendMessage(hwndText,WM_SETFONT,(WPARAM)CreateFontIndirect (&lf),MAKELPARAM (TRUE,0)); - ShowWindow (dlgHdl,SW_SHOWNORMAL); - return dlgHdl; + ShowWindow (dlgHdl,SW_SHOWNORMAL); + return dlgHdl; } #endif /* PA: Called in Clean. */ int addSemaphor(int add) { - int old=semaphor; - semaphor+=add; - return old; + int old=semaphor; + semaphor+=add; + return old; } int os_printsetupvalidC(DEVMODE *devmode, char *device, char *driver) { #if 0 - HDC icPrint; + HDC icPrint; - icPrint = myCreateIC(driver,device,devmode); - if (icPrint) - DeleteDC(icPrint); - return icPrint!=NULL; + icPrint = myCreateIC(driver,device,devmode); + if (icPrint) + DeleteDC(icPrint); + return icPrint!=NULL; #else return 0; #endif diff --git a/Linux_C_12/cprinter_121.h b/Linux_C_12/cprinter_121.h index 384abe1..069ffee 100644 --- a/Linux_C_12/cprinter_121.h +++ b/Linux_C_12/cprinter_121.h @@ -6,30 +6,30 @@ extern int startPage(int hdc); extern int endPage (int hdc); extern int startDoc (int hdc); - /* returns err code: >0:no error, <=0: user cancelled file dialog */ + /* returns err code: >0:no error, <=0: user cancelled file dialog */ extern void endDoc (int hdc); extern void deleteDC(int hdc); extern int wasCanceled(void); extern void printSetup (int calledFromCleanThread, int devmodeSize, - char *devmode, char *device, char *driver, char *output, - int *ok, PRINTDLG **pdPtr - ); + char *devmode, char *device, char *driver, char *output, + int *ok, PRINTDLG **pdPtr + ); extern void getDC( int doDialog, int emulateScreen, int calledFromCleanThread, int devmodeLength, - char *devmode,char *device,char *driver,char *output, - int *err, - int *first, int *last, int *copies, - PRINTDLG **ppPrintDlg, - int *deviceContext - ); - /* err code: -1:no error, others: non fatal error */ + char *devmode,char *device,char *driver,char *output, + int *err, + int *first, int *last, int *copies, + PRINTDLG **ppPrintDlg, + int *deviceContext + ); + /* err code: -1:no error, others: non fatal error */ extern void get_printSetup_with_PRINTDLG(PRINTDLG *pd, char **o_devmode, - char **o_device, char **o_driver, char **o_output); + char **o_device, char **o_driver, char **o_output); extern void getCaps(HDC hdcPrint, int unq, - int *maxX, int *maxY, - int *leftPaper, int *topPaper, - int *rightPaper, int *bottomPaper, - int *unqReturn - ); + int *maxX, int *maxY, + int *leftPaper, int *topPaper, + int *rightPaper, int *bottomPaper, + int *unqReturn + ); extern BOOL CALLBACK AbortProc (HDC hdcPrn, int iCode); extern BOOL CALLBACK PrintDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam); diff --git a/Linux_C_12/util_121.c b/Linux_C_12/util_121.c index 89d5b4f..7d533aa 100644 --- a/Linux_C_12/util_121.c +++ b/Linux_C_12/util_121.c @@ -1,12 +1,12 @@ /******************************************************************************************** - Clean OS Windows library module version 1.2.1. - This module is part of the Clean Object I/O library, version 1.2.1, - for the Windows platform. + Clean OS Windows library module version 1.2.1. + This module is part of the Clean Object I/O library, version 1.2.1, + for the Windows platform. ********************************************************************************************/ /******************************************************************************************** - About this module: - Generally applicable utility routines. + About this module: + Generally applicable utility routines. ********************************************************************************************/ #include "util_121.h" #include "Clean.h" @@ -20,41 +20,41 @@ /* void SetLogFontData (LOGFONT * plf, char *fname, int style, int size) { - plf->lfHeight = -size; - plf->lfWeight = (style & iBold) ? 700 : 400; - plf->lfItalic = (style & iItalic) ? TRUE : FALSE; - plf->lfUnderline = (style & iUnderline) ? TRUE : FALSE; - plf->lfStrikeOut = (style & iStrikeOut) ? TRUE : FALSE; - - rscopy (plf->lfFaceName, fname); - - plf->lfWidth = 0; - plf->lfEscapement = 0; - plf->lfOrientation = 0; - plf->lfCharSet = DEFAULT_CHARSET; - plf->lfOutPrecision = OUT_DEFAULT_PRECIS; - plf->lfClipPrecision = CLIP_DEFAULT_PRECIS; - plf->lfQuality = DEFAULT_QUALITY; - plf->lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE; + plf->lfHeight = -size; + plf->lfWeight = (style & iBold) ? 700 : 400; + plf->lfItalic = (style & iItalic) ? TRUE : FALSE; + plf->lfUnderline = (style & iUnderline) ? TRUE : FALSE; + plf->lfStrikeOut = (style & iStrikeOut) ? TRUE : FALSE; + + rscopy (plf->lfFaceName, fname); + + plf->lfWidth = 0; + plf->lfEscapement = 0; + plf->lfOrientation = 0; + plf->lfCharSet = DEFAULT_CHARSET; + plf->lfOutPrecision = OUT_DEFAULT_PRECIS; + plf->lfClipPrecision = CLIP_DEFAULT_PRECIS; + plf->lfQuality = DEFAULT_QUALITY; + plf->lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE; }*/ /* SetLogFontData */ /* since we don't use the C runtime library, here are some simple - routines that would normally come from the C runtime lib. + routines that would normally come from the C runtime lib. */ HGLOBAL rmalloc (DWORD bytes) { - HGLOBAL ptr; + HGLOBAL ptr; printf("rmalloc\n"); ptr = malloc(bytes); - if (!ptr) - { + if (!ptr) + { rprintf("Out of memory\n"); exit(1); - } + } - return ptr; + return ptr; } /* rmalloc */ void rfree (HGLOBAL ptr) @@ -65,183 +65,183 @@ void rfree (HGLOBAL ptr) int rstrlen (char *s) { - int l; + int l; printf("rstrlen\n"); - for (l = 0; s[l] != 0; l++) - ; - return l; + for (l = 0; s[l] != 0; l++) + ; + return l; } /* rstrlen */ void rsncopy (char *d, const char *s, int n) { - int i; + int i; printf("rsncopy\n"); - for (i = 0; i < n; i++) - { - d[i] = s[i]; - } + for (i = 0; i < n; i++) + { + d[i] = s[i]; + } } /* rsncopy */ void rscopy (char *d, const char *s) { - int i; + int i; printf("rscopy\n"); - for (i = 0; s[i] != 0; i++) - { - d[i] = s[i]; - } - d[i] = s[i]; + for (i = 0; s[i] != 0; i++) + { + d[i] = s[i]; + } + d[i] = s[i]; } /* rscopy */ BOOL strequal (char *s1, char *s2) { - int i = 0; + int i = 0; printf("strequal\n"); - while (s1[i] == s2[i]) - { - if (s1[i] == 0) - return TRUE; - i++; - } - return FALSE; + while (s1[i] == s2[i]) + { + if (s1[i] == 0) + return TRUE; + i++; + } + return FALSE; } /* strequal */ BOOL nstrequal (int length, char *s1, char *s2) { - int i = 0; + int i = 0; printf("nstrequal\n"); - while (s1[i] == s2[i]) - { - if (i >= length) - return TRUE; - i++; - } - return FALSE; + while (s1[i] == s2[i]) + { + if (i >= length) + return TRUE; + i++; + } + return FALSE; } /* nstrequal */ int rabs (int i) { printf("rabs\n"); - if (i < 0) - return -i; - else - return i; + if (i < 0) + return -i; + else + return i; } /* rabs */ /* clean_strings don't have to end with 0, so we have to make - copy the clean string and end it with a 0. - global variables used for conversion from c strings to clean strings + copy the clean string and end it with a 0. + global variables used for conversion from c strings to clean strings */ char * cstring (CLEAN_STRING s) { char* chars = rmalloc(CleanStringLength(s) + 1); - static char *cstr = (char*) NULL; - cstr = rmalloc(CleanStringLength(s) + 1 + sizeof(int)); + static char *cstr = (char*) NULL; + cstr = rmalloc(CleanStringLength(s) + 1 + sizeof(int)); - int i; - for (i=0;i < CleanStringLength(s); i++) - chars[i] = CleanStringCharacters(s)[i]; - chars[i] = 0; + int i; + for (i=0;i < CleanStringLength(s); i++) + chars[i] = CleanStringCharacters(s)[i]; + chars[i] = 0; - rsncopy(cstr, chars, CleanStringLength(s) + 1); + rsncopy(cstr, chars, CleanStringLength(s) + 1); - return cstr; + return cstr; } /* cstring */ CLEAN_STRING cleanstring (char *s) { - static CLEAN_STRING result_clean_string = NULL; + static CLEAN_STRING result_clean_string = NULL; rprintf("[cleanstring: "); - if (result_clean_string) - rfree (result_clean_string); + if (result_clean_string) + rfree (result_clean_string); if (! s) { return NULL; } - result_clean_string = (CLEAN_STRING) rmalloc (sizeof (int) + rstrlen (s) +1); - result_clean_string->length = rstrlen (s); - rsncopy (result_clean_string->characters, s, rstrlen (s) + 1); + result_clean_string = (CLEAN_STRING) rmalloc (sizeof (int) + rstrlen (s) +1); + result_clean_string->length = rstrlen (s); + rsncopy (result_clean_string->characters, s, rstrlen (s) + 1); rprintf("%s", s); rprintf("]\n"); - return result_clean_string; + return result_clean_string; } /* cleanstring */ OS WinReleaseCString (PSTR cs, OS ios) { - rprintf("(RCS: \"%s\"", cs); + rprintf("(RCS: \"%s\"", cs); - if (cs) + if (cs) { - rfree (cs); + rfree (cs); } - rprintf(")\n"); + rprintf(")\n"); - return ios; + return ios; } /* WinReleaseCString */ void WinGetCString (PSTR cs, OS ios, CLEAN_STRING * cls, OS * oos) { - rprintf("\n"); + *cls = cleanstring (cs); + *oos = ios; + rprintf(">\n"); } /* WinGetCString */ void WinGetCStringAndFree (PSTR cs, OS ios, CLEAN_STRING * cls, OS * oos) { - rprintf("{GcsF"); - *cls = cleanstring (cs); - *oos = ios; - rfree (cs); - rprintf("}\n"); + rprintf("{GcsF"); + *cls = cleanstring (cs); + *oos = ios; + rfree (cs); + rprintf("}\n"); } /* WinGetCStringAndFree */ void WinMakeCString (CLEAN_STRING s, OS ios, PSTR * cs, OS * oos) { - char* chars = rmalloc(CleanStringLength(s) + 1); - rprintf("(MCS: \""); - *cs = (char*) rmalloc (CleanStringLength(s) + 1 + sizeof(int)); + char* chars = rmalloc(CleanStringLength(s) + 1); + rprintf("(MCS: \""); + *cs = (char*) rmalloc (CleanStringLength(s) + 1 + sizeof(int)); - rprintf("length: %d\n", CleanStringLength(s)); + rprintf("length: %d\n", CleanStringLength(s)); - int i; - for (i = 0; i < CleanStringLength(s); i++) - chars[i] = CleanStringCharacters(s)[i]; - chars[i] = 0; + int i; + for (i = 0; i < CleanStringLength(s); i++) + chars[i] = CleanStringCharacters(s)[i]; + chars[i] = 0; - rsncopy (*cs, chars, CleanStringLength(s) + 1); - (*cs)[CleanStringLength(s) + 1] = CleanStringLength(s); + rsncopy (*cs, chars, CleanStringLength(s) + 1); + (*cs)[CleanStringLength(s) + 1] = CleanStringLength(s); - *oos = ios; + *oos = ios; rprintf("\"%s)\n",chars); } /* WinMakeCString */ int nCopyAnsiToWideChar (LPWORD lpWCStr, LPSTR lpAnsiIn) { - int nChar = 0; + int nChar = 0; printf("nCopyAnsiToWideChar\n"); - do - { - *lpWCStr++ = (WORD) * lpAnsiIn; - nChar++; - } while (*lpAnsiIn++); + do + { + *lpWCStr++ = (WORD) * lpAnsiIn; + nChar++; + } while (*lpAnsiIn++); - return nChar; + return nChar; } /* nCopyAnsiToWideChar */ /* The following routines are used to write to the console, or convey runtime errors - with message boxes. + with message boxes. */ static char mbuff[_RPRINTBUFSIZE]; @@ -252,114 +252,114 @@ static HANDLE hLogFile = NULL; void rprintf (char *format,...) { - va_list arglist; - int len; - int cWritten; - - if (!LogFileInited) - { - hLogFile = CreateFile (LOGFILE, /* filename */ - GENERIC_WRITE, /* acces mode */ - 0, /* share mode */ - NULL, /* security */ - CREATE_ALWAYS, /* how to create */ - FILE_ATTRIBUTE_NORMAL, /* file attributes */ - NULL); /* template file */ - if (hLogFile == INVALID_HANDLE_VALUE) - { - MessageBox (NULL, "Could not open logfile.", NULL, MB_OK | MB_ICONSTOP); - ExitProcess (1); - }; - LogFileInited = TRUE; - } - - va_start (arglist, format); - len = sprintf (mbuff, format, arglist); - va_end (arglist); - - if (!WriteFile (hLogFile, /* output handle */ - mbuff, /* prompt string */ - len, /* string length */ - &cWritten, /* bytes written */ - NULL)) /* not overlapped */ - { - MessageBox (NULL, "Cannot write to stdout --write error.", NULL, MB_OK | MB_ICONSTOP); - return; - }; + va_list arglist; + int len; + int cWritten; + + if (!LogFileInited) + { + hLogFile = CreateFile (LOGFILE, /* filename */ + GENERIC_WRITE, /* acces mode */ + 0, /* share mode */ + NULL, /* security */ + CREATE_ALWAYS, /* how to create */ + FILE_ATTRIBUTE_NORMAL, /* file attributes */ + NULL); /* template file */ + if (hLogFile == INVALID_HANDLE_VALUE) + { + MessageBox (NULL, "Could not open logfile.", NULL, MB_OK | MB_ICONSTOP); + ExitProcess (1); + }; + LogFileInited = TRUE; + } + + va_start (arglist, format); + len = sprintf (mbuff, format, arglist); + va_end (arglist); + + if (!WriteFile (hLogFile, /* output handle */ + mbuff, /* prompt string */ + len, /* string length */ + &cWritten, /* bytes written */ + NULL)) /* not overlapped */ + { + MessageBox (NULL, "Cannot write to stdout --write error.", NULL, MB_OK | MB_ICONSTOP); + return; + }; } /* rprintf */ #endif /* * void rMessageBox (HWND owner, UINT style, char *title, char *format,...) { - va_list arglist; + va_list arglist; - va_start (arglist, format); - wvsprintf (mbuff, format, arglist); - va_end (arglist); + va_start (arglist, format); + wvsprintf (mbuff, format, arglist); + va_end (arglist); - MessageBox (owner, mbuff, title, style); + MessageBox (owner, mbuff, title, style); }*/ /* rMessageBox */ void CheckF (BOOL theCheck, char *checkText, char *checkMess, - char *filename, int linenum) + char *filename, int linenum) { printf("CheckF\n"); - if (!theCheck) - { + if (!theCheck) + { /* rMessageBox (NULL, MB_OK | MB_ICONSTOP, - "Internal check failed", "%s\n\ncheck: %s\nfile: %s\nline: %d", - checkMess, checkText, filename, linenum); + "Internal check failed", "%s\n\ncheck: %s\nfile: %s\nline: %d", + checkMess, checkText, filename, linenum); */ exit (1); - } + } } /* CheckF */ void ErrorExit (char *format,...) { - va_list arglist; + va_list arglist; - va_start (arglist, format); - sprintf (mbuff, format, arglist); - va_end (arglist); + va_start (arglist, format); + sprintf (mbuff, format, arglist); + va_end (arglist); - /*MessageBox (NULL, mbuff, NULL, MB_OK | MB_ICONSTOP);*/ + /*MessageBox (NULL, mbuff, NULL, MB_OK | MB_ICONSTOP);*/ rprintf("%s", mbuff); exit (1); } /* ErrorExit */ void DumpMem (int *ptr, int lines) { - char *cp; - int i, j, k; - - rprintf ("DUMP FROM %d\n", ptr); - - for (i = 0; i < lines; i++) - { - /*rprintf ("%4d: ", i);*/ - cp = (char *) ptr; - for (j = 0; j < 4; j++) - { - /*rprintf ("%08x ", *ptr);*/ - ptr++; - }; - /*rprintf ("- ");*/ - for (j = 0; j < 4; j++) - { - for (k = 0; k < 4; k++) - { - char c; - c = *cp; - if (c < 32 || c > 127) - c = '.'; - /*rprintf ("%C", c);*/ - cp++; - }; - /*rprintf (" ");*/ - }; - /*rprintf ("\n");*/ - } + char *cp; + int i, j, k; + + rprintf ("DUMP FROM %d\n", ptr); + + for (i = 0; i < lines; i++) + { + /*rprintf ("%4d: ", i);*/ + cp = (char *) ptr; + for (j = 0; j < 4; j++) + { + /*rprintf ("%08x ", *ptr);*/ + ptr++; + }; + /*rprintf ("- ");*/ + for (j = 0; j < 4; j++) + { + for (k = 0; k < 4; k++) + { + char c; + c = *cp; + if (c < 32 || c > 127) + c = '.'; + /*rprintf ("%C", c);*/ + cp++; + }; + /*rprintf (" ");*/ + }; + /*rprintf ("\n");*/ + } } /* DumpMem */ /*----------------------------------- @@ -367,194 +367,194 @@ void DumpMem (int *ptr, int lines) *-----------------------------------*/ char * BOOLstring (BOOL b) { - if (b) - return "TRUE"; - else - return "FALSE"; + if (b) + return "TRUE"; + else + return "FALSE"; } /* BOOLstring */ void printCCI (CrossCallInfo * pcci) { - switch (pcci->mess) - { - case CcRETURN0: - { - rprintf ("CcRETURN0"); - } break; - case CcRETURN1: - { - rprintf ("CcRETURN1"); - } break; - case CcRETURN2: - { - rprintf ("CcRETURN2"); - } break; - case CcRETURN3: - { - rprintf ("CcRETURN3"); - } break; - case CcRETURN4: - { - rprintf ("CcRETURN4"); - } break; - case CcRETURN5: - { - rprintf ("CcRETURN5"); - } break; - case CcWmPAINT: /* hwnd, t,l,r,b; no return value. */ - { - rprintf ("CcWmPAINT"); - } break; - case CcWmCREATE: /* hwnd; no return value. */ - { - rprintf ("CcWmCREATE"); - } break; - case CcWmCHAR: - { - rprintf ("CcWmCHAR"); - } break; - case CcWmCOMMAND: /* HITEM; no return value. */ - { - rprintf ("CcWmCOMMAND"); - } break; - case CcWmCLOSE: /* hwnd; no return value. */ - { - rprintf ("CcWmCLOSE"); - } break; - case CcWmACTIVATE: /* hwnd; no return value. */ - { - rprintf ("CcWmACTIVATE"); - } break; - case CcWmDEACTIVATE: /* hwnd; no return value. */ - { - rprintf ("CcWmDEACTIVATE"); - } break; - case CcWmKEYBOARD: /* hwnd, charcode, keystate, mods; no return - value. */ - { - rprintf ("CcWmKEYBOARD"); - } break; - case CcWmMOUSE: /* hwnd, mousestate, x, y, mods; no return - value. */ - { - rprintf ("CcWmMOUSE"); - } break; - case CcWmSIZE: /* width, heigth; */ - { - rprintf ("CcWmSIZE"); - } break; - case CcWmGETHSCROLLVAL: /* hwnd; scroll value return. */ - { - rprintf ("CcWmGETHSCROLLVAL"); - } break; - case CcWmGETVSCROLLVAL: /* hwnd; scroll value return. */ - { - rprintf ("CcWmGETVSCROLLVAL"); - } break; - case CcWmNEWHTHUMB: /* hwnd, hthumb; no return value. */ - { - rprintf ("CcWmNEWHTHUMB"); - } break; - case CcWmNEWVTHUMB: /* hwnd, vthumb; no return value. */ - { - rprintf ("CcWmNEWVTHUMB"); - } break; - case CcWmTIMER: /* HITEM, tickcount; no return value. */ - { - rprintf ("CcWmTIMER"); - } break; - case CcWmIDLETIMER: /* no params; no return value. */ - { - rprintf ("CcWmIDLETIMER"); - } break; - case CcWmINITDIALOG: /* hdlg; x y w h hwnd result. */ - { - rprintf ("CcWmINITDIALOG"); - } break; - case CcWmBUTTONCLICKED: /* hdlg, hbut; no return value. */ - { - rprintf ("CcWmBUTTONCLICKED"); - } break; - /* case CcWmCOMBOSELECT: */ /* hwnd, combo, newsel; no return value. */ - /* { - rprintf ("CcWmCOMBOSELECT"); - } break;*/ - case CcWmDRAWCONTROL: /* hdlog, hctrl, hdc, x,y, enabled; no return - value. */ - { - rprintf ("CcWmDRAWCONTROL"); - } break; - /*case CcWmSETCURSOR:*/ /* hwnd; cursor code return. */ - /* { - rprintf ("CcWmSETCURSOR"); - } break;*/ - /* case CcWmLOSEMODELESSDLOG:*/ /* hwnd; bool return value. */ - /* { - rprintf ("CcWmLOSEMODELESSDLOG"); - } break;*/ - /* case CcRqBEEP: */ /* no params; no result. */ - /* { - rprintf ("CcRqBEEP"); - } break; */ - case CcRqDOMESSAGE: /* no params; no result */ - { - rprintf ("CcRqDOMESSAGE"); - } break; - case CcRqINSERTMENUITEM: /* on/off, hmenu, textptr, marked, - pos; HITEM result. */ - { - rprintf ("CcRqINSERTMENUITEM"); - } break; - case CcRqCHECKMENUITEM: /* menu, HITEM, on/off; no result. */ - { - rprintf ("CcRqCHECKMENUITEM"); - } break; - case CcRqREMOVEMENUITEM: /* menu, HITEM; no result. */ - { - rprintf ("CcRqREMOVEMENUITEM"); - } break; - case CcRqMODIFYMENUITEM: /* HITEM, on/off, hmenu, textptr, - marked; no result. */ - { - rprintf ("CcRqMODIFYMENUITEM"); - } break; - case CcRqITEMENABLE: /* parent, HITEM, onoff; no result. */ - { - rprintf ("CcRqITEMENABLE"); - } break; - case CcRqMODIFYMENU: /* on/off, hmenu, textptr, hsubmenu, pos; no - result. */ - { - rprintf ("CcRqMODIFYMENU"); - } break; - case CcRqMENUENABLE: /* parent, pos, onoff; no result. */ - { - rprintf ("CcRqMENUENABLE"); - } break; - case CcRqINSERTSEPARATOR: /* hmenu, pos; no result. */ - { - rprintf ("CcRqINSERTSEPARATOR"); - } break; - case CcRqCREATEPOPMENU: /* no params; HMENU result. */ - { - rprintf ("CcRqCREATEPOPMENU"); - } break; - case CcRqDRAWMBAR: /* no params; no result. */ - { - rprintf ("CcRqDRAWMBAR"); - } break; - case CcRqDESTROYWINDOW: /* hwnd; no result. */ - { - rprintf ("CcRqDESTROYWINDOW"); - } break; - case CcRqBEGINPAINT: /* hwnd; HDC result. */ - { - rprintf ("CcRqBEGINPAINT"); - } break; - case CcRqENDPAINT: /* hwnd, hdc; no result. */ - { - rprintf ("CcRqENDPAINT"); - } break; + switch (pcci->mess) + { + case CcRETURN0: + { + rprintf ("CcRETURN0"); + } break; + case CcRETURN1: + { + rprintf ("CcRETURN1"); + } break; + case CcRETURN2: + { + rprintf ("CcRETURN2"); + } break; + case CcRETURN3: + { + rprintf ("CcRETURN3"); + } break; + case CcRETURN4: + { + rprintf ("CcRETURN4"); + } break; + case CcRETURN5: + { + rprintf ("CcRETURN5"); + } break; + case CcWmPAINT: /* hwnd, t,l,r,b; no return value. */ + { + rprintf ("CcWmPAINT"); + } break; + case CcWmCREATE: /* hwnd; no return value. */ + { + rprintf ("CcWmCREATE"); + } break; + case CcWmCHAR: + { + rprintf ("CcWmCHAR"); + } break; + case CcWmCOMMAND: /* HITEM; no return value. */ + { + rprintf ("CcWmCOMMAND"); + } break; + case CcWmCLOSE: /* hwnd; no return value. */ + { + rprintf ("CcWmCLOSE"); + } break; + case CcWmACTIVATE: /* hwnd; no return value. */ + { + rprintf ("CcWmACTIVATE"); + } break; + case CcWmDEACTIVATE: /* hwnd; no return value. */ + { + rprintf ("CcWmDEACTIVATE"); + } break; + case CcWmKEYBOARD: /* hwnd, charcode, keystate, mods; no return + value. */ + { + rprintf ("CcWmKEYBOARD"); + } break; + case CcWmMOUSE: /* hwnd, mousestate, x, y, mods; no return + value. */ + { + rprintf ("CcWmMOUSE"); + } break; + case CcWmSIZE: /* width, heigth; */ + { + rprintf ("CcWmSIZE"); + } break; + case CcWmGETHSCROLLVAL: /* hwnd; scroll value return. */ + { + rprintf ("CcWmGETHSCROLLVAL"); + } break; + case CcWmGETVSCROLLVAL: /* hwnd; scroll value return. */ + { + rprintf ("CcWmGETVSCROLLVAL"); + } break; + case CcWmNEWHTHUMB: /* hwnd, hthumb; no return value. */ + { + rprintf ("CcWmNEWHTHUMB"); + } break; + case CcWmNEWVTHUMB: /* hwnd, vthumb; no return value. */ + { + rprintf ("CcWmNEWVTHUMB"); + } break; + case CcWmTIMER: /* HITEM, tickcount; no return value. */ + { + rprintf ("CcWmTIMER"); + } break; + case CcWmIDLETIMER: /* no params; no return value. */ + { + rprintf ("CcWmIDLETIMER"); + } break; + case CcWmINITDIALOG: /* hdlg; x y w h hwnd result. */ + { + rprintf ("CcWmINITDIALOG"); + } break; + case CcWmBUTTONCLICKED: /* hdlg, hbut; no return value. */ + { + rprintf ("CcWmBUTTONCLICKED"); + } break; + /* case CcWmCOMBOSELECT: */ /* hwnd, combo, newsel; no return value. */ + /* { + rprintf ("CcWmCOMBOSELECT"); + } break;*/ + case CcWmDRAWCONTROL: /* hdlog, hctrl, hdc, x,y, enabled; no return + value. */ + { + rprintf ("CcWmDRAWCONTROL"); + } break; + /*case CcWmSETCURSOR:*/ /* hwnd; cursor code return. */ + /* { + rprintf ("CcWmSETCURSOR"); + } break;*/ + /* case CcWmLOSEMODELESSDLOG:*/ /* hwnd; bool return value. */ + /* { + rprintf ("CcWmLOSEMODELESSDLOG"); + } break;*/ + /* case CcRqBEEP: */ /* no params; no result. */ + /* { + rprintf ("CcRqBEEP"); + } break; */ + case CcRqDOMESSAGE: /* no params; no result */ + { + rprintf ("CcRqDOMESSAGE"); + } break; + case CcRqINSERTMENUITEM: /* on/off, hmenu, textptr, marked, + pos; HITEM result. */ + { + rprintf ("CcRqINSERTMENUITEM"); + } break; + case CcRqCHECKMENUITEM: /* menu, HITEM, on/off; no result. */ + { + rprintf ("CcRqCHECKMENUITEM"); + } break; + case CcRqREMOVEMENUITEM: /* menu, HITEM; no result. */ + { + rprintf ("CcRqREMOVEMENUITEM"); + } break; + case CcRqMODIFYMENUITEM: /* HITEM, on/off, hmenu, textptr, + marked; no result. */ + { + rprintf ("CcRqMODIFYMENUITEM"); + } break; + case CcRqITEMENABLE: /* parent, HITEM, onoff; no result. */ + { + rprintf ("CcRqITEMENABLE"); + } break; + case CcRqMODIFYMENU: /* on/off, hmenu, textptr, hsubmenu, pos; no + result. */ + { + rprintf ("CcRqMODIFYMENU"); + } break; + case CcRqMENUENABLE: /* parent, pos, onoff; no result. */ + { + rprintf ("CcRqMENUENABLE"); + } break; + case CcRqINSERTSEPARATOR: /* hmenu, pos; no result. */ + { + rprintf ("CcRqINSERTSEPARATOR"); + } break; + case CcRqCREATEPOPMENU: /* no params; HMENU result. */ + { + rprintf ("CcRqCREATEPOPMENU"); + } break; + case CcRqDRAWMBAR: /* no params; no result. */ + { + rprintf ("CcRqDRAWMBAR"); + } break; + case CcRqDESTROYWINDOW: /* hwnd; no result. */ + { + rprintf ("CcRqDESTROYWINDOW"); + } break; + case CcRqBEGINPAINT: /* hwnd; HDC result. */ + { + rprintf ("CcRqBEGINPAINT"); + } break; + case CcRqENDPAINT: /* hwnd, hdc; no result. */ + { + rprintf ("CcRqENDPAINT"); + } break; case CcRqSETSCROLLPOS: { rprintf("CcRqSETSCROLLPOS"); @@ -567,1057 +567,1057 @@ void printCCI (CrossCallInfo * pcci) { rprintf("CcRqSETSCROLLSIZE"); } break; - /*case CcRqGETDC:*/ /* hwnd; HDC result. */ - /* { - rprintf ("CcRqGETDC"); - } break; */ - /*case CcRqRELEASEDC: */ /* hwnd, hdc; no result. */ - /* { - rprintf ("CcRqRELEASEDC"); - } break; */ - /* case CcRqINVALIDATEWINDOW: */ /* hwnd; no result. */ - /* { - rprintf ("CcRqINVALIDATEWINDOW"); - } break; */ - case CcRqSETWINDOWTITLE: /* hwnd, textptr; no result. */ - { - rprintf ("CcRqSETWINDOWTITLE"); - } break; - case CcRqGETWINDOWTEXT: /* hwnd; textptr result. */ - { - rprintf ("CcRqGETWINDOWTEXT"); - } break; - case CcRqGETCLIENTSIZE: /* hwnd; width, height result. */ - { - rprintf ("CcRqGETCLIENTSIZE"); - } break; - case CcRqGETWINDOWPOS: /* hwnd; left, top result. */ - { - rprintf ("CcRqGETWINDOWPOS"); - } break; - case CcRqCHANGEWINDOWCURSOR: /* hwnd, cursor code; no result. */ - { - rprintf ("CcRqCHANGEWINDOWCURSOR"); - } break; - case CcRqOBSCURECURSOR: /* no params; no result. */ - { - rprintf ("CcRqOBSCURECURSOR"); - } break; - /*case CcRqSETGLOBALCURSOR:*/ /* cursorcode; no result. */ - /* { - rprintf ("CcRqSETGLOBALCURSOR"); - } break;*/ - /*case CcRqRESETCURSOR:*/ /* no params; no result. */ - /* { - rprintf ("CcRqRESETCURSOR"); - } break; */ - case CcRqGETFONTNAMES: /* no params; no result. */ - { - rprintf ("CcRqGETFONTNAMES"); - } break; - case CcRqGETFONTSIZES: /* textptr; no result. */ - { - rprintf ("CcRqGETFONTSIZES"); - } break; - case CcCbFONTNAME: /* textptr; no result. */ - { - rprintf ("CcCbFONTNAME"); - } break; - case CcCbFONTSIZE: /* size, isTrueType; no result. */ - { - rprintf ("CcCbFONTSIZE"); - } break; - /*case CcRqGETCURTIME:*/ /* no params; hours, minutes, seconds. */ - /* { - rprintf ("CcRqGETCURTIME"); - } break;*/ - /*case CcRqGETCURDATE:*/ /* no params; year, month, day, weekday. */ - /* { - rprintf ("CcRqGETCURDATE"); - } break; */ - /*case CcRqWAIT:*/ /* milliseconds; no result. */ - /* { - rprintf ("CcRqWAIT"); - } break;*/ - /*case CcRqGETBLINKTIME:*/ /* no params; millisec result. */ - /* { - rprintf ("CcRqGETBLINKTIME"); - } break;*/ - case CcRqCREATEDIALOG: /* textptr; HWND result. */ - { - rprintf ("CcRqCREATEDIALOG"); - } break; - case CcRqCREATEBUTTON: /* hwnd, x,y,w,h, isdefbut; HWND result. */ - { - rprintf ("CcRqCREATEBUTTON"); - } break; - case CcRqCREATESTATICTXT: /* hwnd, x,y,w,h; HWND result. */ - { - rprintf ("CcRqCREATESTATICTXT"); - } break; - case CcRqCREATEEDITTXT: /* hwnd, x,y,w,h, ismultiline; HWND - result. */ - { - rprintf ("CcRqCREATEEDITTXT"); - } break; - case CcRqCREATERADIOBUT: /* hwnd, x,y,w,h, isselected; HWND - result. */ - { - rprintf ("CcRqCREATERADIOBUT"); - } break; - case CcRqCREATECHECKBOX: /* hwnd, x,y,w,h, isselected; HWND - result. */ - { - rprintf ("CcRqCREATECHECKBOX"); - } break; - case CcRqCREATEPOPUP: /* hwnd, x,y,w,h; HWND result. */ - { - rprintf ("CcRqCREATEPOPUP"); - } break; - case CcRqCREATEICONBUT: /* hwnd, x,y,w,h; HWND result. */ - { - rprintf ("CcRqCREATEICONBUT"); - } break; - case CcRqCREATECUSTOM: /* hwnd, x,y,w,h; HWND result. */ - { - rprintf ("CcRqCREATECUSTOM"); - } break; - case CcRqENABLECONTROL: /* hwnd, bool; no result. */ - { - rprintf ("CcRqENABLECONTROL"); - } break; - case CcRqSETITEMCHECK: /* hwnd, bool; no result. */ - { - rprintf ("CcRqSETITEMCHECK"); - } break; - case CcRqADDTOPOPUP: /* hwnd, textptr, enabled, selected; Pos - result. */ - { - rprintf ("CcRqADDTOPOPUP"); - } break; - case CcRqENABLEPOPUPITEM: /* hwnd, pos, enabled; no result. */ - { - rprintf ("CcRqENABLEPOPUPITEM"); - } break; - case CcRqSELECTPOPUPITEM: /* hwnd, pos; no result. */ - { - rprintf ("CcRqSELECTPOPUPITEM"); - } break; - case CcRqFILEOPENDIALOG: /* no params; bool, textptr result; */ - { - rprintf ("CcRqFILEOPENDIALOG"); - } break; - case CcRqFILESAVEDIALOG: /* promptptr, nameptr; bool, textptr - result; */ - { - rprintf ("CcRqFILESAVEDIALOG"); - } break; - case CcRqSETCLIPBOARDTEXT: /* textptr; no result. */ - { - rprintf ("CcRqSETCLIPBOARDTEXT"); - } break; - case CcRqGETCLIPBOARDTEXT: /* no params; textptr result. */ - { - rprintf ("CcRqGETCLIPBOARDTEXT"); - } break; - case CcRqCLIPBOARDHASTEXT: /* no params; bool result. */ - { - rprintf ("CcRqCLIPBOARDHASTEXT"); - } break; - default: - { - rprintf ("Unknown CCI: %d", pcci->mess); - } break; - } + /*case CcRqGETDC:*/ /* hwnd; HDC result. */ + /* { + rprintf ("CcRqGETDC"); + } break; */ + /*case CcRqRELEASEDC: */ /* hwnd, hdc; no result. */ + /* { + rprintf ("CcRqRELEASEDC"); + } break; */ + /* case CcRqINVALIDATEWINDOW: */ /* hwnd; no result. */ + /* { + rprintf ("CcRqINVALIDATEWINDOW"); + } break; */ + case CcRqSETWINDOWTITLE: /* hwnd, textptr; no result. */ + { + rprintf ("CcRqSETWINDOWTITLE"); + } break; + case CcRqGETWINDOWTEXT: /* hwnd; textptr result. */ + { + rprintf ("CcRqGETWINDOWTEXT"); + } break; + case CcRqGETCLIENTSIZE: /* hwnd; width, height result. */ + { + rprintf ("CcRqGETCLIENTSIZE"); + } break; + case CcRqGETWINDOWPOS: /* hwnd; left, top result. */ + { + rprintf ("CcRqGETWINDOWPOS"); + } break; + case CcRqCHANGEWINDOWCURSOR: /* hwnd, cursor code; no result. */ + { + rprintf ("CcRqCHANGEWINDOWCURSOR"); + } break; + case CcRqOBSCURECURSOR: /* no params; no result. */ + { + rprintf ("CcRqOBSCURECURSOR"); + } break; + /*case CcRqSETGLOBALCURSOR:*/ /* cursorcode; no result. */ + /* { + rprintf ("CcRqSETGLOBALCURSOR"); + } break;*/ + /*case CcRqRESETCURSOR:*/ /* no params; no result. */ + /* { + rprintf ("CcRqRESETCURSOR"); + } break; */ + case CcRqGETFONTNAMES: /* no params; no result. */ + { + rprintf ("CcRqGETFONTNAMES"); + } break; + case CcRqGETFONTSIZES: /* textptr; no result. */ + { + rprintf ("CcRqGETFONTSIZES"); + } break; + case CcCbFONTNAME: /* textptr; no result. */ + { + rprintf ("CcCbFONTNAME"); + } break; + case CcCbFONTSIZE: /* size, isTrueType; no result. */ + { + rprintf ("CcCbFONTSIZE"); + } break; + /*case CcRqGETCURTIME:*/ /* no params; hours, minutes, seconds. */ + /* { + rprintf ("CcRqGETCURTIME"); + } break;*/ + /*case CcRqGETCURDATE:*/ /* no params; year, month, day, weekday. */ + /* { + rprintf ("CcRqGETCURDATE"); + } break; */ + /*case CcRqWAIT:*/ /* milliseconds; no result. */ + /* { + rprintf ("CcRqWAIT"); + } break;*/ + /*case CcRqGETBLINKTIME:*/ /* no params; millisec result. */ + /* { + rprintf ("CcRqGETBLINKTIME"); + } break;*/ + case CcRqCREATEDIALOG: /* textptr; HWND result. */ + { + rprintf ("CcRqCREATEDIALOG"); + } break; + case CcRqCREATEBUTTON: /* hwnd, x,y,w,h, isdefbut; HWND result. */ + { + rprintf ("CcRqCREATEBUTTON"); + } break; + case CcRqCREATESTATICTXT: /* hwnd, x,y,w,h; HWND result. */ + { + rprintf ("CcRqCREATESTATICTXT"); + } break; + case CcRqCREATEEDITTXT: /* hwnd, x,y,w,h, ismultiline; HWND + result. */ + { + rprintf ("CcRqCREATEEDITTXT"); + } break; + case CcRqCREATERADIOBUT: /* hwnd, x,y,w,h, isselected; HWND + result. */ + { + rprintf ("CcRqCREATERADIOBUT"); + } break; + case CcRqCREATECHECKBOX: /* hwnd, x,y,w,h, isselected; HWND + result. */ + { + rprintf ("CcRqCREATECHECKBOX"); + } break; + case CcRqCREATEPOPUP: /* hwnd, x,y,w,h; HWND result. */ + { + rprintf ("CcRqCREATEPOPUP"); + } break; + case CcRqCREATEICONBUT: /* hwnd, x,y,w,h; HWND result. */ + { + rprintf ("CcRqCREATEICONBUT"); + } break; + case CcRqCREATECUSTOM: /* hwnd, x,y,w,h; HWND result. */ + { + rprintf ("CcRqCREATECUSTOM"); + } break; + case CcRqENABLECONTROL: /* hwnd, bool; no result. */ + { + rprintf ("CcRqENABLECONTROL"); + } break; + case CcRqSETITEMCHECK: /* hwnd, bool; no result. */ + { + rprintf ("CcRqSETITEMCHECK"); + } break; + case CcRqADDTOPOPUP: /* hwnd, textptr, enabled, selected; Pos + result. */ + { + rprintf ("CcRqADDTOPOPUP"); + } break; + case CcRqENABLEPOPUPITEM: /* hwnd, pos, enabled; no result. */ + { + rprintf ("CcRqENABLEPOPUPITEM"); + } break; + case CcRqSELECTPOPUPITEM: /* hwnd, pos; no result. */ + { + rprintf ("CcRqSELECTPOPUPITEM"); + } break; + case CcRqFILEOPENDIALOG: /* no params; bool, textptr result; */ + { + rprintf ("CcRqFILEOPENDIALOG"); + } break; + case CcRqFILESAVEDIALOG: /* promptptr, nameptr; bool, textptr + result; */ + { + rprintf ("CcRqFILESAVEDIALOG"); + } break; + case CcRqSETCLIPBOARDTEXT: /* textptr; no result. */ + { + rprintf ("CcRqSETCLIPBOARDTEXT"); + } break; + case CcRqGETCLIPBOARDTEXT: /* no params; textptr result. */ + { + rprintf ("CcRqGETCLIPBOARDTEXT"); + } break; + case CcRqCLIPBOARDHASTEXT: /* no params; bool result. */ + { + rprintf ("CcRqCLIPBOARDHASTEXT"); + } break; + default: + { + rprintf ("Unknown CCI: %d", pcci->mess); + } break; + } } /* printCCI */ #ifdef LOGFILE void printMessage (char *fname, HWND hWin, UINT uMess, WPARAM wPara, LPARAM lPara) { - switch (uMess) - { - case WM_ACTIVATE: - { - rprintf ("== %s got %s, hwnd = %d, ", fname, "WM_ACTIVATE", hWin); - switch (LOWORD (wPara)) /* activation flag */ - { - case WA_ACTIVE: - rprintf ("fActive = WA_ACTIVE, "); - break; - case WA_CLICKACTIVE: - rprintf ("fActive = WA_CLICKACTIVE, "); - break; - case WA_INACTIVE: - rprintf ("fActive = WA_INACTIVE, "); - break; - } - /*rprintf ("fMinimized = %s, ", BOOLstring ((BOOL) HIWORD (wPara))); minimized flag */ - rprintf ("other_hwnd = %d\n", lPara); /* window handle */ - } break; - case WM_ACTIVATEAPP: - { - rprintf ("== %s got %s, hwnd = %d, fActive = %s, other_thread = %d\n", fname, "WM_ACTIVATEAPP", hWin, BOOLstring ((BOOL) wPara), lPara); - } break; - case WM_NCHITTEST: - { - } break; - case WM_SETCURSOR: - { - } break; - case WM_MOVE: - { - rprintf ("== %s got %s, hwnd = %d, x = %d, y = %d\n", fname, "WM_MOVE", hWin, LOWORD (lPara), HIWORD (lPara)); - } break; - case WM_SIZE: - { - rprintf ("== %s got %s, hwnd = %d, wPara = ", fname, "WM_SIZE", hWin); - switch (wPara) - { - case SIZE_MAXHIDE: - rprintf ("SIZE_MAXHIDE"); - break; - case SIZE_MAXIMIZED: - rprintf ("SIZE_MAXIMIZED"); - break; - case SIZE_MAXSHOW: - rprintf ("SIZE_MAXSHOW"); - break; - case SIZE_MINIMIZED: - rprintf ("SIZE_MINIMIZED"); - break; - case SIZE_RESTORED: - rprintf ("SIZE_RESTORED"); - break; - default: - rprintf ("unknown"); - break; - } - rprintf (", width =%d, height = %d\n", LOWORD (lPara), HIWORD (lPara)); - } break; - case WM_HSCROLL: - { - rprintf ("== %s got %s, hwnd = %d, ", fname, "WM_HSCROLL", hWin); - switch ((int) LOWORD (wPara)) - { - case SB_BOTTOM: - rprintf ("scrollcode = SB_BOTTOM\n"); - break; - case SB_ENDSCROLL: - rprintf ("scrollcode = SB_ENDSCROLL\n"); - break; - case SB_LINELEFT: - rprintf ("scrollcode = SB_LINELEFT\n"); - break; - case SB_LINERIGHT: - rprintf ("scrollcode = SB_LINERIGHT\n"); - break; - case SB_PAGELEFT: - rprintf ("scrollcode = SB_PAGELEFT\n"); - break; - case SB_PAGERIGHT: - rprintf ("scrollcode = SB_PAGERIGHT\n"); - break; - case SB_THUMBPOSITION: - rprintf ("scrollcode = SB_THUMBPOSITION, nPos = %d\n", HIWORD (wPara)); - break; - case SB_THUMBTRACK: - rprintf ("scrollcode = SB_THUMBTRACK, nPos = %d\n", HIWORD (wPara)); - break; - case SB_TOP: - rprintf ("scrollcode = SB_TOP\n"); - break; - } - } break; - case WM_VSCROLL: - { - rprintf ("== %s got %s, hwnd = %d, ", fname, "WM_VSCROLL", hWin); - - switch (LOWORD (wPara)) - { - case SB_BOTTOM: - rprintf ("scrollcode = SB_BOTTOM\n"); - break; - case SB_ENDSCROLL: - rprintf ("scrollcode = SB_ENDSCROLL\n"); - break; - case SB_LINEDOWN: - rprintf ("scrollcode = SB_LINEDOWN\n"); - break; - case SB_LINEUP: - rprintf ("scrollcode = SB_LINEUP\n"); - break; - case SB_PAGEDOWN: - rprintf ("scrollcode = SB_PAGEDOWN\n"); - break; - case SB_PAGEUP: - rprintf ("scrollcode = SB_PAGEUP\n"); - break; - case SB_THUMBPOSITION: - rprintf ("scrollcode = SB_THUMBPOSITION, nPos = %d\n", HIWORD (wPara)); - break; - case SB_THUMBTRACK: - rprintf ("scrollcode = SB_THUMBTRACK, nPos = %d\n", HIWORD (wPara)); - break; - case SB_TOP: - rprintf ("scrollcode = SB_TOP\n"); - break; - } - } break; - case WM_TIMER: - { /* rprintf("== %s got %s, hwnd = %d, wParam = %d\n", fname, - "WM_TIMER", hWin, wPara); */ - } break; - case WM_ENABLE: - { - rprintf ("== %s got %s, hwnd = %d, wParam = %s\n", fname, "WM_ENABLE", hWin, BOOLstring ((BOOL) wPara)); - } break; - case WM_ENTERIDLE: - { /* rprintf("== %s got %s, hwnd = %d\n", fname, - "WM_ENTERIDLE", hWin); */ - } break; - case WM_CHAR: - { - rprintf ("== %s got %s, hwnd = %d, char = \'%c\'[%d]\n", fname, "WM_CHAR", hWin, wPara, wPara); - } break; -/*--------------------------------------------- */ - case WM_NULL: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NULL", hWin); - } break; - case WM_CREATE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CREATE", hWin); - } break; - case WM_DESTROY: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DESTROY", hWin); - } break; - case WM_SETFOCUS: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETFOCUS", hWin); - } break; - case WM_KILLFOCUS: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_KILLFOCUS", hWin); - } break; - case WM_SETREDRAW: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETREDRAW", hWin); - } break; - case WM_SETTEXT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETTEXT", hWin); - } break; - case WM_GETTEXT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETTEXT", hWin); - } break; - case WM_GETTEXTLENGTH: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETTEXTLENGTH", hWin); - } break; - case WM_PAINT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PAINT", hWin); - } break; - case WM_CLOSE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CLOSE", hWin); - } break; - case WM_QUERYENDSESSION: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_QUERYENDSESSION", hWin); - } break; - case WM_QUIT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_QUIT", hWin); - } break; - case WM_QUERYOPEN: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_QUERYOPEN", hWin); - } break; - case WM_ERASEBKGND: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_ERASEBKGND", hWin); - } break; - case WM_SYSCOLORCHANGE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SYSCOLORCHANGE", hWin); - } break; - case WM_ENDSESSION: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_ENDSESSION", hWin); - } break; - case WM_SHOWWINDOW: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SHOWWINDOW", hWin); - } break; - case WM_SETTINGCHANGE: /* WM_WININICHANGE on NT */ - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETTINGCHANGE", hWin); - } break; - case WM_DEVMODECHANGE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DEVMODECHANGE", hWin); - } break; - case WM_FONTCHANGE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_FONTCHANGE", hWin); - } break; - case WM_TIMECHANGE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_TIMECHANGE", hWin); - } break; - case WM_CANCELMODE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CANCELMODE", hWin); - } break; - case WM_MOUSEACTIVATE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MOUSEACTIVATE", hWin); - } break; - case WM_CHILDACTIVATE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CHILDACTIVATE", hWin); - } break; - case WM_QUEUESYNC: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_QUEUESYNC", hWin); - } break; - case WM_GETMINMAXINFO: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETMINMAXINFO", hWin); - } break; - case WM_PAINTICON: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PAINTICON", hWin); - } break; - case WM_ICONERASEBKGND: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_ICONERASEBKGND", hWin); - } break; - case WM_NEXTDLGCTL: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NEXTDLGCTL", hWin); - } break; - case WM_SPOOLERSTATUS: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SPOOLERSTATUS", hWin); - } break; - case WM_DRAWITEM: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DRAWITEM", hWin); - } break; - case WM_MEASUREITEM: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MEASUREITEM", hWin); - } break; - case WM_DELETEITEM: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DELETEITEM", hWin); - } break; - case WM_VKEYTOITEM: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_VKEYTOITEM", hWin); - } break; - case WM_CHARTOITEM: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CHARTOITEM", hWin); - } break; - case WM_SETFONT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETFONT", hWin); - } break; - case WM_GETFONT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETFONT", hWin); - } break; - case WM_SETHOTKEY: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETHOTKEY", hWin); - } break; - case WM_GETHOTKEY: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETHOTKEY", hWin); - } break; - case WM_QUERYDRAGICON: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_QUERYDRAGICON", hWin); - } break; - case WM_COMPAREITEM: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_COMPAREITEM", hWin); - } break; - case WM_COMPACTING: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_COMPACTING", hWin); - } break; - case WM_COMMNOTIFY: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_COMMNOTIFY", hWin); - } break; - case WM_WINDOWPOSCHANGING: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_WINDOWPOSCHANGING", hWin); - } break; - case WM_WINDOWPOSCHANGED: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_WINDOWPOSCHANGED", hWin); - } break; - case WM_POWER: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_POWER", hWin); - } break; - case WM_COPYDATA: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_COPYDATA", hWin); - } break; - case WM_CANCELJOURNAL: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CANCELJOURNAL", hWin); - } break; - case WM_NOTIFY: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NOTIFY", hWin); - } break; - case WM_INPUTLANGCHANGEREQUEST: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_INPUTLANGCHANGEREQUEST", hWin); - } break; - case WM_INPUTLANGCHANGE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_INPUTLANGCHANGE", hWin); - } break; - case WM_TCARD: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_TCARD", hWin); - } break; - case WM_HELP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_HELP", hWin); - } break; - case WM_USERCHANGED: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_USERCHANGED", hWin); - } break; - case WM_NOTIFYFORMAT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NOTIFYFORMAT", hWin); - } break; - case WM_CONTEXTMENU: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CONTEXTMENU", hWin); - } break; - case WM_STYLECHANGING: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_STYLECHANGING", hWin); - } break; - case WM_STYLECHANGED: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_STYLECHANGED", hWin); - } break; - case WM_DISPLAYCHANGE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DISPLAYCHANGE", hWin); - } break; - case WM_GETICON: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETICON", hWin); - } break; - case WM_SETICON: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETICON", hWin); - } break; - case WM_NCCREATE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCCREATE", hWin); - } break; - case WM_NCDESTROY: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCDESTROY", hWin); - } break; - case WM_NCCALCSIZE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCCALCSIZE", hWin); - } break; - case WM_NCPAINT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCPAINT", hWin); - } break; - case WM_NCACTIVATE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCACTIVATE", hWin); - } break; - case WM_GETDLGCODE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETDLGCODE", hWin); - } break; - case WM_NCMOUSEMOVE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCMOUSEMOVE", hWin); - } break; - case WM_NCLBUTTONDOWN: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCLBUTTONDOWN", hWin); - } break; - case WM_NCLBUTTONUP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCLBUTTONUP", hWin); - } break; - case WM_NCLBUTTONDBLCLK: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCLBUTTONDBLCLK", hWin); - } break; - case WM_NCRBUTTONDOWN: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCRBUTTONDOWN", hWin); - } break; - case WM_NCRBUTTONUP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCRBUTTONUP", hWin); - } break; - case WM_NCRBUTTONDBLCLK: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCRBUTTONDBLCLK", hWin); - } break; - case WM_NCMBUTTONDOWN: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCMBUTTONDOWN", hWin); - } break; - case WM_NCMBUTTONUP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCMBUTTONUP", hWin); - } break; - case WM_NCMBUTTONDBLCLK: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCMBUTTONDBLCLK", hWin); - } break; - case WM_KEYDOWN: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_KEYDOWN", hWin); - } break; - case WM_KEYUP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_KEYUP", hWin); - } break; - case WM_DEADCHAR: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DEADCHAR", hWin); - } break; - case WM_SYSKEYDOWN: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SYSKEYDOWN", hWin); - } break; - case WM_SYSKEYUP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SYSKEYUP", hWin); - } break; - case WM_SYSCHAR: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SYSCHAR", hWin); - } break; - case WM_SYSDEADCHAR: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SYSDEADCHAR", hWin); - } break; - case WM_IME_STARTCOMPOSITION: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_STARTCOMPOSITION", hWin); - } break; - case WM_IME_ENDCOMPOSITION: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_ENDCOMPOSITION", hWin); - } break; - case WM_IME_COMPOSITION: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_COMPOSITION", hWin); - } break; - case WM_INITDIALOG: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_INITDIALOG", hWin); - } break; - case WM_COMMAND: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_COMMAND", hWin); - } break; - case WM_SYSCOMMAND: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SYSCOMMAND", hWin); - } break; - case WM_INITMENU: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_INITMENU", hWin); - } break; - case WM_INITMENUPOPUP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_INITMENUPOPUP", hWin); - } break; - case WM_MENUSELECT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MENUSELECT", hWin); - } break; - case WM_MENUCHAR: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MENUCHAR", hWin); - } break; - case WM_CTLCOLORMSGBOX: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLORMSGBOX", hWin); - } break; - case WM_CTLCOLOREDIT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLOREDIT", hWin); - } break; - case WM_CTLCOLORLISTBOX: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLORLISTBOX", hWin); - } break; - case WM_CTLCOLORBTN: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLORBTN", hWin); - } break; - case WM_CTLCOLORDLG: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLORDLG", hWin); - } break; - case WM_CTLCOLORSCROLLBAR: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLORSCROLLBAR", hWin); - } break; - case WM_CTLCOLORSTATIC: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLORSTATIC", hWin); - } break; - case WM_MOUSEMOVE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MOUSEMOVE", hWin); - } break; - case WM_LBUTTONDOWN: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_LBUTTONDOWN", hWin); - } break; - case WM_LBUTTONUP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_LBUTTONUP", hWin); - } break; - case WM_LBUTTONDBLCLK: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_LBUTTONDBLCLK", hWin); - } break; - case WM_RBUTTONDOWN: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_RBUTTONDOWN", hWin); - } break; - case WM_RBUTTONUP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_RBUTTONUP", hWin); - } break; - case WM_RBUTTONDBLCLK: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_RBUTTONDBLCLK", hWin); - } break; - case WM_MBUTTONDOWN: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MBUTTONDOWN", hWin); - } break; - case WM_MBUTTONUP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MBUTTONUP", hWin); - } break; - case WM_MBUTTONDBLCLK: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MBUTTONDBLCLK", hWin); - } break; - case WM_PARENTNOTIFY: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PARENTNOTIFY", hWin); - } break; - case WM_ENTERMENULOOP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_ENTERMENULOOP", hWin); - } break; - case WM_EXITMENULOOP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_EXITMENULOOP", hWin); - } break; - case WM_NEXTMENU: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NEXTMENU", hWin); - } break; - case WM_SIZING: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SIZING", hWin); - } break; - case WM_CAPTURECHANGED: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CAPTURECHANGED", hWin); - } break; - case WM_MOVING: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MOVING", hWin); - } break; - case WM_POWERBROADCAST: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_POWERBROADCAST", hWin); - } break; - case WM_DEVICECHANGE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DEVICECHANGE", hWin); - } break; - case WM_IME_SETCONTEXT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_SETCONTEXT", hWin); - } break; - case WM_IME_NOTIFY: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_NOTIFY", hWin); - } break; - case WM_IME_CONTROL: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_CONTROL", hWin); - } break; - case WM_IME_COMPOSITIONFULL: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_COMPOSITIONFULL", hWin); - } break; - case WM_IME_SELECT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_SELECT", hWin); - } break; - case WM_IME_CHAR: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_CHAR", hWin); - } break; - case WM_IME_KEYDOWN: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_KEYDOWN", hWin); - } break; - case WM_IME_KEYUP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_KEYUP", hWin); - } break; - case WM_MDICREATE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDICREATE", hWin); - } break; - case WM_MDIDESTROY: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIDESTROY", hWin); - } break; - case WM_MDIACTIVATE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIACTIVATE", hWin); - } break; - case WM_MDIRESTORE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIRESTORE", hWin); - } break; - case WM_MDINEXT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDINEXT", hWin); - } break; - case WM_MDIMAXIMIZE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIMAXIMIZE", hWin); - } break; - case WM_MDITILE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDITILE", hWin); - } break; - case WM_MDICASCADE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDICASCADE", hWin); - } break; - case WM_MDIICONARRANGE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIICONARRANGE", hWin); - } break; - case WM_MDIGETACTIVE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIGETACTIVE", hWin); - } break; - case WM_MDISETMENU: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDISETMENU", hWin); - } break; - case WM_ENTERSIZEMOVE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_ENTERSIZEMOVE", hWin); - } break; - case WM_EXITSIZEMOVE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_EXITSIZEMOVE", hWin); - } break; - case WM_DROPFILES: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DROPFILES", hWin); - } break; - case WM_MDIREFRESHMENU: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIREFRESHMENU", hWin); - } break; - case WM_CUT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CUT", hWin); - } break; - case WM_COPY: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_COPY", hWin); - } break; - case WM_PASTE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PASTE", hWin); - } break; - case WM_CLEAR: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CLEAR", hWin); - } break; - case WM_UNDO: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_UNDO", hWin); - } break; - case WM_RENDERFORMAT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_RENDERFORMAT", hWin); - } break; - case WM_RENDERALLFORMATS: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_RENDERALLFORMATS", hWin); - } break; - case WM_DESTROYCLIPBOARD: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DESTROYCLIPBOARD", hWin); - } break; - case WM_DRAWCLIPBOARD: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DRAWCLIPBOARD", hWin); - } break; - case WM_PAINTCLIPBOARD: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PAINTCLIPBOARD", hWin); - } break; - case WM_VSCROLLCLIPBOARD: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_VSCROLLCLIPBOARD", hWin); - } break; - case WM_SIZECLIPBOARD: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SIZECLIPBOARD", hWin); - } break; - case WM_ASKCBFORMATNAME: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_ASKCBFORMATNAME", hWin); - } break; - case WM_CHANGECBCHAIN: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CHANGECBCHAIN", hWin); - } break; - case WM_HSCROLLCLIPBOARD: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_HSCROLLCLIPBOARD", hWin); - } break; - case WM_QUERYNEWPALETTE: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_QUERYNEWPALETTE", hWin); - } break; - case WM_PALETTEISCHANGING: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PALETTEISCHANGING", hWin); - } break; - case WM_PALETTECHANGED: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PALETTECHANGED", hWin); - } break; - case WM_HOTKEY: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_HOTKEY", hWin); - } break; - case WM_PRINT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PRINT", hWin); - } break; - case WM_PRINTCLIENT: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PRINTCLIENT", hWin); - } break; - case WM_HANDHELDFIRST: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_HANDHELDFIRST", hWin); - } break; - case WM_HANDHELDLAST: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_HANDHELDLAST", hWin); - } break; - case WM_AFXFIRST: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_AFXFIRST", hWin); - } break; - case WM_AFXLAST: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_AFXLAST", hWin); - } break; - case WM_PENWINFIRST: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PENWINFIRST", hWin); - } break; - case WM_PENWINLAST: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PENWINLAST", hWin); - } break; - case WM_APP: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_APP", hWin); - } break; - case WM_USER: - { - rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_USER", hWin); - } break; - default: - { - rprintf ("== %s got UNKOWN MESSAGE %d, hwin = %d\n", fname, uMess, hWin); - } break; - } -} /* printMessage */ -#endif - -gchar* createMnemonicString(gchar* source) -{ - gchar* dest; - static gchar* s; - printf("createMnemonicString\n"); - - if (source == NULL) + switch (uMess) { - dest = rmalloc(1); - dest[0] = 0x00; - return dest; - } - - dest = (gchar *) rmalloc(rstrlen(source)*2+1); - s = dest; - - printf("Making Mnemonic for: %s\n", source); + case WM_ACTIVATE: + { + rprintf ("== %s got %s, hwnd = %d, ", fname, "WM_ACTIVATE", hWin); + switch (LOWORD (wPara)) /* activation flag */ + { + case WA_ACTIVE: + rprintf ("fActive = WA_ACTIVE, "); + break; + case WA_CLICKACTIVE: + rprintf ("fActive = WA_CLICKACTIVE, "); + break; + case WA_INACTIVE: + rprintf ("fActive = WA_INACTIVE, "); + break; + } + /*rprintf ("fMinimized = %s, ", BOOLstring ((BOOL) HIWORD (wPara))); minimized flag */ + rprintf ("other_hwnd = %d\n", lPara); /* window handle */ + } break; + case WM_ACTIVATEAPP: + { + rprintf ("== %s got %s, hwnd = %d, fActive = %s, other_thread = %d\n", fname, "WM_ACTIVATEAPP", hWin, BOOLstring ((BOOL) wPara), lPara); + } break; + case WM_NCHITTEST: + { + } break; + case WM_SETCURSOR: + { + } break; + case WM_MOVE: + { + rprintf ("== %s got %s, hwnd = %d, x = %d, y = %d\n", fname, "WM_MOVE", hWin, LOWORD (lPara), HIWORD (lPara)); + } break; + case WM_SIZE: + { + rprintf ("== %s got %s, hwnd = %d, wPara = ", fname, "WM_SIZE", hWin); + switch (wPara) + { + case SIZE_MAXHIDE: + rprintf ("SIZE_MAXHIDE"); + break; + case SIZE_MAXIMIZED: + rprintf ("SIZE_MAXIMIZED"); + break; + case SIZE_MAXSHOW: + rprintf ("SIZE_MAXSHOW"); + break; + case SIZE_MINIMIZED: + rprintf ("SIZE_MINIMIZED"); + break; + case SIZE_RESTORED: + rprintf ("SIZE_RESTORED"); + break; + default: + rprintf ("unknown"); + break; + } + rprintf (", width =%d, height = %d\n", LOWORD (lPara), HIWORD (lPara)); + } break; + case WM_HSCROLL: + { + rprintf ("== %s got %s, hwnd = %d, ", fname, "WM_HSCROLL", hWin); + switch ((int) LOWORD (wPara)) + { + case SB_BOTTOM: + rprintf ("scrollcode = SB_BOTTOM\n"); + break; + case SB_ENDSCROLL: + rprintf ("scrollcode = SB_ENDSCROLL\n"); + break; + case SB_LINELEFT: + rprintf ("scrollcode = SB_LINELEFT\n"); + break; + case SB_LINERIGHT: + rprintf ("scrollcode = SB_LINERIGHT\n"); + break; + case SB_PAGELEFT: + rprintf ("scrollcode = SB_PAGELEFT\n"); + break; + case SB_PAGERIGHT: + rprintf ("scrollcode = SB_PAGERIGHT\n"); + break; + case SB_THUMBPOSITION: + rprintf ("scrollcode = SB_THUMBPOSITION, nPos = %d\n", HIWORD (wPara)); + break; + case SB_THUMBTRACK: + rprintf ("scrollcode = SB_THUMBTRACK, nPos = %d\n", HIWORD (wPara)); + break; + case SB_TOP: + rprintf ("scrollcode = SB_TOP\n"); + break; + } + } break; + case WM_VSCROLL: + { + rprintf ("== %s got %s, hwnd = %d, ", fname, "WM_VSCROLL", hWin); + + switch (LOWORD (wPara)) + { + case SB_BOTTOM: + rprintf ("scrollcode = SB_BOTTOM\n"); + break; + case SB_ENDSCROLL: + rprintf ("scrollcode = SB_ENDSCROLL\n"); + break; + case SB_LINEDOWN: + rprintf ("scrollcode = SB_LINEDOWN\n"); + break; + case SB_LINEUP: + rprintf ("scrollcode = SB_LINEUP\n"); + break; + case SB_PAGEDOWN: + rprintf ("scrollcode = SB_PAGEDOWN\n"); + break; + case SB_PAGEUP: + rprintf ("scrollcode = SB_PAGEUP\n"); + break; + case SB_THUMBPOSITION: + rprintf ("scrollcode = SB_THUMBPOSITION, nPos = %d\n", HIWORD (wPara)); + break; + case SB_THUMBTRACK: + rprintf ("scrollcode = SB_THUMBTRACK, nPos = %d\n", HIWORD (wPara)); + break; + case SB_TOP: + rprintf ("scrollcode = SB_TOP\n"); + break; + } + } break; + case WM_TIMER: + { /* rprintf("== %s got %s, hwnd = %d, wParam = %d\n", fname, + "WM_TIMER", hWin, wPara); */ + } break; + case WM_ENABLE: + { + rprintf ("== %s got %s, hwnd = %d, wParam = %s\n", fname, "WM_ENABLE", hWin, BOOLstring ((BOOL) wPara)); + } break; + case WM_ENTERIDLE: + { /* rprintf("== %s got %s, hwnd = %d\n", fname, + "WM_ENTERIDLE", hWin); */ + } break; + case WM_CHAR: + { + rprintf ("== %s got %s, hwnd = %d, char = \'%c\'[%d]\n", fname, "WM_CHAR", hWin, wPara, wPara); + } break; +/*--------------------------------------------- */ + case WM_NULL: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NULL", hWin); + } break; + case WM_CREATE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CREATE", hWin); + } break; + case WM_DESTROY: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DESTROY", hWin); + } break; + case WM_SETFOCUS: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETFOCUS", hWin); + } break; + case WM_KILLFOCUS: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_KILLFOCUS", hWin); + } break; + case WM_SETREDRAW: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETREDRAW", hWin); + } break; + case WM_SETTEXT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETTEXT", hWin); + } break; + case WM_GETTEXT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETTEXT", hWin); + } break; + case WM_GETTEXTLENGTH: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETTEXTLENGTH", hWin); + } break; + case WM_PAINT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PAINT", hWin); + } break; + case WM_CLOSE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CLOSE", hWin); + } break; + case WM_QUERYENDSESSION: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_QUERYENDSESSION", hWin); + } break; + case WM_QUIT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_QUIT", hWin); + } break; + case WM_QUERYOPEN: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_QUERYOPEN", hWin); + } break; + case WM_ERASEBKGND: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_ERASEBKGND", hWin); + } break; + case WM_SYSCOLORCHANGE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SYSCOLORCHANGE", hWin); + } break; + case WM_ENDSESSION: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_ENDSESSION", hWin); + } break; + case WM_SHOWWINDOW: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SHOWWINDOW", hWin); + } break; + case WM_SETTINGCHANGE: /* WM_WININICHANGE on NT */ + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETTINGCHANGE", hWin); + } break; + case WM_DEVMODECHANGE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DEVMODECHANGE", hWin); + } break; + case WM_FONTCHANGE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_FONTCHANGE", hWin); + } break; + case WM_TIMECHANGE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_TIMECHANGE", hWin); + } break; + case WM_CANCELMODE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CANCELMODE", hWin); + } break; + case WM_MOUSEACTIVATE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MOUSEACTIVATE", hWin); + } break; + case WM_CHILDACTIVATE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CHILDACTIVATE", hWin); + } break; + case WM_QUEUESYNC: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_QUEUESYNC", hWin); + } break; + case WM_GETMINMAXINFO: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETMINMAXINFO", hWin); + } break; + case WM_PAINTICON: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PAINTICON", hWin); + } break; + case WM_ICONERASEBKGND: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_ICONERASEBKGND", hWin); + } break; + case WM_NEXTDLGCTL: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NEXTDLGCTL", hWin); + } break; + case WM_SPOOLERSTATUS: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SPOOLERSTATUS", hWin); + } break; + case WM_DRAWITEM: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DRAWITEM", hWin); + } break; + case WM_MEASUREITEM: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MEASUREITEM", hWin); + } break; + case WM_DELETEITEM: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DELETEITEM", hWin); + } break; + case WM_VKEYTOITEM: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_VKEYTOITEM", hWin); + } break; + case WM_CHARTOITEM: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CHARTOITEM", hWin); + } break; + case WM_SETFONT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETFONT", hWin); + } break; + case WM_GETFONT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETFONT", hWin); + } break; + case WM_SETHOTKEY: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETHOTKEY", hWin); + } break; + case WM_GETHOTKEY: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETHOTKEY", hWin); + } break; + case WM_QUERYDRAGICON: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_QUERYDRAGICON", hWin); + } break; + case WM_COMPAREITEM: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_COMPAREITEM", hWin); + } break; + case WM_COMPACTING: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_COMPACTING", hWin); + } break; + case WM_COMMNOTIFY: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_COMMNOTIFY", hWin); + } break; + case WM_WINDOWPOSCHANGING: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_WINDOWPOSCHANGING", hWin); + } break; + case WM_WINDOWPOSCHANGED: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_WINDOWPOSCHANGED", hWin); + } break; + case WM_POWER: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_POWER", hWin); + } break; + case WM_COPYDATA: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_COPYDATA", hWin); + } break; + case WM_CANCELJOURNAL: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CANCELJOURNAL", hWin); + } break; + case WM_NOTIFY: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NOTIFY", hWin); + } break; + case WM_INPUTLANGCHANGEREQUEST: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_INPUTLANGCHANGEREQUEST", hWin); + } break; + case WM_INPUTLANGCHANGE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_INPUTLANGCHANGE", hWin); + } break; + case WM_TCARD: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_TCARD", hWin); + } break; + case WM_HELP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_HELP", hWin); + } break; + case WM_USERCHANGED: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_USERCHANGED", hWin); + } break; + case WM_NOTIFYFORMAT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NOTIFYFORMAT", hWin); + } break; + case WM_CONTEXTMENU: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CONTEXTMENU", hWin); + } break; + case WM_STYLECHANGING: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_STYLECHANGING", hWin); + } break; + case WM_STYLECHANGED: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_STYLECHANGED", hWin); + } break; + case WM_DISPLAYCHANGE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DISPLAYCHANGE", hWin); + } break; + case WM_GETICON: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETICON", hWin); + } break; + case WM_SETICON: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SETICON", hWin); + } break; + case WM_NCCREATE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCCREATE", hWin); + } break; + case WM_NCDESTROY: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCDESTROY", hWin); + } break; + case WM_NCCALCSIZE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCCALCSIZE", hWin); + } break; + case WM_NCPAINT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCPAINT", hWin); + } break; + case WM_NCACTIVATE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCACTIVATE", hWin); + } break; + case WM_GETDLGCODE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_GETDLGCODE", hWin); + } break; + case WM_NCMOUSEMOVE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCMOUSEMOVE", hWin); + } break; + case WM_NCLBUTTONDOWN: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCLBUTTONDOWN", hWin); + } break; + case WM_NCLBUTTONUP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCLBUTTONUP", hWin); + } break; + case WM_NCLBUTTONDBLCLK: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCLBUTTONDBLCLK", hWin); + } break; + case WM_NCRBUTTONDOWN: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCRBUTTONDOWN", hWin); + } break; + case WM_NCRBUTTONUP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCRBUTTONUP", hWin); + } break; + case WM_NCRBUTTONDBLCLK: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCRBUTTONDBLCLK", hWin); + } break; + case WM_NCMBUTTONDOWN: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCMBUTTONDOWN", hWin); + } break; + case WM_NCMBUTTONUP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCMBUTTONUP", hWin); + } break; + case WM_NCMBUTTONDBLCLK: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NCMBUTTONDBLCLK", hWin); + } break; + case WM_KEYDOWN: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_KEYDOWN", hWin); + } break; + case WM_KEYUP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_KEYUP", hWin); + } break; + case WM_DEADCHAR: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DEADCHAR", hWin); + } break; + case WM_SYSKEYDOWN: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SYSKEYDOWN", hWin); + } break; + case WM_SYSKEYUP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SYSKEYUP", hWin); + } break; + case WM_SYSCHAR: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SYSCHAR", hWin); + } break; + case WM_SYSDEADCHAR: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SYSDEADCHAR", hWin); + } break; + case WM_IME_STARTCOMPOSITION: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_STARTCOMPOSITION", hWin); + } break; + case WM_IME_ENDCOMPOSITION: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_ENDCOMPOSITION", hWin); + } break; + case WM_IME_COMPOSITION: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_COMPOSITION", hWin); + } break; + case WM_INITDIALOG: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_INITDIALOG", hWin); + } break; + case WM_COMMAND: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_COMMAND", hWin); + } break; + case WM_SYSCOMMAND: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SYSCOMMAND", hWin); + } break; + case WM_INITMENU: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_INITMENU", hWin); + } break; + case WM_INITMENUPOPUP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_INITMENUPOPUP", hWin); + } break; + case WM_MENUSELECT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MENUSELECT", hWin); + } break; + case WM_MENUCHAR: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MENUCHAR", hWin); + } break; + case WM_CTLCOLORMSGBOX: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLORMSGBOX", hWin); + } break; + case WM_CTLCOLOREDIT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLOREDIT", hWin); + } break; + case WM_CTLCOLORLISTBOX: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLORLISTBOX", hWin); + } break; + case WM_CTLCOLORBTN: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLORBTN", hWin); + } break; + case WM_CTLCOLORDLG: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLORDLG", hWin); + } break; + case WM_CTLCOLORSCROLLBAR: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLORSCROLLBAR", hWin); + } break; + case WM_CTLCOLORSTATIC: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CTLCOLORSTATIC", hWin); + } break; + case WM_MOUSEMOVE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MOUSEMOVE", hWin); + } break; + case WM_LBUTTONDOWN: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_LBUTTONDOWN", hWin); + } break; + case WM_LBUTTONUP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_LBUTTONUP", hWin); + } break; + case WM_LBUTTONDBLCLK: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_LBUTTONDBLCLK", hWin); + } break; + case WM_RBUTTONDOWN: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_RBUTTONDOWN", hWin); + } break; + case WM_RBUTTONUP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_RBUTTONUP", hWin); + } break; + case WM_RBUTTONDBLCLK: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_RBUTTONDBLCLK", hWin); + } break; + case WM_MBUTTONDOWN: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MBUTTONDOWN", hWin); + } break; + case WM_MBUTTONUP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MBUTTONUP", hWin); + } break; + case WM_MBUTTONDBLCLK: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MBUTTONDBLCLK", hWin); + } break; + case WM_PARENTNOTIFY: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PARENTNOTIFY", hWin); + } break; + case WM_ENTERMENULOOP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_ENTERMENULOOP", hWin); + } break; + case WM_EXITMENULOOP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_EXITMENULOOP", hWin); + } break; + case WM_NEXTMENU: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_NEXTMENU", hWin); + } break; + case WM_SIZING: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SIZING", hWin); + } break; + case WM_CAPTURECHANGED: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CAPTURECHANGED", hWin); + } break; + case WM_MOVING: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MOVING", hWin); + } break; + case WM_POWERBROADCAST: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_POWERBROADCAST", hWin); + } break; + case WM_DEVICECHANGE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DEVICECHANGE", hWin); + } break; + case WM_IME_SETCONTEXT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_SETCONTEXT", hWin); + } break; + case WM_IME_NOTIFY: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_NOTIFY", hWin); + } break; + case WM_IME_CONTROL: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_CONTROL", hWin); + } break; + case WM_IME_COMPOSITIONFULL: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_COMPOSITIONFULL", hWin); + } break; + case WM_IME_SELECT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_SELECT", hWin); + } break; + case WM_IME_CHAR: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_CHAR", hWin); + } break; + case WM_IME_KEYDOWN: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_KEYDOWN", hWin); + } break; + case WM_IME_KEYUP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_IME_KEYUP", hWin); + } break; + case WM_MDICREATE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDICREATE", hWin); + } break; + case WM_MDIDESTROY: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIDESTROY", hWin); + } break; + case WM_MDIACTIVATE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIACTIVATE", hWin); + } break; + case WM_MDIRESTORE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIRESTORE", hWin); + } break; + case WM_MDINEXT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDINEXT", hWin); + } break; + case WM_MDIMAXIMIZE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIMAXIMIZE", hWin); + } break; + case WM_MDITILE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDITILE", hWin); + } break; + case WM_MDICASCADE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDICASCADE", hWin); + } break; + case WM_MDIICONARRANGE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIICONARRANGE", hWin); + } break; + case WM_MDIGETACTIVE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIGETACTIVE", hWin); + } break; + case WM_MDISETMENU: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDISETMENU", hWin); + } break; + case WM_ENTERSIZEMOVE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_ENTERSIZEMOVE", hWin); + } break; + case WM_EXITSIZEMOVE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_EXITSIZEMOVE", hWin); + } break; + case WM_DROPFILES: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DROPFILES", hWin); + } break; + case WM_MDIREFRESHMENU: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_MDIREFRESHMENU", hWin); + } break; + case WM_CUT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CUT", hWin); + } break; + case WM_COPY: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_COPY", hWin); + } break; + case WM_PASTE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PASTE", hWin); + } break; + case WM_CLEAR: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CLEAR", hWin); + } break; + case WM_UNDO: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_UNDO", hWin); + } break; + case WM_RENDERFORMAT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_RENDERFORMAT", hWin); + } break; + case WM_RENDERALLFORMATS: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_RENDERALLFORMATS", hWin); + } break; + case WM_DESTROYCLIPBOARD: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DESTROYCLIPBOARD", hWin); + } break; + case WM_DRAWCLIPBOARD: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_DRAWCLIPBOARD", hWin); + } break; + case WM_PAINTCLIPBOARD: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PAINTCLIPBOARD", hWin); + } break; + case WM_VSCROLLCLIPBOARD: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_VSCROLLCLIPBOARD", hWin); + } break; + case WM_SIZECLIPBOARD: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_SIZECLIPBOARD", hWin); + } break; + case WM_ASKCBFORMATNAME: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_ASKCBFORMATNAME", hWin); + } break; + case WM_CHANGECBCHAIN: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_CHANGECBCHAIN", hWin); + } break; + case WM_HSCROLLCLIPBOARD: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_HSCROLLCLIPBOARD", hWin); + } break; + case WM_QUERYNEWPALETTE: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_QUERYNEWPALETTE", hWin); + } break; + case WM_PALETTEISCHANGING: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PALETTEISCHANGING", hWin); + } break; + case WM_PALETTECHANGED: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PALETTECHANGED", hWin); + } break; + case WM_HOTKEY: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_HOTKEY", hWin); + } break; + case WM_PRINT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PRINT", hWin); + } break; + case WM_PRINTCLIENT: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PRINTCLIENT", hWin); + } break; + case WM_HANDHELDFIRST: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_HANDHELDFIRST", hWin); + } break; + case WM_HANDHELDLAST: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_HANDHELDLAST", hWin); + } break; + case WM_AFXFIRST: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_AFXFIRST", hWin); + } break; + case WM_AFXLAST: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_AFXLAST", hWin); + } break; + case WM_PENWINFIRST: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PENWINFIRST", hWin); + } break; + case WM_PENWINLAST: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_PENWINLAST", hWin); + } break; + case WM_APP: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_APP", hWin); + } break; + case WM_USER: + { + rprintf ("== %s got %s, hwnd = %d\n", fname, "WM_USER", hWin); + } break; + default: + { + rprintf ("== %s got UNKOWN MESSAGE %d, hwin = %d\n", fname, uMess, hWin); + } break; + } +} /* printMessage */ +#endif + +gchar* createMnemonicString(gchar* source) +{ + gchar* dest; + static gchar* s; + printf("createMnemonicString\n"); + + if (source == NULL) + { + dest = rmalloc(1); + dest[0] = 0x00; + return dest; + } + + dest = (gchar *) rmalloc(rstrlen(source)*2+1); + s = dest; + + printf("Making Mnemonic for: %s\n", source); + + while (*source) + { + switch (*source) + { + case '&': + *(dest++) = '_'; + break; + case '_': + *(dest++) = '_'; + *(dest++) = '_'; + default: + *(dest++) = *source; + } + + source++; + } - while (*source) - { - switch (*source) - { - case '&': - *(dest++) = '_'; - break; - case '_': - *(dest++) = '_'; - *(dest++) = '_'; - default: - *(dest++) = *source; - } - - source++; - } - - *dest = 0; + *dest = 0; printf("Generated Mnemonic: %p, %s\n", s, s); - return s; + return s; } -- cgit v1.2.3