From: <wda...@us...> - 2008-04-03 20:30:25
|
Revision: 2408 http://oorexx.svn.sourceforge.net/oorexx/?rev=2408&view=rev Author: wdashley Date: 2008-04-03 13:30:29 -0700 (Thu, 03 Apr 2008) Log Message: ----------- ArtifactID: None Comment: More 4.x updates. Modified Paths: -------------- sandbox/david/4x/grxwidget.cpp sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.h Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-04-03 01:31:01 UTC (rev 2407) +++ sandbox/david/4x/grxwidget.cpp 2008-04-03 20:30:29 UTC (rev 2408) @@ -58,20 +58,15 @@ /* Private Functions */ /*============================================================================*/ -static void signal_func_1(GtkWidget *widget, +static void signal_func_0(GtkWidget *widget, gpointer data) { - char buffer[256]; - RXSTRING entry; + RexxInstance *instance = ((cbcb *)data)->instance; + RexxThreadContext *context; - // set up the queue entry data - g_snprintf(buffer, sizeof(buffer), "%p %s", widget, data); - entry.strptr = buffer; - entry.strlength = strlen(buffer); - - // insert the signal event here - RexxAddQueue(GrxGetRexxQueueName(), &entry, RXQUEUE_FIFO); - + instance->AttachThread(&context); + context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); + context->DetachThread(); return; } @@ -1035,10 +1030,14 @@ { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; if (strcmp(name, "destroy") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_destroy"; g_signal_connect(G_OBJECT(myWidget), "destroy", - G_CALLBACK(signal_func_1), "signal_destroy"); + G_CALLBACK(signal_func_0), cblock); } else { return FALSE; Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-03 01:31:01 UTC (rev 2407) +++ sandbox/david/4x/rexxgtk.cls 2008-04-03 20:30:29 UTC (rev 2408) @@ -43,9 +43,6 @@ .local['!GTK_Queue'] = RxQueue('Create', 'GTKQUEUE23') call GrxSetRexxQueueName .local['!GTK_Queue'] --- Create the widget database -.local['!GTK_Database'] = .directory~new() - -- Create and initialize the GTK quit flag .local['!GTK_Quit'] = .false Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-03 01:31:01 UTC (rev 2407) +++ sandbox/david/4x/rexxgtk.h 2008-04-03 20:30:29 UTC (rev 2408) @@ -61,9 +61,15 @@ extern char * rexxgtk_argv[]; extern int rexxgtk_argc; -extern GrxConstants GrxResponseType[]; +typedef struct _cbcb { + RexxInstance *instance; + char *signal_name; +} cbcb; + + + /*----------------------------------------------------------------------------*/ /* Function Prototypes */ /*----------------------------------------------------------------------------*/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |