From: <wda...@us...> - 2008-03-26 17:58:11
|
Revision: 2406 http://oorexx.svn.sourceforge.net/oorexx/?rev=2406&view=rev Author: wdashley Date: 2008-03-26 09:59:57 -0700 (Wed, 26 Mar 2008) Log Message: ----------- ArtifactID: None Comment: More 4.x updates. Modified Paths: -------------- sandbox/david/4x/grxwidget.cpp Added Paths: ----------- sandbox/david/4x/rexxgtk.cls Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-03-25 18:43:29 UTC (rev 2405) +++ sandbox/david/4x/grxwidget.cpp 2008-03-26 16:59:57 UTC (rev 2406) @@ -81,9 +81,8 @@ /*============================================================================*/ -RexxMethod1(int, // Return type - GrxWidgetNew, // Object_method name - OSELF, self) // Pointer to self +RexxMethod0(int, // Return type + GrxWidgetNew) // Object_method name { GtkWidget *myWidget; @@ -93,12 +92,11 @@ } -RexxMethod1(int, // Return type - GrxWidgetShow, // Object_method name - OSELF, self) // Pointer to self +RexxMethod0(int, // Return type + GrxWidgetShow) // Object_method name { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_show(myWidget); @@ -106,12 +104,11 @@ } -RexxMethod1(int, // Return type - GrxWidgetShowAll, // Object_method name - OSELF, self) // Pointer to self +RexxMethod0(int, // Return type + GrxWidgetShowAll) // Object_method name { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_show_all(myWidget); @@ -119,12 +116,11 @@ } -RexxMethod1(int, // Return type - GrxWidgetHide, // Object_method name - OSELF, self) // Pointer to self +RexxMethod0(int, // Return type + GrxWidgetHide) // Object_method name { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_hide(myWidget); @@ -132,12 +128,11 @@ } -RexxMethod1(int, // Return type - GrxWidgetHideAll, // Object_method name - OSELF, self) // Pointer to self +RexxMethod0(int, // Return type + GrxWidgetHideAll) // Object_method name { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_hide_all(myWidget); @@ -145,14 +140,13 @@ } -RexxMethod3(int, // Return type +RexxMethod2(int, // Return type GrxWidgetHideAll, // Object_method name - OSELF, self, // Pointer to self int width, // width of the widget int height) // height of the widget { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_set_size_request(myWidget, width, height); @@ -160,25 +154,25 @@ } -RexxMethod1(int, // Return type - GrxWidgetDestroy, // Object_method name - OSELF, self) // Pointer to self +RexxMethod0(int, // Return type + GrxWidgetDestroy) // Object_method name { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_destroy(myWidget); + rxptr = NULL; + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); return 0; } -RexxMethod1(int, // Return type - GrxWidgetGrabFocus, // Object_method name - OSELF, self) // Pointer to self +RexxMethod0(int, // Return type + GrxWidgetGrabFocus) // Object_method name { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_grab_focus(myWidget); @@ -186,13 +180,12 @@ } -RexxMethod2(int, // Return type +RexxMethod1(int, // Return type GrxWidgetSetFont, // Object_method name - OSELF, self, // Pointer to self CSTRING, fontname) // Font name { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GtkStyle *style; style = gtk_style_copy(gtk_widget_get_style(myWidget)); @@ -203,12 +196,11 @@ } -RexxMethod1(CSTRING, // Return type - GrxWidgetGetFont, // Object_method name - OSELF, self) // Pointer to self +RexxMethod0(CSTRING, // Return type + GrxWidgetGetFont) // Object_method name { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GtkStyle *style = NULL; style = gtk_widget_get_style(myWidget); @@ -249,24 +241,22 @@ // } -RexxMethod1(CSTRING, // Return type - GrxWidgetGetName, // Object_method name - OSELF, self) // Pointer to self +RexxMethod0(CSTRING, // Return type + GrxWidgetGetName) // Object_method name { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); return gtk_widget_get_name(myWidget); } -RexxMethod2(int, // Return type +RexxMethod1(int, // Return type GrxWidgetSetName, // Object_method name - OSELF, self, // Pointer to self CSTRING, name) // New name { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_set_name(myWidget, name); @@ -274,13 +264,12 @@ } -RexxMethod2(int, // Return type +RexxMethod1(int, // Return type GrxWidgetSetSensitive, // Object_method name - OSELF, self, // Pointer to self int, flag) // Sensitive flag { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_set_sensitive(myWidget, flag); @@ -324,14 +313,13 @@ // } -RexxMethod3(int, // Return type +RexxMethod2(int, // Return type GrxWidgetModifyBG, // Object_method name - OSELF, self, // Pointer to self int, type, // State CSTRING, colorstr) // Color string { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GdkColor color; gdk_color_parse(colorstr, &color); @@ -341,14 +329,13 @@ } -RexxMethod3(int, // Return type +RexxMethod2(int, // Return type GrxWidgetModifyFG, // Object_method name - OSELF, self, // Pointer to self int, type, // State CSTRING, colorstr) // Color string { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GdkColor color; gdk_color_parse(colorstr, &color); @@ -358,14 +345,13 @@ } -RexxMethod3(int, // Return type +RexxMethod2(int, // Return type GrxWidgetSetData, // Object_method name - OSELF, self, // Pointer to self CSTRING, name, // Association name CSTRING, data) // Association data { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); // Note: The memory allocated from strdup is never recovered and // thus causes a memory leak. @@ -375,34 +361,32 @@ } -RexxMethod2(CSTRING, // Return type +RexxMethod1(CSTRING, // Return type GrxWidgetGetData, // Object_method name - OSELF, self, // Pointer to self CSTRING, name) // Association name { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); return (char *)g_object_get_data(G_OBJECT(myWidget), name); } -RexxMethod2(int, // Return type - GrxWidgetConnectSignal, // Object_method name - OSELF, self, // Pointer to self +RexxMethod1(bool, // Return type + GrxWidgetSignalConnect, // Object_method name CSTRING, name) // Signal name { RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue((rxptr); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); if (strcmp(name, "destroy") == 0) { g_signal_connect(G_OBJECT(myWidget), "destroy", G_CALLBACK(signal_func_1), "signal_destroy"); } else { - return RXFUNC_BADCALL; + return FALSE; } - return 0; + return TRUE; } Added: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls (rev 0) +++ sandbox/david/4x/rexxgtk.cls 2008-03-26 16:59:57 UTC (rev 2406) @@ -0,0 +1,422 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +-- Create the Rexx queue we will use for callbacks +.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 + + +/*============================================================================*/ +/* Routine: gtk_main */ +/*============================================================================*/ + +::routine gtk_main public +do while .local['!GTK_Quit'] = .false + call gtk_main_iteration + end +.local['!GTK_Quit'] = .false -- we need this for recursive calls to this function +return + + +/*============================================================================*/ +/* Routine: gtk_main_quit */ +/*============================================================================*/ + +::routine gtk_main_quit public +.local['!GTK_Quit'] = .true +return + + +/*============================================================================*/ +/* Routine: gtk_events_pending */ +/*============================================================================*/ + +::routine gtk_events_pending public +return GrxEventsPending() + + +/*============================================================================*/ +/* Routine: gtk_main_iteration */ +/*============================================================================*/ + +::routine gtk_main_iteration public +call GrxMainIteration +old_queue = RxQueue('Set', .local['!GTK_Queue']) +do while queued() > 0 + pull pointer msg args + widget = .local['!GTK_Database']~at(pointer) + if widget <> .nil then do + widget~run_method(msg, args) + end + end +call RxQueue 'Set', old_queue +return + + +/*============================================================================*/ +/* Routine: GTK_Constant */ +/*============================================================================*/ + +::routine GTK_Constant public +use strict arg id +tid = upper(id) +select + -- GtkWindowType + when tid = 'GTK_WINDOW_TOPLEVEL' then return 0 + when tid = 'GTK_WINDOW_POPUP' then return 1 + -- GtkButtonType + when tid = 'GTK_BUTTONS_NONE' then return 0 + when tid = 'GTK_BUTTONS_OK' then return 1 + when tid = 'GTK_BUTTONS_CLOSE' then return 2 + when tid = 'GTK_BUTTONS_CANCEL' then return 3 + when tid = 'GTK_BUTTONS_YES_NO' then return 4 + when tid = 'GTK_BUTTONS_OK_CANCEL' then return 5 + -- GtkDialogFlags + when tid = 'GTK_DIALOG_MODAL' then return 2**0 + when tid = 'GTK_DIALOG_DESTROY_WITH_PARENT' then return 2**1 + when tid = 'GTK_DIALOG_NO_SEPARATOR' then return 2**2 + -- GtkResponseType + when tid = 'GTK_RESPONSE_NONE' then return -1 + when tid = 'GTK_RESPONSE_REJECT' then return -2 + when tid = 'GTK_RESPONSE_ACCEPT' then return -3 + when tid = 'GTK_RESPONSE_DELETE_EVENT' then return -4 + when tid = 'GTK_RESPONSE_OK' then return -5 + when tid = 'GTK_RESPONSE_CANCEL' then return -6 + when tid = 'GTK_RESPONSE_CLOSE' then return -7 + when tid = 'GTK_RESPONSE_YES' then return -8 + when tid = 'GTK_RESPONSE_NO' then return -9 + when tid = 'GTK_RESPONSE_APPLY' then return -10 + when tid = 'GTK_RESPONSE_HELP' then return -11 + -- GtkMessageType + when tid = 'GTK_MESSAGE_INFO' then return 0 + when tid = 'GTK_MESSAGE_WARNING' then return 1 + when tid = 'GTK_MESSAGE_QUESTION' then return 2 + when tid = 'GTK_MESSAGE_ERROR' then return 3 + when tid = 'GTK_MESSAGE_OTHER' then return 4 + -- GTK stock string defines + when tid = 'GTK_STOCK_ABOUT' then return 'gtk-about' + when tid = 'GTK_STOCK_ADD' then return 'gtk-add' + when tid = 'GTK_STOCK_APPLY' then return 'gtk-apply' + when tid = 'GTK_STOCK_BOLD' then return 'gtk-bold' + when tid = 'GTK_STOCK_CANCEL' then return 'gtk-cancel' + when tid = 'GTK_STOCK_CDROM' then return 'gtk-cdrom' + when tid = 'GTK_STOCK_CLEAR' then return 'gtk-clear' + when tid = 'GTK_STOCK_CLOSE' then return 'gtk-close' + when tid = 'GTK_STOCK_COLOR_PICKER' then return 'gtk-color-picker' + when tid = 'GTK_STOCK_CONVERT' then return 'gtk-comvert' + when tid = 'GTK_STOCK_CONNECT' then return 'gtk-connect' + when tid = 'GTK_STOCK_COPY' then return 'gtk-copy' + when tid = 'GTK_STOCK_CUT' then return 'gtk-cut' + when tid = 'GTK_STOCK_DELETE' then return 'gtk-delete' + when tid = 'GTK_STOCK_DIALOG_ERROR' then return 'gtk-dialog-error' + when tid = 'GTK_STOCK_DIALOG_INFO' then return 'gtk-dialog-info' + when tid = 'GTK_STOCK_DIALOG_QUESTION' then return 'gtk-dialog-question' + when tid = 'GTK_STOCK_DIALOG_WARNING' then return 'gtk-dialog-warning' + when tid = 'GTK_STOCK_DIRECTORY' then return 'gtk-directry' + when tid = 'GTK_STOCK_DISCARD' then return 'gtk-discard' + when tid = 'GTK_STOCK_DISCONNECT' then return 'gtk-disconnect' + when tid = 'GTK_STOCK_DND' then return 'gtk-dnd' + when tid = 'GTK_STOCK_DND_MULTIPLE' then return 'gtk-dnd-multiple' + when tid = 'GTK_STOCK_EDIT' then return 'gtk-edit' + when tid = 'GTK_STOCK_EXECUTE' then return 'gtk-execute' + when tid = 'GTK_STOCK_FILE' then return 'gtk-file' + when tid = 'GTK_STOCK_FIND' then return 'gtk-find' + when tid = 'GTK_STOCK_FIND_AND_REPLACE' then return 'gtk-find-and-replace' + when tid = 'GTK_STOCK_FLOPPY' then return 'gtk-floppy' + when tid = 'GTK_STOCK_FULLSCREEN' then return 'gtk-fullscreen' + when tid = 'GTK_STOCK_GOTO_BOTTOM' then return 'gtk-goto-bottom' + when tid = 'GTK_STOCK_GOTO_FIRST' then return 'gtk-goto-first' + when tid = 'GTK_STOCK_GOTO_LAST' then return 'gtk-goto-last' + when tid = 'GTK_STOCK_GOTO_TOP' then return 'gtk-goto-top' + when tid = 'GTK_STOCK_GO_BACK' then return 'gtk-go-back' + when tid = 'GTK_STOCK_GO_DOWN' then return 'gtk-go-down' + when tid = 'GTK_STOCK_GO_FORWARD' then return 'gtk-go-forward' + when tid = 'GTK_STOCK_GO_UP' then return 'gtk-go-up' + when tid = 'GTK_STOCK_HARDDISK' then return 'gtk-harddisk' + when tid = 'GTK_STOCK_HELP' then return 'gtk-help' + when tid = 'GTK_STOCK_HOME' then return 'gtk-home' + when tid = 'GTK_STOCK_INDENT' then return 'gtk-indent' + when tid = 'GTK_STOCK_INDEX' then return 'gtk-index' + when tid = 'GTK_STOCK_INFO' then return 'gtk-info' + when tid = 'GTK_STOCK_ITALIC' then return 'gtk-italic' + when tid = 'GTK_STOCK_JUMP_TO' then return 'gtk-jump-to' + when tid = 'GTK_STOCK_JUSTIFY_CENTER' then return 'gtk-justify-center' + when tid = 'GTK_STOCK_JUSTIFY_FILL' then return 'gtk-justify-fill' + when tid = 'GTK_STOCK_JUSTIFY_LEFT' then return 'gtk-justify-left' + when tid = 'GTK_STOCK_JUSTIFY_RIGHT' then return 'gtk-justify-right' + when tid = 'GTK_STOCK_LEAVE_FULLSCREEN' then return 'gtk-leave-fullscreen' + when tid = 'GTK_STOCK_MEDIA_FORWARD' then return 'gtk-media-forward' + when tid = 'GTK_STOCK_MEDIA_NEXT' then return 'gtk-media-nect' + when tid = 'GTK_STOCK_MEDIA_PAUSE' then return 'gtk-media-pause' + when tid = 'GTK_STOCK_MEDIA_PLAY' then return 'gtk-media-play' + when tid = 'GTK_STOCK_MEDIA_PREVIOUS' then return 'gtk-media-previous' + when tid = 'GTK_STOCK_MEDIA_RECORD' then return 'gtk-media-record' + when tid = 'GTK_STOCK_MEDIA_REWIND' then return 'gtk-media-rewind' + when tid = 'GTK_STOCK_MEDIA_STOP' then return 'gtk-media-stop' + when tid = 'GTK_STOCK_MISSING_IMAGE' then return 'gtk-missing-image' + when tid = 'GTK_STOCK_NETWORK' then return 'gtk-network' + when tid = 'GTK_STOCK_NEW' then return 'gtk-new' + when tid = 'GTK_STOCK_NO' then return 'gtk-no' + when tid = 'GTK_STOCK_OK' then return 'gtk-ok' + when tid = 'GTK_STOCK_OPEN' then return 'gtk-open' + when tid = 'GTK_STOCK_OREINTATION_LANDSCAPE' then return 'gtk-orientation-landscape' + when tid = 'GTK_STOCK_OREINTATION_PORTRAIT' then return 'gtk-orientation-portrait' + when tid = 'GTK_STOCK_OREINTATION_REVERSE_LANDSCAPE' then return 'gtk-orientation-reverse-landscape' + when tid = 'GTK_STOCK_OREINTATION_REVERSE_LANDSCAPE' then return 'gtk-orientation-reverse-portrait' + when tid = 'GTK_STOCK_PASTE' then return 'gtk-paste' + when tid = 'GTK_STOCK_PREFERENCES' then return 'gtk-preferences' + when tid = 'GTK_STOCK_PRINT' then return 'gtk-print' + when tid = 'GTK_STOCK_PRINT_PREVIEW' then return 'gtk-print-preview' + when tid = 'GTK_STOCK_PROPERTIES' then return 'gtk-properties' + when tid = 'GTK_STOCK_QUIT' then return 'gtk-quit' + when tid = 'GTK_STOCK_REDO' then return 'gtk-redo' + when tid = 'GTK_STOCK_REFRESH' then return 'gtk-refresh' + when tid = 'GTK_STOCK_REMOVE' then return 'gtk-remove' + when tid = 'GTK_STOCK_REVERT_TO_SAVED' then return 'gtk-revert-to-saved' + when tid = 'GTK_STOCK_SAVE' then return 'gtk-save' + when tid = 'GTK_STOCK_SAVE_AS' then return 'gtk-save-as' + when tid = 'GTK_STOCK_SELECT_ALL' then return 'gtk-select-all' + when tid = 'GTK_STOCK_SELECT_COLOR' then return 'gtk-select-color' + when tid = 'GTK_STOCK_SELECT_FONT' then return 'gtk-select-font' + when tid = 'GTK_STOCK_SORT_ASCENDING' then return 'gtk-sort-ascending' + when tid = 'GTK_STOCK_SORT_DESCENDING' then return 'gtk-sort-descending' + when tid = 'GTK_STOCK_SPELL_CHECK' then return 'gtk-spell-check' + when tid = 'GTK_STOCK_STOP' then return 'gtk-stop' + when tid = 'GTK_STOCK_STRIKETHROUGH' then return 'gtk-strikethrough' + when tid = 'GTK_STOCK_UNDELETE' then return 'gtk-undelete' + when tid = 'GTK_STOCK_UNDERLINE' then return 'gtk-underline' + when tid = 'GTK_STOCK_UNDO' then return 'gtk-undo' + when tid = 'GTK_STOCK_UNINDENT' then return 'gtk-unindent' + when tid = 'GTK_STOCK_YES' then return 'gtk-yes' + when tid = 'GTK_STOCK_ZOOM_100' then return 'gtk-zoom-100' + when tid = 'GTK_STOCK_ZOOM_FIT' then return 'gtk-zoom-fit' + when tid = 'GTK_STOCK_ZOOM_IN' then return 'gtk-zoom-in' + when tid = 'GTK_STOCK_ZOOM_OUT' then return 'gtk-zoom-out' + -- GtkFileCoooserAction + when tid = 'GTK_FILE_CHOOSER_ACTION_OPEN' then return 0 + when tid = 'GTK_FILE_CHOOSER_ACTION_SAVE' then return 1 + when tid = 'GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER' then return 2 + when tid = 'GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER' then return 3 + -- GtkAssistancePageType + when tid = 'GTK_ASSISTANT_PAGE_CONTENT' then return 0 + when tid = 'GTK_ASSISTANT_PAGE_INTRO' then return 1 + when tid = 'GTK_ASSISTANT_PAGE_CONFIRM' then return 2 + when tid = 'GTK_ASSISTANT_PAGE_SUMMARY' then return 3 + when tid = 'GTK_ASSISTANT_PAGE_PROGRESS' then return 4 + -- GtkReliefType + when tid = 'GTK_RELIEF_NORMAL' then return 0 + when tid = 'GTK_RELIEF_HALF' then return 1 + when tid = 'GTK_RELIEF_NONO' then return 2 + -- GtkAtom + when tid = 'GTK_SELECTION_PRIMARY' then return 1 + when tid = 'GTK_SELECTION_SECONDARY' then return 2 + when tid = 'GTK_SELECTION_CLIPBOARD' then return 69 + -- GtkShadow + when tid = 'GTK_SHADOW_NONE' then return 0 + when tid = 'GTK_SHADOW_IN' then return 1 + when tid = 'GTK_SHADOW_OUT' then return 2 + when tid = 'GTK_SHADOW_ETCHED_IN' then return 3 + when tid = 'GTK_SHADOW_ETCHED_OUT' then return 4 + -- GtkPositionType + when tid = 'GTK_POS_LEFT' then return 0 + when tid = 'GTK_POS_RIGHT' then return 1 + when tid = 'GTK_POS_TOP' then return 2 + when tid = 'GTK_POS_BOTTOM' then return 3 + -- GtkIconSize + when tid = 'GTK_ICON_SIZE_INVALID' then return 0 + when tid = 'GTK_ICON_SIZE_MENU' then return 1 + when tid = 'GTK_ICON_SIZE_SMALL_TOOLBAR' then return 2 + when tid = 'GTK_ICON_SIZE_LARGE_TOOLBAR' then return 3 + when tid = 'GTK_ICON_SIZE_BUTTON' then return 4 + when tid = 'GTK_ICON_SIZE_DND' then return 5 + when tid = 'GTK_ICON_SIZE_DIALOG' then return 6 + -- GtkJustification + when tid = 'GTK_JUSTIFY_LEFT' then return 0 + when tid = 'GTK_JUSTIFY_RIGHT' then return 1 + when tid = 'GTK_JUSTIFY_CENTER' then return 2 + when tid = 'GTK_JUSTIFY_FILL' then return 3 + -- GtkPolicyType + when tid = 'GTK_POLICY_ALWAYS' then return 0 + when tid = 'GTK_POLICY_AUTOMATIC' then return 1 + when tid = 'GTK_POLICY_NEVER' then return 2 + -- GtkAttachOptions + when tid = 'GTK_EXPAND' then return 2**0 + when tid = 'GTK_SHRINK' then return 2**1 + when tid = 'GTK_FILL' then return 2**2 + -- GtkWrapMode + when tid = 'GTK_WRAP_NONE' then return 0 + when tid = 'GTK_WRAP_CHAR' then return 1 + when tid = 'GTK_WRAP_WORD' then return 2 + when tid = 'GTK_WRAP_WORD_CHAR' then return 3 + -- GtkStateType + when tid = 'GTK_STATE_NORMAL' then return 0 + when tid = 'GTK_STATE_ACTIVE' then return 1 + when tid = 'GTK_STATE_PRELIGHT' then return 2 + when tid = 'GTK_STATE_SELECTED' then return 3 + when tid = 'GTK_STATE_INSENSITIVE' then return 4 + -- Pango scale factors + when tid = 'PANGO_SCALE_XX_SMALL' then return 0.5787037037037 + when tid = 'PANGO_SCALE_X_SMALL' then return 0.6444444444444 + when tid = 'PANGO_SCALE_SMALL' then return 0.8333333333333 + when tid = 'PANGO_SCALE_MEDIUM' then return 1.0 + when tid = 'PANGO_SCALE_LARGE' then return 1.2 + when tid = 'PANGO_SCALE_X_LARGE' then return 1.4399999999999 + when tid = 'PANGO_SCALE_XX_LARGE' then return 1.728 + -- PangoWeight + when tid = 'PANGO_WEIGHT_ULTRALIGHT' then return 200 + when tid = 'PANGO_WEIGHT_LIGHT' then return 300 + when tid = 'PANGO_WEIGHT_NORMAL' then return 400 + when tid = 'PANGO_WEIGHT_SEMIBOLD' then return 600 + when tid = 'PANGO_WEIGHT_BOLD' then return 700 + when tid = 'PANGO_WEIGHT_ULTRABOLD' then return 800 + when tid = 'PANGO_WEIGHT_HEAVY' then return 900 + -- PangoStyle + when tid = 'PANGO_STYLE_NORMAL' then return 0 + when tid = 'PANGO_STYLE_OBLIQUE' then return 1 + when tid = 'PANGO_STYLE_ITALIC' then return 2 + -- PangoUnderline + when tid = 'PANGO_UNDERLINE_NONE' then return 0 + when tid = 'PANGO_UNDERLINE_SINGLE' then return 1 + when tid = 'PANGO_UNDERLINE_DOUBLE' then return 2 + when tid = 'PANGO_UNDERLINE_LOW' then return 3 + when tid = 'PANGO_UNDERLINE_ERROR' then return 4 + -- Fundamental GTypes + when tid = 'G_TYPE_INVALID' then return 0 + when tid = 'G_TYPE_NONE' then return 1 + when tid = 'G_TYPE_INTERFACE' then return 2 + when tid = 'G_TYPE_CHAR' then return 3 + when tid = 'G_TYPE_UCHAR' then return 4 + when tid = 'G_TYPE_BOOLEAN' then return 5 + when tid = 'G_TYPE_INT' then return 6 + when tid = 'G_TYPE_UINT' then return 7 + when tid = 'G_TYPE_LONG' then return 8 + when tid = 'G_TYPE_ULONG' then return 9 + when tid = 'G_TYPE_INT64' then return 10 + when tid = 'G_TYPE_UINT64' then return 11 + when tid = 'G_TYPE_ENUM' then return 12 + when tid = 'G_TYPE_FLAGS' then return 13 + when tid = 'G_TYPE_FLOAT' then return 14 + when tid = 'G_TYPE_DOUBLE' then return 15 + when tid = 'G_TYPE_STRING' then return 16 + when tid = 'G_TYPE_POINTER' then return 17 + when tid = 'G_TYPE_BOXED' then return 18 + when tid = 'G_TYPE_PARAM' then return 19 + when tid = 'G_TYPE_OBJECT' then return 20 + -- Just return the id + otherwise nop + end +return id + + +/*============================================================================*/ +/* Class: GtkWidget */ +/*============================================================================*/ + +::class GtkWidget public + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxWidgetNew" + +::method uninit +-- don't destroy widgets by default! +return + +::method pointer +-- return the pointer object to the widget +expose !pointer +use strict arg +return !pointer + +::method 'pointer=' private +expose !pointer +use strict arg !pointer + +::method run_method +use strict arg meth, methargs = '' +meth_inst = self~instanceMethod(meth) +if meth_inst <> .nil then do + self~run(meth_inst, 'I', methargs) + end +return + +::attribute user_data +-- This attribute is not a part of the GTK system. It has been added to +-- support callbacks or any other use the user may have. + +::METHOD destroy EXTERNAL "LIBRARY rexxgtk GrxWidgetDestroy" +::METHOD font EXTERNAL "LIBRARY rexxgtk GrxWidgetGetFont" +::METHOD get_font EXTERNAL "LIBRARY rexxgtk GrxWidgetGetFont" +::METHOD 'font=' EXTERNAL "LIBRARY rexxgtk GrxWidgetSetFont" +::METHOD set_font EXTERNAL "LIBRARY rexxgtk GrxWidgetSetFont" +::METHOD grab_focus EXTERNAL "LIBRARY rexxgtk GrxWidgetGrabFocus" +::METHOD hide EXTERNAL "LIBRARY rexxgtk GrxWidgetHide" +::METHOD hide_all EXTERNAL "LIBRARY rexxgtk GrxWidgetHideAll" +::METHOD set_size_request EXTERNAL "LIBRARY rexxgtk GrxWidgetSetSize" +::METHOD show EXTERNAL "LIBRARY rexxgtk GrxWidgetShow" +::METHOD show_all EXTERNAL "LIBRARY rexxgtk GrxWidgetShowAll" +::METHOD name EXTERNAL "LIBRARY rexxgtk GrxWidgetGetName" +::METHOD get_name EXTERNAL "LIBRARY rexxgtk GrxWidgetGetName" +::METHOD 'name=' EXTERNAL "LIBRARY rexxgtk GrxWidgetSetName" +::METHOD set_name EXTERNAL "LIBRARY rexxgtk GrxWidgetSetName" +::METHOD 'sensitive=' EXTERNAL "LIBRARY rexxgtk GrxWidgetSetSensitive" +::METHOD set_sensitive EXTERNAL "LIBRARY rexxgtk GrxWidgetSetSensitive" +::METHOD modify_fg EXTERNAL "LIBRARY rexxgtk GrxWidgetModifyFG" +::METHOD modify_bg EXTERNAL "LIBRARY rexxgtk GrxWidgetModifyBG" +::METHOD 'data=' EXTERNAL "LIBRARY rexxgtk GrxWidgetSetData" +::METHOD set_data EXTERNAL "LIBRARY rexxgtk GrxWidgetSetData" +::METHOD data EXTERNAL "LIBRARY rexxgtk GrxWidgetGetData" +::METHOD get_data EXTERNAL "LIBRARY rexxgtk GrxWidgetGetData" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxWidgetSignalConnect" + +-- +-- The following are the methods that can be connected to signals. By default +-- they do nothing. +-- + +::method signal_destroy +return + + Property changes on: sandbox/david/4x/rexxgtk.cls ___________________________________________________________________ Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-03 01:30:55
|
Revision: 2407 http://oorexx.svn.sourceforge.net/oorexx/?rev=2407&view=rev Author: wdashley Date: 2008-04-02 18:31:01 -0700 (Wed, 02 Apr 2008) Log Message: ----------- ArtifactID: None Comment: More 4.x stuff. Modified Paths: -------------- sandbox/david/4x/grxwidget.cpp sandbox/david/4x/rexxgtk.cls Added Paths: ----------- sandbox/david/4x/rexxdb.c sandbox/david/4x/rexxgtk.h Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-03-26 16:59:57 UTC (rev 2406) +++ sandbox/david/4x/grxwidget.cpp 2008-04-03 01:31:01 UTC (rev 2407) @@ -58,14 +58,14 @@ /* Private Functions */ /*============================================================================*/ -static void signal_func_1(GtkWidget *window, +static void signal_func_1(GtkWidget *widget, gpointer data) { char buffer[256]; RXSTRING entry; // set up the queue entry data - g_snprintf(buffer, sizeof(buffer), "%p %s", window, data); + g_snprintf(buffer, sizeof(buffer), "%p %s", widget, data); entry.strptr = buffer; entry.strlength = strlen(buffer); @@ -80,7 +80,13 @@ /* Public Methods */ /*============================================================================*/ - +/** + * Method: init + * + * Initialize the widget instance. + * + * @return Zero. + */ RexxMethod0(int, // Return type GrxWidgetNew) // Object_method name { @@ -88,10 +94,18 @@ myWidget = gtk_widget_new(); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); return 0; } - +/** + * Method: show + * + * Show the widget. + * + * @return Zero. + */ RexxMethod0(int, // Return type GrxWidgetShow) // Object_method name { @@ -103,7 +117,13 @@ return 0; } - +/** + * Method: showall + * + * Show the widget and all child widgets. + * + * @return Zero. + */ RexxMethod0(int, // Return type GrxWidgetShowAll) // Object_method name { @@ -115,7 +135,13 @@ return 0; } - +/** + * Method: hide + * + * Hide the widget and all child widgets. + * + * @return Zero. + */ RexxMethod0(int, // Return type GrxWidgetHide) // Object_method name { @@ -127,7 +153,13 @@ return 0; } - +/** + * Method: hideall + * + * Hide the widget and all child widgets. + * + * @return Zero. + */ RexxMethod0(int, // Return type GrxWidgetHideAll) // Object_method name { @@ -139,9 +171,19 @@ return 0; } - +/** + * Method: set_size_request + * + * Resize the widget. + * + * @param width The new width of the widget + * + * @param height The new height of the widget + * + * @return Zero. + */ RexxMethod2(int, // Return type - GrxWidgetHideAll, // Object_method name + GrxWidgetSetSizeRequest, // Object_method name int width, // width of the widget int height) // height of the widget { @@ -153,7 +195,13 @@ return 0; } - +/** + * Method: destroy + * + * Destroy the widget. + * + * @return Zero. + */ RexxMethod0(int, // Return type GrxWidgetDestroy) // Object_method name { @@ -163,11 +211,18 @@ gtk_widget_destroy(myWidget); rxptr = NULL; context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + GrxDBRemove(myWidget); return 0; } - +/** + * Method: grab_focus + * + * Set the focus to the widget. + * + * @return Zero. + */ RexxMethod0(int, // Return type GrxWidgetGrabFocus) // Object_method name { @@ -179,7 +234,15 @@ return 0; } - +/** + * Method: font= + * + * Set the font of the widget. + * + * @param font The new font for the widget. + * + * @return Zero. + */ RexxMethod1(int, // Return type GrxWidgetSetFont, // Object_method name CSTRING, fontname) // Font name @@ -195,7 +258,13 @@ return 0; } - +/** + * Method: font + * + * Get the font of the widget. + * + * @return A string with the font name. + */ RexxMethod0(CSTRING, // Return type GrxWidgetGetFont) // Object_method name { @@ -207,40 +276,13 @@ return style->font_desc; } - -/*----------------------------------------------------------------------------*/ -/* Rexx External Function: GrxWidgetGetAccessible */ -/* Description: Get the pointer to the accessibility object */ -/* Rexx Args: Pointer to the widget */ -/*----------------------------------------------------------------------------*/ - -// APIRET APIENTRY GrxWidgetGetAccessible(const char * Name, -// const size_t Argc, const RXSTRING Argv[], -// const char * Queuename, PRXSTRING Retstr) -// { -// GtkWidget *myWidget; -// AtkObject *access = NULL; -// -// /* Check for valid arguments */ -// if (GrxCheckArgs(1, Argc, Argv)) { -// return RXFUNC_BADCALL; -// } -// -// /* Initialize function parameters */ -// sscanf(Argv[0].strptr, "%p", &myWidget); -// -// /* get the accessibility pointer */ -// access = gtk_widget_get_accessible(myWidget); -// -// /* Set up the REXX return code */ -// g_snprintf(Retstr->strptr, RXAUTOBUFLEN, "%p", access); -// Retstr->strlength = strlen(Retstr->strptr); -// -// -// return RXFUNC_OK; -// } - - +/** + * Method: name + * + * Get the name of the widget. + * + * @return A string with the name. + */ RexxMethod0(CSTRING, // Return type GrxWidgetGetName) // Object_method name { @@ -250,7 +292,15 @@ return gtk_widget_get_name(myWidget); } - +/** + * Method: name= + * + * Set the name of the widget. + * + * @param name The new name for the widget. + * + * @return Zero. + */ RexxMethod1(int, // Return type GrxWidgetSetName, // Object_method name CSTRING, name) // New name @@ -263,7 +313,15 @@ return 0; } - +/** + * Method: sensitive= + * + * Make the widget sensitive or insensitive. + * + * @param flag 1 or 0. + * + * @return Zero. + */ RexxMethod1(int, // Return type GrxWidgetSetSensitive, // Object_method name int, flag) // Sensitive flag @@ -276,43 +334,18 @@ return 0; } - -/*----------------------------------------------------------------------------*/ -/* Rexx External Function: GrxWidgetGetTopLevel */ -/* Description: Get the top level parent window of a widget */ -/* Rexx Args: Pointer to the widget */ -/*----------------------------------------------------------------------------*/ - -// APIRET APIENTRY GrxWidgetGetTopLevel(const char * Name, -// const size_t Argc, const RXSTRING Argv[], -// const char * Queuename, PRXSTRING Retstr) -// { -// GtkWidget *myWidget; -// GtkWidget *parentWidget; -// -// /* Check for valid arguments */ -// if (GrxCheckArgs(1, Argc, Argv)) { -// return RXFUNC_BADCALL; -// } -// -// /* Initialize function parameters */ -// sscanf(Argv[0].strptr, "%p", &myWidget); -// -// if (GTK_IS_WIDGET(GTK_OBJECT(myWidget))) { -// parentWidget = gtk_widget_get_toplevel(myWidget); -// } -// else { -// return RXFUNC_BADCALL; -// } -// -// /* Set up the REXX return code */ -// g_snprintf(Retstr->strptr, RXAUTOBUFLEN, "%p", parentWidget); -// Retstr->strlength = strlen(Retstr->strptr); -// -// return RXFUNC_OK; -// } - - +/** + * Method: modifyFG + * + * Modify the forground color of the widget. + * + * @param type A number representing the state of the widget + * to modify (normal, active, etc) + * + * @param color A sting representing the color + * + * @return Zero. + */ RexxMethod2(int, // Return type GrxWidgetModifyBG, // Object_method name int, type, // State @@ -328,7 +361,18 @@ return 0; } - +/** + * Method: modifyBG + * + * Modify the background color of the widget. + * + * @param type A number representing the state of the widget + * to modify (normal, active, etc) + * + * @param color A sting representing the color + * + * @return Zero. + */ RexxMethod2(int, // Return type GrxWidgetModifyFG, // Object_method name int, type, // State @@ -344,7 +388,17 @@ return 0; } - +/** + * Method: data= + * + * Set a name value pair attached to the widget. + * + * @param name The name of the object. + * + * @param value The value of the object. + * + * @return Zero. + */ RexxMethod2(int, // Return type GrxWidgetSetData, // Object_method name CSTRING, name, // Association name @@ -360,7 +414,15 @@ return 0; } - +/** + * Method: data + * + * Return the value of a name value pair attached to the widget. + * + * @param name The name of the object. + * + * @return The value of the object. + */ RexxMethod1(CSTRING, // Return type GrxWidgetGetData, // Object_method name CSTRING, name) // Association name @@ -371,8 +433,603 @@ return (char *)g_object_get_data(G_OBJECT(myWidget), name); } +/** + * Method: activate + * + * Activate the widget. + * + * @return Zero. + */ +RexxMethod0(int, // Return type + GrxWidgetActivate) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + gtk_widget_activate(myWidget); + + return 0; +} + +/** + * Method: reparent + * + * Reparent the widget. + * + * @param parent The new parent widget. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxWidgetReparent, // Object_method name + RexxObjectPtr, parent) // New parent widget +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr parentptr = context->functions->GetObjectVariable(parent, "!POINTER"); + GtkWidget *parentWidget = (GtkWidget *)context->PointerValue(parentptr); + + gtk_widget_reparent(myWidget, parentWidget); + + return 0; +} + +/** + * Method: isfocus + * + * Determine if the widget has the focus. + * + * @return 1 (if it has the focus) or zero. + */ +RexxMethod0(bool, // Return type + GrxWidgetIsFocus) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + return gtk_widget_is_focus(myWidget); +} + +/** + * Method: grab_default + * + * Cause the widget to become the default. + * + * @return Zero. + */ +RexxMethod0(int, // Return type + GrxWidgetGrabDefault) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_widget_grab_default(myWidget); + + return 0; +} + +/** + * Method: set_parent_window + * + * Set the parent window. + * + * @param parent The new parent widget. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxWidgetSetParentWindow, // Object_method name + RexxObjectPtr, parent) // New parent widget +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr parentptr = context->functions->GetObjectVariable(parent, "!POINTER"); + GdkWidget *parentWidget = (GdkWidget *)context->PointerValue(parentptr); + + gtk_widget_set_parent_window(myWidget, parentWidget); + + return 0; +} + +/** + * Method: get_parent_window + * + * Get the parent window. + * + * @return The parent window object. + */ +RexxMethod0(RexxObjectPtr, // Return type + GrxWidgetGetParentWindow) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GtkWidget *parent; + RexxObjectPtr parentptr; + + parent = gtk_widget_get_parent_window(myWidget); + if (parent == NULL) { + return context->Nil(); + } + parentptr = GrxDBDindObject(myWidget); + if (parentptr == NULL) { + return context->Nil(); + } + + return parentptr; +} + +/** + * Method: get_toplevel + * + * Get the top level window. + * + * @return The top level window object. + */ +RexxMethod0(RexxObjectPtr, // Return type + GrxWidgetGetToplevel) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GtkWidget *parentWidget; + RexxObjectPtr parentptr; + + parentWidget = gtk_widget_get_toplevel(myWidget); + if (parentWidget == NULL) { + return context->Nil(); + } + parentptr = GrxDBFindObject(parentWidget); + if (parentptr == NULL) { + return context->Nil(); + } + + return parentptr; +} + +/** + * Method: isancestor + * + * Determine if the wiget is an ancestor of another widgety. + * + * @param ancestor The ancestor widget. + * + * @return 1 or zero. + */ RexxMethod1(bool, // Return type + GrxWidgetIsAncestor, // Object_method name + RexxObjectPtr, ancestor) // Ancestor widget +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr ancestorptr = context->functions->GetObjectVariable(ancestor, "!POINTER"); + GdkWidget *ancestorWidget = (GdkWidget *)context->PointerValue(ancestorptr); + + return gtk_widget_is_ancestor(myWidget, ancestorWidget); +} + +/** + * Method: get_ancestor + * + * Get the first ancestor widget of the specified type. + * + * @param type The widget type. + * + * @return The ancestor object or .Nil. + */ +RexxMethod1(RexxObjectPtr, // Return type + GrxWidgetGetAncestor, // Object_method name + int, type) // Ancestor type +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GtkWidget *ancestor; + RexxObjectPtr ancestorptr; + + ancestor = gtk_widget_get_ancestor(myWidget, type); + if (ancestor == NULL) { + return context->Nil(); + } + ancestorptr = GrxDBFindObject(ancestor); + if (ancestorptr == NULL) { + return context->Nil(); + } + + return ancestorptr; +} + +/** + * Method: set_direction + * + * Set the reading direction for the text of the widget. + * + * @param dir The reading direction. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxWidgetSetDirection, // Object_method name + int, dir) // Direction +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_widget_set_direction(myWidget, dir); + + return 0; +} + +/** + * Method: get_direction + * + * Get the reading direction for the text of the widget. + * + * @return A number representing the reading direction. + */ +RexxMethod0(int, // Return type + GrxWidgetGetDirection) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + return gtk_widget_get_direction(myWidget); +} + +/** + * Method: set_default_direction + * + * Set the default reading direction for the text of the widget. + * + * @param dir The reading direction. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxWidgetSetDefaultDirection, // Object_method name + int, dir) // Direction +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_widget_set_default_direction(myWidget, dir); + + return 0; +} + +/** + * Method: get_default_direction + * + * Get the default reading direction for the text of the widget. + * + * @return A number representing the reading direction. + */ +RexxMethod0(int, // Return type + GrxWidgetGetDefaultDirection) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + return gtk_widget_get_default_direction(myWidget); +} + +/** + * Method: modify_cursor + * + * Modify the color of the cursor. + * + * @param prim The primary color + * + * @param sec The secondary color + * + * @return Zero. + */ +RexxMethod2(int, // Return type + GrxWidgetModifyCursor, // Object_method name + CSTRING, primcolorstr, // Color string + CSTRING, seccolorstr) // Color string +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GdkColor primcolor, seccolor; + + gdk_color_parse(primcolorstr, &primcolor); + gdk_color_parse(seccolorstr, &seccolor); + gtk_widget_modify_cursor(myWidget, &primcolor, &seccolor); + + return 0; +} + +/** + * Method: queue_draw_area + * + * Redraw an area. + * + * @param x The x coordinate + * + * @param y The y coordinate + * + * @param width The width of the area + * + * @param height The height of the area + * + * @return Zero. + */ +RexxMethod4(int, // Return type + GrxWidgetQueueDrawArea, // Object_method name + int, x, // X coordinate + int, y, // Y coordinate + int, width, // Width + int, height) // Heaight +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_widget_queue_draw_area(myWidget, x, y, width, height); + + return 0; +} + +/** + * Method: reset_shapes + * + * Reset the widget shapes. + * + * @return Zero. + */ +RexxMethod0(int, // Return type + GrxWidgetResetShapes) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_widget_reset_shapes(myWidget); + + return 0; +} + +/** + * Method: set_scroll_adjustments + * + * Set the adjustment settings if the widget supports + * them. + * + * @param hadj The horizontal adjustment + * + * @param vadj The vertical adjustment + * + * @return Boolean. + */ +RexxMethod2(bool, // Return type + GrxWidgetSetScrollAdjustments, // Object_method name + RexxObjectPtr, hadh, // Horizontal Adjustment + RexxObjectPtr, vadj) // Vertical adjustment +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr hptr = context->functions->GetObjectVariable(hadj, "!POINTER"); + GdkWidget *hWidget = (GdkWidget *)context->PointerValue(hptr); + RexxObjectPtr vptr = context->functions->GetObjectVariable(vadj, "!POINTER"); + GdkWidget *vWidget = (GdkWidget *)context->PointerValue(vptr); + + return gtk_widget_set_scroll_adjustments(myWidget, hWidget, vWidget); +} + +/** + * Method: mnemonic_activate + * + * Activate a widget's mnemonic. + * + * @param flag 1 = activate, 0 = deactivate + * + * @return Boolean. + */ +RexxMethod1(bool, // Return type + GrxWidgetMnemonicActivate, // Object_method name + bool, flag) // Group cycling flag +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + return gtk_widget_mnemonic_activate(myWidget, flag); +} + +/** + * Method: get_accessible + * + * Get the widget accessible object. + * + * @return Accessible object + */ +RexxMethod0(RexxObjectPtr, // Return type + GrxWidgetGetAccessible) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + AtkObject atk; + RexxObjectPtr atkptr; + + atk = gtk_widget_get_toplevel(myWidget); + if (atk == NULL) { + return context->Nil(); + } + atkptr = GrxDBFindObject((GtkWidget *)atk); + if (atkptr == NULL) { + return context->Nil(); + } + + return atkptr; +} + +/** + * Method: get_child_visible + * + * Determine if a widgets children are visible. + * + * @return Boolean + */ +RexxMethod0(bool, // Return type + GrxWidgetGetChildVisible) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + return gtk_widget_get_child_visible(myWidget); +} + +/** + * Method: get_child_visible + * + * Determine if a widgets children are visible. + * + * @return Boolean + */ +RexxMethod0(RexxObjectPtr, // Return type + GrxWidgetGetParent) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GtkWidget *parent; + RexxObjectPtr parentptr; + + parent = gtk_widget_get_parent(myWidget); + if (parent == NULL) { + return context->Nil(); + } + parentptr = GrxDBFindObject(parent); + if (parentptr == NULL) { + return context->Nil(); + } + + return parentptr; +} + +/** + * Method: get_parent + * + * Return the parent widget. + * + * @return Parent widget object + */ +RexxMethod0(RexxObjectPtr, // Return type + GrxWidgetGetParent) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GtkWindow *root; + RexxObjectPtr roottptr; + + root = gtk_widget_get_parent(myWidget); + if (root == NULL) { + return context->Nil(); + } + parentptr = GrxDBFindObject((GtkWidget *)root); + if (rootptr == NULL) { + return context->Nil(); + } + + return rootptr; +} + +/** + * Method: get_tooltip_markup + * + * Return widget tooltip markup. + * + * @return Tooltip markup + */ +RexxMethod0(CSTRING, // Return type + GrxWidgetGetTooltipMarkup) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + return gtk_widget_get_tooltip_markup(myWidget); +} + +/** + * Method: set_tooltip_markup + * + * Set the widget tooltip markup. + * + * @param markup The markup string. + * + * @return Tooltip markup + */ +RexxMethod1(CSTRING, // Return type + GrxWidgetSetTooltipMarkup, // Object_method name + CSTRING, markup) // Tooltip markup +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_widget_set_tooltip_markup(myWidget, markup); + + return 0; +} + +/** + * Method: get_tooltip_text + * + * Return widget tooltip text. + * + * @return Tooltip text + */ +RexxMethod0(CSTRING, // Return type + GrxWidgetGetTooltipText) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + return gtk_widget_get_tooltip_text(myWidget); +} + +/** + * Method: set_tooltip_text + * + * Set the widget tooltip text. + * + * @param markup The text string. + * + * @return Tooltip markup + */ +RexxMethod1(CSTRING, // Return type + GrxWidgetSetTooltipText, // Object_method name + CSTRING, text) // Tooltip markup +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_widget_set_tooltip_text(myWidget, text); + + return 0; +} + +/** + * Method: error_bell + * + * Ring the terminal bell. + * + * @return Zero + */ +RexxMethod0(int. // Return type + GrxWidgetErrorBell) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_widget_error_bell(myWidget); + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Boolean + */ +RexxMethod1(bool, // Return type GrxWidgetSignalConnect, // Object_method name CSTRING, name) // Signal name { Added: sandbox/david/4x/rexxdb.c =================================================================== --- sandbox/david/4x/rexxdb.c (rev 0) +++ sandbox/david/4x/rexxdb.c 2008-04-03 01:31:01 UTC (rev 2407) @@ -0,0 +1,120 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Definitions */ +/*----------------------------------------------------------------------------*/ + +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local variables and definitions */ +/*----------------------------------------------------------------------------*/ + +static GList *rxgtkdb = NULL; + +typedef struct _dbentry { + RexxObjectPtr object; + GtkWidget *widget; +} dbentry; + + +/*----------------------------------------------------------------------------*/ +/* Functions */ +/*----------------------------------------------------------------------------*/ + +static int custom_compare( + gconstpointer a, + gconstpointer b) { + + dbentry *aa = a; + dbentry *bb = b; + if (aa->widget != bb->widget) { + return -1; + } + return 0; +} + + +int GrxDBAdd( + const RexxObjectPtr rxobj, // the object to be added + const GtkWidget *widget) { // the widget pointer + + dbentry *newentry = (dbentry *)malloc(sizeof(dbentry)); + newentry->object = rxobj; + newentry->widget = widget; + rxgtkdb = g_list_prepend(rxgtkdb, newentry); +} + + +int GrxDBRemove( + const GtkWidget *widget) { // the widget pointer + + dbentry searchentry; + searchentry.widget = widget; + dbentry *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare); + if (dbentry != NULL) { + rxgtkdb = g_list_remove(rxgtkdb, dbentry); + free(dbentry); + return 0; + } + return 1; +} + + +RexxObjectPtr GrxDBFindObject( + const GtkWidget *widget) { // the widget pointer + + dbentry searchentry; + searchentry.widget = widget; + dbentry *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare); + if (dbentry != NULL) { + return dbentry->rxobj; + } + return NULL; +} + Property changes on: sandbox/david/4x/rexxdb.c ___________________________________________________________________ Name: svn:eol-style + native Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-03-26 16:59:57 UTC (rev 2406) +++ sandbox/david/4x/rexxgtk.cls 2008-04-03 01:31:01 UTC (rev 2407) @@ -98,254 +98,252 @@ /*============================================================================*/ -/* Routine: GTK_Constant */ +/* Class: GTK */ /*============================================================================*/ -::routine GTK_Constant public -use strict arg id -tid = upper(id) -select +::class gtk public + -- GtkWindowType - when tid = 'GTK_WINDOW_TOPLEVEL' then return 0 - when tid = 'GTK_WINDOW_POPUP' then return 1 +::constant GTK_WINDOW_TOPLEVEL class 0 +::constant GTK_WINDOW_POPUP class 1 -- GtkButtonType - when tid = 'GTK_BUTTONS_NONE' then return 0 - when tid = 'GTK_BUTTONS_OK' then return 1 - when tid = 'GTK_BUTTONS_CLOSE' then return 2 - when tid = 'GTK_BUTTONS_CANCEL' then return 3 - when tid = 'GTK_BUTTONS_YES_NO' then return 4 - when tid = 'GTK_BUTTONS_OK_CANCEL' then return 5 +::constant GTK_BUTTONS_NONE class 0 +::constant GTK_BUTTONS_OK class 1 +::constant GTK_BUTTONS_CLOSE class 2 +::constant GTK_BUTTONS_CANCEL class 3 +::constant GTK_BUTTONS_YES_NO class 4 +::constant GTK_BUTTONS_OK_CANCEL class 5 -- GtkDialogFlags - when tid = 'GTK_DIALOG_MODAL' then return 2**0 - when tid = 'GTK_DIALOG_DESTROY_WITH_PARENT' then return 2**1 - when tid = 'GTK_DIALOG_NO_SEPARATOR' then return 2**2 +::constant GTK_DIALOG_MODAL class 0 +::constant GTK_DIALOG_DESTROY_WITH_PARENT class 1 +::constant GTK_DIALOG_NO_SEPARATOR class 2 -- GtkResponseType - when tid = 'GTK_RESPONSE_NONE' then return -1 - when tid = 'GTK_RESPONSE_REJECT' then return -2 - when tid = 'GTK_RESPONSE_ACCEPT' then return -3 - when tid = 'GTK_RESPONSE_DELETE_EVENT' then return -4 - when tid = 'GTK_RESPONSE_OK' then return -5 - when tid = 'GTK_RESPONSE_CANCEL' then return -6 - when tid = 'GTK_RESPONSE_CLOSE' then return -7 - when tid = 'GTK_RESPONSE_YES' then return -8 - when tid = 'GTK_RESPONSE_NO' then return -9 - when tid = 'GTK_RESPONSE_APPLY' then return -10 - when tid = 'GTK_RESPONSE_HELP' then return -11 +::constant GTK_RESPONSE_NONE class -1 +::constant GTK_RESPONSE_REJECT class -2 +::constant GTK_RESPONSE_ACCEPT class -3 +::constant GTK_RESPONSE_DELETE_EVENT class -4 +::constant GTK_RESPONSE_OK class -5 +::constant GTK_RESPONSE_CANCEL class -6 +::constant GTK_RESPONSE_CLOSE class -7 +::constant GTK_RESPONSE_YES class -8 +::constant GTK_RESPONSE_NO class -9 +::constant GTK_RESPONSE_APPLY class -10 +::constant GTK_RESPONSE_HELP class -11 -- GtkMessageType - when tid = 'GTK_MESSAGE_INFO' then return 0 - when tid = 'GTK_MESSAGE_WARNING' then return 1 - when tid = 'GTK_MESSAGE_QUESTION' then return 2 - when tid = 'GTK_MESSAGE_ERROR' then return 3 - when tid = 'GTK_MESSAGE_OTHER' then return 4 +::constant GTK_MESSAGE_INFO class 0 +::constant GTK_MESSAGE_WARNING class 1 +::constant GTK_MESSAGE_QUESTION class 2 +::constant GTK_MESSAGE_ERROR class 3 +::constant GTK_MESSAGE_OTHER class 4 -- GTK stock string defines - when tid = 'GTK_STOCK_ABOUT' then return 'gtk-about' - when tid = 'GTK_STOCK_ADD' then return 'gtk-add' - when tid = 'GTK_STOCK_APPLY' then return 'gtk-apply' - when tid = 'GTK_STOCK_BOLD' then return 'gtk-bold' - when tid = 'GTK_STOCK_CANCEL' then return 'gtk-cancel' - when tid = 'GTK_STOCK_CDROM' then return 'gtk-cdrom' - when tid = 'GTK_STOCK_CLEAR' then return 'gtk-clear' - when tid = 'GTK_STOCK_CLOSE' then return 'gtk-close' - when tid = 'GTK_STOCK_COLOR_PICKER' then return 'gtk-color-picker' - when tid = 'GTK_STOCK_CONVERT' then return 'gtk-comvert' - when tid = 'GTK_STOCK_CONNECT' then return 'gtk-connect' - when tid = 'GTK_STOCK_COPY' then return 'gtk-copy' - when tid = 'GTK_STOCK_CUT' then return 'gtk-cut' - when tid = 'GTK_STOCK_DELETE' then return 'gtk-delete' - when tid = 'GTK_STOCK_DIALOG_ERROR' then return 'gtk-dialog-error' - when tid = 'GTK_STOCK_DIALOG_INFO' then return 'gtk-dialog-info' - when tid = 'GTK_STOCK_DIALOG_QUESTION' then return 'gtk-dialog-question' - when tid = 'GTK_STOCK_DIALOG_WARNING' then return 'gtk-dialog-warning' - when tid = 'GTK_STOCK_DIRECTORY' then return 'gtk-directry' - when tid = 'GTK_STOCK_DISCARD' then return 'gtk-discard' - when tid = 'GTK_STOCK_DISCONNECT' then return 'gtk-disconnect' - when tid = 'GTK_STOCK_DND' then return 'gtk-dnd' - when tid = 'GTK_STOCK_DND_MULTIPLE' then return 'gtk-dnd-multiple' - when tid = 'GTK_STOCK_EDIT' then return 'gtk-edit' - when tid = 'GTK_STOCK_EXECUTE' then return 'gtk-execute' - when tid = 'GTK_STOCK_FILE' then return 'gtk-file' - when tid = 'GTK_STOCK_FIND' then return 'gtk-find' - when tid = 'GTK_STOCK_FIND_AND_REPLACE' then return 'gtk-find-and-replace' - when tid = 'GTK_STOCK_FLOPPY' then return 'gtk-floppy' - when tid = 'GTK_STOCK_FULLSCREEN' then return 'gtk-fullscreen' - when tid = 'GTK_STOCK_GOTO_BOTTOM' then return 'gtk-goto-bottom' - when tid = 'GTK_STOCK_GOTO_FIRST' then return 'gtk-goto-first' - when tid = 'GTK_STOCK_GOTO_LAST' then return 'gtk-goto-last' - when tid = 'GTK_STOCK_GOTO_TOP' then return 'gtk-goto-top' - when tid = 'GTK_STOCK_GO_BACK' then return 'gtk-go-back' - when tid = 'GTK_STOCK_GO_DOWN' then return 'gtk-go-down' - when tid = 'GTK_STOCK_GO_FORWARD' then return 'gtk-go-forward' - when tid = 'GTK_STOCK_GO_UP' then return 'gtk-go-up' - when tid = 'GTK_STOCK_HARDDISK' then return 'gtk-harddisk' - when tid = 'GTK_STOCK_HELP' then return 'gtk-help' - when tid = 'GTK_STOCK_HOME' then return 'gtk-home' - when tid = 'GTK_STOCK_INDENT' then return 'gtk-indent' - when tid = 'GTK_STOCK_INDEX' then return 'gtk-index' - when tid = 'GTK_STOCK_INFO' then return 'gtk-info' - when tid = 'GTK_STOCK_ITALIC' then return 'gtk-italic' - when tid = 'GTK_STOCK_JUMP_TO' then return 'gtk-jump-to' - when tid = 'GTK_STOCK_JUSTIFY_CENTER' then return 'gtk-justify-center' - when tid = 'GTK_STOCK_JUSTIFY_FILL' then return 'gtk-justify-fill' - when tid = 'GTK_STOCK_JUSTIFY_LEFT' then return 'gtk-justify-left' - when tid = 'GTK_STOCK_JUSTIFY_RIGHT' then return 'gtk-justify-right' - when tid = 'GTK_STOCK_LEAVE_FULLSCREEN' then return 'gtk-leave-fullscreen' - when tid = 'GTK_STOCK_MEDIA_FORWARD' then return 'gtk-media-forward' - when tid = 'GTK_STOCK_MEDIA_NEXT' then return 'gtk-media-nect' - when tid = 'GTK_STOCK_MEDIA_PAUSE' then return 'gtk-media-pause' - when tid = 'GTK_STOCK_MEDIA_PLAY' then return 'gtk-media-play' - when tid = 'GTK_STOCK_MEDIA_PREVIOUS' then return 'gtk-media-previous' - when tid = 'GTK_STOCK_MEDIA_RECORD' then return 'gtk-media-record' - when tid = 'GTK_STOCK_MEDIA_REWIND' then return 'gtk-media-rewind' - when tid = 'GTK_STOCK_MEDIA_STOP' then return 'gtk-media-stop' - when tid = 'GTK_STOCK_MISSING_IMAGE' then return 'gtk-missing-image' - when tid = 'GTK_STOCK_NETWORK' then return 'gtk-network' - when tid = 'GTK_STOCK_NEW' then return 'gtk-new' - when tid = 'GTK_STOCK_NO' then return 'gtk-no' - when tid = 'GTK_STOCK_OK' then return 'gtk-ok' - when tid = 'GTK_STOCK_OPEN' then return 'gtk-open' - when tid = 'GTK_STOCK_OREINTATION_LANDSCAPE' then return 'gtk-orientation-landscape' - when tid = 'GTK_STOCK_OREINTATION_PORTRAIT' then return 'gtk-orientation-portrait' - when tid = 'GTK_STOCK_OREINTATION_REVERSE_LANDSCAPE' then return 'gtk-orientation-reverse-landscape' - when tid = 'GTK_STOCK_OREINTATION_REVERSE_LANDSCAPE' then return 'gtk-orientation-reverse-portrait' - when tid = 'GTK_STOCK_PASTE' then return 'gtk-paste' - when tid = 'GTK_STOCK_PREFERENCES' then return 'gtk-preferences' - when tid = 'GTK_STOCK_PRINT' then return 'gtk-print' - when tid = 'GTK_STOCK_PRINT_PREVIEW' then return 'gtk-print-preview' - when tid = 'GTK_STOCK_PROPERTIES' then return 'gtk-properties' - when tid = 'GTK_STOCK_QUIT' then return 'gtk-quit' - when tid = 'GTK_STOCK_REDO' then return 'gtk-redo' - when tid = 'GTK_STOCK_REFRESH' then return 'gtk-refresh' - when tid = 'GTK_STOCK_REMOVE' then return 'gtk-remove' - when tid = 'GTK_STOCK_REVERT_TO_SAVED' then return 'gtk-revert-to-saved' - when tid = 'GTK_STOCK_SAVE' then return 'gtk-save' - when tid = 'GTK_STOCK_SAVE_AS' then return 'gtk-save-as' - when tid = 'GTK_STOCK_SELECT_ALL' then return 'gtk-select-all' - when tid = 'GTK_STOCK_SELECT_COLOR' then return 'gtk-select-color' - when tid = 'GTK_STOCK_SELECT_FONT' then return 'gtk-select-font' - when tid = 'GTK_STOCK_SORT_ASCENDING' then return 'gtk-sort-ascending' - when tid = 'GTK_STOCK_SORT_DESCENDING' then return 'gtk-sort-descending' - when tid = 'GTK_STOCK_SPELL_CHECK' then return 'gtk-spell-check' - when tid = 'GTK_STOCK_STOP' then return 'gtk-stop' - when tid = 'GTK_STOCK_STRIKETHROUGH' then return 'gtk-strikethrough' - when tid = 'GTK_STOCK_UNDELETE' then return 'gtk-undelete' - when tid = 'GTK_STOCK_UNDERLINE' then return 'gtk-underline' - when tid = 'GTK_STOCK_UNDO' then return 'gtk-undo' - when tid = 'GTK_STOCK_UNINDENT' then return 'gtk-unindent' - when tid = 'GTK_STOCK_YES' then return 'gtk-yes' - when tid = 'GTK_STOCK_ZOOM_100' then return 'gtk-zoom-100' - when tid = 'GTK_STOCK_ZOOM_FIT' then return 'gtk-zoom-fit' - when tid = 'GTK_STOCK_ZOOM_IN' then return 'gtk-zoom-in' - when tid = 'GTK_STOCK_ZOOM_OUT' then return 'gtk-zoom-out' +::constant GTK_STOCK_ABOUT class 'gtk-about' +::constant GTK_STOCK_ADD class 'gtk-add' +::constant GTK_STOCK_APPLY class 'gtk-apply' +::constant GTK_STOCK_BOLD class 'gtk-bold' +::constant GTK_STOCK_CANCEL class 'gtk-cancel' +::constant GTK_STOCK_CDROM class 'gtk-cdrom' +::constant GTK_STOCK_CLEAR class 'gtk-clear' +::constant GTK_STOCK_CLOSE class 'gtk-close' +::constant GTK_STOCK_COLOR_PICKER class 'gtk-color-picker' +::constant GTK_STOCK_CONVERT class 'gtk-comvert' +::constant GTK_STOCK_CONNECT class 'gtk-connect' +::constant GTK_STOCK_COPY class 'gtk-copy' +::constant GTK_STOCK_CUT class 'gtk-cut' +::constant GTK_STOCK_DELETE class 'gtk-delete' +::constant GTK_STOCK_DIALOG_ERROR class 'gtk-dialog-error' +::constant GTK_STOCK_DIALOG_INFO class 'gtk-dialog-info' +::constant GTK_STOCK_DIALOG_QUESTION class 'gtk-dialog-question' +::constant GTK_STOCK_DIALOG_WARNING class 'gtk-dialog-warning' +::constant GTK_STOCK_DIRECTORY class 'gtk-directry' +::constant GTK_STOCK_DISCARD class 'gtk-discard' +::constant GTK_STOCK_DISCONNECT class 'gtk-disconnect' +::constant GTK_STOCK_DND class 'gtk-dnd' +::constant GTK_STOCK_DND_MULTIPLE class 'gtk-dnd-multiple' +::constant GTK_STOCK_EDIT class 'gtk-edit' +::constant GTK_STOCK_EXECUTE class 'gtk-execute' +::constant GTK_STOCK_FILE class 'gtk-file' +::constant GTK_STOCK_FIND class 'gtk-find' +::constant GTK_STOCK_FIND_AND_REPLACE class 'gtk-find-and-replace' +::constant GTK_STOCK_FLOPPY class 'gtk-floppy' +::constant GTK_STOCK_FULLSCREEN class 'gtk-fullscreen' +::constant GTK_STOCK_GOTO_BOTTOM class 'gtk-goto-bottom' +::constant GTK_STOCK_GOTO_FIRST class 'gtk-goto-first' +::constant GTK_STOCK_GOTO_LAST class 'gtk-goto-last' +::constant GTK_STOCK_GOTO_TOP class 'gtk-goto-top' +::constant GTK_STOCK_GO_BACK class 'gtk-go-back' +::constant GTK_STOCK_GO_DOWN class 'gtk-go-down' +::constant GTK_STOCK_GO_FORWARD class 'gtk-go-forward' +::constant GTK_STOCK_GO_UP class 'gtk-go-up' +::constant GTK_STOCK_HARDDISK class 'gtk-harddisk' +::constant GTK_STOCK_HELP class 'gtk-help' +::constant GTK_STOCK_HOME class 'gtk-home' +::constant GTK_STOCK_INDENT class 'gtk-indent' +::constant GTK_STOCK_INDEX class 'gtk-index' +::constant GTK_STOCK_INFO class 'gtk-info' +::constant GTK_STOCK_ITALIC class 'gtk-italic' +::constant GTK_STOCK_JUMP_TO class 'gtk-jump-to' +::constant GTK_STOCK_JUSTIFY_CENTER class 'gtk-justify-center' +::constant GTK_STOCK_JUSTIFY_FILL class 'gtk-justify-fill' +::constant GTK_STOCK_JUSTIFY_LEFT class 'gtk-justify-left' +::constant GTK_STOCK_JUSTIFY_RIGHT class 'gtk-justify-right' +::constant GTK_STOCK_LEAVE_FULLSCREEN class 'gtk-leave-fullscreen' +::constant GTK_STOCK_MEDIA_FORWARD class 'gtk-media-forward' +::constant GTK_STOCK_MEDIA_NEXT class 'gtk-media-nect' +::constant GTK_STOCK_MEDIA_PAUSE class 'gtk-media-pause' +::constant GTK_STOCK_MEDIA_PLAY class 'gtk-media-play' +::constant GTK_STOCK_MEDIA_PREVIOUS class 'gtk-media-previous' +::constant GTK_STOCK_MEDIA_RECORD class 'gtk-media-record' +::constant GTK_STOCK_MEDIA_REWIND class 'gtk-media-rewind' +::constant GTK_STOCK_MEDIA_STOP class 'gtk-media-stop' +::constant GTK_STOCK_MISSING_IMAGE class 'gtk-missing-image' +::constant GTK_STOCK_NETWORK class 'gtk-network' +::constant GTK_STOCK_NEW class 'gtk-new' +::constant GTK_STOCK_NO class 'gtk-no' +::constant GTK_STOCK_OK class 'gtk-ok' +::constant GTK_STOCK_OPEN class 'gtk-open' +::constant GTK_STOCK_OREINTATION_LANDSCAPE class 'gtk-orientation-landscape' +::constant GTK_STOCK_OREINTATION_PORTRAIT class 'gtk-orientation-portrait' +::constant GTK_STOCK_OREINTATION_REVERSE_LANDSCAPE class 'gtk-orientation-reverse-landscape' +::constant GTK_STOCK_OREINTATION_REVERSE_LANDSCAPE class 'gtk-orientation-reverse-portrait' +::constant GTK_STOCK_PASTE class 'gtk-paste' +::constant GTK_STOCK_PREFERENCES class 'gtk-preferences' +::constant GTK_STOCK_PRINT class 'gtk-print' +::constant GTK_STOCK_PRINT_PREVIEW class 'gtk-print-preview' +::constant GTK_STOCK_PROPERTIES class 'gtk-properties' +::constant GTK_STOCK_QUIT class 'gtk-quit' +::constant GTK_STOCK_REDO class 'gtk-redo' +::constant GTK_STOCK_REFRESH class 'gtk-refresh' +::constant GTK_STOCK_REMOVE class 'gtk-remove' +::constant GTK_STOCK_REVERT_TO_SAVED class 'gtk-revert-to-saved' +::constant GTK_STOCK_SAVE class 'gtk-save' +::constant GTK_STOCK_SAVE_AS class 'gtk-save-as' +::constant GTK_STOCK_SELECT_ALL class 'gtk-select-all' +::constant GTK_STOCK_SELECT_COLOR class 'gtk-select-color' +::constant GTK_STOCK_SELECT_FONT class 'gtk-select-font' +::constant GTK_STOCK_SORT_ASCENDING class 'gtk-sort-ascending' +::constant GTK_STOCK_SORT_DESCENDING class 'gtk-sort-descending' +::constant GTK_STOCK_SPELL_CHECK class 'gtk-spell-check' +::constant GTK_STOCK_STOP class 'gtk-stop' +::constant GTK_STOCK_STRIKETHROUGH class 'gtk-strikethrough' +::constant GTK_STOCK_UNDELETE class 'gtk-undelete' +::constant GTK_STOCK_UNDERLINE class 'gtk-underline' +::constant GTK_STOCK_UNDO class 'gtk-undo' +::constant GTK_STOCK_UNINDENT class 'gtk-unindent' +::constant GTK_STOCK_YES class 'gtk-yes' +::constant GTK_STOCK_ZOOM_100 class 'gtk-zoom-100' +::constant GTK_STOCK_ZOOM_FIT class 'gtk-zoom-fit' +::constant GTK_STOCK_ZOOM_IN class 'gtk-zoom-in' +::constant GTK_STOCK_ZOOM_OUT class 'gtk-zoom-out' -- GtkFileCoooserAction - when tid = 'GTK_FILE_CHOOSER_ACTION_OPEN' then return 0 - when tid = 'GTK_FILE_CHOOSER_ACTION_SAVE' then return 1 - when tid = 'GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER' then return 2 - when tid = 'GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER' then return 3 +::constant GTK_FILE_CHOOSER_ACTION_OPEN class 0 +::constant GTK_FILE_CHOOSER_ACTION_SAVE class 1 +::constant GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER class 2 +::constant GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER class 3 -- GtkAssistancePageType - when tid = 'GTK_ASSISTANT_PAGE_CONTENT' then return 0 - when tid = 'GTK_ASSISTANT_PAGE_INTRO' then return 1 - when tid = 'GTK_ASSISTANT_PAGE_CONFIRM' then return 2 - when tid = 'GTK_ASSISTANT_PAGE_SUMMARY' then return 3 - when tid = 'GTK_ASSISTANT_PAGE_PROGRESS' then return 4 +::constant GTK_ASSISTANT_PAGE_CONTENT class 0 +::constant GTK_ASSISTANT_PAGE_INTRO class 1 +::constant GTK_ASSISTANT_PAGE_CONFIRM class 2 +::constant GTK_ASSISTANT_PAGE_SUMMARY class 3 +::constant GTK_ASSISTANT_PAGE_PROGRESS class 4 -- GtkReliefType - when tid = 'GTK_RELIEF_NORMAL' then return 0 - when tid = 'GTK_RELIEF_HALF' then return 1 - when tid = 'GTK_RELIEF_NONO' then return 2 +::constant GTK_RELIEF_NORMAL class 0 +::constant GTK_RELIEF_HALF class 1 +::constant GTK_RELIEF_NONO class 2 -- GtkAtom - when tid = 'GTK_SELECTION_PRIMARY' then return 1 - when tid = 'GTK_SELECTION_SECONDARY' then return 2 - when tid = 'GTK_SELECTION_CLIPBOARD' then return 69 +::constant GTK_SELECTION_PRIMARY class 1 +::constant GTK_SELECTION_SECONDARY class 2 +::constant GTK_SELECTION_CLIPBOARD class 69 -- GtkShadow - when tid = 'GTK_SHADOW_NONE' then return 0 - when tid = 'GTK_SHADOW_IN' then return 1 - when tid = 'GTK_SHADOW_OUT' then return 2 - when tid = 'GTK_SHADOW_ETCHED_IN' then return 3 - when tid = 'GTK_SHADOW_ETCHED_OUT' then return 4 +::constant GTK_SHADOW_NONE class 0 +::constant GTK_SHADOW_IN class 1 +::constant GTK_SHADOW_OUT class 2 +::constant GTK_SHADOW_ETCHED_IN class 3 +::constant GTK_SHADOW_ETCHED_OUT class 4 -- GtkPositionType - when tid = 'GTK_POS_LEFT' then return 0 - when tid = 'GTK_POS_RIGHT' then return 1 - when tid = 'GTK_POS_TOP' then return 2 - when tid = 'GTK_POS_BOTTOM' then return 3 +::constant GTK_POS_LEFT class 0 +::constant GTK_POS_RIGHT class 1 +::constant GTK_POS_TOP class 2 +::constant GTK_POS_BOTTOM class 3 -- GtkIconSize - when tid = 'GTK_ICON_SIZE_INVALID' then return 0 - when tid = 'GTK_ICON_SIZE_MENU' then return 1 - when tid = 'GTK_ICON_SIZE_SMALL_TOOLBAR' then return 2 - when tid = 'GTK_ICON_SIZE_LARGE_TOOLBAR' then return 3 - when tid = 'GTK_ICON_SIZE_BUTTON' then return 4 - when tid = 'GTK_ICON_SIZE_DND' then return 5 - when tid = 'GTK_ICON_SIZE_DIALOG' then return 6 +::constant GTK_ICON_SIZE_INVALID class 0 +::constant GTK_ICON_SIZE_MENU class 1 +::constant GTK_ICON_SIZE_SMALL_TOOLBAR class 2 +::constant GTK_ICON_SIZE_LARGE_TOOLBAR class 3 +::constant GTK_ICON_SIZE_BUTTON class 4 +::constant GTK_ICON_SIZE_DND class 5 +::constant GTK_ICON_SIZE_DIALOG class 6 -- GtkJustification - when tid = 'GTK_JUSTIFY_LEFT' then return 0 - when tid = 'GTK_JUSTIFY_RIGHT' then return 1 - when tid = 'GTK_JUSTIFY_CENTER' then return 2 - when tid = 'GTK_JUSTIFY_FILL' then return 3 +::constant GTK_JUSTIFY_LEFT class 0 +::constant GTK_JUSTIFY_RIGHT class 1 +::constant GTK_JUSTIFY_CENTER class 2 +::constant GTK_JUSTIFY_FILL class 3 -- GtkPolicyType - when tid = 'GTK_POLICY_ALWAYS' then return 0 - when tid = 'GTK_POLICY_AUTOMATIC' then return 1 - when tid = 'GTK_POLICY_NEVER' then return 2 +::constant GTK_POLICY_ALWAYS class 0 +::constant GTK_POLICY_AUTOMATIC class 1 +::constant GTK_POLICY_NEVER class 2 -- GtkAttachOptions - when tid = 'GTK_EXPAND' then return 2**0 - when tid = 'GTK_SHRINK' then return 2**1 - when tid = 'GTK_FILL' then return 2**2 +::constant GTK_EXPAND class 0 +::constant GTK_SHRINK class 1 +::constant GTK_FILL class 2 -- GtkWrapMode - when tid = 'GTK_WRAP_NONE' then return 0 - when tid = 'GTK_WRAP_CHAR' then return 1 - when tid = 'GTK_WRAP_WORD' then return 2 - when tid = 'GTK_WRAP_WORD_CHAR' then return 3 +::constant GTK_WRAP_NONE class 0 +::constant GTK_WRAP_CHAR class 1 +::constant GTK_WRAP_WORD class 2 +::constant GTK_WRAP_WORD_CHAR class 3 -- GtkStateType - when tid = 'GTK_STATE_NORMAL' then return 0 - when tid = 'GTK_STATE_ACTIVE' then return 1 - when tid = 'GTK_STATE_PRELIGHT' then return 2 - when tid = 'GTK_STATE_SELECTED' then return 3 - when tid = 'GTK_STATE_INSENSITIVE' then return 4 +::constant GTK_STATE_NORMAL class 0 +::constant GTK_STATE_ACTIVE class 1 +::constant GTK_STATE_PRELIGHT class 2 +::constant GTK_STATE_SELECTED class 3 +::constant GTK_STATE_INSENSITIVE class 4 -- Pango scale factors - when tid = 'PANGO_SCALE_XX_SMALL' then return 0.5787037037037 - when tid = 'PANGO_SCALE_X_SMALL' then return 0.6444444444444 - when tid = 'PANGO_SCALE_SMALL' then return 0.8333333333333 - when tid = 'PANGO_SCALE_MEDIUM' then return 1.0 - when tid = 'PANGO_SCALE_LARGE' then return 1.2 - when tid = 'PANGO_SCALE_X_LARGE' then return 1.4399999999999 - when tid = 'PANGO_SCALE_XX_LARGE' then return 1.728 +::constant PANGO_SCALE_XX_SMALL class 0.5787037037037 +::constant PANGO_SCALE_X_SMALL class 0.6444444444444 +::constant PANGO_SCALE_SMALL class 0.8333333333333 +::constant PANGO_SCALE_MEDIUM class 1.0 +::constant PANGO_SCALE_LARGE class 1.2 +::constant PANGO_SCALE_X_LARGE class 1.4399999999999 +::constant PANGO_SCALE_XX_LARGE class 1.728 -- PangoWeight - when tid = 'PANGO_WEIGHT_ULTRALIGHT' then return 200 - when tid = 'PANGO_WEIGHT_LIGHT' then return 300 - when tid = 'PANGO_WEIGHT_NORMAL' then return 400 - when tid = 'PANGO_WEIGHT_SEMIBOLD' then return 600 - when tid = 'PANGO_WEIGHT_BOLD' then return 700 - when tid = 'PANGO_WEIGHT_ULTRABOLD' then return 800 - when tid = 'PANGO_WEIGHT_HEAVY' then return 900 +::constant PANGO_WEIGHT_ULTRALIGHT class 200 +::constant PANGO_WEIGHT_LIGHT class 300 +::constant PANGO_WEIGHT_NORMAL class 400 +::constant PANGO_WEIGHT_SEMIBOLD class 600 +::constant PANGO_WEIGHT_BOLD class 700 +::constant PANGO_WEIGHT_ULTRABOLD class 800 +::constant PANGO_WEIGHT_HEAVY class 900 -- PangoStyle - when tid = 'PANGO_STYLE_NORMAL' then return 0 - when tid = 'PANGO_STYLE_OBLIQUE' then return 1 - when tid = 'PANGO_STYLE_ITALIC' then return 2 +::constant PANGO_STYLE_NORMAL class 0 +::constant PANGO_STYLE_OBLIQUE class 1 +::constant PANGO_STYLE_ITALIC class 2 -- PangoUnderline - when tid = 'PANGO_UNDERLINE_NONE' then return 0 - when tid = 'PANGO_UNDERLINE_SINGLE' then return 1 - when tid = 'PANGO_UNDERLINE_DOUBLE' then return 2 - when tid = 'PANGO_UNDERLINE_LOW' then return 3 - when tid = 'PANGO_UNDERLINE_ERROR' then return 4 +::constant PANGO_UNDERLINE_NONE class 0 +::constant PANGO_UNDERLINE_SINGLE class 1 +::constant PANGO_UNDERLINE_DOUBLE class 2 +::constant PANGO_UNDERLINE_LOW class 3 +::constant PANGO_UNDERLINE_ERROR class 4 -- Fundamental GTypes - when tid = 'G_TYPE_INVALID' then return 0 - when tid = 'G_TYPE_NONE' then return 1 - when tid = 'G_TYPE_INTERFACE' then return 2 - when tid = 'G_TYPE_CHAR' then return 3 - when tid = 'G_TYPE_UCHAR' then return 4 - when tid = 'G_TYPE_BOOLEAN' then return 5 - when tid = 'G_TYPE_INT' then return 6 - when tid = 'G_TYPE_UINT' then return 7 - when tid = 'G_TYPE_LONG' then return 8 - when tid = 'G_TYPE_ULONG' then return 9 - when tid = 'G_TYPE_INT64' then return 10 - when tid = 'G_TYPE_UINT64' then return 11 - when tid = 'G_TYPE_ENUM' then return 12 - when tid = 'G_TYPE_FLAGS' then return 13 - when tid = 'G_TYPE_FLOAT' then return 14 - when tid = 'G_TYPE_DOUBLE' then return 15 - when tid = 'G_TYPE_STRING' then return 16 - when tid = 'G_TYPE_POINTER' then return 17 - when tid = 'G_TYPE_BOXED' then return 18 - when tid = 'G_TYPE_PARAM' then return 19 - when tid = 'G_TYPE_OBJECT' then return 20 +::constant G_TYPE_INVALID class 0 +::constant G_TYPE_NONE class 1 +::constant G_TYPE_INTERFACE class 2 +::constant G_TYPE_CHAR class 3 +::constant G_TYPE_UCHAR class 4 +::constant G_TYPE_BOOLEAN class 5 +::constant G_TYPE_INT class 6 +::constant G_TYPE_UINT class 7 +::constant G_TYPE_LONG class 8 +::constant G_TYPE_ULONG class 9 +::constant G_TYPE_INT64 class 10 +::constant G_TYPE_UINT64 class 11 +::constant G_TYPE_ENUM class 12 +::constant G_TYPE_FLAGS class 13 +::constant G_TYPE_FLOAT class 14 +::constant G_TYPE_DOUBLE class 15 +::constant G_TYPE_STRING class 16 +::constant G_TYPE_POINTER class 17 +::constant G_TYPE_BOXED class 18 +::constant G_TYPE_PARAM class 19 +::constant G_TYPE_OBJECT class 20 -- Just return the id otherwise nop end @@ -391,6 +389,7 @@ ::METHOD get_font EXTERNAL "LIBRARY rexxgtk GrxWidgetGetFont" ::METHOD 'font=' EXTERNAL "LIBRARY rexxgtk GrxWidgetSetFont" ::METHOD set_font EXTERNAL "LIBRARY rexxgtk GrxWidgetSetFont" +::METHOD modify_font EXTERNAL "LIBRARY rexxgtk GrxWidgetSetFont" ::METHOD grab_focus EXTERNAL "LIBRARY rexxgtk GrxWidgetGrabFocus" ::METHOD hide EXTERNAL "LIBRARY rexxgtk GrxWidgetHide" ::METHOD hide_all EXTERNAL "LIBRARY rexxgtk GrxWidgetHideAll" @@ -409,6 +408,45 @@ ::METHOD set_data EXTERNAL "LIBRARY rexxgtk GrxWidgetSetData" ::METHOD data EXTERNAL "LIBRARY rexxgtk GrxWidgetGetData" ::METHOD get_data EXTERNAL "LIBRARY rexxgtk GrxWidgetGetData" +::METHOD activate EXTERNAL "LIBRARY rexxgtk GrxWidgetActivate' +::METHOD reparent EXTERNAL "LIBRARY rexxgtk GrxWidgetReparent' +::METHOD is_focus EXTERNAL "LIBRARY rexxgtk GrxWidgetIsFocus' +::METHOD grab_default EXTERNAL "LIBRARY rexxgtk GrxWidgetGrabDefault' +::METHOD set_parent_window EXTERNAL "LIBRARY rexxgtk GrxWidgetSetParentWindow' +::METHOD get_parent_window EXTERNAL "LIBRARY rexxgtk GrxWidgetGetParentWindow' +::METHOD parent_window EXTERNAL "LIBRARY rexxgtk GrxWidgetGetParentWindow' +::METHOD get_toplevel EXTERNAL "LIBRARY rexxgtk GrxWidgetGetToplevel' +::METHOD toplevel EXTERNAL "LIBRARY rexxgtk GrxWidgetGetToplevel' +::METHOD get_ancestor EXTERNAL "LIBRARY rexxgtk GrxWidgetGetAncestor' +::METHOD ancestor EXTERNAL "LIBRARY rexxgtk GrxWidgetGetAncestor' +::METHOD is_ancestor EXTERNAL "LIBRARY rexxgtk GrxWidgetIsAncestor' +::METHOD 'direction=' EXTERNAL "LIBRARY rexxgtk GrxWidgetSetDirection' +::METHOD set_direction EXTERNAL "LIBRARY rexxgtk GrxWidgetSetDirection' +::METHOD get_direction EXTERNAL "LIBRARY rexxgtk GrxWidgetGetDirection' +::METHOD direction EXTERNAL "LIBRARY rexxgtk GrxWidgetGetDirection' +::METHOD get_default_direction EXTERNAL "LIBRARY rexxgtk GrxWidgetGetDefaultDirection' +::METHOD default_direction EXTERNAL "LIBRARY rexxgtk GrxWidgetGetDefaultDirection' +::METHOD modify_cursor EXTERNAL "LIBRARY rexxgtk GrxWidgetModifyCursor" +::METHOD queue_draw_area EXTERNAL "LIBRARY rexxgtk GrxWidgetQueueDrawArea" +::METHOD reset_shapes EXTERNAL "LIBRARY rexxgtk GrxWidgetResetShapes" +::METHOD set_scroll_adjustments EXTERNAL "LIBRARY rexxgtk GrxWidgetSetScrollAdjustments" +::METHOD mnemonic_activate EXTERNAL "LIBRARY rexxgtk GrxWidgetMnemonicActivate" +::METHOD get_accessible EXTERNAL "LIBRARY rexxgtk GrxWidgetGetAccessible" +::METHOD get_child_visible EXTERNAL "LIBRARY rexxgtk GrxWidgetGetChildVisible" +::METHOD child_visible EXTERNAL "LIBRARY rexxgtk GrxWidgetGetChildVisible" +::METHOD get_parent EXTERNAL "LIBRARY rexxgtk GrxWidgetGetParent" +::METHOD parent EXTERNAL "LIBRARY rexxgtk GrxWidgetGetParent" +::METHOD get_root_window EXTERNAL "LIBRARY rexxgtk GrxWidgetGetRootWindow" +::METHOD root_window EXTERNAL "LIBRARY rexxgtk GrxWidgetGetRootWindow" +::METHOD error_bell EXTERNAL "LIBRARY rexxgtk GrxWidgetErrorBell" +::METHOD get_tooltip_markup EXTERNAL "LIBRARY rexxgtk GrxWidgetGetTooltipMarkup" +::METHOD tooltip_markup EXTERNAL "LIBRARY rexxgtk GrxWidgetGetTooltipMarkup" +::METHOD set_tooltip_markup EXTERNAL "LIBRARY rexxgtk GrxWidgetSetTooltipMarkup" +::METHOD 'tooltip_markup=' EXTERNAL "LIBRARY rexxgtk GrxWidgetSetTooltipMarkup" +::METHOD get_tooltip_text EXTERNAL "LIBRARY rexxgtk GrxWidgetGetTooltipText" +::METHOD tooltip_text EXTERNAL "LIBRARY rexxgtk GrxWidgetGetTooltipText" +::METHOD set_tooltip_text EXTERNAL "LIBRARY rexxgtk GrxWidgetSetTooltipText" +::METHOD 'tooltip_text=' EXTERNAL "LIBRARY rexxgtk GrxWidgetSetTooltipText" ::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxWidgetSignalConnect" -- Added: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h (rev 0) +++ sandbox/david/4x/rexxgtk.h 2008-04-03 01:31:01 UTC (rev 2407) @@ -0,0 +1,80 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx L... [truncated message content] |
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. |
From: <wda...@us...> - 2008-04-03 20:44:17
|
Revision: 2409 http://oorexx.svn.sourceforge.net/oorexx/?rev=2409&view=rev Author: wdashley Date: 2008-04-03 13:44:03 -0700 (Thu, 03 Apr 2008) Log Message: ----------- ArtifactID: None Comment: More 4.x updates. Modified Paths: -------------- sandbox/david/4x/grxwidget.cpp sandbox/david/4x/rexxdb.c sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.h Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-04-03 20:30:29 UTC (rev 2408) +++ sandbox/david/4x/grxwidget.cpp 2008-04-03 20:44:03 UTC (rev 2409) @@ -1038,6 +1038,7 @@ cblock->signal_name = "signal_destroy"; g_signal_connect(G_OBJECT(myWidget), "destroy", G_CALLBACK(signal_func_0), cblock); + GrxDBRemoveObject(myWidget); } else { return FALSE; Modified: sandbox/david/4x/rexxdb.c =================================================================== --- sandbox/david/4x/rexxdb.c 2008-04-03 20:30:29 UTC (rev 2408) +++ sandbox/david/4x/rexxdb.c 2008-04-03 20:44:03 UTC (rev 2409) @@ -67,12 +67,25 @@ /* Functions */ /*----------------------------------------------------------------------------*/ -static int custom_compare( +static int custom_compare2( gconstpointer a, gconstpointer b) { dbentry *aa = a; dbentry *bb = b; + if (aa->obj != bb->obj) { + return -1; + } + return 0; +} + + +static int custom_compare1( + gconstpointer a, + gconstpointer b) { + + dbentry *aa = a; + dbentry *bb = b; if (aa->widget != bb->widget) { return -1; } @@ -91,12 +104,12 @@ } -int GrxDBRemove( +int GrxDBRemoveObject( const GtkWidget *widget) { // the widget pointer dbentry searchentry; searchentry.widget = widget; - dbentry *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare); + dbentry *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare1); if (dbentry != NULL) { rxgtkdb = g_list_remove(rxgtkdb, dbentry); free(dbentry); @@ -106,6 +119,21 @@ } +int GrxDBRemoveWidget( + const RexxObjectPtr obj) { // the Rexx object pointer + + dbentry searchentry; + searchentry.widget = widget; + dbentry *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare2); + if (dbentry != NULL) { + rxgtkdb = g_list_remove(rxgtkdb, dbentry); + free(dbentry); + return 0; + } + return 1; +} + + RexxObjectPtr GrxDBFindObject( const GtkWidget *widget) { // the widget pointer Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-03 20:30:29 UTC (rev 2408) +++ sandbox/david/4x/rexxgtk.cls 2008-04-03 20:44:03 UTC (rev 2409) @@ -39,10 +39,6 @@ /*----------------------------------------------------------------------------*/ --- Create the Rexx queue we will use for callbacks -.local['!GTK_Queue'] = RxQueue('Create', 'GTKQUEUE23') -call GrxSetRexxQueueName .local['!GTK_Queue'] - -- Create and initialize the GTK quit flag .local['!GTK_Quit'] = .false @@ -82,15 +78,6 @@ ::routine gtk_main_iteration public call GrxMainIteration -old_queue = RxQueue('Set', .local['!GTK_Queue']) -do while queued() > 0 - pull pointer msg args - widget = .local['!GTK_Database']~at(pointer) - if widget <> .nil then do - widget~run_method(msg, args) - end - end -call RxQueue 'Set', old_queue return @@ -357,6 +344,8 @@ ::method uninit -- don't destroy widgets by default! +-- but do remove it from the DB +call GrxRemoveWidget self return ::method pointer Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-03 20:30:29 UTC (rev 2408) +++ sandbox/david/4x/rexxgtk.h 2008-04-03 20:44:03 UTC (rev 2409) @@ -62,14 +62,11 @@ extern int rexxgtk_argc; typedef struct _cbcb { - RexxInstance *instance; - char *signal_name; + RexxInstance *instance; // Rexx instance + char *signal_name; // ame of the Rexx method } cbcb; - - - /*----------------------------------------------------------------------------*/ /* Function Prototypes */ /*----------------------------------------------------------------------------*/ @@ -77,7 +74,9 @@ int GrxDBAdd( const RexxObjectPtr rxobj, // the object to be added const GtkWidget *widget); // the widget pointer -int GrxDBRemove( +int GrxDBRemoveWidget( + const RexxObjectPtr *obj); // the widget pointer +int GrxDBRemoveObject( const GtkWidget *widget); // the widget pointer RexxObjectPtr GrxDBFindObject( const GtkWidget *widget); // the widget pointer This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-04 02:29:31
|
Revision: 2411 http://oorexx.svn.sourceforge.net/oorexx/?rev=2411&view=rev Author: wdashley Date: 2008-04-03 19:29:37 -0700 (Thu, 03 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Added the container methods to the 4x stuff. Modified Paths: -------------- sandbox/david/4x/grxwidget.cpp Added Paths: ----------- sandbox/david/4x/grxcontainer.cpp Added: sandbox/david/4x/grxcontainer.cpp =================================================================== --- sandbox/david/4x/grxcontainer.cpp (rev 0) +++ sandbox/david/4x/grxcontainer.cpp 2008-04-04 02:29:37 UTC (rev 2411) @@ -0,0 +1,430 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + +static void signal_func_0(GtkWidget *window, + gpointer data) +{ + RexxInstance *instance = ((cbcb *)data)->instance; + RexxThreadContext *context; + + instance->AttachThread(&context); + context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); + context->DetachThread(); + return; +} + +static void signal_func_1(GtkWidget *window, + GtkWidget *widget, + gpointer data) +{ + RexxInstance *instance = ((cbcb *)data)->instance; + RexxThreadContext *context; + + instance->AttachThread(&context); + context->SendMessage1(GrxDBFindObject(widget), ((cbcb *)data)->signal_name, + GrxDBFindObject(widget)); + context->DetachThread(); + return; +} + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + +/** + * Method: add + * + * Add a widget to the container widget. + * + * @param add The widget to add. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxContainerAdd, // Object_method name + RexxObjectPtr, rxremptr) // Object to add +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr addtptr = context->functions->GetObjectVariable(rxaddptr, "!POINTER"); + GtkWidget *addWidget = (GtkWidget *)context->PointerValue(addptr); + + gtk_container_add(GTK_CONTAINER(myWidget), addWidget); + + return 0; +} + +/** + * Method: remove + * + * Remove a widget from the container widget. + * + * @param remove The widget to remove. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxContainerRemove, // Object_method name + RexxObjectPtr, rxremptr) // Object to add +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr remtptr = context->functions->GetObjectVariable(rxremptr, "!POINTER"); + GtkWidget *remWidget = (GtkWidget *)context->PointerValue(remptr); + + gtk_container_remove(GTK_CONTAINER(myWidget), remWidget); + + return 0; +} + +/** + * Method: set_border_width + * + * Set the border width for the container. + * + * @param width The width of the border + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxContainerSetBorderWidth,// Object_method name + int, width) // Border widthd +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_container_set_border_width(GTK_CONTAINER(myWidget), width); + + return 0; +} + +/** + * Method: pack_start + * + * Pack a box. + * + * @param widget The widget to pack. + * + * @param expand Expand boolean. + * + * @param fill Fill boolean. + * + * @param pad Padding amount. + * + * @return Zero. + */ +RexxMethod4(int, // Return type + GrxBoxPackStart, // Object_method name + RexxObjectPtr, rxpackptr, // Widget to pack + bool, expand, // Expand boolean + bool, fill, // Fill boolean + unsigned int, padding) // Padding amount +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr packptr = context->functions->GetObjectVariable(rxpackptr, "!POINTER"); + GtkWidget *packWidget = (GtkWidget *)context->PointerValue(packptr); + + gtk_box_pack_start(GTK_BOX(myWidget), packWidget, expand, fill, padding); + + return 0; +} + +/** + * Method: pack_end + * + * Pack a box. + * + * @param widget The widget to pack. + * + * @param expand Expand boolean. + * + * @param fill Fill boolean. + * + * @param pad Padding amount. + * + * @return Zero. + */ +RexxMethod4(int, // Return type + GrxBoxPackEnd, // Object_method name + RexxObjectPtr, rxpackptr, // Widget to pack + bool, expand, // Expand boolean + bool, fill, // Fill boolean + unsigned int, padding) // Padding amount +APIRET APIENTRY GrxBoxPackEnd(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr packptr = context->functions->GetObjectVariable(rxpackptr, "!POINTER"); + GtkWidget *packWidget = (GtkWidget *)context->PointerValue(packptr); + + gtk_box_pack_end(GTK_BOX(myWidget), packWidget, expand, fill, padding); + + return 0; +} + +/** + * Method: init + * + * Create a new VBox. + * + * @param homog The homogeneous boolean + * + * @param spacing The spacing amoint + * + * @return Zero. + */ +RexxMethod2(int, // Return type + GrxVBoxNew, // Object_method name + bool, homogeneous, // Homogeneous boolean + int, spacing) // Spacing amount +{ + GtkWidget *myWidget; + + + myWidget = gtk_vbox_new(homogeneous, spacing); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/** + * Method: init + * + * Create a new HBox. + * + * @param homog The homogeneous boolean + * + * @param spacing The spacing amoint + * + * @return Zero. + */ +RexxMethod2(int, // Return type + GrxHBoxNew, // Object_method name + bool, homogeneous, // Homogeneous boolean + int, spacing) // Spacing amount +APIRET APIENTRY GrxHBoxNew(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) +{ + GtkWidget *myWidget; + + myWidget = gtk_hbox_new(homogeneous, spacing); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/** + * Method: init + * + * Create a new Alignment. + * + * @param xalign The X alignment + * + * @param yalign The x alignment + * + * @param xscale The x scale + * + * @param yscale The x scale + * + * @return Zero. + */ +RexxMethod4(int, // Return type + GrxAlignmentNew, // Object_method name + float, xalign, // X alignment + float, yalign, // Y alignment + float, xscale, // Y scale + float, yscale) // Y scale +{ + GtkWidget *myWidget; + + myWidget = gtk_alignment_new(xalign, yalign, xscale, yscale); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(int, // Return type + GrxContainerSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(Argv[1].strptr, "add") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_add"; + g_signal_connect(G_OBJECT(myWidget), "add", + G_CALLBACK(signal_func_1), cblock); + } + else if (strcmp(Argv[1].strptr, "check-resize") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_check_resize"; + g_signal_connect(G_OBJECT(myWidget), "check-resize", + G_CALLBACK(signal_func_0), cblock); + } + else if (strcmp(Argv[1].strptr, "remove") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_remove"; + g_signal_connect(G_OBJECT(myWidget), "remove", + G_CALLBACK(signal_func_1), cblock); + } + else if (strcmp(Argv[1].strptr, "set-focus-child") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_set_focus_child"; + g_signal_connect(G_OBJECT(myWidget), "set-focus-child", + G_CALLBACK(signal_func_1), cblock); + } + else { + RexxObjectPtr parent = context->GetSuper(); + context->SendMessage0(parent, name); + } + + return 0; +} + + +/** + * Method: init + * + * Create a new Alignment. + * + * @param xalign The X alignment + * + * @param hadj The horizontal adjustment + * + * @param vadj The vertical adjustment + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxViewportNew, // Object_method name + int, rxhadj, // Horizontal adjustment object + int, rxvadj, // Vertical adjustment object +{ + RexxObjectPtr hadjptr = context->functions->GetObjectVariable(rxhadjptr, "!POINTER"); + GtkAdjustmet *hadj = (GtkAdjustment *)context->PointerValue(hadjptr); + RexxObjectPtr vadjptr = context->functions->GetObjectVariable(rxvadjptr, "!POINTER"); + GtkAdjustmet *vadj = (GtkAdjustment *)context->PointerValue(vadjptr); + GtkWidget *myWidget; + + myWidget = gtk_viewport_new(hadj, vadj); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(int, // Return type + GrxViewportSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + + if (strcmp(Argv[1].strptr, "set-scroll-adjustments") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_set_scroll_adjustments"; + g_signal_connect(G_OBJECT(myWidget), "set-scroll-adjustments", + G_CALLBACK(signal_func_1), cblock); + } + else { + RexxObjectPtr parent = context->GetSuper(); + context->SendMessage0(parent, name); + } + + return 0; +} Property changes on: sandbox/david/4x/grxcontainer.cpp ___________________________________________________________________ Name: svn:eol-style + native Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-04-03 20:49:25 UTC (rev 2410) +++ sandbox/david/4x/grxwidget.cpp 2008-04-04 02:29:37 UTC (rev 2411) @@ -1022,9 +1022,9 @@ * * @param name The signal name * - * @return Boolean + * @return Zero */ -RexxMethod1(bool, // Return type +RexxMethod1(int, // Return type GrxWidgetSignalConnect, // Object_method name CSTRING, name) // Signal name { @@ -1041,9 +1041,9 @@ GrxDBRemoveObject(myWidget); } else { - return FALSE; + return 0; } - return TRUE; + return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-04 15:42:51
|
Revision: 2413 http://oorexx.svn.sourceforge.net/oorexx/?rev=2413&view=rev Author: wdashley Date: 2008-04-04 08:40:43 -0700 (Fri, 04 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Added 4.x Windows class. Modified Paths: -------------- sandbox/david/4x/grxcontainer.cpp sandbox/david/4x/rexxgtk.cls Added Paths: ----------- sandbox/david/4x/grxwindow.cpp Modified: sandbox/david/4x/grxcontainer.cpp =================================================================== --- sandbox/david/4x/grxcontainer.cpp 2008-04-04 02:43:32 UTC (rev 2412) +++ sandbox/david/4x/grxcontainer.cpp 2008-04-04 15:40:43 UTC (rev 2413) @@ -379,8 +379,8 @@ */ RexxMethod1(int, // Return type GrxViewportNew, // Object_method name - int, rxhadj, // Horizontal adjustment object - int, rxvadj, // Vertical adjustment object + RexxObjectPtr, rxhadj, // Horizontal adjustment object + RexxObjectPtr, rxvadk) // Vertical adjustment object { RexxObjectPtr hadjptr = context->functions->GetObjectVariable(rxhadjptr, "!POINTER"); GtkAdjustmet *hadj = (GtkAdjustment *)context->PointerValue(hadjptr); Added: sandbox/david/4x/grxwindow.cpp =================================================================== --- sandbox/david/4x/grxwindow.cpp (rev 0) +++ sandbox/david/4x/grxwindow.cpp 2008-04-04 15:40:43 UTC (rev 2413) @@ -0,0 +1,208 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + +static void signal_func_0(GtkWidget *window, + gpointer data) +{ + RexxInstance *instance = ((cbcb *)data)->instance; + RexxThreadContext *context; + + instance->AttachThread(&context); + context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); + context->DetachThread(); + return; +} + +static void signal_func_1(GtkWidget *window, + GtkWidget *widget, + gpointer data) +{ + RexxInstance *instance = ((cbcb *)data)->instance; + RexxThreadContext *context; + + instance->AttachThread(&context); + context->SendMessage1(GrxDBFindObject(widget), ((cbcb *)data)->signal_name, + GrxDBFindObject(widget)); + context->DetachThread(); + return; +} + + +/*============================================================================*/ +/* Public Methods */ +/*============================================================================*/ + +/** + * Method: init + * + * Create a new Window. + * + * @param type The window type. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxWindowNew, // Object_method name + int, type) // Window type +{ + GtkWidget *myWidget; + + myWidget = gtk_window_new(type); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/** + * Method: set_title + * + * Set the title for a window. + * + * @param title The title + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxWindowSetTitle, // Object_method name + CSTRING, title) // Window title +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_window_set_title(GTK_WINDOW(myWidget), title); + + return 0; +} + +/** + * Method: set_modal + * + * Set the modal flag for the window. + * + * @param modal The modal flag + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxWindowSetTitle, // Object_method name + bool, modal) // Window modal flag +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_window_set_modal(GTK_WINDOW(myWidget), modal); + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxWindowSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(Argv[1].strptr, "activate_default") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_set_scroll_adjustments"; + g_signal_connect(G_OBJECT(myWidget), "set-scroll-adjustments", + G_CALLBACK(signal_func_0), cblock); + } + else if (strcmp(Argv[1].strptr, "activate_focus") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_activate_focus"; + g_signal_connect(G_OBJECT(myWidget), "activate-focus", + G_CALLBACK(signal_func_0), cblock); + } + else if (strcmp(Argv[1].strptr, "keys_changed") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_keys_changed"; + g_signal_connect(G_OBJECT(myWidget), "keys-changed", + G_CALLBACK(signal_func_0), cblock); + } + else if (strcmp(Argv[1].strptr, "set_focus") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_set_focus"; + g_signal_connect(G_OBJECT(myWidget), "set-focus", + G_CALLBACK(signal_func_1), cblock); + } + else { + RexxObjectPtr parent = context->GetSuper(); + context->SendMessage0(parent, name); + } + + return 0; +} + Property changes on: sandbox/david/4x/grxwindow.cpp ___________________________________________________________________ Name: svn:eol-style + native Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-04 02:43:32 UTC (rev 2412) +++ sandbox/david/4x/rexxgtk.cls 2008-04-04 15:40:43 UTC (rev 2413) @@ -571,3 +571,29 @@ return self~signal_connect:super(event) +/*============================================================================*/ +/* Class: GtkWindow */ +/*============================================================================*/ + +::class GtkWindow public subclass GtkContainer + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxWindowNew" +::METHOD 'title=' EXTERNAL "LIBRARY rexxgtk GrxWindowSetTitle" +::METHOD set_title EXTERNAL "LIBRARY rexxgtk GrxWindowSetTitle" +::METHOD 'modal=' EXTERNAL "LIBRARY rexxgtk GrxWindowSetModal" +::METHOD set_modal EXTERNAL "LIBRARY rexxgtk GrxWindowSetModal" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxWindowSignalConnect" + +::method signal_activate_default +return + +::method signal_activate_focus +return + +::method signal_keys_changed +return + +::method signal_set_focus +return + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-04 17:27:06
|
Revision: 2414 http://oorexx.svn.sourceforge.net/oorexx/?rev=2414&view=rev Author: wdashley Date: 2008-04-04 10:27:11 -0700 (Fri, 04 Apr 2008) Log Message: ----------- ArtifactID: None Comment: added Paned classes to 4.x stuff. Modified Paths: -------------- sandbox/david/4x/rexxgtk.cls Added Paths: ----------- sandbox/david/4x/grxpaned.cpp Added: sandbox/david/4x/grxpaned.cpp =================================================================== --- sandbox/david/4x/grxpaned.cpp (rev 0) +++ sandbox/david/4x/grxpaned.cpp 2008-04-04 17:27:11 UTC (rev 2414) @@ -0,0 +1,200 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + +/** + * Method: add1 + * + * Add a widget to a paned. + * + * @param addWidget The widget to add. + * + * @return Zero + */ +RexxMethod1(int, // Return type + GrxPanedAdd1, // Object_method name + RexxObjectPtr, rxaddptr) // Widget to add +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr addptr = context->functions->GetObjectVariable(rxaddptr, "!POINTER"); + GtkWidget *addWidget = (GtkWidget *)context->PointerValue(addptr); + + gtk_paned_add1(GTK_PANED(myWidget), addWidget); + + return 0; +} + +/** + * Method: add2 + * + * Add a widget to a paned. + * + * @param addWidget The widget to add. + * + * @return Zero + */ +RexxMethod1(int, // Return type + GrxPanedAdd2, // Object_method name + RexxObjectPtr, rxaddptr) // Widget to add +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr addptr = context->functions->GetObjectVariable(rxaddptr, "!POINTER"); + GtkWidget *addWidget = (GtkWidget *)context->PointerValue(addptr); + + gtk_paned_add2(GTK_PANED(myWidget), addWidget); + + return 0; +} + +/** + * Method: pack1 + * + * Pack a widget to a paned. + * + * @param addWidget The widget to add. + * + * @return Zero + */ +RexxMethod3(int, // Return type + GrxPanedPack1, // Object_method name + RexxObjectPtr, rxpackptr, // Widget to add + bool, resize, // Resize flag + bool, shrink) // Shrink flag +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr packptr = context->functions->GetObjectVariable(rxpackptr, "!POINTER"); + GtkWidget *packWidget = (GtkWidget *)context->PointerValue(packptr); + + gtk_paned_pack1(GTK_PANED(myWidget), packWidget, resize, shrink); + + return 0; +} + +/** + * Method: pack2 + * + * Pack a widget to a paned. + * + * @param addWidget The widget to add. + * + * @return Zero + */ +RexxMethod3(int, // Return type + GrxPanedPack2, // Object_method name + RexxObjectPtr, rxpackptr, // Widget to add + bool, resize, // Resize flag + bool, shrink) // Shrink flag +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr packptr = context->functions->GetObjectVariable(rxpackptr, "!POINTER"); + GtkWidget *packWidget = (GtkWidget *)context->PointerValue(packptr); + + gtk_paned_pack2(GTK_PANED(myWidget), packWidget, resize, shrink); + + return 0; +} + +/** + * Method: init + * + * Initialize a VPand object. + * + * @return Zero + */ +RexxMethod0(int, // Return type + GrxVPanedNew) // Object_method name +{ + GtkWidget *myWidget; + + myWidget = gtk_vpaned_new(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/** + * Method: init + * + * Initialize a HPand object. + * + * @return Zero + */ +RexxMethod0(int, // Return type + GrxHPanedNew) // Object_method name +{ + GtkWidget *myWidget; + + myWidget = gtk_hpaned_new(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + Property changes on: sandbox/david/4x/grxpaned.cpp ___________________________________________________________________ Name: svn:eol-style + native Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-04 15:40:43 UTC (rev 2413) +++ sandbox/david/4x/rexxgtk.cls 2008-04-04 17:27:11 UTC (rev 2414) @@ -572,6 +572,54 @@ /*============================================================================*/ +/* Class: GtkPaned */ +/* Note: This is strictly a base class. It should never be instantiated on */ +/* its own. You should instantiate one of its subclasses instead. */ +/*============================================================================*/ + +::class GtkPaned public subclass GtkContainer + +::method init +raise syntax 93.964 array ('A GtkPaned class cannot be instantiated.') +return + +::METHOD add1 EXTERNAL "LIBRARY rexxgtk GrxPanedAdd1" +::METHOD add2 EXTERNAL "LIBRARY rexxgtk GrxPanedAdd2" +::METHOD pack1 EXTERNAL "LIBRARY rexxgtk GrxPanedPack1" +::METHOD pack2 EXTERNAL "LIBRARY rexxgtk GrxPanedPack2" + +::method signal_connect +use strict arg event +return self~signal_connect:super(event) + + +/*============================================================================*/ +/* Class: GtkHPaned */ +/*============================================================================*/ + +::class GtkHPaned public subclass GtkPaned + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxHPanedNew" + +::method signal_connect +use strict arg event +return self~signal_connect:super(event) + + +/*============================================================================*/ +/* Class: GtkVPaned */ +/*============================================================================*/ + +::class GtkVPaned public subclass GtkPaned + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxVPanedNew" + +::method signal_connect +use strict arg event +return self~signal_connect:super(event) + + +/*============================================================================*/ /* Class: GtkWindow */ /*============================================================================*/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-07 19:16:38
|
Revision: 2415 http://oorexx.svn.sourceforge.net/oorexx/?rev=2415&view=rev Author: wdashley Date: 2008-04-07 12:15:31 -0700 (Mon, 07 Apr 2008) Log Message: ----------- ArtifactID: none Comment: Added button classes to the 4x stuff. Modified Paths: -------------- sandbox/david/4x/grxcontainer.cpp sandbox/david/4x/rexxgtk.cls Added Paths: ----------- sandbox/david/4x/grxbutton.cpp Added: sandbox/david/4x/grxbutton.cpp =================================================================== --- sandbox/david/4x/grxbutton.cpp (rev 0) +++ sandbox/david/4x/grxbutton.cpp 2008-04-07 19:15:31 UTC (rev 2415) @@ -0,0 +1,857 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + +static void signal_func_0(GtkWidget *widget, + gpointer data) +{ + RexxInstance *instance = ((cbcb *)data)->instance; + RexxThreadContext *context; + + instance->AttachThread(&context); + context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); + context->DetachThread(); + return; +} + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + +/* + * Method: init + * + * Create a push button. + * + * @return Zero. + */ +RexxMethod0(int, // Return type + GrxButtonNew) // Object_method name +{ + GtkWidget *myWidget; + + myWidget = gtk_button_new(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/* + * Method: init + * + * Create a push button from stock. + * + * @param type The button type. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxButtonNewFromStock, // Object_method name + CSTRING, type) // Button type +{ + GtkWidget *myWidget; + + myWidget = gtk_button_new_from_stock(type); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/* + * Method: set_label + * + * Set the button label. + * + * @param type The label text. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxButtonSetLable, // Object_method name + CSTRING, text) // Button type +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_button_set_label(GTK_BUTTON(myWidget), text); + + return 0; +} + +/* + * Method: get_label + * + * Get the button label. + * + * @return Label text. + */ +RexxMethod0(RexxObjectPtr, // Return type + GrxButtonGetLabel) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + return context->NewString(gtk_button_get_label(GTK_BUTTON(myWidget))); +} + +/* + * Method: set_relief + * + * Set the button relief. + * + * @param relief The button relief style. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxButtonSetRelief, // Object_method name + int, relief) // Button relief style +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_button_set_relief(GTK_BUTTON(myWidget), relief); + + return 0; +} + +/* + * Method: use_underline + * + * Set the button underline flag. + * + * @param flag The button underline flag. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxButtonSetUnderline, // Object_method name + bool, flag) // Button underline flag +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_button_set_use_underline(GTK_BUTTON(myWidget), flag); + + return 0; +} + +/* + * Method: init + * + * Create a toggle button. + * + * @return Zero. + */ +RexxMethod0(int, // Return type + GrxToggleButtonNew) // Object_method name +{ + GtkWidget *myWidget; + + myWidget = gtk_toggle_button_new(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/* + * Method: get_mode + * + * Get the display mode of the button. + * + * @return Mode. + */ +RexxMethod0(bool, // Return type + GrxToggleButtonGetMode) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + return gtk_toggle_button_get_mode(GTK_TOGGLE_BUTTON(myWidget)); +} + +/* + * Method: set_mode + * + * Set the display mode of the button. + * + * @param mode The button mode. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxToggleButtonSetMode, // Object_method name + bool, mode) // Button mode flag +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(myWidget), mode); + + return 0; +} + +/* + * Method: get_active + * + * Get the active state. + * + * @return Boolean. + */ +RexxMethod0(bool, // Return type + GrxToggleButtonGetActive) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(myWidget)); +} + +/* + * Method: set_active + * + * Set the active state of the button. + * + * @param mode The button state. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxToggleButtonSetActive, // Object_method name + bool, state) // Button state flag +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(myWidget), state); + + return 0; +} + +/* + * Method: get_inconsistent + * + * Get the inconsistent state. + * + * @return Boolean. + */ +RexxMethod0(bool, // Return type + GrxToggleButtonGetInconsistent) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + return gtk_toggle_button_get_inconsistent(GTK_TOGGLE_BUTTON(myWidget)); +} + +/* + * Method: set_inconsistent + * + * Set the inconsistent state of the button. + * + * @param mode The button state. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxToggleButtonSetInconsistent, // Object_method name + bool, state) // Button state flag +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON(myWidget), state); + + return 0; +} + +/* + * Method: init + * + * Create a check button. + * + * @param mode The label for the button. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxCheckButtonNew, // Object_method name + OPTIONAL_CSTRING, text) // Button text +{ + GtkWidget *myWidget; + + if (text <> NULL) { + myWidget = gtk_check_button_new_with_label(text); + } + else { + myWidget = gtk_check_button_new(); + } + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/* + * Method: init + * + * Create a radio button. + * + * @param group The group for the button. + * + * @param label The label for the button (optional). + * + * @return Zero. + */ +RexxMethod2(int, // Return type + GrxRadioButtonNew, // Object_method name + RexxObjectPtr, rxlistptr, // GList object + OPTIONAL_CSTRING, text) // Button text +{ + RexxObjectPtr listtptr = context->functions->GetObjectVariable(rxlistptr, "!POINTER"); + GList *head = (GList *)context->PointerValue(listptr); + GtkWidget *myWidget; + + myWidget = gtk_radio_button_new(head); + if (ltext != NULL) { + gtk_button_set_label(GTK_BUTTON(myWidget), text); + } + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/* + * Method: init + * + * Create a radio button from a pointer. + * + * @param group The widget pointer. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxRadioButtonNewFromWidget, // Object_method name + RexxObjectPtr, rxwidgetptr) // Widget pointer +{ + GtkWidget *srcWidget = (GtkWidget *)context->PointerValue(rxwidgetptr); + GtkWidget *myWidget; + + myWidget = gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(srcWidget)); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/* + * Method: get_group + * + * Get the radio button group. + * + * @return GList group. + */ +RexxMethod0(RexxObjectPtr, // Return type + GrxRadioButtonGetGroup) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GSList *head = NULL; + + head = gtk_radio_button_get_group(GTK_RADIO_BUTTON(myWidget)); + return GrxDBFindObject(head); +} + +/* + * Method: set_group + * + * Set the radio button group. + * + * @param group The group pointer. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxRadioButtonSetGroup, // Object_method name + RexxObjectPtr, rxlisttptr) // GList pointer +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxObjectPtr listtptr = context->functions->GetObjectVariable(rxlistptr, "!POINTER"); + GList *head = (GList *)context->PointerValue(listptr); + + gtk_radio_button_set_group(GTK_RADIO_BUTTON(myWidget), head); + + return 0; +} + +/* + * Method: init + * + * Create a color button. + * + * @param colorstr Color string + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxColorButtonNew, // Object_method name + OPTIONAL_CSTRING, colorstr)// Color string +{ + GtkWidget *myWidget; + GdkColor color; + + if (colorstr = NULL) { + myWidget = gtk_color_button_new(); + } + else { + gdk_color_parse(Argv[0].strptr, &color); + myWidget = gtk_color_button_new_with_color(&color); + } + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/* + * Method: set_title + * + * Set the color button title. + * + * @param title Color string + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxColorButtonSetTitle, // Object_method name + CSTRING, title) // Color string +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_color_button_set_title(GTK_COLOR_BUTTON(myWidget), title); + + return 0; +} + +/* + * Method: get_color + * + * Get the color button color. + * + * @param title Color string + * + * @return Color string + */ +RexxMethod0(RexxObjectPtr, // Return type + GrxColorButtonGetColor) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GdkColor color; + char colorstr[64]; + + gtk_color_button_get_color(GTK_COLOR_BUTTON(myWidget), &color); + + /* Set up the REXX return code */ + g_snprintf(colorstr, sizeof(colorstr), "#%04X%04X%04X", color.red, color.green, color.blue); + return context->NewString(colorstr); +} + +/* + * Method: Set_color + * + * Set the color button color. + * + * @param title Color string + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxColorButtonSetColor, // Object_method name + CSTRING, colorstr) // Color string +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GdkColor color; + + gdk_color_parse(colorstr, &color); + gtk_color_button_set_color(GTK_COLOR_BUTTON(myWidget), &color); + + return 0; +} + +/* + * Method: init + * + * Create a file chooser button. + * + * @param title Button title + * + * @param action Button action. + * + * @return Zero. + */ +RexxMethod2(int, // Return type + GrxFileChooserButtonNew, // Object_method name + CSTRING, title, // Title string + int, action) // Title action +{ + GtkWidget *myWidget; + + myWidget = gtk_file_chooser_button_new(title, action); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/* + * Method: init + * + * Create a font button. + * + * @return Zero. + */ +RexxMethod0(int, // Return type + GrxFontButton) // Object_method name +{ + GtkWidget *myWidget; + + myWidget = gtk_font_button_new(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + // add the widget to the db + GrxDBAdd(context->GetSelf(), myWidget); + + return 0; +} + +/* + * Method: set_title + * + * Set the font button title. + * + * @param title Button title + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxFontButtonSetTitle, // Object_method name + CSTRING, title) // Title string +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_font_button_set_title(GTK_FONT_BUTTON(myWidget), title); + + return 0; +} + +/* + * Method: get_font_name + * + * Get the font chosen by the user. + * + * @return Font string + */ +RexxMethod0(int, // Return type + GrxFontButtonGetFontName) // Object_method name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + const gchar * font; + + font = gtk_font_button_get_font_name(GTK_FONT_BUTTON(myWidget)); + return context->NewString(font); +} + + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(int, // Return type + GrxButtonSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(Argv[1].strptr, "pressed") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_pressed"; + g_signal_connect(G_OBJECT(myWidget), "pressed", + G_CALLBACK(signal_func_0), cblock); + } + else if (strcmp(Argv[1].strptr, "released") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_released"; + g_signal_connect(G_OBJECT(myWidget), "released", + G_CALLBACK(signal_func_0), cblock); + } + else if (strcmp(Argv[1].strptr, "clicked") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_clicked"; + g_signal_connect(G_OBJECT(myWidget), "clicked", + G_CALLBACK(signal_func_0), cblock); + } + else if (strcmp(Argv[1].strptr, "enter") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_enter"; + g_signal_connect(G_OBJECT(myWidget), "enter", + G_CALLBACK(signal_func_0), cblock); + } + else if (strcmp(Argv[1].strptr, "leave") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_leave"; + g_signal_connect(G_OBJECT(myWidget), "leave", + G_CALLBACK(signal_func_0), cblock); + } + else { + RexxObjectPtr parent = context->GetSuper(); + context->SendMessage0(parent, name); + } + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(int, // Return type + GrxToggleButtonSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(Argv[1].strptr, "toggled") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_toggked"; + g_signal_connect(G_OBJECT(myWidget), "toggled", + G_CALLBACK(signal_func_0), cblock); + } + else { + RexxObjectPtr parent = context->GetSuper(); + context->SendMessage0(parent, name); + } + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(int, // Return type + GrxRadioButtonSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(Argv[1].strptr, "group_changed") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_group_changed"; + g_signal_connect(G_OBJECT(myWidget), "group-changed", + G_CALLBACK(signal_func_0), cblock); + } + else { + RexxObjectPtr parent = context->GetSuper(); + context->SendMessage0(parent, name); + } + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(int, // Return type + GrxColorButtonSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(Argv[1].strptr, "color_set") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_color_set"; + g_signal_connect(G_OBJECT(myWidget), "color-set", + G_CALLBACK(signal_func_0), cblock"); + } + else { + RexxObjectPtr parent = context->GetSuper(); + context->SendMessage0(parent, name); + } + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(int, // Return type + GrxFileChooserButtonSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(Argv[1].strptr, "file_set") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_file_set"; + g_signal_connect(G_OBJECT(myWidget), "file-set", + G_CALLBACK(signal_func_0), cblock); + } + else { + RexxObjectPtr parent = context->GetSuper(); + context->SendMessage0(parent, name); + } + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(int, // Return type + GrxFontButtonSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(Argv[1].strptr, "font_set") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->instance; + cblock->signal_name = "signal_font_set"; + g_signal_connect(G_OBJECT(myWidget), "font-set", + G_CALLBACK(signal_func_0), cblock); + } + else { + RexxObjectPtr parent = context->GetSuper(); + context->SendMessage0(parent, name); + } + + return 0; +} + Property changes on: sandbox/david/4x/grxbutton.cpp ___________________________________________________________________ Name: svn:eol-style + native Modified: sandbox/david/4x/grxcontainer.cpp =================================================================== --- sandbox/david/4x/grxcontainer.cpp 2008-04-04 17:27:11 UTC (rev 2414) +++ sandbox/david/4x/grxcontainer.cpp 2008-04-07 19:15:31 UTC (rev 2415) @@ -413,7 +413,6 @@ GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; - if (strcmp(Argv[1].strptr, "set-scroll-adjustments") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->instance = context->instance; Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-04 17:27:11 UTC (rev 2414) +++ sandbox/david/4x/rexxgtk.cls 2008-04-07 19:15:31 UTC (rev 2415) @@ -644,4 +644,280 @@ ::method signal_set_focus return +/*============================================================================*/ +/* Class: GtkButton */ +/*============================================================================*/ +::class GtkButton public subclass GtkContainer + +::METHOD init_p private EXTERNAL "LIBRARY rexxgtk GrxButtonNew" + +::method init +use strict arg self~label = '' +self~init_p +return + +::METHOD label EXTERNAL "LIBRARY rexxgtk GrxButtonGetLabel" +::METHOD get_label EXTERNAL "LIBRARY rexxgtk GrxButtonGetLabel" +::METHOD 'label=' EXTERNAL "LIBRARY rexxgtk GrxButtonSetLabel" +::METHOD set_label EXTERNAL "LIBRARY rexxgtk GrxButtonSetLabel" +::METHOD set_use_underline EXTERNAL "LIBRARY rexxgtk GrxButtonUseUnderline" +::METHOD 'relief=' EXTERNAL "LIBRARY rexxgtk GrxButtonSetRelief" +::METHOD set_relief EXTERNAL "LIBRARY rexxgtk GrxButtonSetRelief" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxButtonSignalConnect" + +::method signal_pressed +return + +::method signal_released +return + +::method signal_clicked +return + +::method signal_enter +return + +::method signal_leave +return + +/*============================================================================*/ +/* Class: GtkButton_With_Mnemonic */ +/*============================================================================*/ + +::class GtkButton_With_Mnemonic public subclass GtkButton + +::method init +self~init:super +use arg label = '' +self~use_underline = .true +self~label = label +return + +/*============================================================================*/ +/* Class: GtkButton_From_Stock */ +/*============================================================================*/ + +::class GtkButton_From_Stock public subclass GtkButton + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxButtonNewFromStock" + + +/*============================================================================*/ +/* Class: GtkToggleButton */ +/*============================================================================*/ + +::class GtkToggleButton public subclass GtkButton + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxToggleButtonNew" +::METHOD mode EXTERNAL "LIBRARY rexxgtk GrxToggleButtonGetMode" +::METHOD get_mode EXTERNAL "LIBRARY rexxgtk GrxToggleButtonGetMode" +::METHOD set_mode EXTERNAL "LIBRARY rexxgtk GrxToggleButtonSetMode" +::METHOD 'mode=' EXTERNAL "LIBRARY rexxgtk GrxToggleButtonSetMode" +::METHOD active EXTERNAL "LIBRARY rexxgtk GrxToggleButtonGetActive" +::METHOD get_active EXTERNAL "LIBRARY rexxgtk GrxToggleButtonGetActive" +::METHOD active EXTERNAL "LIBRARY rexxgtk GrxToggleButtonSetActive" +::METHOD 'active=' EXTERNAL "LIBRARY rexxgtk GrxToggleButtonSetActive" +::METHOD inconsistent EXTERNAL "LIBRARY rexxgtk GrxToggleButtonGetInconsistent" +::METHOD get_inconsistent EXTERNAL "LIBRARY rexxgtk GrxToggleButtonGetInconsistent" +::METHOD set_inconsistent EXTERNAL "LIBRARY rexxgtk GrxToggleButtonSetInconsistent" +::METHOD 'inconsistent=' EXTERNAL "LIBRARY rexxgtk GrxToggleButtonSetInconsistent" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxToggleButtonSignalConnect" + +::method signal_toggled +return + +/*============================================================================*/ +/* Class: GtkToggleButton_With_Mnemonic */ +/*============================================================================*/ + +::class GtkToggleButton_With_Mnemonic public subclass GtkToggleButton + +::method init +self~init:super +use arg label = '' +self~use_underline = .true +self~label = label +return + +/*============================================================================*/ +/* Class: GtkToggleButton_With_Label */ +/*============================================================================*/ + +::class GtkToggleButton_With_Label public subclass GtkToggleButton + +::method init +self~init:super +use arg label = '' +self~label = label +return + + +/*============================================================================*/ +/* Class: GtkCheckbutton */ +/*============================================================================*/ + +::class GtkCheckbutton public subclass GtkToggleButton + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxCheckButtonNew" + +::method signal_connect +use strict arg event +return self~signal_connect:super(event) + +/*============================================================================*/ +/* Class: GtkCheckButton_With_Mnemonic */ +/*============================================================================*/ + +::class GtkCheckButton_With_Mnemonic public subclass GtkCheckButton + +::method init +self~init:super +use arg label = '' +self~use_underline = .true +self~label = label +return + +/*============================================================================*/ +/* Class: GtkCheckButton_With_Label */ +/*============================================================================*/ + +::class GtkCheckButton_With_Label public subclass GtkCheckButton + +::method init +self~init:super +use arg label = '' +self~label = label +return + + +/*============================================================================*/ +/* Class: GtkRadioButton */ +/*============================================================================*/ + +::class GtkRadioButton public subclass GtkCheckbutton + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxRadioButtonNew" +::METHOD group EXTERNAL "LIBRARY rexxgtk GrxRadioButtonGetGroup" +::METHOD get_group EXTERNAL "LIBRARY rexxgtk GrxRadioButtonGetGroup" +::METHOD set_group EXTERNAL "LIBRARY rexxgtk GrxRadioButtonSetGroup" +::METHOD 'group=' EXTERNAL "LIBRARY rexxgtk GrxRadioButtonSetGroup" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxRadioButtonSignalConnect" + +::method signal_group_changed +return + +/*============================================================================*/ +/* Class: GtkRadioButton_With_Mnemonic */ +/*============================================================================*/ + +::class GtkRadioButton_With_Mnemonic public subclass GtkRadioButton + +::method init +use arg group, label = '' +self~init:super(group) +self~use_underline = .true +self~label = label +return + +/*============================================================================*/ +/* Class: GtkRadioButton_With_Label */ +/*============================================================================*/ + +::class GtkRadioButton_With_Label public subclass GtkRadioButton + +::method init +use arg group, label = '' +self~init:super(group) +self~label = label +return + +/*============================================================================*/ +/* Class: GtkRadioButton_From_Widget */ +/*============================================================================*/ + +::class GtkRadioButton_From_Widget public subclass GtkRadioButton + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxRadioButtonFromWidget" + +/*============================================================================*/ +/* Class: GtkRadioButton_From_Widget_With_Label */ +/*============================================================================*/ + +::class GtkRadioButton_From_Widget_With_Label public subclass GtkRadioButton_From_Widget + +::method init +use arg widget, label +self~init:super(widget) +self~label = label +return + +/*============================================================================*/ +/* Class: GtkRadioButton_From_Widget_With_Mnemonic */ +/*============================================================================*/ + +::class GtkRadioButton_From_Widget_With_Mnemonic public subclass GtkRadioButton_From_Widget + +::method init +use arg widget, label +self~init:super(widget) +self~use_underline = .true +self~label = label +return + + +/*============================================================================*/ +/* Class: GtkColorButton */ +/*============================================================================*/ + +::class GtkColorButton public subclass GtkButton + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxColorButtonNew" +::METHOD 'title=' EXTERNAL "LIBRARY rexxgtk GrxColorButtonSetTitle" +::METHOD set_title EXTERNAL "LIBRARY rexxgtk GrxColorButtonSetTitle" +::METHOD color EXTERNAL "LIBRARY rexxgtk GrxColorButtonGetColor" +::METHOD get_color EXTERNAL "LIBRARY rexxgtk GrxColorButtonGetColor" +::METHOD set_color EXTERNAL "LIBRARY rexxgtk GrxColorButtonSetColor" +::METHOD 'color=' EXTERNAL "LIBRARY rexxgtk GrxColorButtonSetColor" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxColorButtonSetColor" + +::method signal_color_set +return + + +/*============================================================================*/ +/* Class: GtkFileChooserButton */ +/*============================================================================*/ + +::class GtkFileChooserButton public subclass GtkHBox inherit GtkFileChooser + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxFileChooserButtonNew" +::METHOD signal_connect_p private EXTERNAL "LIBRARY rexxgtk GrxFileChooserButtonSignalConnect" + +use strict arg event +-- first try the GtkFileChooser class hiearchy first +if self~signal_connect:.GtkFileChooser(event) = 0 then return +-- now try the standard hiearchy +self~signal_connect_p + +::method signal_file_set +return + + +/*============================================================================*/ +/* Class: GtkFontButton */ +/*============================================================================*/ + +::class GtkFontButton public subclass GtkButton + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxFontButtonNew" +::METHOD 'title=' EXTERNAL "LIBRARY rexxgtk GrxFontButtonSetTitle" +::METHOD set_title EXTERNAL "LIBRARY rexxgtk GrxFontButtonSetTitle" +::METHOD font_name EXTERNAL "LIBRARY rexxgtk GrxFontButtonGetFontName" +::METHOD get_font_name EXTERNAL "LIBRARY rexxgtk GrxFontButtonGetFontName" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxFontButtonSignalConnect" + +::method signal_font_set +return + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-07 20:26:52
|
Revision: 2417 http://oorexx.svn.sourceforge.net/oorexx/?rev=2417&view=rev Author: wdashley Date: 2008-04-07 13:26:52 -0700 (Mon, 07 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Getting ready for first compile. Modified Paths: -------------- sandbox/david/4x/grxbutton.cpp Added Paths: ----------- sandbox/david/4x/Makefile sandbox/david/4x/rexxgtk.cpp sandbox/david/4x/ver.mak Added: sandbox/david/4x/Makefile =================================================================== --- sandbox/david/4x/Makefile (rev 0) +++ sandbox/david/4x/Makefile 2008-04-07 20:26:52 UTC (rev 2417) @@ -0,0 +1,181 @@ +#/*----------------------------------------------------------------------------*/ +#/* */ +#/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +#/* */ +#/* This program and the accompanying materials are made available under */ +#/* the terms of the Common Public License v1.0 which accompanies this */ +#/* distribution. A copy is also available at the following address: */ +#/* http://www.oorexx.org/license.html */ +#/* */ +#/* Redistribution and use in source and binary forms, with or */ +#/* without modification, are permitted provided that the following */ +#/* conditions are met: */ +#/* */ +#/* Redistributions of source code must retain the above copyright */ +#/* notice, this list of conditions and the following disclaimer. */ +#/* Redistributions in binary form must reproduce the above copyright */ +#/* notice, this list of conditions and the following disclaimer in */ +#/* the documentation and/or other materials provided with the distribution. */ +#/* */ +#/* Neither the name of Rexx Language Association nor the names */ +#/* of its contributors may be used to endorse or promote products */ +#/* derived from this software without specific prior written permission. */ +#/* */ +#/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +#/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +#/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +#/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +#/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +#/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +#/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +#/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +#/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +#/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +#/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#/* */ +#/*----------------------------------------------------------------------------*/ + + +# Setup +include ver.mak +GTK = gtk+-2.0 +GRXLFLAGS = `pkg-config --libs gtk+-2.0 gdk-2.0 glib-2.0 gthread-2.0` \ + --export-dynamic -shared -nostartfiles +GRXCFLAGS = `pkg-config --cflags gtk+-2.0 gdk-2.0 glib-2.0 gthread-2.0` \ + -fPIC -DVMAJOR=$(VMAJOR) \ + -DVMINOR=$(VMINOR) -DVREL=$(VREL) \ + -I/home/dashley/ad/svn/sandbox/rick/opt/api \ + -I/home/dashley/ad/svn/sandbox/rick/opt/api/platform/unix +OBJECTS = rexxgtk.o \ + rexxdb.o \ + grxwidget.o \ + grxwindow.o \ + grxcontainer.o \ + grxbutton.o \ + grxpaned.o +# grxqueue.o \ +# grxlabel.o \ +# grxtable.o \ +# grxentry.o \ +# grxfixed.o \ +# grxexpander.o \ +# grxhandlebox.o \ +# grxnotebook.o \ +# grxeventbox.o \ +# grxrange.o \ +# grxinterfaces.o \ +# grxfilefilter.o \ +# grximage.o \ +# grxdialog.o \ +# grxglib.o \ +# grxassistant.o \ +# grxprogressbar.o \ +# grxadjustment.o \ +# grxscrolledwindow.o \ +# grxtextview.o \ +# grxtextbuffer.o \ +# grxclipboard.o \ +# grxcombobox.o + + +# Build the shared library +librexxgtk.so: $(OBJECTS) + gcc $(GRXLFLAGS) -lrexx -lrexxapi -o librexxgtk.so $(OBJECTS) + + +# Build the objects +rexxgtk.o: rexxgtk.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) rexxgtk.cpp + +rexxdb.o: rexxdb.c rexxgtk.h + gcc -c $(GRXCFLAGS) rexxdb.c + +grxwidget.o: grxwidget.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxwidget.c + +grxwindow.o: grxwindow.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxwindow.c + +grxcontainer.o: grxcontainer.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxcontainer.c + +grxqueue.o: grxqueue.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxqueue.c + +grxlabel.o: grxlabel.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxlabel.c + +grxbutton.o: grxbutton.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxbutton.c + +grxpaned.o: grxpaned.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxpaned.c + +grxtable.o: grxtable.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxtable.c + +grxentry.o: grxentry.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxentry.c + +grxfixed.o: grxfixed.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxfixed.c + +grxexpander.o: grxexpander.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxexpander.c + +grxhandlebox.o: grxhandlebox.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxhandlebox.c + +grxnotebook.o: grxnotebook.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxnotebook.c + +grxeventbox.o: grxeventbox.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxeventbox.c + +grxrange.o: grxrange.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxrange.c + +grxinterfaces.o: grxinterfaces.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxinterfaces.c + +grxfilefilter.o: grxfilefilter.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxfilefilter.c + +grximage.o: grximage.c rexxgtk.h + gcc -c $(GRXCFLAGS) grximage.c + +grxdialog.o: grxdialog.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxdialog.c + +grxglib.o: grxglib.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxglib.c + +grxassistant.o: grxassistant.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxassistant.c + +grxprogressbar.o: grxprogressbar.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxprogressbar.c + +grxadjustment.o: grxadjustment.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxadjustment.c + +grxscrolledwindow.o: grxscrolledwindow.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxscrolledwindow.c + +grxtextview.o: grxtextview.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxtextview.c + +grxtextbuffer.o: grxtextbuffer.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxtextbuffer.c + +grxclipboard.o: grxclipboard.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxclipboard.c + +grxcombobox.o: grxcombobox.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxcombobox.c + + + +clean: + rm *.so *.o + Modified: sandbox/david/4x/grxbutton.cpp =================================================================== --- sandbox/david/4x/grxbutton.cpp 2008-04-07 19:43:26 UTC (rev 2416) +++ sandbox/david/4x/grxbutton.cpp 2008-04-07 20:26:52 UTC (rev 2417) @@ -151,7 +151,7 @@ RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - return context->NewString(gtk_button_get_label(GTK_BUTTON(myWidget))); + return context->NewStringFromAsciiz(gtk_button_get_label(GTK_BUTTON(myWidget))); } /* @@ -523,7 +523,7 @@ /* Set up the REXX return code */ g_snprintf(colorstr, sizeof(colorstr), "#%04X%04X%04X", color.red, color.green, color.blue); - return context->NewString(colorstr); + return context->NewStringFromAsciiz(colorstr); } /* @@ -631,7 +631,7 @@ const gchar * font; font = gtk_font_button_get_font_name(GTK_FONT_BUTTON(myWidget)); - return context->NewString(font); + return context->NewStringFromAsciiz(font); } Added: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp (rev 0) +++ sandbox/david/4x/rexxgtk.cpp 2008-04-07 20:26:52 UTC (rev 2417) @@ -0,0 +1,182 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + +char * rexxgtk_argv[] = {"gtxrxdlg", "\0"}; +int rexxgtk_argc = 1; + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + +#if defined WIN32 +BOOL WINAPI DllMain(HANDLE hinst, DWORD dwcallpurpose, LPVOID lpvResvd); +#else +int _init(void) __attribute__((constructor)); +int _fini(void) __attribute__((destructor)); +#endif + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + + +/*----------------------------------------------------------------------------*/ +/* _init / DllMain - Module initialization routine */ +/*----------------------------------------------------------------------------*/ + +#if defined WIN32 + +BOOL WINAPI DllMain(HANDLE hinst, DWORD dwcallpurpose, LPVOID lpvResvd) +{ + char ** argv = (char **)&rexxgtk_argv; + + if (dwcallpurpose == DLL_PROCESS_ATTACH) { + gtk_set_locale (); + gtk_init (&rexxgtk_argc, &argv); + } + + return TRUE; +} + +#else + +int _init(void) +{ + int rc = 0; + char ** argv = (char **)&rexxgtk_argv; + + g_thread_init(NULL); + gdk_threads_init(); + gtk_set_locale (); + gtk_init (&rexxgtk_argc, &argv); +// grxInitEventQueue(); + + return rc; +} + +#endif + + +/*----------------------------------------------------------------------------*/ +/* _fini - Module finialization routine */ +/*----------------------------------------------------------------------------*/ + +#if !defined WIN32 + +int _fini(void) +{ + + return 0; +} + +#endif + +/** + * Function: GrxVersion + * + * Return the library version number. + * + * @return Version string + */ +RexxRoutine0(RexxObjectPtr, GrxVersion) +{ + char buffer[256]; + + g_snprintf(buffer, RXAUTOBUFLEN, "%d.%d.%d", VMAJOR, VMINOR, VREL); + return context->NewStringFromAsciiz(buffer); +} + +/** + * Function: GrxEventsPending + * + * Return a boolean 1 if there are pending events. + * + * @return 1 or zero. + */ +RexxRoutine0(int, GrxEventsPending) +{ + + return (int) gtk_events_pending(); +} + +/** + * Function: GrxMain + * + * Executes the GTK main loop. + * + * @return Zero. + */ +RexxRoutine0(int, GrxMain) +{ + + gtk_main(); + return 0; +} + +/** + * Function: GrxMainIteration + * + * Executes one iteration of the GTK main loop. + * + * @return Zero. + */ +RexxRoutine0(int, GrxMainIteration) +{ + + gtk_main_iteration(); + return 0; +} + Property changes on: sandbox/david/4x/rexxgtk.cpp ___________________________________________________________________ Name: svn:eol-style + native Added: sandbox/david/4x/ver.mak =================================================================== --- sandbox/david/4x/ver.mak (rev 0) +++ sandbox/david/4x/ver.mak 2008-04-07 20:26:52 UTC (rev 2417) @@ -0,0 +1,5 @@ + +VMAJOR = 0 +VMINOR = 4 +VREL = 0 + Property changes on: sandbox/david/4x/ver.mak ___________________________________________________________________ Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-08 16:25:41
|
Revision: 2419 http://oorexx.svn.sourceforge.net/oorexx/?rev=2419&view=rev Author: wdashley Date: 2008-04-08 09:25:41 -0700 (Tue, 08 Apr 2008) Log Message: ----------- ArtifactID: None Comment: First cleanup of the 4x stuff. Modified Paths: -------------- sandbox/david/4x/Makefile sandbox/david/4x/grxbutton.cpp sandbox/david/4x/grxcontainer.cpp sandbox/david/4x/grxpaned.cpp sandbox/david/4x/grxwidget.cpp sandbox/david/4x/grxwindow.cpp sandbox/david/4x/rexxdb.c sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.h Modified: sandbox/david/4x/Makefile =================================================================== --- sandbox/david/4x/Makefile 2008-04-08 13:57:08 UTC (rev 2418) +++ sandbox/david/4x/Makefile 2008-04-08 16:25:41 UTC (rev 2419) @@ -90,14 +90,14 @@ rexxdb.o: rexxdb.c rexxgtk.h gcc -c $(GRXCFLAGS) rexxdb.c -grxwidget.o: grxwidget.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxwidget.c +grxwidget.o: grxwidget.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxwidget.cpp -grxwindow.o: grxwindow.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxwindow.c +grxwindow.o: grxwindow.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxwindow.cpp -grxcontainer.o: grxcontainer.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxcontainer.c +grxcontainer.o: grxcontainer.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxcontainer.cpp grxqueue.o: grxqueue.c rexxgtk.h gcc -c $(GRXCFLAGS) grxqueue.c @@ -105,11 +105,11 @@ grxlabel.o: grxlabel.c rexxgtk.h gcc -c $(GRXCFLAGS) grxlabel.c -grxbutton.o: grxbutton.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxbutton.c +grxbutton.o: grxbutton.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxbutton.cpp -grxpaned.o: grxpaned.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxpaned.c +grxpaned.o: grxpaned.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxpaned.cpp grxtable.o: grxtable.c rexxgtk.h gcc -c $(GRXCFLAGS) grxtable.c Modified: sandbox/david/4x/grxbutton.cpp =================================================================== --- sandbox/david/4x/grxbutton.cpp 2008-04-08 13:57:08 UTC (rev 2418) +++ sandbox/david/4x/grxbutton.cpp 2008-04-08 16:25:41 UTC (rev 2419) @@ -60,12 +60,9 @@ static void signal_func_0(GtkWidget *widget, gpointer data) { - RexxInstance *instance = ((cbcb *)data)->instance; - RexxThreadContext *context; + cbcb *cblock = (cbcb *)data; - instance->AttachThread(&context); - context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); - context->DetachThread(); + cblock->context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); return; } @@ -130,7 +127,7 @@ GrxButtonSetLable, // Object_method name CSTRING, text) // Button type { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_button_set_label(GTK_BUTTON(myWidget), text); @@ -148,7 +145,7 @@ RexxMethod0(RexxObjectPtr, // Return type GrxButtonGetLabel) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); return context->NewStringFromAsciiz(gtk_button_get_label(GTK_BUTTON(myWidget))); @@ -167,7 +164,7 @@ GrxButtonSetRelief, // Object_method name int, relief) // Button relief style { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_button_set_relief(GTK_BUTTON(myWidget), relief); @@ -188,7 +185,7 @@ GrxButtonSetUnderline, // Object_method name bool, flag) // Button underline flag { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_button_set_use_underline(GTK_BUTTON(myWidget), flag); @@ -226,7 +223,7 @@ RexxMethod0(bool, // Return type GrxToggleButtonGetMode) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); return gtk_toggle_button_get_mode(GTK_TOGGLE_BUTTON(myWidget)); @@ -245,7 +242,7 @@ GrxToggleButtonSetMode, // Object_method name bool, mode) // Button mode flag { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(myWidget), mode); @@ -263,7 +260,7 @@ RexxMethod0(bool, // Return type GrxToggleButtonGetActive) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(myWidget)); @@ -282,7 +279,7 @@ GrxToggleButtonSetActive, // Object_method name bool, state) // Button state flag { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(myWidget), state); @@ -300,7 +297,7 @@ RexxMethod0(bool, // Return type GrxToggleButtonGetInconsistent) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); return gtk_toggle_button_get_inconsistent(GTK_TOGGLE_BUTTON(myWidget)); @@ -319,7 +316,7 @@ GrxToggleButtonSetInconsistent, // Object_method name bool, state) // Button state flag { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON(myWidget), state); @@ -420,7 +417,7 @@ RexxMethod0(RexxObjectPtr, // Return type GrxRadioButtonGetGroup) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GSList *head = NULL; @@ -441,7 +438,7 @@ GrxRadioButtonSetGroup, // Object_method name RexxObjectPtr, rxlisttptr) // GList pointer { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); RexxObjectPtr listtptr = context->functions->GetObjectVariable(rxlistptr, "!POINTER"); GList *head = (GList *)context->PointerValue(listptr); @@ -494,7 +491,7 @@ GrxColorButtonSetTitle, // Object_method name CSTRING, title) // Color string { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_color_button_set_title(GTK_COLOR_BUTTON(myWidget), title); @@ -514,7 +511,7 @@ RexxMethod0(RexxObjectPtr, // Return type GrxColorButtonGetColor) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GdkColor color; char colorstr[64]; @@ -539,7 +536,7 @@ GrxColorButtonSetColor, // Object_method name CSTRING, colorstr) // Color string { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GdkColor color; @@ -608,7 +605,7 @@ GrxFontButtonSetTitle, // Object_method name CSTRING, title) // Title string { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_font_button_set_title(GTK_FONT_BUTTON(myWidget), title); @@ -626,7 +623,7 @@ RexxMethod0(int, // Return type GrxFontButtonGetFontName) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); const gchar * font; @@ -648,41 +645,41 @@ GrxButtonSignalConnect, // Object_method name CSTRING, name) // Signal name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; if (strcmp(Argv[1].strptr, "pressed") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_pressed"; g_signal_connect(G_OBJECT(myWidget), "pressed", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(Argv[1].strptr, "released") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_released"; g_signal_connect(G_OBJECT(myWidget), "released", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(Argv[1].strptr, "clicked") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_clicked"; g_signal_connect(G_OBJECT(myWidget), "clicked", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(Argv[1].strptr, "enter") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_enter"; g_signal_connect(G_OBJECT(myWidget), "enter", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(Argv[1].strptr, "leave") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_leave"; g_signal_connect(G_OBJECT(myWidget), "leave", G_CALLBACK(signal_func_0), cblock); @@ -708,13 +705,13 @@ GrxToggleButtonSignalConnect, // Object_method name CSTRING, name) // Signal name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; if (strcmp(Argv[1].strptr, "toggled") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_toggked"; g_signal_connect(G_OBJECT(myWidget), "toggled", G_CALLBACK(signal_func_0), cblock); @@ -740,13 +737,13 @@ GrxRadioButtonSignalConnect, // Object_method name CSTRING, name) // Signal name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; if (strcmp(Argv[1].strptr, "group_changed") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_group_changed"; g_signal_connect(G_OBJECT(myWidget), "group-changed", G_CALLBACK(signal_func_0), cblock); @@ -772,13 +769,13 @@ GrxColorButtonSignalConnect, // Object_method name CSTRING, name) // Signal name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; if (strcmp(Argv[1].strptr, "color_set") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_color_set"; g_signal_connect(G_OBJECT(myWidget), "color-set", G_CALLBACK(signal_func_0), cblock"); @@ -804,13 +801,13 @@ GrxFileChooserButtonSignalConnect, // Object_method name CSTRING, name) // Signal name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; if (strcmp(Argv[1].strptr, "file_set") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_file_set"; g_signal_connect(G_OBJECT(myWidget), "file-set", G_CALLBACK(signal_func_0), cblock); @@ -836,13 +833,13 @@ GrxFontButtonSignalConnect, // Object_method name CSTRING, name) // Signal name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; if (strcmp(Argv[1].strptr, "font_set") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_font_set"; g_signal_connect(G_OBJECT(myWidget), "font-set", G_CALLBACK(signal_func_0), cblock); Modified: sandbox/david/4x/grxcontainer.cpp =================================================================== --- sandbox/david/4x/grxcontainer.cpp 2008-04-08 13:57:08 UTC (rev 2418) +++ sandbox/david/4x/grxcontainer.cpp 2008-04-08 16:25:41 UTC (rev 2419) @@ -60,12 +60,9 @@ static void signal_func_0(GtkWidget *window, gpointer data) { - RexxInstance *instance = ((cbcb *)data)->instance; - RexxThreadContext *context; + cbcb *cblock = (cbcb *)data; - instance->AttachThread(&context); - context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); - context->DetachThread(); + cblock->context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); return; } @@ -73,13 +70,10 @@ GtkWidget *widget, gpointer data) { - RexxInstance *instance = ((cbcb *)data)->instance; - RexxThreadContext *context; + cbcb *cblock = (cbcb *)data; - instance->AttachThread(&context); - context->SendMessage1(GrxDBFindObject(widget), ((cbcb *)data)->signal_name, - GrxDBFindObject(widget)); - context->DetachThread(); + cblock->context->SendMessage1(GrxDBFindObject(widget), ((cbcb *)data)->signal_name, + GrxDBFindObject(widget)); return; } @@ -101,7 +95,7 @@ GrxContainerAdd, // Object_method name RexxObjectPtr, rxremptr) // Object to add { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); RexxObjectPtr addtptr = context->functions->GetObjectVariable(rxaddptr, "!POINTER"); GtkWidget *addWidget = (GtkWidget *)context->PointerValue(addptr); @@ -124,7 +118,7 @@ GrxContainerRemove, // Object_method name RexxObjectPtr, rxremptr) // Object to add { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); RexxObjectPtr remtptr = context->functions->GetObjectVariable(rxremptr, "!POINTER"); GtkWidget *remWidget = (GtkWidget *)context->PointerValue(remptr); @@ -147,7 +141,7 @@ GrxContainerSetBorderWidth,// Object_method name int, width) // Border widthd { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_container_set_border_width(GTK_CONTAINER(myWidget), width); @@ -177,7 +171,7 @@ bool, fill, // Fill boolean unsigned int, padding) // Padding amount { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); RexxObjectPtr packptr = context->functions->GetObjectVariable(rxpackptr, "!POINTER"); GtkWidget *packWidget = (GtkWidget *)context->PointerValue(packptr); @@ -212,7 +206,7 @@ const size_t Argc, const RXSTRING Argv[], const char * Queuename, PRXSTRING Retstr) { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); RexxObjectPtr packptr = context->functions->GetObjectVariable(rxpackptr, "!POINTER"); GtkWidget *packWidget = (GtkWidget *)context->PointerValue(packptr); @@ -323,34 +317,34 @@ GrxContainerSignalConnect, // Object_method name CSTRING, name) // Signal name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; if (strcmp(Argv[1].strptr, "add") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_add"; g_signal_connect(G_OBJECT(myWidget), "add", G_CALLBACK(signal_func_1), cblock); } else if (strcmp(Argv[1].strptr, "check-resize") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_check_resize"; g_signal_connect(G_OBJECT(myWidget), "check-resize", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(Argv[1].strptr, "remove") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_remove"; g_signal_connect(G_OBJECT(myWidget), "remove", G_CALLBACK(signal_func_1), cblock); } else if (strcmp(Argv[1].strptr, "set-focus-child") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_set_focus_child"; g_signal_connect(G_OBJECT(myWidget), "set-focus-child", G_CALLBACK(signal_func_1), cblock); @@ -409,13 +403,13 @@ GrxViewportSignalConnect, // Object_method name CSTRING, name) // Signal name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; if (strcmp(Argv[1].strptr, "set-scroll-adjustments") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_set_scroll_adjustments"; g_signal_connect(G_OBJECT(myWidget), "set-scroll-adjustments", G_CALLBACK(signal_func_1), cblock); Modified: sandbox/david/4x/grxpaned.cpp =================================================================== --- sandbox/david/4x/grxpaned.cpp 2008-04-08 13:57:08 UTC (rev 2418) +++ sandbox/david/4x/grxpaned.cpp 2008-04-08 16:25:41 UTC (rev 2419) @@ -75,7 +75,7 @@ GrxPanedAdd1, // Object_method name RexxObjectPtr, rxaddptr) // Widget to add { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); RexxObjectPtr addptr = context->functions->GetObjectVariable(rxaddptr, "!POINTER"); GtkWidget *addWidget = (GtkWidget *)context->PointerValue(addptr); @@ -98,7 +98,7 @@ GrxPanedAdd2, // Object_method name RexxObjectPtr, rxaddptr) // Widget to add { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); RexxObjectPtr addptr = context->functions->GetObjectVariable(rxaddptr, "!POINTER"); GtkWidget *addWidget = (GtkWidget *)context->PointerValue(addptr); @@ -123,7 +123,7 @@ bool, resize, // Resize flag bool, shrink) // Shrink flag { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); RexxObjectPtr packptr = context->functions->GetObjectVariable(rxpackptr, "!POINTER"); GtkWidget *packWidget = (GtkWidget *)context->PointerValue(packptr); @@ -148,7 +148,7 @@ bool, resize, // Resize flag bool, shrink) // Shrink flag { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); RexxObjectPtr packptr = context->functions->GetObjectVariable(rxpackptr, "!POINTER"); GtkWidget *packWidget = (GtkWidget *)context->PointerValue(packptr); Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-04-08 13:57:08 UTC (rev 2418) +++ sandbox/david/4x/grxwidget.cpp 2008-04-08 16:25:41 UTC (rev 2419) @@ -61,12 +61,9 @@ static void signal_func_0(GtkWidget *widget, gpointer data) { - RexxInstance *instance = ((cbcb *)data)->instance; - RexxThreadContext *context; + cbcb *cblock = (cbcb *)data; - instance->AttachThread(&context); - context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); - context->DetachThread(); + cblock->context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); return; } @@ -85,10 +82,10 @@ RexxMethod0(int, // Return type GrxWidgetNew) // Object_method name { - GtkWidget *myWidget; + GtkWidget *myWidget = NULL; - myWidget = gtk_widget_new(); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + context->SetObjectVariable("!ACCESS_OBJ", context->NewPointer(myWidget)); // add the widget to the db GrxDBAdd(context->GetSelf(), myWidget); return 0; @@ -104,7 +101,7 @@ RexxMethod0(int, // Return type GrxWidgetShow) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_show(myWidget); @@ -122,7 +119,7 @@ RexxMethod0(int, // Return type GrxWidgetShowAll) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_show_all(myWidget); @@ -140,7 +137,7 @@ RexxMethod0(int, // Return type GrxWidgetHide) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_hide(myWidget); @@ -158,7 +155,7 @@ RexxMethod0(int, // Return type GrxWidgetHideAll) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_hide_all(myWidget); @@ -179,10 +176,10 @@ */ RexxMethod2(int, // Return type GrxWidgetSetSizeRequest, // Object_method name - int width, // width of the widget - int height) // height of the widget + int, width, // width of the widget + int, height) // height of the widget { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_set_size_request(myWidget, width, height); @@ -200,13 +197,13 @@ RexxMethod0(int, // Return type GrxWidgetDestroy) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_destroy(myWidget); rxptr = NULL; context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - GrxDBRemove(myWidget); + GrxDBRemoveObject(myWidget); return 0; } @@ -221,7 +218,7 @@ RexxMethod0(int, // Return type GrxWidgetGrabFocus) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_grab_focus(myWidget); @@ -242,7 +239,7 @@ GrxWidgetSetFont, // Object_method name CSTRING, fontname) // Font name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GtkStyle *style; @@ -263,12 +260,12 @@ RexxMethod0(CSTRING, // Return type GrxWidgetGetFont) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GtkStyle *style = NULL; style = gtk_widget_get_style(myWidget); - return style->font_desc; + return pango_font_description_to_string(style->font_desc); } /** @@ -281,7 +278,7 @@ RexxMethod0(CSTRING, // Return type GrxWidgetGetName) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); return gtk_widget_get_name(myWidget); @@ -300,7 +297,7 @@ GrxWidgetSetName, // Object_method name CSTRING, name) // New name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_set_name(myWidget, name); @@ -321,7 +318,7 @@ GrxWidgetSetSensitive, // Object_method name int, flag) // Sensitive flag { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_set_sensitive(myWidget, flag); @@ -346,12 +343,12 @@ int, type, // State CSTRING, colorstr) // Color string { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GdkColor color; gdk_color_parse(colorstr, &color); - gtk_widget_modify_bg(myWidget, type, &color); + gtk_widget_modify_bg(myWidget, (GtkStateType)type, &color); return 0; } @@ -373,12 +370,12 @@ int, type, // State CSTRING, colorstr) // Color string { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GdkColor color; gdk_color_parse(colorstr, &color); - gtk_widget_modify_fg(myWidget, type, &color); + gtk_widget_modify_fg(myWidget, (GtkStateType)type, &color); return 0; } @@ -399,7 +396,7 @@ CSTRING, name, // Association name CSTRING, data) // Association data { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); // Note: The memory allocated from strdup is never recovered and @@ -422,7 +419,7 @@ GrxWidgetGetData, // Object_method name CSTRING, name) // Association name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); return (char *)g_object_get_data(G_OBJECT(myWidget), name); @@ -438,7 +435,7 @@ RexxMethod0(int, // Return type GrxWidgetActivate) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_activate(myWidget); @@ -459,9 +456,10 @@ GrxWidgetReparent, // Object_method name RexxObjectPtr, parent) // New parent widget { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr parentptr = context->functions->GetObjectVariable(parent, "!POINTER"); + RexxObjectPtr tparentptr = context->functions->GetObjectVariable(parent, "!POINTER"); + RexxPointerObject parentptr = (RexxPointerObject)tparentptr; GtkWidget *parentWidget = (GtkWidget *)context->PointerValue(parentptr); gtk_widget_reparent(myWidget, parentWidget); @@ -476,10 +474,10 @@ * * @return 1 (if it has the focus) or zero. */ -RexxMethod0(bool, // Return type +RexxMethod0(logical_t, // Return type GrxWidgetIsFocus) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); return gtk_widget_is_focus(myWidget); @@ -495,7 +493,7 @@ RexxMethod0(int, // Return type GrxWidgetGrabDefault) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_grab_default(myWidget); @@ -516,10 +514,10 @@ GrxWidgetSetParentWindow, // Object_method name RexxObjectPtr, parent) // New parent widget { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr parentptr = context->functions->GetObjectVariable(parent, "!POINTER"); - GdkWidget *parentWidget = (GdkWidget *)context->PointerValue(parentptr); + RexxPointerObject parentptr = (RexxPointerObject)context->functions->GetObjectVariable(parent, "!POINTER"); + GtkWidget *parentWidget = (GtkWidget *)context->PointerValue(parentptr); gtk_widget_set_parent_window(myWidget, parentWidget); @@ -536,16 +534,16 @@ RexxMethod0(RexxObjectPtr, // Return type GrxWidgetGetParentWindow) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GtkWidget *parent; RexxObjectPtr parentptr; - parent = gtk_widget_get_parent_window(myWidget); + parent = (GtkWidget *)gtk_widget_get_parent_window(myWidget); if (parent == NULL) { return context->Nil(); } - parentptr = GrxDBDindObject(myWidget); + parentptr = GrxDBFindObject(myWidget); if (parentptr == NULL) { return context->Nil(); } @@ -563,7 +561,7 @@ RexxMethod0(RexxObjectPtr, // Return type GrxWidgetGetToplevel) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GtkWidget *parentWidget; RexxObjectPtr parentptr; @@ -589,14 +587,14 @@ * * @return 1 or zero. */ -RexxMethod1(bool, // Return type +RexxMethod1(logical_t, // Return type GrxWidgetIsAncestor, // Object_method name RexxObjectPtr, ancestor) // Ancestor widget { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr ancestorptr = context->functions->GetObjectVariable(ancestor, "!POINTER"); - GdkWidget *ancestorWidget = (GdkWidget *)context->PointerValue(ancestorptr); + RexxPointerObject ancestorptr = (RexxPointerObject)context->functions->GetObjectVariable(ancestor, "!POINTER"); + GtkWidget *ancestorWidget = (GtkWidget *)context->PointerValue(ancestorptr); return gtk_widget_is_ancestor(myWidget, ancestorWidget); } @@ -614,7 +612,7 @@ GrxWidgetGetAncestor, // Object_method name int, type) // Ancestor type { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); GtkWidget *ancestor; RexxObjectPtr ancestorptr; @@ -644,10 +642,10 @@ GrxWidgetSetDirection, // Object_method name int, dir) // Direction { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - gtk_widget_set_direction(myWidget, dir); + gtk_widget_set_direction(myWidget, (GtkTextDirection)dir); return 0; } @@ -662,7 +660,7 @@ RexxMethod0(int, // Return type GrxWidgetGetDirection) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); return gtk_widget_get_direction(myWidget); @@ -681,10 +679,8 @@ GrxWidgetSetDefaultDirection, // Object_method name int, dir) // Direction { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - gtk_widget_set_default_direction(myWidget, dir); + gtk_widget_set_default_direction((GtkTextDirection)dir); return 0; } @@ -699,40 +695,11 @@ RexxMethod0(int, // Return type GrxWidgetGetDefaultDirection) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - return gtk_widget_get_default_direction(myWidget); + return (int)gtk_widget_get_default_direction(); } /** - * Method: modify_cursor - * - * Modify the color of the cursor. - * - * @param prim The primary color - * - * @param sec The secondary color - * - * @return Zero. - */ -RexxMethod2(int, // Return type - GrxWidgetModifyCursor, // Object_method name - CSTRING, primcolorstr, // Color string - CSTRING, seccolorstr) // Color string -{ - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - GdkColor primcolor, seccolor; - - gdk_color_parse(primcolorstr, &primcolor); - gdk_color_parse(seccolorstr, &seccolor); - gtk_widget_modify_cursor(myWidget, &primcolor, &seccolor); - - return 0; -} - -/** * Method: queue_draw_area * * Redraw an area. @@ -754,7 +721,7 @@ int, width, // Width int, height) // Heaight { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_queue_draw_area(myWidget, x, y, width, height); @@ -772,7 +739,7 @@ RexxMethod0(int, // Return type GrxWidgetResetShapes) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_reset_shapes(myWidget); @@ -792,19 +759,19 @@ * * @return Boolean. */ -RexxMethod2(bool, // Return type +RexxMethod2(logical_t, // Return type GrxWidgetSetScrollAdjustments, // Object_method name - RexxObjectPtr, hadh, // Horizontal Adjustment + RexxObjectPtr, hadj, // Horizontal Adjustment RexxObjectPtr, vadj) // Vertical adjustment { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr hptr = context->functions->GetObjectVariable(hadj, "!POINTER"); - GdkWidget *hWidget = (GdkWidget *)context->PointerValue(hptr); - RexxObjectPtr vptr = context->functions->GetObjectVariable(vadj, "!POINTER"); - GdkWidget *vWidget = (GdkWidget *)context->PointerValue(vptr); + RexxPointerObject hptr = (RexxPointerObject)context->functions->GetObjectVariable(hadj, "!POINTER"); + GtkAdjustment *hWidget = (GtkAdjustment *)context->PointerValue(hptr); + RexxPointerObject vptr = (RexxPointerObject)context->functions->GetObjectVariable(vadj, "!POINTER"); + GtkAdjustment *vWidget = (GtkAdjustment *)context->PointerValue(vptr); - return gtk_widget_set_scroll_adjustments(myWidget, hWidget, vWidget); + return (logical_t)gtk_widget_set_scroll_adjustments(myWidget, hWidget, vWidget); } /** @@ -816,14 +783,14 @@ * * @return Boolean. */ -RexxMethod1(bool, // Return type +RexxMethod1(logical_t, // Return type GrxWidgetMnemonicActivate, // Object_method name - bool, flag) // Group cycling flag + logical_t, flag) // Group cycling flag { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - return gtk_widget_mnemonic_activate(myWidget, flag); + return (logical_t)gtk_widget_mnemonic_activate(myWidget, flag); } /** @@ -836,12 +803,12 @@ RexxMethod0(RexxObjectPtr, // Return type GrxWidgetGetAccessible) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - AtkObject atk; + AtkObject *atk; RexxObjectPtr atkptr; - atk = gtk_widget_get_toplevel(myWidget); + atk = gtk_widget_get_accessible(myWidget); if (atk == NULL) { return context->Nil(); } @@ -860,43 +827,16 @@ * * @return Boolean */ -RexxMethod0(bool, // Return type +RexxMethod0(logical_t, // Return type GrxWidgetGetChildVisible) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - return gtk_widget_get_child_visible(myWidget); + return (logical_t)gtk_widget_get_child_visible(myWidget); } /** - * Method: get_child_visible - * - * Determine if a widgets children are visible. - * - * @return Boolean - */ -RexxMethod0(RexxObjectPtr, // Return type - GrxWidgetGetParent) // Object_method name -{ - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - GtkWidget *parent; - RexxObjectPtr parentptr; - - parent = gtk_widget_get_parent(myWidget); - if (parent == NULL) { - return context->Nil(); - } - parentptr = GrxDBFindObject(parent); - if (parentptr == NULL) { - return context->Nil(); - } - - return parentptr; -} - -/** * Method: get_parent * * Return the parent widget. @@ -906,16 +846,16 @@ RexxMethod0(RexxObjectPtr, // Return type GrxWidgetGetParent) // Object_method name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - GtkWindow *root; - RexxObjectPtr roottptr; + GtkWidget *root; + RexxObjectPtr rootptr; root = gtk_widget_get_parent(myWidget); if (root == NULL) { return context->Nil(); } - parentptr = GrxDBFindObject((GtkWidget *)root); + rootptr = GrxDBFindObject(root); if (rootptr == NULL) { return context->Nil(); } @@ -924,98 +864,6 @@ } /** - * Method: get_tooltip_markup - * - * Return widget tooltip markup. - * - * @return Tooltip markup - */ -RexxMethod0(CSTRING, // Return type - GrxWidgetGetTooltipMarkup) // Object_method name -{ - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - - return gtk_widget_get_tooltip_markup(myWidget); -} - -/** - * Method: set_tooltip_markup - * - * Set the widget tooltip markup. - * - * @param markup The markup string. - * - * @return Tooltip markup - */ -RexxMethod1(CSTRING, // Return type - GrxWidgetSetTooltipMarkup, // Object_method name - CSTRING, markup) // Tooltip markup -{ - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - - gtk_widget_set_tooltip_markup(myWidget, markup); - - return 0; -} - -/** - * Method: get_tooltip_text - * - * Return widget tooltip text. - * - * @return Tooltip text - */ -RexxMethod0(CSTRING, // Return type - GrxWidgetGetTooltipText) // Object_method name -{ - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - - return gtk_widget_get_tooltip_text(myWidget); -} - -/** - * Method: set_tooltip_text - * - * Set the widget tooltip text. - * - * @param markup The text string. - * - * @return Tooltip markup - */ -RexxMethod1(CSTRING, // Return type - GrxWidgetSetTooltipText, // Object_method name - CSTRING, text) // Tooltip markup -{ - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - - gtk_widget_set_tooltip_text(myWidget, text); - - return 0; -} - -/** - * Method: error_bell - * - * Ring the terminal bell. - * - * @return Zero - */ -RexxMethod0(int. // Return type - GrxWidgetErrorBell) // Object_method name -{ - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - - gtk_widget_error_bell(myWidget); - - return 0; -} - -/** * Method: signal_connect * * Connect a signal to an ooRexx method. @@ -1028,13 +876,13 @@ GrxWidgetSignalConnect, // Object_method name CSTRING, name) // Signal name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)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->context = context->threadContext; cblock->signal_name = "signal_destroy"; g_signal_connect(G_OBJECT(myWidget), "destroy", G_CALLBACK(signal_func_0), cblock); Modified: sandbox/david/4x/grxwindow.cpp =================================================================== --- sandbox/david/4x/grxwindow.cpp 2008-04-08 13:57:08 UTC (rev 2418) +++ sandbox/david/4x/grxwindow.cpp 2008-04-08 16:25:41 UTC (rev 2419) @@ -60,12 +60,9 @@ static void signal_func_0(GtkWidget *window, gpointer data) { - RexxInstance *instance = ((cbcb *)data)->instance; - RexxThreadContext *context; + cbcb *cblock = (cbcb *)data; - instance->AttachThread(&context); - context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); - context->DetachThread(); + cblock->context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); return; } @@ -73,13 +70,10 @@ GtkWidget *widget, gpointer data) { - RexxInstance *instance = ((cbcb *)data)->instance; - RexxThreadContext *context; + cbcb *cblock = (cbcb *)data; - instance->AttachThread(&context); - context->SendMessage1(GrxDBFindObject(widget), ((cbcb *)data)->signal_name, - GrxDBFindObject(widget)); - context->DetachThread(); + cblock->context->SendMessage1(GrxDBFindObject(widget), ((cbcb *)data)->signal_name, + GrxDBFindObject(widget)); return; } @@ -124,7 +118,7 @@ GrxWindowSetTitle, // Object_method name CSTRING, title) // Window title { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_window_set_title(GTK_WINDOW(myWidget), title); @@ -166,34 +160,34 @@ GrxWindowSignalConnect, // Object_method name CSTRING, name) // Signal name { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; if (strcmp(Argv[1].strptr, "activate_default") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_set_scroll_adjustments"; g_signal_connect(G_OBJECT(myWidget), "set-scroll-adjustments", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(Argv[1].strptr, "activate_focus") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_activate_focus"; g_signal_connect(G_OBJECT(myWidget), "activate-focus", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(Argv[1].strptr, "keys_changed") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_keys_changed"; g_signal_connect(G_OBJECT(myWidget), "keys-changed", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(Argv[1].strptr, "set_focus") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->instance = context->instance; + cblock->context = context->threadContext; cblock->signal_name = "signal_set_focus"; g_signal_connect(G_OBJECT(myWidget), "set-focus", G_CALLBACK(signal_func_1), cblock); Modified: sandbox/david/4x/rexxdb.c =================================================================== --- sandbox/david/4x/rexxdb.c 2008-04-08 13:57:08 UTC (rev 2418) +++ sandbox/david/4x/rexxdb.c 2008-04-08 16:25:41 UTC (rev 2419) @@ -58,8 +58,8 @@ static GList *rxgtkdb = NULL; typedef struct _dbentry { - RexxObjectPtr object; - GtkWidget *widget; + RexxObjectPtr object; + const GtkWidget *widget; } dbentry; @@ -71,8 +71,8 @@ gconstpointer a, gconstpointer b) { - dbentry *aa = a; - dbentry *bb = b; + dbentry *aa = (dbentry *)a; + dbentry *bb = (dbentry *)b; if (aa->widget != bb->widget) { return -1; } @@ -83,8 +83,8 @@ gconstpointer a, gconstpointer b) { - dbentry *aa = a; - dbentry *bb = b; + dbentry *aa = (dbentry *)a; + dbentry *bb = (dbentry *)b; if (aa->object != bb->object) { return -1; } @@ -103,13 +103,13 @@ int GrxDBRemoveObject( const GtkWidget *widget) { // the widget pointer + dbentry searchentry; - dbentry searchentry; searchentry.widget = widget; - dbentry *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare1); - if (dbentry != NULL) { - rxgtkdb = g_list_remove(rxgtkdb, dbentry); - free(dbentry); + GList *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare1); + if (entry != NULL) { + free(entry->data); + rxgtkdb = g_list_remove(rxgtkdb, entry); return 0; } return 1; @@ -118,13 +118,13 @@ int GrxDBRemoveWidget( const RexxObjectPtr obj) { // the Rexx object pointer + dbentry searchentry; - dbentry searchentry; searchentry.object = obj; - dbentry *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare2); - if (dbentry != NULL) { - rxgtkdb = g_list_remove(rxgtkdb, dbentry); - free(dbentry); + GList *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare2); + if (entry != NULL) { + rxgtkdb = g_list_remove(rxgtkdb, entry); + free(entry->data); return 0; } return 1; @@ -133,12 +133,14 @@ RexxObjectPtr GrxDBFindObject( const GtkWidget *widget) { // the widget pointer + dbentry searchentry; + dbentry *fentry; - dbentry searchentry; searchentry.widget = widget; - dbentry *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare); - if (dbentry != NULL) { - return dbentry->rxobj; + GList *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare1); + if (entry != NULL) { + fentry = (dbentry *)entry->data; + return fentry->object; } return NULL; } Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-08 13:57:08 UTC (rev 2418) +++ sandbox/david/4x/rexxgtk.cls 2008-04-08 16:25:41 UTC (rev 2419) @@ -412,7 +412,6 @@ ::METHOD direction EXTERNAL "LIBRARY rexxgtk GrxWidgetGetDirection' ::METHOD get_default_direction EXTERNAL "LIBRARY rexxgtk GrxWidgetGetDefaultDirection' ::METHOD default_direction EXTERNAL "LIBRARY rexxgtk GrxWidgetGetDefaultDirection' -::METHOD modify_cursor EXTERNAL "LIBRARY rexxgtk GrxWidgetModifyCursor" ::METHOD queue_draw_area EXTERNAL "LIBRARY rexxgtk GrxWidgetQueueDrawArea" ::METHOD reset_shapes EXTERNAL "LIBRARY rexxgtk GrxWidgetResetShapes" ::METHOD set_scroll_adjustments EXTERNAL "LIBRARY rexxgtk GrxWidgetSetScrollAdjustments" @@ -424,15 +423,6 @@ ::METHOD parent EXTERNAL "LIBRARY rexxgtk GrxWidgetGetParent" ::METHOD get_root_window EXTERNAL "LIBRARY rexxgtk GrxWidgetGetRootWindow" ::METHOD root_window EXTERNAL "LIBRARY rexxgtk GrxWidgetGetRootWindow" -::METHOD error_bell EXTERNAL "LIBRARY rexxgtk GrxWidgetErrorBell" -::METHOD get_tooltip_markup EXTERNAL "LIBRARY rexxgtk GrxWidgetGetTooltipMarkup" -::METHOD tooltip_markup EXTERNAL "LIBRARY rexxgtk GrxWidgetGetTooltipMarkup" -::METHOD set_tooltip_markup EXTERNAL "LIBRARY rexxgtk GrxWidgetSetTooltipMarkup" -::METHOD 'tooltip_markup=' EXTERNAL "LIBRARY rexxgtk GrxWidgetSetTooltipMarkup" -::METHOD get_tooltip_text EXTERNAL "LIBRARY rexxgtk GrxWidgetGetTooltipText" -::METHOD tooltip_text EXTERNAL "LIBRARY rexxgtk GrxWidgetGetTooltipText" -::METHOD set_tooltip_text EXTERNAL "LIBRARY rexxgtk GrxWidgetSetTooltipText" -::METHOD 'tooltip_text=' EXTERNAL "LIBRARY rexxgtk GrxWidgetSetTooltipText" ::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxWidgetSignalConnect" -- Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-08 13:57:08 UTC (rev 2418) +++ sandbox/david/4x/rexxgtk.h 2008-04-08 16:25:41 UTC (rev 2419) @@ -62,8 +62,8 @@ extern int rexxgtk_argc; typedef struct _cbcb { - RexxInstance *instance; // Rexx instance - char *signal_name; // ame of the Rexx method + RexxThreadContext *context; // Rexx instance + char *signal_name; // ame of the Rexx method } cbcb; @@ -75,7 +75,7 @@ const RexxObjectPtr rxobj, // the object to be added const GtkWidget *widget); // the widget pointer int GrxDBRemoveWidget( - const RexxObjectPtr *obj); // the widget pointer + const RexxObjectPtr obj); // the widget pointer int GrxDBRemoveObject( const GtkWidget *widget); // the widget pointer RexxObjectPtr GrxDBFindObject( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-08 22:00:51
|
Revision: 2421 http://oorexx.svn.sourceforge.net/oorexx/?rev=2421&view=rev Author: wdashley Date: 2008-04-08 15:00:43 -0700 (Tue, 08 Apr 2008) Log Message: ----------- ArtifactID: None Comment: More 4x cleanup. Modified Paths: -------------- sandbox/david/4x/grxbutton.cpp sandbox/david/4x/grxcontainer.cpp sandbox/david/4x/grxpaned.cpp sandbox/david/4x/grxwidget.cpp sandbox/david/4x/grxwindow.cpp Modified: sandbox/david/4x/grxbutton.cpp =================================================================== --- sandbox/david/4x/grxbutton.cpp 2008-04-08 16:36:18 UTC (rev 2420) +++ sandbox/david/4x/grxbutton.cpp 2008-04-08 22:00:43 UTC (rev 2421) @@ -167,7 +167,7 @@ RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - gtk_button_set_relief(GTK_BUTTON(myWidget), relief); + gtk_button_set_relief(GTK_BUTTON(myWidget), (GtkReliefStyle)relief); return 0; } @@ -183,7 +183,7 @@ */ RexxMethod1(int, // Return type GrxButtonSetUnderline, // Object_method name - bool, flag) // Button underline flag + logical_t, flag) // Button underline flag { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); @@ -220,7 +220,7 @@ * * @return Mode. */ -RexxMethod0(bool, // Return type +RexxMethod0(logical_t, // Return type GrxToggleButtonGetMode) // Object_method name { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); @@ -240,7 +240,7 @@ */ RexxMethod1(int, // Return type GrxToggleButtonSetMode, // Object_method name - bool, mode) // Button mode flag + logical_t, mode) // Button mode flag { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); @@ -257,7 +257,7 @@ * * @return Boolean. */ -RexxMethod0(bool, // Return type +RexxMethod0(logical_t, // Return type GrxToggleButtonGetActive) // Object_method name { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); @@ -277,7 +277,7 @@ */ RexxMethod1(int, // Return type GrxToggleButtonSetActive, // Object_method name - bool, state) // Button state flag + logical_t, state) // Button state flag { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); @@ -294,7 +294,7 @@ * * @return Boolean. */ -RexxMethod0(bool, // Return type +RexxMethod0(logical_t, // Return type GrxToggleButtonGetInconsistent) // Object_method name { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); @@ -314,7 +314,7 @@ */ RexxMethod1(int, // Return type GrxToggleButtonSetInconsistent, // Object_method name - bool, state) // Button state flag + logical_t, state) // Button state flag { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); @@ -339,7 +339,7 @@ { GtkWidget *myWidget; - if (text <> NULL) { + if (text != NULL) { myWidget = gtk_check_button_new_with_label(text); } else { @@ -368,12 +368,12 @@ RexxObjectPtr, rxlistptr, // GList object OPTIONAL_CSTRING, text) // Button text { - RexxObjectPtr listtptr = context->functions->GetObjectVariable(rxlistptr, "!POINTER"); - GList *head = (GList *)context->PointerValue(listptr); + RexxPointerObject listptr = (RexxPointerObject)context->SendMessage0(rxlistptr, "POINTER"); + GSList *head = (GSList *)context->PointerValue(listptr); GtkWidget *myWidget; myWidget = gtk_radio_button_new(head); - if (ltext != NULL) { + if (text != NULL) { gtk_button_set_label(GTK_BUTTON(myWidget), text); } context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); @@ -396,7 +396,8 @@ GrxRadioButtonNewFromWidget, // Object_method name RexxObjectPtr, rxwidgetptr) // Widget pointer { - GtkWidget *srcWidget = (GtkWidget *)context->PointerValue(rxwidgetptr); + RexxPointerObject widgetptr = (RexxPointerObject)context->SendMessage0(rxwidgetptr, "POINTER"); + GtkWidget *srcWidget = (GtkWidget *)context->PointerValue(widgetptr); GtkWidget *myWidget; myWidget = gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(srcWidget)); @@ -418,11 +419,11 @@ GrxRadioButtonGetGroup) // Object_method name { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GSList *myWidget = (GSList *)context->PointerValue(rxptr); GSList *head = NULL; head = gtk_radio_button_get_group(GTK_RADIO_BUTTON(myWidget)); - return GrxDBFindObject(head); + return GrxDBFindObject((GtkWidget *)head); } /* @@ -436,12 +437,12 @@ */ RexxMethod1(int, // Return type GrxRadioButtonSetGroup, // Object_method name - RexxObjectPtr, rxlisttptr) // GList pointer + RexxObjectPtr, rxlistptr) // GList pointer { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr listtptr = context->functions->GetObjectVariable(rxlistptr, "!POINTER"); - GList *head = (GList *)context->PointerValue(listptr); + RexxPointerObject listptr = (RexxPointerObject)context->SendMessage0(rxlistptr, "POINTER"); + GSList *head = (GSList *)context->PointerValue(listptr); gtk_radio_button_set_group(GTK_RADIO_BUTTON(myWidget), head); @@ -468,7 +469,7 @@ myWidget = gtk_color_button_new(); } else { - gdk_color_parse(Argv[0].strptr, &color); + gdk_color_parse(colorstr, &color); myWidget = gtk_color_button_new_with_color(&color); } context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); @@ -564,7 +565,7 @@ { GtkWidget *myWidget; - myWidget = gtk_file_chooser_button_new(title, action); + myWidget = gtk_file_chooser_button_new(title, (GtkFileChooserAction)action); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); // add the widget to the db GrxDBAdd(context->GetSelf(), myWidget); @@ -620,15 +621,14 @@ * * @return Font string */ -RexxMethod0(int, // Return type +RexxMethod0(CSTRING, // Return type GrxFontButtonGetFontName) // Object_method name { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); const gchar * font; - font = gtk_font_button_get_font_name(GTK_FONT_BUTTON(myWidget)); - return context->NewStringFromAsciiz(font); + return gtk_font_button_get_font_name(GTK_FONT_BUTTON(myWidget)); } @@ -649,35 +649,35 @@ GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; - if (strcmp(Argv[1].strptr, "pressed") == 0) { + if (strcmp(name, "pressed") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_pressed"; g_signal_connect(G_OBJECT(myWidget), "pressed", G_CALLBACK(signal_func_0), cblock); } - else if (strcmp(Argv[1].strptr, "released") == 0) { + else if (strcmp(name, "released") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_released"; g_signal_connect(G_OBJECT(myWidget), "released", G_CALLBACK(signal_func_0), cblock); } - else if (strcmp(Argv[1].strptr, "clicked") == 0) { + else if (strcmp(name, "clicked") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_clicked"; g_signal_connect(G_OBJECT(myWidget), "clicked", G_CALLBACK(signal_func_0), cblock); } - else if (strcmp(Argv[1].strptr, "enter") == 0) { + else if (strcmp(name, "enter") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_enter"; g_signal_connect(G_OBJECT(myWidget), "enter", G_CALLBACK(signal_func_0), cblock); } - else if (strcmp(Argv[1].strptr, "leave") == 0) { + else if (strcmp(name, "leave") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_leave"; @@ -709,7 +709,7 @@ GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; - if (strcmp(Argv[1].strptr, "toggled") == 0) { + if (strcmp(name, "toggled") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_toggked"; @@ -741,7 +741,7 @@ GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; - if (strcmp(Argv[1].strptr, "group_changed") == 0) { + if (strcmp(name, "group_changed") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_group_changed"; @@ -773,12 +773,12 @@ GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; - if (strcmp(Argv[1].strptr, "color_set") == 0) { + if (strcmp(name, "color_set") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_color_set"; g_signal_connect(G_OBJECT(myWidget), "color-set", - G_CALLBACK(signal_func_0), cblock"); + G_CALLBACK(signal_func_0), cblock); } else { RexxObjectPtr parent = context->GetSuper(); @@ -805,7 +805,7 @@ GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; - if (strcmp(Argv[1].strptr, "file_set") == 0) { + if (strcmp(name, "file_set") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_file_set"; @@ -837,7 +837,7 @@ GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; - if (strcmp(Argv[1].strptr, "font_set") == 0) { + if (strcmp(name, "font_set") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_font_set"; Modified: sandbox/david/4x/grxcontainer.cpp =================================================================== --- sandbox/david/4x/grxcontainer.cpp 2008-04-08 16:36:18 UTC (rev 2420) +++ sandbox/david/4x/grxcontainer.cpp 2008-04-08 22:00:43 UTC (rev 2421) @@ -62,7 +62,7 @@ { cbcb *cblock = (cbcb *)data; - cblock->context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); + cblock->context->SendMessage0(GrxDBFindObject(window), ((cbcb *)data)->signal_name); return; } @@ -72,7 +72,7 @@ { cbcb *cblock = (cbcb *)data; - cblock->context->SendMessage1(GrxDBFindObject(widget), ((cbcb *)data)->signal_name, + cblock->context->SendMessage1(GrxDBFindObject(window), ((cbcb *)data)->signal_name, GrxDBFindObject(widget)); return; } @@ -93,11 +93,11 @@ */ RexxMethod1(int, // Return type GrxContainerAdd, // Object_method name - RexxObjectPtr, rxremptr) // Object to add + RexxObjectPtr, rxaddptr) // Object to add { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr addtptr = context->functions->GetObjectVariable(rxaddptr, "!POINTER"); + RexxPointerObject addptr = (RexxPointerObject)context->SendMessage0(rxaddptr, "POINTER"); GtkWidget *addWidget = (GtkWidget *)context->PointerValue(addptr); gtk_container_add(GTK_CONTAINER(myWidget), addWidget); @@ -120,7 +120,7 @@ { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr remtptr = context->functions->GetObjectVariable(rxremptr, "!POINTER"); + RexxPointerObject remptr = (RexxPointerObject)context->SendMessage0(rxremptr, "POINTER"); GtkWidget *remWidget = (GtkWidget *)context->PointerValue(remptr); gtk_container_remove(GTK_CONTAINER(myWidget), remWidget); @@ -167,16 +167,16 @@ RexxMethod4(int, // Return type GrxBoxPackStart, // Object_method name RexxObjectPtr, rxpackptr, // Widget to pack - bool, expand, // Expand boolean - bool, fill, // Fill boolean - unsigned int, padding) // Padding amount + logical_t, expand, // Expand boolean + logical_t, fill, // Fill boolean + int, padding) // Padding amount { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr packptr = context->functions->GetObjectVariable(rxpackptr, "!POINTER"); + RexxPointerObject packptr = (RexxPointerObject)context->SendMessage0(rxpackptr, "POINTER"); GtkWidget *packWidget = (GtkWidget *)context->PointerValue(packptr); - gtk_box_pack_start(GTK_BOX(myWidget), packWidget, expand, fill, padding); + gtk_box_pack_start(GTK_BOX(myWidget), packWidget, expand, fill, (unsigned int)padding); return 0; } @@ -199,19 +199,16 @@ RexxMethod4(int, // Return type GrxBoxPackEnd, // Object_method name RexxObjectPtr, rxpackptr, // Widget to pack - bool, expand, // Expand boolean - bool, fill, // Fill boolean - unsigned int, padding) // Padding amount -APIRET APIENTRY GrxBoxPackEnd(const char * Name, - const size_t Argc, const RXSTRING Argv[], - const char * Queuename, PRXSTRING Retstr) + logical_t, expand, // Expand boolean + logical_t, fill, // Fill boolean + int, padding) // Padding amount { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr packptr = context->functions->GetObjectVariable(rxpackptr, "!POINTER"); + RexxPointerObject packptr = (RexxPointerObject)context->SendMessage0(rxpackptr, "POINTER"); GtkWidget *packWidget = (GtkWidget *)context->PointerValue(packptr); - gtk_box_pack_end(GTK_BOX(myWidget), packWidget, expand, fill, padding); + gtk_box_pack_end(GTK_BOX(myWidget), packWidget, expand, fill, (unsigned int)padding); return 0; } @@ -229,7 +226,7 @@ */ RexxMethod2(int, // Return type GrxVBoxNew, // Object_method name - bool, homogeneous, // Homogeneous boolean + logical_t, homogeneous, // Homogeneous boolean int, spacing) // Spacing amount { GtkWidget *myWidget; @@ -256,11 +253,8 @@ */ RexxMethod2(int, // Return type GrxHBoxNew, // Object_method name - bool, homogeneous, // Homogeneous boolean + logical_t, homogeneous, // Homogeneous boolean int, spacing) // Spacing amount -APIRET APIENTRY GrxHBoxNew(const char * Name, - const size_t Argc, const RXSTRING Argv[], - const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; @@ -321,28 +315,28 @@ GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; - if (strcmp(Argv[1].strptr, "add") == 0) { + if (strcmp(name, "add") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_add"; g_signal_connect(G_OBJECT(myWidget), "add", G_CALLBACK(signal_func_1), cblock); } - else if (strcmp(Argv[1].strptr, "check-resize") == 0) { + else if (strcmp(name, "check-resize") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_check_resize"; g_signal_connect(G_OBJECT(myWidget), "check-resize", G_CALLBACK(signal_func_0), cblock); } - else if (strcmp(Argv[1].strptr, "remove") == 0) { + else if (strcmp(name, "remove") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_remove"; g_signal_connect(G_OBJECT(myWidget), "remove", G_CALLBACK(signal_func_1), cblock); } - else if (strcmp(Argv[1].strptr, "set-focus-child") == 0) { + else if (strcmp(name, "set-focus-child") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_set_focus_child"; @@ -371,15 +365,15 @@ * * @return Zero. */ -RexxMethod1(int, // Return type +RexxMethod2(int, // Return type GrxViewportNew, // Object_method name RexxObjectPtr, rxhadj, // Horizontal adjustment object - RexxObjectPtr, rxvadk) // Vertical adjustment object + RexxObjectPtr, rxvadj) // Vertical adjustment object { - RexxObjectPtr hadjptr = context->functions->GetObjectVariable(rxhadjptr, "!POINTER"); - GtkAdjustmet *hadj = (GtkAdjustment *)context->PointerValue(hadjptr); - RexxObjectPtr vadjptr = context->functions->GetObjectVariable(rxvadjptr, "!POINTER"); - GtkAdjustmet *vadj = (GtkAdjustment *)context->PointerValue(vadjptr); + RexxPointerObject hadjptr = (RexxPointerObject)context->SendMessage0(rxhadj, "POINTER"); + GtkAdjustment *hadj = (GtkAdjustment *)context->PointerValue(hadjptr); + RexxPointerObject vadjptr = (RexxPointerObject)context->SendMessage0(rxvadj, "POINTER"); + GtkAdjustment *vadj = (GtkAdjustment *)context->PointerValue(vadjptr); GtkWidget *myWidget; myWidget = gtk_viewport_new(hadj, vadj); @@ -407,7 +401,7 @@ GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; - if (strcmp(Argv[1].strptr, "set-scroll-adjustments") == 0) { + if (strcmp(name, "set-scroll-adjustments") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_set_scroll_adjustments"; Modified: sandbox/david/4x/grxpaned.cpp =================================================================== --- sandbox/david/4x/grxpaned.cpp 2008-04-08 16:36:18 UTC (rev 2420) +++ sandbox/david/4x/grxpaned.cpp 2008-04-08 22:00:43 UTC (rev 2421) @@ -77,7 +77,7 @@ { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr addptr = context->functions->GetObjectVariable(rxaddptr, "!POINTER"); + RexxPointerObject addptr = (RexxPointerObject)context->SendMessage0(rxaddptr, "POINTER"); GtkWidget *addWidget = (GtkWidget *)context->PointerValue(addptr); gtk_paned_add1(GTK_PANED(myWidget), addWidget); @@ -100,7 +100,7 @@ { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr addptr = context->functions->GetObjectVariable(rxaddptr, "!POINTER"); + RexxPointerObject addptr = (RexxPointerObject)context->SendMessage0(rxaddptr, "POINTER"); GtkWidget *addWidget = (GtkWidget *)context->PointerValue(addptr); gtk_paned_add2(GTK_PANED(myWidget), addWidget); @@ -120,12 +120,12 @@ RexxMethod3(int, // Return type GrxPanedPack1, // Object_method name RexxObjectPtr, rxpackptr, // Widget to add - bool, resize, // Resize flag - bool, shrink) // Shrink flag + logical_t, resize, // Resize flag + logical_t, shrink) // Shrink flag { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr packptr = context->functions->GetObjectVariable(rxpackptr, "!POINTER"); + RexxPointerObject packptr = (RexxPointerObject)context->SendMessage0(rxpackptr, "POINTER"); GtkWidget *packWidget = (GtkWidget *)context->PointerValue(packptr); gtk_paned_pack1(GTK_PANED(myWidget), packWidget, resize, shrink); @@ -145,12 +145,12 @@ RexxMethod3(int, // Return type GrxPanedPack2, // Object_method name RexxObjectPtr, rxpackptr, // Widget to add - bool, resize, // Resize flag - bool, shrink) // Shrink flag + logical_t, resize, // Resize flag + logical_t, shrink) // Shrink flag { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr packptr = context->functions->GetObjectVariable(rxpackptr, "!POINTER"); + RexxPointerObject packptr = (RexxPointerObject)context->SendMessage0(rxpackptr, "POINTER"); GtkWidget *packWidget = (GtkWidget *)context->PointerValue(packptr); gtk_paned_pack2(GTK_PANED(myWidget), packWidget, resize, shrink); Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-04-08 16:36:18 UTC (rev 2420) +++ sandbox/david/4x/grxwidget.cpp 2008-04-08 22:00:43 UTC (rev 2421) @@ -458,8 +458,7 @@ { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxObjectPtr tparentptr = context->functions->GetObjectVariable(parent, "!POINTER"); - RexxPointerObject parentptr = (RexxPointerObject)tparentptr; + RexxPointerObject parentptr = (RexxPointerObject)context->SendMessage0(parent, "POINTER"); GtkWidget *parentWidget = (GtkWidget *)context->PointerValue(parentptr); gtk_widget_reparent(myWidget, parentWidget); @@ -516,8 +515,8 @@ { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxPointerObject parentptr = (RexxPointerObject)context->functions->GetObjectVariable(parent, "!POINTER"); - GtkWidget *parentWidget = (GtkWidget *)context->PointerValue(parentptr); + RexxPointerObject parentptr = (RexxPointerObject)context->SendMessage0(parent, "POINTER"); + GdkWindow *parentWidget = (GdkWindow *)context->PointerValue(parentptr); gtk_widget_set_parent_window(myWidget, parentWidget); @@ -593,7 +592,7 @@ { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxPointerObject ancestorptr = (RexxPointerObject)context->functions->GetObjectVariable(ancestor, "!POINTER"); + RexxPointerObject ancestorptr = (RexxPointerObject)context->SendMessage0(ancestor, "POINTER"); GtkWidget *ancestorWidget = (GtkWidget *)context->PointerValue(ancestorptr); return gtk_widget_is_ancestor(myWidget, ancestorWidget); @@ -766,9 +765,9 @@ { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - RexxPointerObject hptr = (RexxPointerObject)context->functions->GetObjectVariable(hadj, "!POINTER"); + RexxPointerObject hptr = (RexxPointerObject)context->SendMessage0(hadj, "POINTER"); GtkAdjustment *hWidget = (GtkAdjustment *)context->PointerValue(hptr); - RexxPointerObject vptr = (RexxPointerObject)context->functions->GetObjectVariable(vadj, "!POINTER"); + RexxPointerObject vptr = (RexxPointerObject)context->SendMessage0(vadj, "POINTER"); GtkAdjustment *vWidget = (GtkAdjustment *)context->PointerValue(vptr); return (logical_t)gtk_widget_set_scroll_adjustments(myWidget, hWidget, vWidget); Modified: sandbox/david/4x/grxwindow.cpp =================================================================== --- sandbox/david/4x/grxwindow.cpp 2008-04-08 16:36:18 UTC (rev 2420) +++ sandbox/david/4x/grxwindow.cpp 2008-04-08 22:00:43 UTC (rev 2421) @@ -62,7 +62,7 @@ { cbcb *cblock = (cbcb *)data; - cblock->context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); + cblock->context->SendMessage0(GrxDBFindObject(window), ((cbcb *)data)->signal_name); return; } @@ -72,7 +72,7 @@ { cbcb *cblock = (cbcb *)data; - cblock->context->SendMessage1(GrxDBFindObject(widget), ((cbcb *)data)->signal_name, + cblock->context->SendMessage1(GrxDBFindObject(window), ((cbcb *)data)->signal_name, GrxDBFindObject(widget)); return; } @@ -97,7 +97,7 @@ { GtkWidget *myWidget; - myWidget = gtk_window_new(type); + myWidget = gtk_window_new((GtkWindowType)type); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); // add the widget to the db GrxDBAdd(context->GetSelf(), myWidget); @@ -106,24 +106,19 @@ } /** - * Method: set_title + * Method: get_title * - * Set the title for a window. + * Get the title for a window. * - * @param title The title - * - * @return Zero. + * @return Title string */ -RexxMethod1(int, // Return type - GrxWindowSetTitle, // Object_method name - CSTRING, title) // Window title +RexxMethod0(CSTRING, // Return type + GrxWindowGetTitle) // Object_method name { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - gtk_window_set_title(GTK_WINDOW(myWidget), title); - - return 0; + return gtk_window_get_title(GTK_WINDOW(myWidget)); } /** @@ -137,9 +132,9 @@ */ RexxMethod1(int, // Return type GrxWindowSetTitle, // Object_method name - bool, modal) // Window modal flag + logical_t, modal) // Window modal flag { - RexxObjectPtr rxptr = context->GetObjectVariable("!POINTER"); + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_window_set_modal(GTK_WINDOW(myWidget), modal); @@ -164,28 +159,28 @@ GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); cbcb *cblock; - if (strcmp(Argv[1].strptr, "activate_default") == 0) { + if (strcmp(name, "activate_default") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_set_scroll_adjustments"; g_signal_connect(G_OBJECT(myWidget), "set-scroll-adjustments", G_CALLBACK(signal_func_0), cblock); } - else if (strcmp(Argv[1].strptr, "activate_focus") == 0) { + else if (strcmp(name, "activate_focus") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_activate_focus"; g_signal_connect(G_OBJECT(myWidget), "activate-focus", G_CALLBACK(signal_func_0), cblock); } - else if (strcmp(Argv[1].strptr, "keys_changed") == 0) { + else if (strcmp(name, "keys_changed") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_keys_changed"; g_signal_connect(G_OBJECT(myWidget), "keys-changed", G_CALLBACK(signal_func_0), cblock); } - else if (strcmp(Argv[1].strptr, "set_focus") == 0) { + else if (strcmp(name, "set_focus") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); cblock->context = context->threadContext; cblock->signal_name = "signal_set_focus"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-09 02:13:21
|
Revision: 2422 http://oorexx.svn.sourceforge.net/oorexx/?rev=2422&view=rev Author: wdashley Date: 2008-04-08 19:13:16 -0700 (Tue, 08 Apr 2008) Log Message: ----------- ArtifactID: None Comment: More 4x changes. Modified Paths: -------------- sandbox/david/4x/grxbutton.cpp sandbox/david/4x/grxwidget.cpp sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.cpp sandbox/david/4x/rexxgtk.h Modified: sandbox/david/4x/grxbutton.cpp =================================================================== --- sandbox/david/4x/grxbutton.cpp 2008-04-08 22:00:43 UTC (rev 2421) +++ sandbox/david/4x/grxbutton.cpp 2008-04-09 02:13:16 UTC (rev 2422) @@ -124,7 +124,7 @@ * @return Zero. */ RexxMethod1(int, // Return type - GrxButtonSetLable, // Object_method name + GrxButtonSetLabel, // Object_method name CSTRING, text) // Button type { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-04-08 22:00:43 UTC (rev 2421) +++ sandbox/david/4x/grxwidget.cpp 2008-04-09 02:13:16 UTC (rev 2422) @@ -92,6 +92,24 @@ } /** + * Method: uninit + * + * Destroy the widget. + * + * @return Zero. + */ +RexxMethod0(int, // Return type + GrxWidgetUninit) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + GrxDBRemoveObject(myWidget); + + return 0; +} + +/** * Method: show * * Show the widget. @@ -327,7 +345,7 @@ } /** - * Method: modifyFG + * Method: modifyBG * * Modify the forground color of the widget. * @@ -354,7 +372,7 @@ } /** - * Method: modifyBG + * Method: modifyFG * * Modify the background color of the widget. * Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-08 22:00:43 UTC (rev 2421) +++ sandbox/david/4x/rexxgtk.cls 2008-04-09 02:13:16 UTC (rev 2422) @@ -341,31 +341,14 @@ ::class GtkWidget public ::METHOD init EXTERNAL "LIBRARY rexxgtk GrxWidgetNew" +::METHOD uninit EXTERNAL "LIBRARY rexxgtk GrxWidgetUninit" -::method uninit --- don't destroy widgets by default! --- but do remove it from the DB -call GrxRemoveWidget self -return - -::method pointer +::method pointer private -- return the pointer object to the widget expose !pointer use strict arg return !pointer -::method 'pointer=' private -expose !pointer -use strict arg !pointer - -::method run_method -use strict arg meth, methargs = '' -meth_inst = self~instanceMethod(meth) -if meth_inst <> .nil then do - self~run(meth_inst, 'I', methargs) - end -return - ::attribute user_data -- This attribute is not a part of the GTK system. It has been added to -- support callbacks or any other use the user may have. Modified: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp 2008-04-08 22:00:43 UTC (rev 2421) +++ sandbox/david/4x/rexxgtk.cpp 2008-04-09 02:13:16 UTC (rev 2422) @@ -180,3 +180,124 @@ return 0; } + +// build the actual entry list +RexxRoutineEntry gtkobject_routines[] = { + REXX_TYPED_ROUTINE(GrxVersion, GrxVersion), + REXX_TYPED_ROUTINE(GrxEventsPending, GrxEventsPending), + REXX_TYPED_ROUTINE(GrxMain, GrxMain), + REXX_TYPED_ROUTINE(GrxMainIteration, GrxMainIteration), + REXX_LAST_ROUTINE() +}; + + +// build the actual entry list +RexxMethodEntry gtkobject_methods[] = { + REXX_METHOD(GrxWidgetNew, GrxWidgetNew), + REXX_METHOD(GrxWidgetUninit, GrxWidgetUninit), + REXX_METHOD(GrxWidgetShow, GrxWidgetShow), + REXX_METHOD(GrxWidgetShowAll, GrxWidgetShowAll), + REXX_METHOD(GrxWidgetHide, GrxWidgetHide), + REXX_METHOD(GrxWidgetHideAll, GrxWidgetHideAll), + REXX_METHOD(GrxWidgetSetSizeRequest, GrxWidgetSetSizeRequest), + REXX_METHOD(GrxWidgetDestroy, GrxWidgetDestroy), + REXX_METHOD(GrxWidgetGrabFocus, GrxWidgetGrabFocus), + REXX_METHOD(GrxWidgetSetFont, GrxWidgetSetFont), + REXX_METHOD(GrxWidgetGetFont, GrxWidgetGetFont), + REXX_METHOD(GrxWidgetSetName, GrxWidgetSetName), + REXX_METHOD(GrxWidgetGetName, GrxWidgetGetName), + REXX_METHOD(GrxWidgetSetSensitive, GrxWidgetSetSensitive), + REXX_METHOD(GrxWidgetModifyBG, GrxWidgetModifyBG), + REXX_METHOD(GrxWidgetModifyFG, GrxWidgetModifyFG), + REXX_METHOD(GrxWidgetSetData, GrxWidgetSetData), + REXX_METHOD(GrxWidgetGetData, GrxWidgetGetData), + REXX_METHOD(GrxWidgetActivate, GrxWidgetActivate), + REXX_METHOD(GrxWidgetReparent, GrxWidgetReparent), + REXX_METHOD(GrxWidgetIsFocus, GrxWidgetIsFocus), + REXX_METHOD(GrxWidgetGrabDefault, GrxWidgetGrabDefault), + REXX_METHOD(GrxWidgetSetParentWindow, GrxWidgetSetParentWindow), + REXX_METHOD(GrxWidgetGetParentWindow, GrxWidgetGetParentWindow), + REXX_METHOD(GrxWidgetGetToplevel, GrxWidgetGetToplevel), + REXX_METHOD(GrxWidgetIsAncestor, GrxWidgetIsAncestor), + REXX_METHOD(GrxWidgetGetAncestor, GrxWidgetGetAncestor), + REXX_METHOD(GrxWidgetGetDirection, GrxWidgetGetDirection), + REXX_METHOD(GrxWidgetSetDirection, GrxWidgetSetDirection), + REXX_METHOD(GrxWidgetGetDefaultDirection, GrxWidgetGetDefaultDirection), + REXX_METHOD(GrxWidgetSetDefaultDirection, GrxWidgetSetDefaultDirection), + REXX_METHOD(GrxWidgetQueueDrawArea, GrxWidgetQueueDrawArea), + REXX_METHOD(GrxWidgetResetShapes, GrxWidgetResetShapes), + REXX_METHOD(GrxWidgetSetScrollAdjustments, GrxWidgetSetScrollAdjustments), + REXX_METHOD(GrxWidgetMnemonicActivate, GrxWidgetMnemonicActivate), + REXX_METHOD(GrxWidgetGetAccessible, GrxWidgetGetAccessible), + REXX_METHOD(GrxWidgetGetChildVisible, GrxWidgetGetChildVisible), + REXX_METHOD(GrxWidgetGetParent, GrxWidgetGetParent), + REXX_METHOD(GrxWidgetSignalConnect, GrxWidgetSignalConnect), + REXX_METHOD(GrxWindowNew, GrxWindowNew), + REXX_METHOD(GrxWindowGetTitle, GrxWindowGetTitle), + REXX_METHOD(GrxWindowSetTitle, GrxWindowSetTitle), + REXX_METHOD(GrxWindowSignalConnect, GrxWindowSignalConnect), + REXX_METHOD(GrxContainerAdd, GrxContainerAdd), + REXX_METHOD(GrxContainerRemove, GrxContainerRemove), + REXX_METHOD(GrxContainerSetBorderWidth, GrxContainerSetBorderWidth), + REXX_METHOD(GrxContainerPackStart, GrxContainerPackStart), + REXX_METHOD(GrxContainerPackEnd, GrxContainerPackEnd), + REXX_METHOD(GrxContainerSignalConnect, GrxContainerSignalConnect), + REXX_METHOD(GrxVBoxNew, GrxVBoxNew), + REXX_METHOD(GrxHBoxNew, GrxHBoxNew), + REXX_METHOD(GrxAlignmentNew, GrxAlignmentNew), + REXX_METHOD(GrxViewportNew, GrxViewportNew), + REXX_METHOD(GrxViewportSignalConnect, GrxViewportSignalConnect), + REXX_METHOD(GrxPanedAdd1, GrxPanedAdd1), + REXX_METHOD(GrxPanedAdd2, GrxPanedAdd2), + REXX_METHOD(GrxPanedPack1, GrxPanedPack1), + REXX_METHOD(GrxPanedPack2, GrxPanedPack2), + REXX_METHOD(GrxVPanedNew, GrxVPanedNew), + REXX_METHOD(GrxHPanedNew, GrxHPanedNew), + REXX_METHOD(GrxButtonNew, GrxButtonNew), + REXX_METHOD(GrxButtonNewFromStock, GrxButtonNewFromStock), + REXX_METHOD(GrxButtonSetLabel, GrxButtonSetLabel), + REXX_METHOD(GrxButtonGetLabel, GrxButtonGetLabel), + REXX_METHOD(GrxButtonSetRelief, GrxButtonSetRelief), + REXX_METHOD(GrxButtonSetUnderline, GrxButtonSetUnderline), + REXX_METHOD(GrxButtonSignalConnect, GrxButtonSignalConnect), + REXX_METHOD(GrxToggleButtonNew, GrxToggleButtonNew), + REXX_METHOD(GrxToggleButtonGetMode, GrxToggleButtonGetMode), + REXX_METHOD(GrxToggleButtonSetMode, GrxToggleButtonSetMode), + REXX_METHOD(GrxToggleButtonGetActive, GrxToggleButtonGetActive), + REXX_METHOD(GrxToggleButtonSetActive, GrxToggleButtonSetActive), + REXX_METHOD(GrxToggleButtonGetInconsistent, GrxToggleButtonGetInconsistent), + REXX_METHOD(GrxToggleButtonSetInconsistent, GrxToggleButtonSetInconsistent), + REXX_METHOD(GrxToggleButtonSignalConnect, GrxToggleButtonSignalConnect), + REXX_METHOD(GrxCheckButtonNew, GrxCheckButtonNew), + REXX_METHOD(GrxRadioButtonNew, GrxRadioButtonNew), + REXX_METHOD(GrxRadioButtonNewFromWidget, GrxRadioButtonNewFromWidget), + REXX_METHOD(GrxRadioButtonGetGroup, GrxRadioButtonGetGroup), + REXX_METHOD(GrxRadioButtonSetGroup, GrxRadioButtonSetGroup), + REXX_METHOD(GrxRadioButtonSignalConnect, GrxRadioButtonSignalConnect), + REXX_METHOD(GrxColorButtonNew, GrxColorButtonNew), + REXX_METHOD(GrxColorButtonSetTitle, GrxColorButtonSetTitle), + REXX_METHOD(GrxColorButtonGetColor, GrxColorButtonGetColor), + REXX_METHOD(GrxColorButtonSetColor, GrxColorButtonSetTitle), + REXX_METHOD(GrxColorButtonSignalConnect, GrxColorButtonSignalConnect), + REXX_METHOD(GrxFileChooserButtonNew, GrxFileChooserButtonNew), + REXX_METHOD(GrxFileChooserButtonSignalConnect, GrxFileChooserButtonSignalConnect), + REXX_METHOD(GrxFontButtonNew, GrxFontButtonNew), + REXX_METHOD(GrxFontButtonSetTitle, GrxFontButtonSetTitle), + REXX_METHOD(GrxFontButtonGetFontName, GrxFontButtonGetFontName), + REXX_METHOD(GrxFontButtonSignalConnect, GrxFontButtonSignalConnect), + REXX_LAST_METHOD() +}; + + +RexxPackageEntry gtkobject_package_entry = { + STANDARD_PACKAGE_HEADER + "RexxGTK", // name of the package + "0.1", // package information + NULL, // no load/unload functions + NULL, + gtkobject_routines, // the exported routines + gtkobject_methods // the exported methods +}; + +// package loading stub. +OOREXX_GET_PACKAGE(gtkobject); Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-08 22:00:43 UTC (rev 2421) +++ sandbox/david/4x/rexxgtk.h 2008-04-09 02:13:16 UTC (rev 2422) @@ -81,5 +81,101 @@ RexxObjectPtr GrxDBFindObject( const GtkWidget *widget); // the widget pointer +REXX_METHOD_PROTOTYPE(GrxWidgetNew) +REXX_METHOD_PROTOTYPE(GrxWidgetUninit) +REXX_METHOD_PROTOTYPE(GrxWidgetShow) +REXX_METHOD_PROTOTYPE(GrxWidgetShowAll) +REXX_METHOD_PROTOTYPE(GrxWidgetHide) +REXX_METHOD_PROTOTYPE(GrxWidgetHideAll) +REXX_METHOD_PROTOTYPE(GrxWidgetSetSizeRequest) +REXX_METHOD_PROTOTYPE(GrxWidgetDestroy) +REXX_METHOD_PROTOTYPE(GrxWidgetGrabFocus) +REXX_METHOD_PROTOTYPE(GrxWidgetSetFont) +REXX_METHOD_PROTOTYPE(GrxWidgetGetFont) +REXX_METHOD_PROTOTYPE(GrxWidgetSetName) +REXX_METHOD_PROTOTYPE(GrxWidgetGetName) +REXX_METHOD_PROTOTYPE(GrxWidgetSetSensitive) +REXX_METHOD_PROTOTYPE(GrxWidgetModifyBG) +REXX_METHOD_PROTOTYPE(GrxWidgetModifyFG) +REXX_METHOD_PROTOTYPE(GrxWidgetSetData) +REXX_METHOD_PROTOTYPE(GrxWidgetGetData) +REXX_METHOD_PROTOTYPE(GrxWidgetActivate) +REXX_METHOD_PROTOTYPE(GrxWidgetReparent) +REXX_METHOD_PROTOTYPE(GrxWidgetIsFocus) +REXX_METHOD_PROTOTYPE(GrxWidgetGrabDefault) +REXX_METHOD_PROTOTYPE(GrxWidgetSetParentWindow) +REXX_METHOD_PROTOTYPE(GrxWidgetGetParentWindow) +REXX_METHOD_PROTOTYPE(GrxWidgetGetToplevel) +REXX_METHOD_PROTOTYPE(GrxWidgetIsAncestor) +REXX_METHOD_PROTOTYPE(GrxWidgetGetAncestor) +REXX_METHOD_PROTOTYPE(GrxWidgetGetDirection) +REXX_METHOD_PROTOTYPE(GrxWidgetSetDirection) +REXX_METHOD_PROTOTYPE(GrxWidgetGetDefaultDirection) +REXX_METHOD_PROTOTYPE(GrxWidgetSetDefaultDirection) +REXX_METHOD_PROTOTYPE(GrxWidgetQueueDrawArea) +REXX_METHOD_PROTOTYPE(GrxWidgetResetShapes) +REXX_METHOD_PROTOTYPE(GrxWidgetSetScrollAdjustments) +REXX_METHOD_PROTOTYPE(GrxWidgetMnemonicActivate) +REXX_METHOD_PROTOTYPE(GrxWidgetGetAccessible) +REXX_METHOD_PROTOTYPE(GrxWidgetGetChildVisible) +REXX_METHOD_PROTOTYPE(GrxWidgetGetParent) +REXX_METHOD_PROTOTYPE(GrxWidgetSignalConnect) +REXX_METHOD_PROTOTYPE(GrxWindowNew) +REXX_METHOD_PROTOTYPE(GrxWindowGetTitle) +REXX_METHOD_PROTOTYPE(GrxWindowSetTitle) +REXX_METHOD_PROTOTYPE(GrxWindowSignalConnect) +REXX_METHOD_PROTOTYPE(GrxContainerAdd) +REXX_METHOD_PROTOTYPE(GrxContainerRemove) +REXX_METHOD_PROTOTYPE(GrxContainerSetBorderWidth) +REXX_METHOD_PROTOTYPE(GrxContainerPackStart) +REXX_METHOD_PROTOTYPE(GrxContainerPackEnd) +REXX_METHOD_PROTOTYPE(GrxContainerSignalConnect) +REXX_METHOD_PROTOTYPE(GrxVBoxNew) +REXX_METHOD_PROTOTYPE(GrxHBoxNew) +REXX_METHOD_PROTOTYPE(GrxAlignmentNew) +REXX_METHOD_PROTOTYPE(GrxViewportNew) +REXX_METHOD_PROTOTYPE(GrxViewportSignalConnect) +REXX_METHOD_PROTOTYPE(GrxPanedAdd1) +REXX_METHOD_PROTOTYPE(GrxPanedAdd2) +REXX_METHOD_PROTOTYPE(GrxPanedPack1) +REXX_METHOD_PROTOTYPE(GrxPanedPack2) +REXX_METHOD_PROTOTYPE(GrxVPanedNew) +REXX_METHOD_PROTOTYPE(GrxHPanedNew) +REXX_METHOD_PROTOTYPE(GrxButtonNew) +REXX_METHOD_PROTOTYPE(GrxButtonNewFromStock) +REXX_METHOD_PROTOTYPE(GrxButtonSetLabel) +REXX_METHOD_PROTOTYPE(GrxButtonGetLabel) +REXX_METHOD_PROTOTYPE(GrxButtonSetRelief) +REXX_METHOD_PROTOTYPE(GrxButtonSetUnderline) +REXX_METHOD_PROTOTYPE(GrxButtonSignalConnect) +REXX_METHOD_PROTOTYPE(GrxToggleButtonNew) +REXX_METHOD_PROTOTYPE(GrxToggleButtonGetMode) +REXX_METHOD_PROTOTYPE(GrxToggleButtonSetMode) +REXX_METHOD_PROTOTYPE(GrxToggleButtonGetActive) +REXX_METHOD_PROTOTYPE(GrxToggleButtonSetActive) +REXX_METHOD_PROTOTYPE(GrxToggleButtonGetInconsistent) +REXX_METHOD_PROTOTYPE(GrxToggleButtonSetInconsistent) +REXX_METHOD_PROTOTYPE(GrxToggleButtonSignalConnect) +REXX_METHOD_PROTOTYPE(GrxCheckButtonNew) +REXX_METHOD_PROTOTYPE(GrxRadioButtonNew) +REXX_METHOD_PROTOTYPE(GrxRadioButtonNewFromWidget) +REXX_METHOD_PROTOTYPE(GrxRadioButtonGetGroup) +REXX_METHOD_PROTOTYPE(GrxRadioButtonSetGroup) +REXX_METHOD_PROTOTYPE(GrxRadioButtonSignalConnect) +REXX_METHOD_PROTOTYPE(GrxColorButtonNew) +REXX_METHOD_PROTOTYPE(GrxColorButtonSetTitle) +REXX_METHOD_PROTOTYPE(GrxColorButtonGetColor) +REXX_METHOD_PROTOTYPE(GrxColorButtonSetColor) +REXX_METHOD_PROTOTYPE(GrxColorButtonSignalConnect) +REXX_METHOD_PROTOTYPE(GrxFileChooserButtonNew) +REXX_METHOD_PROTOTYPE(GrxFileChooserButtonSignalConnect) +REXX_METHOD_PROTOTYPE(GrxFontButtonNew) +REXX_METHOD_PROTOTYPE(GrxFontButtonSetTitle) +REXX_METHOD_PROTOTYPE(GrxFontButtonGetFontName) +REXX_METHOD_PROTOTYPE(GrxFontButtonSignalConnect) + + + + #endif /* REXXGTK_H */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-09 16:27:00
|
Revision: 2423 http://oorexx.svn.sourceforge.net/oorexx/?rev=2423&view=rev Author: wdashley Date: 2008-04-09 09:26:46 -0700 (Wed, 09 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Completely removed the need for a database of widget and oorexx object pointers. Modified Paths: -------------- sandbox/david/4x/Makefile sandbox/david/4x/grxbutton.cpp sandbox/david/4x/grxcontainer.cpp sandbox/david/4x/grxpaned.cpp sandbox/david/4x/grxwidget.cpp sandbox/david/4x/grxwindow.cpp sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.h Removed Paths: ------------- sandbox/david/4x/rexxdb.c Modified: sandbox/david/4x/Makefile =================================================================== --- sandbox/david/4x/Makefile 2008-04-09 02:13:16 UTC (rev 2422) +++ sandbox/david/4x/Makefile 2008-04-09 16:26:46 UTC (rev 2423) @@ -47,7 +47,6 @@ -I/home/dashley/ad/svn/sandbox/rick/opt/api \ -I/home/dashley/ad/svn/sandbox/rick/opt/api/platform/unix OBJECTS = rexxgtk.o \ - rexxdb.o \ grxwidget.o \ grxwindow.o \ grxcontainer.o \ @@ -87,9 +86,6 @@ rexxgtk.o: rexxgtk.cpp rexxgtk.h gcc -c $(GRXCFLAGS) rexxgtk.cpp -rexxdb.o: rexxdb.c rexxgtk.h - gcc -c $(GRXCFLAGS) rexxdb.c - grxwidget.o: grxwidget.cpp rexxgtk.h gcc -c $(GRXCFLAGS) grxwidget.cpp Modified: sandbox/david/4x/grxbutton.cpp =================================================================== --- sandbox/david/4x/grxbutton.cpp 2008-04-09 02:13:16 UTC (rev 2422) +++ sandbox/david/4x/grxbutton.cpp 2008-04-09 16:26:46 UTC (rev 2423) @@ -61,8 +61,9 @@ gpointer data) { cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(widget), "OORXOBJECT"); - cblock->context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); + cblock->context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); return; } @@ -85,8 +86,7 @@ myWidget = gtk_button_new(); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } @@ -108,8 +108,7 @@ myWidget = gtk_button_new_from_stock(type); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } @@ -207,8 +206,7 @@ myWidget = gtk_toggle_button_new(); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } @@ -346,8 +344,7 @@ myWidget = gtk_check_button_new(); } context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } @@ -377,8 +374,7 @@ gtk_button_set_label(GTK_BUTTON(myWidget), text); } context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } @@ -402,8 +398,7 @@ myWidget = gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(srcWidget)); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } @@ -423,7 +418,7 @@ GSList *head = NULL; head = gtk_radio_button_get_group(GTK_RADIO_BUTTON(myWidget)); - return GrxDBFindObject((GtkWidget *)head); + return (RexxObjectPtr)g_object_get_data(G_OBJECT(myWidget), "OORXOBJECT"); } /* @@ -473,8 +468,7 @@ myWidget = gtk_color_button_new_with_color(&color); } context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } @@ -567,8 +561,7 @@ myWidget = gtk_file_chooser_button_new(title, (GtkFileChooserAction)action); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } @@ -587,8 +580,7 @@ myWidget = gtk_font_button_new(); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } Modified: sandbox/david/4x/grxcontainer.cpp =================================================================== --- sandbox/david/4x/grxcontainer.cpp 2008-04-09 02:13:16 UTC (rev 2422) +++ sandbox/david/4x/grxcontainer.cpp 2008-04-09 16:26:46 UTC (rev 2423) @@ -61,8 +61,9 @@ gpointer data) { cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); - cblock->context->SendMessage0(GrxDBFindObject(window), ((cbcb *)data)->signal_name); + cblock->context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); return; } @@ -71,9 +72,10 @@ gpointer data) { cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxObjectPtr rxwidget = (RexxObjectPtr)g_object_get_data(G_OBJECT(widget), "OORXOBJECT"); - cblock->context->SendMessage1(GrxDBFindObject(window), ((cbcb *)data)->signal_name, - GrxDBFindObject(widget)); + cblock->context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, rxwidget); return; } @@ -234,8 +236,7 @@ myWidget = gtk_vbox_new(homogeneous, spacing); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } @@ -260,8 +261,7 @@ myWidget = gtk_hbox_new(homogeneous, spacing); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } @@ -292,8 +292,7 @@ myWidget = gtk_alignment_new(xalign, yalign, xscale, yscale); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } @@ -378,8 +377,7 @@ myWidget = gtk_viewport_new(hadj, vadj); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } Modified: sandbox/david/4x/grxpaned.cpp =================================================================== --- sandbox/david/4x/grxpaned.cpp 2008-04-09 02:13:16 UTC (rev 2422) +++ sandbox/david/4x/grxpaned.cpp 2008-04-09 16:26:46 UTC (rev 2423) @@ -172,8 +172,7 @@ myWidget = gtk_vpaned_new(); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } @@ -192,8 +191,7 @@ myWidget = gtk_hpaned_new(); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-04-09 02:13:16 UTC (rev 2422) +++ sandbox/david/4x/grxwidget.cpp 2008-04-09 16:26:46 UTC (rev 2423) @@ -62,8 +62,9 @@ gpointer data) { cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(widget), "OORXOBJECT"); - cblock->context->SendMessage0(GrxDBFindObject(widget), ((cbcb *)data)->signal_name); + cblock->context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); return; } @@ -85,31 +86,11 @@ GtkWidget *myWidget = NULL; context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - context->SetObjectVariable("!ACCESS_OBJ", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); +// g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf); return 0; } /** - * Method: uninit - * - * Destroy the widget. - * - * @return Zero. - */ -RexxMethod0(int, // Return type - GrxWidgetUninit) // Object_method name -{ - RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); - GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); - - GrxDBRemoveObject(myWidget); - - return 0; -} - -/** * Method: show * * Show the widget. @@ -219,9 +200,6 @@ GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); gtk_widget_destroy(myWidget); - rxptr = NULL; - context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - GrxDBRemoveObject(myWidget); return 0; } @@ -560,7 +538,7 @@ if (parent == NULL) { return context->Nil(); } - parentptr = GrxDBFindObject(myWidget); + parentptr = (RexxObjectPtr)g_object_get_data(G_OBJECT(myWidget), "OORXOBJECT"); if (parentptr == NULL) { return context->Nil(); } @@ -587,7 +565,7 @@ if (parentWidget == NULL) { return context->Nil(); } - parentptr = GrxDBFindObject(parentWidget); + parentptr = (RexxObjectPtr)g_object_get_data(G_OBJECT(myWidget), "OORXOBJECT"); if (parentptr == NULL) { return context->Nil(); } @@ -638,7 +616,7 @@ if (ancestor == NULL) { return context->Nil(); } - ancestorptr = GrxDBFindObject(ancestor); + ancestorptr = (RexxObjectPtr)g_object_get_data(G_OBJECT(myWidget), "OORXOBJECT"); if (ancestorptr == NULL) { return context->Nil(); } @@ -829,7 +807,7 @@ if (atk == NULL) { return context->Nil(); } - atkptr = GrxDBFindObject((GtkWidget *)atk); + atkptr = (RexxObjectPtr)g_object_get_data(G_OBJECT(myWidget), "OORXOBJECT"); if (atkptr == NULL) { return context->Nil(); } @@ -872,7 +850,7 @@ if (root == NULL) { return context->Nil(); } - rootptr = GrxDBFindObject(root); + rootptr = (RexxObjectPtr)g_object_get_data(G_OBJECT(myWidget), "OORXOBJECT"); if (rootptr == NULL) { return context->Nil(); } @@ -903,7 +881,6 @@ cblock->signal_name = "signal_destroy"; g_signal_connect(G_OBJECT(myWidget), "destroy", G_CALLBACK(signal_func_0), cblock); - GrxDBRemoveObject(myWidget); } else { return 0; Modified: sandbox/david/4x/grxwindow.cpp =================================================================== --- sandbox/david/4x/grxwindow.cpp 2008-04-09 02:13:16 UTC (rev 2422) +++ sandbox/david/4x/grxwindow.cpp 2008-04-09 16:26:46 UTC (rev 2423) @@ -61,8 +61,9 @@ gpointer data) { cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); - cblock->context->SendMessage0(GrxDBFindObject(window), ((cbcb *)data)->signal_name); + cblock->context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); return; } @@ -71,9 +72,10 @@ gpointer data) { cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxObjectPtr rxwidget = (RexxObjectPtr)g_object_get_data(G_OBJECT(widget), "OORXOBJECT"); - cblock->context->SendMessage1(GrxDBFindObject(window), ((cbcb *)data)->signal_name, - GrxDBFindObject(widget)); + cblock->context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, rxwidget); return; } @@ -99,8 +101,7 @@ myWidget = gtk_window_new((GtkWindowType)type); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - // add the widget to the db - GrxDBAdd(context->GetSelf(), myWidget); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); return 0; } Deleted: sandbox/david/4x/rexxdb.c =================================================================== --- sandbox/david/4x/rexxdb.c 2008-04-09 02:13:16 UTC (rev 2422) +++ sandbox/david/4x/rexxdb.c 2008-04-09 16:26:46 UTC (rev 2423) @@ -1,147 +0,0 @@ -/*----------------------------------------------------------------------------*/ -/* */ -/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ -/* */ -/* This program and the accompanying materials are made available under */ -/* the terms of the Common Public License v1.0 which accompanies this */ -/* distribution. A copy is also available at the following address: */ -/* http://www.oorexx.org/license.html */ -/* */ -/* Redistribution and use in source and binary forms, with or */ -/* without modification, are permitted provided that the following */ -/* conditions are met: */ -/* */ -/* Redistributions of source code must retain the above copyright */ -/* notice, this list of conditions and the following disclaimer. */ -/* Redistributions in binary form must reproduce the above copyright */ -/* notice, this list of conditions and the following disclaimer in */ -/* the documentation and/or other materials provided with the distribution. */ -/* */ -/* Neither the name of Rexx Language Association nor the names */ -/* of its contributors may be used to endorse or promote products */ -/* derived from this software without specific prior written permission. */ -/* */ -/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ -/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ -/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ -/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ -/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ -/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ -/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ -/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ -/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ -/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ -/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* */ -/* Authors; */ -/* W. David Ashley <da...@us...> */ -/* */ -/*----------------------------------------------------------------------------*/ - - -/*----------------------------------------------------------------------------*/ -/* Definitions */ -/*----------------------------------------------------------------------------*/ - -#include "rexxgtk.h" - - -/*----------------------------------------------------------------------------*/ -/* Global variables */ -/*----------------------------------------------------------------------------*/ - - -/*----------------------------------------------------------------------------*/ -/* Local variables and definitions */ -/*----------------------------------------------------------------------------*/ - -static GList *rxgtkdb = NULL; - -typedef struct _dbentry { - RexxObjectPtr object; - const GtkWidget *widget; -} dbentry; - - -/*----------------------------------------------------------------------------*/ -/* Functions */ -/*----------------------------------------------------------------------------*/ - -static int custom_compare1( - gconstpointer a, - gconstpointer b) { - - dbentry *aa = (dbentry *)a; - dbentry *bb = (dbentry *)b; - if (aa->widget != bb->widget) { - return -1; - } - return 0; -} - -static int custom_compare2( - gconstpointer a, - gconstpointer b) { - - dbentry *aa = (dbentry *)a; - dbentry *bb = (dbentry *)b; - if (aa->object != bb->object) { - return -1; - } - return 0; -} - -int GrxDBAdd( - const RexxObjectPtr rxobj, // the object to be added - const GtkWidget *widget) { // the widget pointer - - dbentry *newentry = (dbentry *)malloc(sizeof(dbentry)); - newentry->object = rxobj; - newentry->widget = widget; - rxgtkdb = g_list_prepend(rxgtkdb, newentry); -} - -int GrxDBRemoveObject( - const GtkWidget *widget) { // the widget pointer - dbentry searchentry; - - searchentry.widget = widget; - GList *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare1); - if (entry != NULL) { - free(entry->data); - rxgtkdb = g_list_remove(rxgtkdb, entry); - return 0; - } - return 1; -} - - -int GrxDBRemoveWidget( - const RexxObjectPtr obj) { // the Rexx object pointer - dbentry searchentry; - - searchentry.object = obj; - GList *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare2); - if (entry != NULL) { - rxgtkdb = g_list_remove(rxgtkdb, entry); - free(entry->data); - return 0; - } - return 1; -} - - -RexxObjectPtr GrxDBFindObject( - const GtkWidget *widget) { // the widget pointer - dbentry searchentry; - dbentry *fentry; - - searchentry.widget = widget; - GList *entry = g_list_find_custom(rxgtkdb, &searchentry, custom_compare1); - if (entry != NULL) { - fentry = (dbentry *)entry->data; - return fentry->object; - } - return NULL; -} - Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-09 02:13:16 UTC (rev 2422) +++ sandbox/david/4x/rexxgtk.cls 2008-04-09 16:26:46 UTC (rev 2423) @@ -341,7 +341,6 @@ ::class GtkWidget public ::METHOD init EXTERNAL "LIBRARY rexxgtk GrxWidgetNew" -::METHOD uninit EXTERNAL "LIBRARY rexxgtk GrxWidgetUninit" ::method pointer private -- return the pointer object to the widget Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-09 02:13:16 UTC (rev 2422) +++ sandbox/david/4x/rexxgtk.h 2008-04-09 16:26:46 UTC (rev 2423) @@ -71,16 +71,6 @@ /* Function Prototypes */ /*----------------------------------------------------------------------------*/ -int GrxDBAdd( - const RexxObjectPtr rxobj, // the object to be added - const GtkWidget *widget); // the widget pointer -int GrxDBRemoveWidget( - const RexxObjectPtr obj); // the widget pointer -int GrxDBRemoveObject( - const GtkWidget *widget); // the widget pointer -RexxObjectPtr GrxDBFindObject( - const GtkWidget *widget); // the widget pointer - REXX_METHOD_PROTOTYPE(GrxWidgetNew) REXX_METHOD_PROTOTYPE(GrxWidgetUninit) REXX_METHOD_PROTOTYPE(GrxWidgetShow) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-09 20:11:32
|
Revision: 2424 http://oorexx.svn.sourceforge.net/oorexx/?rev=2424&view=rev Author: wdashley Date: 2008-04-09 13:10:07 -0700 (Wed, 09 Apr 2008) Log Message: ----------- ArtifactID: None Comment: More 4x enhancements/fixes. Modified Paths: -------------- sandbox/david/4x/grxbutton.cpp sandbox/david/4x/grxcontainer.cpp sandbox/david/4x/grxwidget.cpp sandbox/david/4x/grxwindow.cpp sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.cpp sandbox/david/4x/rexxgtk.h sandbox/david/4x/ver.mak Modified: sandbox/david/4x/grxbutton.cpp =================================================================== --- sandbox/david/4x/grxbutton.cpp 2008-04-09 16:26:46 UTC (rev 2423) +++ sandbox/david/4x/grxbutton.cpp 2008-04-09 20:10:07 UTC (rev 2424) @@ -62,8 +62,11 @@ { cbcb *cblock = (cbcb *)data; RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(widget), "OORXOBJECT"); + RexxThreadContext *context; - cblock->context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + cblock->instance->AttachThread(&context); + context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + context->DetachThread(); return; } @@ -643,35 +646,35 @@ if (strcmp(name, "pressed") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_pressed"; g_signal_connect(G_OBJECT(myWidget), "pressed", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(name, "released") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_released"; g_signal_connect(G_OBJECT(myWidget), "released", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(name, "clicked") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_clicked"; g_signal_connect(G_OBJECT(myWidget), "clicked", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(name, "enter") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_enter"; g_signal_connect(G_OBJECT(myWidget), "enter", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(name, "leave") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_leave"; g_signal_connect(G_OBJECT(myWidget), "leave", G_CALLBACK(signal_func_0), cblock); @@ -703,7 +706,7 @@ if (strcmp(name, "toggled") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_toggked"; g_signal_connect(G_OBJECT(myWidget), "toggled", G_CALLBACK(signal_func_0), cblock); @@ -735,7 +738,7 @@ if (strcmp(name, "group_changed") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_group_changed"; g_signal_connect(G_OBJECT(myWidget), "group-changed", G_CALLBACK(signal_func_0), cblock); @@ -767,7 +770,7 @@ if (strcmp(name, "color_set") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_color_set"; g_signal_connect(G_OBJECT(myWidget), "color-set", G_CALLBACK(signal_func_0), cblock); @@ -799,7 +802,7 @@ if (strcmp(name, "file_set") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_file_set"; g_signal_connect(G_OBJECT(myWidget), "file-set", G_CALLBACK(signal_func_0), cblock); @@ -831,7 +834,7 @@ if (strcmp(name, "font_set") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_font_set"; g_signal_connect(G_OBJECT(myWidget), "font-set", G_CALLBACK(signal_func_0), cblock); Modified: sandbox/david/4x/grxcontainer.cpp =================================================================== --- sandbox/david/4x/grxcontainer.cpp 2008-04-09 16:26:46 UTC (rev 2423) +++ sandbox/david/4x/grxcontainer.cpp 2008-04-09 20:10:07 UTC (rev 2424) @@ -62,8 +62,11 @@ { cbcb *cblock = (cbcb *)data; RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; - cblock->context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + cblock->instance->AttachThread(&context); + context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + context->DetachThread(); return; } @@ -74,8 +77,11 @@ cbcb *cblock = (cbcb *)data; RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); RexxObjectPtr rxwidget = (RexxObjectPtr)g_object_get_data(G_OBJECT(widget), "OORXOBJECT"); + RexxThreadContext *context; - cblock->context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, rxwidget); + cblock->instance->AttachThread(&context); + context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, rxwidget); + context->DetachThread(); return; } @@ -316,28 +322,28 @@ if (strcmp(name, "add") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_add"; g_signal_connect(G_OBJECT(myWidget), "add", G_CALLBACK(signal_func_1), cblock); } else if (strcmp(name, "check-resize") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_check_resize"; g_signal_connect(G_OBJECT(myWidget), "check-resize", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(name, "remove") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_remove"; g_signal_connect(G_OBJECT(myWidget), "remove", G_CALLBACK(signal_func_1), cblock); } else if (strcmp(name, "set-focus-child") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_set_focus_child"; g_signal_connect(G_OBJECT(myWidget), "set-focus-child", G_CALLBACK(signal_func_1), cblock); @@ -401,7 +407,7 @@ if (strcmp(name, "set-scroll-adjustments") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_set_scroll_adjustments"; g_signal_connect(G_OBJECT(myWidget), "set-scroll-adjustments", G_CALLBACK(signal_func_1), cblock); Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-04-09 16:26:46 UTC (rev 2423) +++ sandbox/david/4x/grxwidget.cpp 2008-04-09 20:10:07 UTC (rev 2424) @@ -63,8 +63,11 @@ { cbcb *cblock = (cbcb *)data; RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(widget), "OORXOBJECT"); + RexxThreadContext *context; - cblock->context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + cblock->instance->AttachThread(&context); + context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + context->DetachThread(); return; } @@ -877,7 +880,7 @@ if (strcmp(name, "destroy") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_destroy"; g_signal_connect(G_OBJECT(myWidget), "destroy", G_CALLBACK(signal_func_0), cblock); Modified: sandbox/david/4x/grxwindow.cpp =================================================================== --- sandbox/david/4x/grxwindow.cpp 2008-04-09 16:26:46 UTC (rev 2423) +++ sandbox/david/4x/grxwindow.cpp 2008-04-09 20:10:07 UTC (rev 2424) @@ -62,8 +62,11 @@ { cbcb *cblock = (cbcb *)data; RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; - cblock->context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + cblock->instance->AttachThread(&context); + context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + context->DetachThread(); return; } @@ -74,8 +77,11 @@ cbcb *cblock = (cbcb *)data; RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); RexxObjectPtr rxwidget = (RexxObjectPtr)g_object_get_data(G_OBJECT(widget), "OORXOBJECT"); + RexxThreadContext *context; - cblock->context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, rxwidget); + cblock->instance->AttachThread(&context); + context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, rxwidget); + context->DetachThread(); return; } @@ -162,28 +168,28 @@ if (strcmp(name, "activate_default") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_set_scroll_adjustments"; g_signal_connect(G_OBJECT(myWidget), "set-scroll-adjustments", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(name, "activate_focus") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_activate_focus"; g_signal_connect(G_OBJECT(myWidget), "activate-focus", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(name, "keys_changed") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_keys_changed"; g_signal_connect(G_OBJECT(myWidget), "keys-changed", G_CALLBACK(signal_func_0), cblock); } else if (strcmp(name, "set_focus") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); - cblock->context = context->threadContext; + cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_set_focus"; g_signal_connect(G_OBJECT(myWidget), "set-focus", G_CALLBACK(signal_func_1), cblock); Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-09 16:26:46 UTC (rev 2423) +++ sandbox/david/4x/rexxgtk.cls 2008-04-09 20:10:07 UTC (rev 2424) @@ -342,15 +342,15 @@ ::METHOD init EXTERNAL "LIBRARY rexxgtk GrxWidgetNew" -::method pointer private --- return the pointer object to the widget +-- This method should only be invoked by the C++ code. That is the only place +-- where it is actually useful. +::method pointer expose !pointer -use strict arg return !pointer -::attribute user_data -- This attribute is not a part of the GTK system. It has been added to -- support callbacks or any other use the user may have. +::attribute user_data ::METHOD destroy EXTERNAL "LIBRARY rexxgtk GrxWidgetDestroy" ::METHOD font EXTERNAL "LIBRARY rexxgtk GrxWidgetGetFont" @@ -425,7 +425,6 @@ ::class GtkContainer public subclass GtkWidget ::method init -raise syntax 93.964 array ('A GtkContainer class cannot be instantiated.') return ::METHOD add EXTERNAL "LIBRARY rexxgtk GrxContainerAdd" @@ -456,7 +455,6 @@ ::class GtkBox public subclass GtkContainer ::method init -raise syntax 93.964 array ('A GtkBox class cannot be instantiated.') return ::METHOD pack_end EXTERNAL "LIBRARY rexxgtk GrxBoxPackEnd" @@ -500,8 +498,6 @@ ::class GtkHBox_From_Pointer private subclass GtkHBox ::method init -expose !pointer -use strict arg !pointer return @@ -525,8 +521,6 @@ ::class GtkVBox_From_Pointer private subclass GtkVBox ::method init -expose !pointer -use strict arg !pointer return Modified: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp 2008-04-09 16:26:46 UTC (rev 2423) +++ sandbox/david/4x/rexxgtk.cpp 2008-04-09 20:10:07 UTC (rev 2424) @@ -54,6 +54,11 @@ /* Local Definitions */ /*----------------------------------------------------------------------------*/ +#define VERSTRING(major,minor,rel) #major "." #minor "." #rel + + + + #if defined WIN32 BOOL WINAPI DllMain(HANDLE hinst, DWORD dwcallpurpose, LPVOID lpvResvd); #else @@ -133,10 +138,8 @@ */ RexxRoutine0(RexxObjectPtr, GrxVersion) { - char buffer[256]; - g_snprintf(buffer, RXAUTOBUFLEN, "%d.%d.%d", VMAJOR, VMINOR, VREL); - return context->NewStringFromAsciiz(buffer); + return context->NewStringFromAsciiz(VERSTRING(VMAJOR,VMINOR,VREL)); } /** @@ -292,7 +295,8 @@ RexxPackageEntry gtkobject_package_entry = { STANDARD_PACKAGE_HEADER "RexxGTK", // name of the package - "0.1", // package information +// "0.1", // package information + VERSTRING(VMAJOR,VMINOR,VREL), // package information NULL, // no load/unload functions NULL, gtkobject_routines, // the exported routines Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-09 16:26:46 UTC (rev 2423) +++ sandbox/david/4x/rexxgtk.h 2008-04-09 20:10:07 UTC (rev 2424) @@ -62,8 +62,8 @@ extern int rexxgtk_argc; typedef struct _cbcb { - RexxThreadContext *context; // Rexx instance - char *signal_name; // ame of the Rexx method + RexxInstance *instance; // Rexx instance + char *signal_name; // Name of the ooRexx method } cbcb; Modified: sandbox/david/4x/ver.mak =================================================================== --- sandbox/david/4x/ver.mak 2008-04-09 16:26:46 UTC (rev 2423) +++ sandbox/david/4x/ver.mak 2008-04-09 20:10:07 UTC (rev 2424) @@ -1,5 +1,5 @@ VMAJOR = 0 -VMINOR = 4 +VMINOR = 5 VREL = 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-09 22:33:35
|
Revision: 2425 http://oorexx.svn.sourceforge.net/oorexx/?rev=2425&view=rev Author: wdashley Date: 2008-04-09 14:47:59 -0700 (Wed, 09 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Fixed the 4x signal connect methods to return true and false. Modified Paths: -------------- sandbox/david/4x/grxbutton.cpp sandbox/david/4x/grxcontainer.cpp sandbox/david/4x/grxwidget.cpp sandbox/david/4x/grxwindow.cpp sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.cpp Modified: sandbox/david/4x/grxbutton.cpp =================================================================== --- sandbox/david/4x/grxbutton.cpp 2008-04-09 20:10:07 UTC (rev 2424) +++ sandbox/david/4x/grxbutton.cpp 2008-04-09 21:47:59 UTC (rev 2425) @@ -636,7 +636,7 @@ * * @return Zero */ -RexxMethod1(int, // Return type +RexxMethod1(RexxObjectPtr, // Return type GrxButtonSignalConnect, // Object_method name CSTRING, name) // Signal name { @@ -650,6 +650,7 @@ cblock->signal_name = "signal_pressed"; g_signal_connect(G_OBJECT(myWidget), "pressed", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else if (strcmp(name, "released") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); @@ -657,6 +658,7 @@ cblock->signal_name = "signal_released"; g_signal_connect(G_OBJECT(myWidget), "released", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else if (strcmp(name, "clicked") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); @@ -664,6 +666,7 @@ cblock->signal_name = "signal_clicked"; g_signal_connect(G_OBJECT(myWidget), "clicked", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else if (strcmp(name, "enter") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); @@ -671,6 +674,7 @@ cblock->signal_name = "signal_enter"; g_signal_connect(G_OBJECT(myWidget), "enter", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else if (strcmp(name, "leave") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); @@ -678,13 +682,14 @@ cblock->signal_name = "signal_leave"; g_signal_connect(G_OBJECT(myWidget), "leave", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else { RexxObjectPtr parent = context->GetSuper(); - context->SendMessage0(parent, name); + return context->SendMessage0(parent, name); } - return 0; + return context->False(); } /** @@ -696,7 +701,7 @@ * * @return Zero */ -RexxMethod1(int, // Return type +RexxMethod1(RexxObjectPtr, // Return type GrxToggleButtonSignalConnect, // Object_method name CSTRING, name) // Signal name { @@ -710,13 +715,14 @@ cblock->signal_name = "signal_toggked"; g_signal_connect(G_OBJECT(myWidget), "toggled", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else { RexxObjectPtr parent = context->GetSuper(); - context->SendMessage0(parent, name); + return context->SendMessage0(parent, name); } - return 0; + return context->False(); } /** @@ -728,7 +734,7 @@ * * @return Zero */ -RexxMethod1(int, // Return type +RexxMethod1(RexxObjectPtr, // Return type GrxRadioButtonSignalConnect, // Object_method name CSTRING, name) // Signal name { @@ -742,13 +748,14 @@ cblock->signal_name = "signal_group_changed"; g_signal_connect(G_OBJECT(myWidget), "group-changed", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else { RexxObjectPtr parent = context->GetSuper(); - context->SendMessage0(parent, name); + return context->SendMessage0(parent, name); } - return 0; + return context->False(); } /** @@ -760,7 +767,7 @@ * * @return Zero */ -RexxMethod1(int, // Return type +RexxMethod1(RexxObjectPtr, // Return type GrxColorButtonSignalConnect, // Object_method name CSTRING, name) // Signal name { @@ -774,13 +781,14 @@ cblock->signal_name = "signal_color_set"; g_signal_connect(G_OBJECT(myWidget), "color-set", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else { RexxObjectPtr parent = context->GetSuper(); - context->SendMessage0(parent, name); + return context->SendMessage0(parent, name); } - return 0; + return context->False(); } /** @@ -792,7 +800,7 @@ * * @return Zero */ -RexxMethod1(int, // Return type +RexxMethod1(RexxObjectPtr, // Return type GrxFileChooserButtonSignalConnect, // Object_method name CSTRING, name) // Signal name { @@ -806,13 +814,14 @@ cblock->signal_name = "signal_file_set"; g_signal_connect(G_OBJECT(myWidget), "file-set", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else { RexxObjectPtr parent = context->GetSuper(); - context->SendMessage0(parent, name); + return context->SendMessage0(parent, name); } - return 0; + return context->False(); } /** @@ -824,7 +833,7 @@ * * @return Zero */ -RexxMethod1(int, // Return type +RexxMethod1(RexxObjectPtr, // Return type GrxFontButtonSignalConnect, // Object_method name CSTRING, name) // Signal name { @@ -838,12 +847,13 @@ cblock->signal_name = "signal_font_set"; g_signal_connect(G_OBJECT(myWidget), "font-set", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else { RexxObjectPtr parent = context->GetSuper(); - context->SendMessage0(parent, name); + return context->SendMessage0(parent, name); } - return 0; + return context->False(); } Modified: sandbox/david/4x/grxcontainer.cpp =================================================================== --- sandbox/david/4x/grxcontainer.cpp 2008-04-09 20:10:07 UTC (rev 2424) +++ sandbox/david/4x/grxcontainer.cpp 2008-04-09 21:47:59 UTC (rev 2425) @@ -312,7 +312,7 @@ * * @return Zero */ -RexxMethod1(int, // Return type +RexxMethod1(RexxObjectPtr, // Return type GrxContainerSignalConnect, // Object_method name CSTRING, name) // Signal name { @@ -326,6 +326,7 @@ cblock->signal_name = "signal_add"; g_signal_connect(G_OBJECT(myWidget), "add", G_CALLBACK(signal_func_1), cblock); + return context->True(); } else if (strcmp(name, "check-resize") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); @@ -333,6 +334,7 @@ cblock->signal_name = "signal_check_resize"; g_signal_connect(G_OBJECT(myWidget), "check-resize", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else if (strcmp(name, "remove") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); @@ -340,6 +342,7 @@ cblock->signal_name = "signal_remove"; g_signal_connect(G_OBJECT(myWidget), "remove", G_CALLBACK(signal_func_1), cblock); + return context->True(); } else if (strcmp(name, "set-focus-child") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); @@ -347,13 +350,14 @@ cblock->signal_name = "signal_set_focus_child"; g_signal_connect(G_OBJECT(myWidget), "set-focus-child", G_CALLBACK(signal_func_1), cblock); + return context->True(); } else { RexxObjectPtr parent = context->GetSuper(); - context->SendMessage0(parent, name); + return context->SendMessage0(parent, name); } - return 0; + return context->False(); } @@ -397,7 +401,7 @@ * * @return Zero */ -RexxMethod1(int, // Return type +RexxMethod1(RexxObjectPtr, // Return type GrxViewportSignalConnect, // Object_method name CSTRING, name) // Signal name { @@ -411,11 +415,12 @@ cblock->signal_name = "signal_set_scroll_adjustments"; g_signal_connect(G_OBJECT(myWidget), "set-scroll-adjustments", G_CALLBACK(signal_func_1), cblock); + return context->True(); } else { RexxObjectPtr parent = context->GetSuper(); - context->SendMessage0(parent, name); + return context->SendMessage0(parent, name); } - return 0; + return context->False(); } Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-04-09 20:10:07 UTC (rev 2424) +++ sandbox/david/4x/grxwidget.cpp 2008-04-09 21:47:59 UTC (rev 2425) @@ -870,7 +870,7 @@ * * @return Zero */ -RexxMethod1(int, // Return type +RexxMethod1(RexxObjectPtr, // Return type GrxWidgetSignalConnect, // Object_method name CSTRING, name) // Signal name { @@ -884,11 +884,12 @@ cblock->signal_name = "signal_destroy"; g_signal_connect(G_OBJECT(myWidget), "destroy", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else { - return 0; + return context->False(); } - return 0; + return context->False(); } Modified: sandbox/david/4x/grxwindow.cpp =================================================================== --- sandbox/david/4x/grxwindow.cpp 2008-04-09 20:10:07 UTC (rev 2424) +++ sandbox/david/4x/grxwindow.cpp 2008-04-09 21:47:59 UTC (rev 2425) @@ -158,7 +158,7 @@ * * @return Zero. */ -RexxMethod1(int, // Return type +RexxMethod1(RexxObjectPtr, // Return type GrxWindowSignalConnect, // Object_method name CSTRING, name) // Signal name { @@ -172,6 +172,7 @@ cblock->signal_name = "signal_set_scroll_adjustments"; g_signal_connect(G_OBJECT(myWidget), "set-scroll-adjustments", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else if (strcmp(name, "activate_focus") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); @@ -179,6 +180,7 @@ cblock->signal_name = "signal_activate_focus"; g_signal_connect(G_OBJECT(myWidget), "activate-focus", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else if (strcmp(name, "keys_changed") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); @@ -186,6 +188,7 @@ cblock->signal_name = "signal_keys_changed"; g_signal_connect(G_OBJECT(myWidget), "keys-changed", G_CALLBACK(signal_func_0), cblock); + return context->True(); } else if (strcmp(name, "set_focus") == 0) { cblock = (cbcb *)malloc(sizeof(cbcb)); @@ -193,12 +196,13 @@ cblock->signal_name = "signal_set_focus"; g_signal_connect(G_OBJECT(myWidget), "set-focus", G_CALLBACK(signal_func_1), cblock); + return context->True(); } else { RexxObjectPtr parent = context->GetSuper(); - context->SendMessage0(parent, name); + return context->SendMessage0(parent, name); } - return 0; + return context->False(); } Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-09 20:10:07 UTC (rev 2424) +++ sandbox/david/4x/rexxgtk.cls 2008-04-09 21:47:59 UTC (rev 2425) @@ -39,19 +39,12 @@ /*----------------------------------------------------------------------------*/ --- Create and initialize the GTK quit flag -.local['!GTK_Quit'] = .false - - /*============================================================================*/ /* Routine: gtk_main */ /*============================================================================*/ ::routine gtk_main public -do while .local['!GTK_Quit'] = .false - call gtk_main_iteration - end -.local['!GTK_Quit'] = .false -- we need this for recursive calls to this function +call gtk_main_iteration return @@ -60,7 +53,7 @@ /*============================================================================*/ ::routine gtk_main_quit public -.local['!GTK_Quit'] = .true +call GrxMainQuit return @@ -407,10 +400,8 @@ ::METHOD root_window EXTERNAL "LIBRARY rexxgtk GrxWidgetGetRootWindow" ::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxWidgetSignalConnect" --- -- The following are the methods that can be connected to signals. By default -- they do nothing. --- ::method signal_destroy return @@ -433,6 +424,9 @@ ::METHOD 'border_width=' EXTERNAL "LIBRARY rexxgtk GrxContainerSetBorderWidth" ::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxContainerSignalConnect" +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + ::method signal_add return @@ -546,7 +540,6 @@ ::class GtkPaned public subclass GtkContainer ::method init -raise syntax 93.964 array ('A GtkPaned class cannot be instantiated.') return ::METHOD add1 EXTERNAL "LIBRARY rexxgtk GrxPanedAdd1" @@ -554,6 +547,9 @@ ::METHOD pack1 EXTERNAL "LIBRARY rexxgtk GrxPanedPack1" ::METHOD pack2 EXTERNAL "LIBRARY rexxgtk GrxPanedPack2" +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + ::method signal_connect use strict arg event return self~signal_connect:super(event) @@ -598,6 +594,9 @@ ::METHOD set_modal EXTERNAL "LIBRARY rexxgtk GrxWindowSetModal" ::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxWindowSignalConnect" +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + ::method signal_activate_default return @@ -632,6 +631,9 @@ ::METHOD set_relief EXTERNAL "LIBRARY rexxgtk GrxButtonSetRelief" ::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxButtonSignalConnect" +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + ::method signal_pressed return @@ -770,6 +772,9 @@ ::METHOD 'group=' EXTERNAL "LIBRARY rexxgtk GrxRadioButtonSetGroup" ::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxRadioButtonSignalConnect" +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + ::method signal_group_changed return @@ -847,6 +852,9 @@ ::METHOD 'color=' EXTERNAL "LIBRARY rexxgtk GrxColorButtonSetColor" ::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxColorButtonSetColor" +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + ::method signal_color_set return @@ -860,12 +868,16 @@ ::METHOD init EXTERNAL "LIBRARY rexxgtk GrxFileChooserButtonNew" ::METHOD signal_connect_p private EXTERNAL "LIBRARY rexxgtk GrxFileChooserButtonSignalConnect" +::METHOD signal_connect use strict arg event -- first try the GtkFileChooser class hiearchy first -if self~signal_connect:.GtkFileChooser(event) = 0 then return +if self~signal_connect:.GtkFileChooser(event) = .true then return .true -- now try the standard hiearchy -self~signal_connect_p +return self~signal_connect_p +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + ::method signal_file_set return @@ -883,6 +895,9 @@ ::METHOD get_font_name EXTERNAL "LIBRARY rexxgtk GrxFontButtonGetFontName" ::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxFontButtonSignalConnect" +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + ::method signal_font_set return Modified: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp 2008-04-09 20:10:07 UTC (rev 2424) +++ sandbox/david/4x/rexxgtk.cpp 2008-04-09 21:47:59 UTC (rev 2425) @@ -170,6 +170,20 @@ } /** + * Function: GrxMainQuit + * + * Exits the GTK main loop. + * + * @return Zero. + */ +RexxRoutine0(int, GrxMainQuit) +{ + + gtk_main_quit(); + return 0; +} + +/** * Function: GrxMainIteration * * Executes one iteration of the GTK main loop. @@ -189,6 +203,7 @@ REXX_TYPED_ROUTINE(GrxVersion, GrxVersion), REXX_TYPED_ROUTINE(GrxEventsPending, GrxEventsPending), REXX_TYPED_ROUTINE(GrxMain, GrxMain), + REXX_TYPED_ROUTINE(GrxMainQuit, GrxMainQuit), REXX_TYPED_ROUTINE(GrxMainIteration, GrxMainIteration), REXX_LAST_ROUTINE() }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-10 01:39:15
|
Revision: 2426 http://oorexx.svn.sourceforge.net/oorexx/?rev=2426&view=rev Author: wdashley Date: 2008-04-09 18:39:20 -0700 (Wed, 09 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Added tables to the 4x stuff. Modified Paths: -------------- sandbox/david/4x/Makefile sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.cpp sandbox/david/4x/rexxgtk.h Added Paths: ----------- sandbox/david/4x/grxtable.cpp Modified: sandbox/david/4x/Makefile =================================================================== --- sandbox/david/4x/Makefile 2008-04-09 21:47:59 UTC (rev 2425) +++ sandbox/david/4x/Makefile 2008-04-10 01:39:20 UTC (rev 2426) @@ -51,10 +51,10 @@ grxwindow.o \ grxcontainer.o \ grxbutton.o \ - grxpaned.o + grxpaned.o \ + grxtable.o # grxqueue.o \ # grxlabel.o \ -# grxtable.o \ # grxentry.o \ # grxfixed.o \ # grxexpander.o \ @@ -107,8 +107,8 @@ grxpaned.o: grxpaned.cpp rexxgtk.h gcc -c $(GRXCFLAGS) grxpaned.cpp -grxtable.o: grxtable.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxtable.c +grxtable.o: grxtable.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxtable.cpp grxentry.o: grxentry.c rexxgtk.h gcc -c $(GRXCFLAGS) grxentry.c Copied: sandbox/david/4x/grxtable.cpp (from rev 2397, sandbox/david/grxtable.c) =================================================================== --- sandbox/david/4x/grxtable.cpp (rev 0) +++ sandbox/david/4x/grxtable.cpp 2008-04-10 01:39:20 UTC (rev 2426) @@ -0,0 +1,184 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + +/* + * Method: init + * + * Create a table. + * + * @param rows Table rows + * + * @param cols Table columns + * + * @param homog Table homegeneous boolean + * + * @return Zero. + */ +RexxMethod3(int, // Return type + GrxTableNew, // Object_method name + int, rows, // Table rows + int, cols, // Table columns + logical_t, homogeneous) // Homogeneous boolean +{ + GtkWidget *myWidget; + + myWidget = gtk_table_new(rows, cols, homogeneous); + + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + + return 0; +} + +/* + * Method: attach + * + * Attach a widget to a table. + * + * @param rxwidget Widget to be added + * + * @param left Left position + * + * @param right Right position + * + * @param top Top position + * + * @param bottom Bottom position + * + * @param xopt X options + * + * @param yopt Y optiions + * + * @param xpad X padding + * + * @param ypad Y padding + * + * @return Zero. + */ +RexxMethod9(int, // Return type + GrxTableAttach, // Object_method name + RexxObjectPtr, rxWidget, // Widget to be added + int, left, // Left position + int, right, // Right position + int, top, // Top position + int, bottom, // Bottom position + int, xoptions, // X options + int, yoptions, // Y options + int, xpad, // X padding + int, ypad) // Ypadding +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *tableWidget = (GtkWidget *)context->PointerValue(rxptr); + RexxPointerObject addptr = (RexxPointerObject)context->SendMessage0(rxWidget, "POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(addptr); + + gtk_table_attach(GTK_TABLE(tableWidget), myWidget, left, right, top, bottom, + (GtkAttachOptions)xoptions, (GtkAttachOptions)yoptions, + xpad, ypad); + + return 0; +} + +/* + * Method: set_row_spacings + * + * Set the table row spacing. + * + * @param spacing Row spacing + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxTableSetRowSpacings, // Object_method name + int, spacing) // Row spacing +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_table_set_row_spacings(GTK_TABLE(myWidget), spacing); + + return 0; +} + +/* + * Method: set_col_spacings + * + * Set the table column spacing. + * + * @param spacing Column spacing + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxTableSetColSpacings, // Object_method name + int, spacing) // Column spacing +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_table_set_col_spacings(GTK_TABLE(myWidget), spacing); + + return 0; +} + Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-09 21:47:59 UTC (rev 2425) +++ sandbox/david/4x/rexxgtk.cls 2008-04-10 01:39:20 UTC (rev 2426) @@ -902,3 +902,27 @@ return +/*============================================================================*/ +/* Class: GtkTable */ +/*============================================================================*/ + +::class GtkTable public subclass GtkContainer + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxTableNew" +::METHOD attach EXTERNAL "LIBRARY rexxgtk GrxTableAttach" + +::method attach_defaults +use strict arg widget, left, right, top, bottom +self~attach(widget, left, right, top, bottom,5, 5, 0, 0) +return + +::METHOD 'row_spacings=' EXTERNAL "LIBRARY rexxgtk GrxTableSetRowSpacings" +::METHOD set_row_spacings EXTERNAL "LIBRARY rexxgtk GrxTableSetRowSpacings" +::METHOD 'col_spacings=' EXTERNAL "LIBRARY rexxgtk GrxTableSetColSpacings" +::METHOD set_col_spacings EXTERNAL "LIBRARY rexxgtk GrxTableSetColSpacings" + +::method signal_connect +use strict arg event +return self~signal_connect:super(event) + + Modified: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp 2008-04-09 21:47:59 UTC (rev 2425) +++ sandbox/david/4x/rexxgtk.cpp 2008-04-10 01:39:20 UTC (rev 2426) @@ -303,6 +303,10 @@ REXX_METHOD(GrxFontButtonSetTitle, GrxFontButtonSetTitle), REXX_METHOD(GrxFontButtonGetFontName, GrxFontButtonGetFontName), REXX_METHOD(GrxFontButtonSignalConnect, GrxFontButtonSignalConnect), + REXX_METHOD(GrxTableNew, GrxTableNew), + REXX_METHOD(GrxTableAttach, GrxTableAttach), + REXX_METHOD(GrxTableSetRowSpacings, GrxTableSetRowSpacings), + REXX_METHOD(GrxTableSetColSpacings, GrxTableSetColSpacings), REXX_LAST_METHOD() }; Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-09 21:47:59 UTC (rev 2425) +++ sandbox/david/4x/rexxgtk.h 2008-04-10 01:39:20 UTC (rev 2426) @@ -163,6 +163,10 @@ REXX_METHOD_PROTOTYPE(GrxFontButtonSetTitle) REXX_METHOD_PROTOTYPE(GrxFontButtonGetFontName) REXX_METHOD_PROTOTYPE(GrxFontButtonSignalConnect) +REXX_METHOD_PROTOTYPE(GrxTableNew) +REXX_METHOD_PROTOTYPE(GrxTableAttach) +REXX_METHOD_PROTOTYPE(GrxTableSetRowSpacings) +REXX_METHOD_PROTOTYPE(GrxTableSetColSpacings) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-10 19:24:11
|
Revision: 2429 http://oorexx.svn.sourceforge.net/oorexx/?rev=2429&view=rev Author: wdashley Date: 2008-04-10 12:23:58 -0700 (Thu, 10 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Enhanced some self references. Modified Paths: -------------- sandbox/david/4x/grxbutton.cpp sandbox/david/4x/grxcontainer.cpp sandbox/david/4x/grxpaned.cpp sandbox/david/4x/grxtable.cpp sandbox/david/4x/grxwidget.cpp sandbox/david/4x/grxwindow.cpp Modified: sandbox/david/4x/grxbutton.cpp =================================================================== --- sandbox/david/4x/grxbutton.cpp 2008-04-10 14:06:18 UTC (rev 2428) +++ sandbox/david/4x/grxbutton.cpp 2008-04-10 19:23:58 UTC (rev 2429) @@ -82,14 +82,15 @@ * * @return Zero. */ -RexxMethod0(int, // Return type - GrxButtonNew) // Object_method name +RexxMethod1(int, // Return type + GrxButtonNew, // Object_method name + OSELF, self) // Self { GtkWidget *myWidget; myWidget = gtk_button_new(); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -103,15 +104,16 @@ * * @return Zero. */ -RexxMethod1(int, // Return type +RexxMethod2(int, // Return type GrxButtonNewFromStock, // Object_method name + OSELF, self, // Self CSTRING, type) // Button type { GtkWidget *myWidget; myWidget = gtk_button_new_from_stock(type); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -202,14 +204,15 @@ * * @return Zero. */ -RexxMethod0(int, // Return type - GrxToggleButtonNew) // Object_method name +RexxMethod1(int, // Return type + GrxToggleButtonNew, // Object_method name + OSELF, self) // Self { GtkWidget *myWidget; myWidget = gtk_toggle_button_new(); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -334,8 +337,9 @@ * * @return Zero. */ -RexxMethod1(int, // Return type +RexxMethod2(int, // Return type GrxCheckButtonNew, // Object_method name + OSELF, self, // Self OPTIONAL_CSTRING, text) // Button text { GtkWidget *myWidget; @@ -347,7 +351,7 @@ myWidget = gtk_check_button_new(); } context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -363,8 +367,9 @@ * * @return Zero. */ -RexxMethod2(int, // Return type +RexxMethod3(int, // Return type GrxRadioButtonNew, // Object_method name + OSELF, self, // Self RexxObjectPtr, rxlistptr, // GList object OPTIONAL_CSTRING, text) // Button text { @@ -377,7 +382,7 @@ gtk_button_set_label(GTK_BUTTON(myWidget), text); } context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -391,8 +396,9 @@ * * @return Zero. */ -RexxMethod1(int, // Return type +RexxMethod2(int, // Return type GrxRadioButtonNewFromWidget, // Object_method name + OSELF, self, // Self RexxObjectPtr, rxwidgetptr) // Widget pointer { RexxPointerObject widgetptr = (RexxPointerObject)context->SendMessage0(rxwidgetptr, "POINTER"); @@ -401,7 +407,7 @@ myWidget = gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(srcWidget)); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -456,8 +462,9 @@ * * @return Zero. */ -RexxMethod1(int, // Return type +RexxMethod2(int, // Return type GrxColorButtonNew, // Object_method name + OSELF, self, // Self OPTIONAL_CSTRING, colorstr)// Color string { GtkWidget *myWidget; @@ -471,7 +478,7 @@ myWidget = gtk_color_button_new_with_color(&color); } context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -555,8 +562,9 @@ * * @return Zero. */ -RexxMethod2(int, // Return type +RexxMethod3(int, // Return type GrxFileChooserButtonNew, // Object_method name + OSELF, self, // Self CSTRING, title, // Title string int, action) // Title action { @@ -564,7 +572,7 @@ myWidget = gtk_file_chooser_button_new(title, (GtkFileChooserAction)action); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -576,14 +584,15 @@ * * @return Zero. */ -RexxMethod0(int, // Return type - GrxFontButton) // Object_method name +RexxMethod1(int, // Return type + GrxFontButton, // Object_method name + OSELF, self) // Self { GtkWidget *myWidget; myWidget = gtk_font_button_new(); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } Modified: sandbox/david/4x/grxcontainer.cpp =================================================================== --- sandbox/david/4x/grxcontainer.cpp 2008-04-10 14:06:18 UTC (rev 2428) +++ sandbox/david/4x/grxcontainer.cpp 2008-04-10 19:23:58 UTC (rev 2429) @@ -232,8 +232,9 @@ * * @return Zero. */ -RexxMethod2(int, // Return type +RexxMethod3(int, // Return type GrxVBoxNew, // Object_method name + OSELF, self, // Self logical_t, homogeneous, // Homogeneous boolean int, spacing) // Spacing amount { @@ -242,7 +243,7 @@ myWidget = gtk_vbox_new(homogeneous, spacing); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -258,8 +259,9 @@ * * @return Zero. */ -RexxMethod2(int, // Return type +RexxMethod3(int, // Return type GrxHBoxNew, // Object_method name + OSELF, self, // Self logical_t, homogeneous, // Homogeneous boolean int, spacing) // Spacing amount { @@ -267,7 +269,7 @@ myWidget = gtk_hbox_new(homogeneous, spacing); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -287,8 +289,9 @@ * * @return Zero. */ -RexxMethod4(int, // Return type +RexxMethod5(int, // Return type GrxAlignmentNew, // Object_method name + OSELF, self, // Self float, xalign, // X alignment float, yalign, // Y alignment float, xscale, // Y scale @@ -298,7 +301,7 @@ myWidget = gtk_alignment_new(xalign, yalign, xscale, yscale); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -374,8 +377,9 @@ * * @return Zero. */ -RexxMethod2(int, // Return type +RexxMethod3(int, // Return type GrxViewportNew, // Object_method name + OSELF, self, // Self RexxObjectPtr, rxhadj, // Horizontal adjustment object RexxObjectPtr, rxvadj) // Vertical adjustment object { @@ -387,7 +391,7 @@ myWidget = gtk_viewport_new(hadj, vadj); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } Modified: sandbox/david/4x/grxpaned.cpp =================================================================== --- sandbox/david/4x/grxpaned.cpp 2008-04-10 14:06:18 UTC (rev 2428) +++ sandbox/david/4x/grxpaned.cpp 2008-04-10 19:23:58 UTC (rev 2429) @@ -165,14 +165,15 @@ * * @return Zero */ -RexxMethod0(int, // Return type - GrxVPanedNew) // Object_method name +RexxMethod1(int, // Return type + GrxVPanedNew, // Object_method name + OSELF, self) // Self { GtkWidget *myWidget; myWidget = gtk_vpaned_new(); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -184,14 +185,15 @@ * * @return Zero */ -RexxMethod0(int, // Return type - GrxHPanedNew) // Object_method name +RexxMethod1(int, // Return type + GrxHPanedNew, // Object_method name + OSELF, self) // Self { GtkWidget *myWidget; myWidget = gtk_hpaned_new(); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } Modified: sandbox/david/4x/grxtable.cpp =================================================================== --- sandbox/david/4x/grxtable.cpp 2008-04-10 14:06:18 UTC (rev 2428) +++ sandbox/david/4x/grxtable.cpp 2008-04-10 19:23:58 UTC (rev 2429) @@ -75,8 +75,9 @@ * * @return Zero. */ -RexxMethod3(int, // Return type +RexxMethod4(int, // Return type GrxTableNew, // Object_method name + OSELF, self, // Self int, rows, // Table rows int, cols, // Table columns logical_t, homogeneous) // Homogeneous boolean @@ -86,7 +87,7 @@ myWidget = gtk_table_new(rows, cols, homogeneous); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } @@ -126,7 +127,7 @@ int, xoptions, // X options int, yoptions, // Y options int, xpad, // X padding - int, ypad) // Ypadding + int, ypad) // Y padding { RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); GtkWidget *tableWidget = (GtkWidget *)context->PointerValue(rxptr); Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-04-10 14:06:18 UTC (rev 2428) +++ sandbox/david/4x/grxwidget.cpp 2008-04-10 19:23:58 UTC (rev 2429) @@ -89,7 +89,7 @@ GtkWidget *myWidget = NULL; context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); -// g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf); + // This is an abstract class so no actual widget is created return 0; } Modified: sandbox/david/4x/grxwindow.cpp =================================================================== --- sandbox/david/4x/grxwindow.cpp 2008-04-10 14:06:18 UTC (rev 2428) +++ sandbox/david/4x/grxwindow.cpp 2008-04-10 19:23:58 UTC (rev 2429) @@ -99,15 +99,16 @@ * * @return Zero. */ -RexxMethod1(int, // Return type +RexxMethod2(int, // Return type GrxWindowNew, // Object_method name + OSELF, self, // Self int, type) // Window type { GtkWidget *myWidget; myWidget = gtk_window_new((GtkWindowType)type); context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); - g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-10 20:22:38
|
Revision: 2430 http://oorexx.svn.sourceforge.net/oorexx/?rev=2430&view=rev Author: wdashley Date: 2008-04-10 13:22:34 -0700 (Thu, 10 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Added combobox to 4x stuff. Modified Paths: -------------- sandbox/david/4x/Makefile sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.cpp sandbox/david/4x/rexxgtk.h Added Paths: ----------- sandbox/david/4x/grxcombobox.cpp Modified: sandbox/david/4x/Makefile =================================================================== --- sandbox/david/4x/Makefile 2008-04-10 19:23:58 UTC (rev 2429) +++ sandbox/david/4x/Makefile 2008-04-10 20:22:34 UTC (rev 2430) @@ -52,7 +52,8 @@ grxcontainer.o \ grxbutton.o \ grxpaned.o \ - grxtable.o + grxtable.o \ + grxcombobox.o # grxqueue.o \ # grxlabel.o \ # grxentry.o \ @@ -74,7 +75,6 @@ # grxtextview.o \ # grxtextbuffer.o \ # grxclipboard.o \ -# grxcombobox.o # Build the shared library @@ -167,8 +167,8 @@ grxclipboard.o: grxclipboard.c rexxgtk.h gcc -c $(GRXCFLAGS) grxclipboard.c -grxcombobox.o: grxcombobox.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxcombobox.c +grxcombobox.o: grxcombobox.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxcombobox.cpp Copied: sandbox/david/4x/grxcombobox.cpp (from rev 2401, sandbox/david/grxcombobox.c) =================================================================== --- sandbox/david/4x/grxcombobox.cpp (rev 0) +++ sandbox/david/4x/grxcombobox.cpp 2008-04-10 20:22:34 UTC (rev 2430) @@ -0,0 +1,270 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + +static void signal_func_1(GtkWidget *window, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + context->DetachThread(); + return; +} + + +static void signal_func_2(GtkWidget *window, + GtkScrollType arg1, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + RexxObjectPtr scrolltype = context->NumberToObject((wholenumber_t)arg1);; + context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, scrolltype); + context->DetachThread(); + return; +} + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + +/* + * Method: init + * + * Create a combobox. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxComboBoxNew, // Object_method name + OSELF, self) // Self +{ + GtkWidget *myWidget; + + myWidget = gtk_combo_box_new(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); + + return 0; +} + +/* + * Method: init + * + * Create a combobox. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxComboBoxNewText, // Object_method name + OSELF, self) // Self +{ + GtkWidget *myWidget; + + myWidget = gtk_combo_box_new_text(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); + + return 0; +} + +/* + * Method: append_text + * + * Append text to a combobox. + * + * @param text The text to append + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxComboBoxAppendText, // Object_method name + CSTRING, text) // Text to append +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkComboBox *myWidget = (GtkComboBox *)context->PointerValue(rxptr); + + gtk_combo_box_append_text(myWidget, text); + + return 0; +} + +/* + * Method: get_active_text + * + * Get the active text. + * + * @return Text. + */ +RexxMethod0(CSTRING, // Return type + GrxComboBoxGetActiveText) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkComboBox *myWidget = (GtkComboBox *)context->PointerValue(rxptr); + + return gtk_combo_box_get_active_text(myWidget); +} + +/* + * Method: set_active + * + * Set the active entry. + * + * @param active The entry to set active. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxComboBoxSetActive, // Object_method name + int, active) // Entry number +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkComboBox *myWidget = (GtkComboBox *)context->PointerValue(rxptr); + + gtk_combo_box_set_active(myWidget, active); + + return 0; +} + +/* + * Method: get_active + * + * Get the active entry. + * + * @return Entry number + */ +RexxMethod0(int, // Return type + GrxComboBoxGetActive) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkComboBox *myWidget = (GtkComboBox *)context->PointerValue(rxptr); + + return gtk_combo_box_get_active(myWidget); +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(RexxObjectPtr, // Return type + GrxComboBoxSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (GTK_IS_WIDGET(GTK_OBJECT(myWidget))) { + if (strcmp(name, "changed") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_changed"; + g_signal_connect(G_OBJECT(myWidget), "changed", + G_CALLBACK(signal_func_1), cblock); + return context->True(); + } + else if (strcmp(name, "move_active") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_move_active"; + g_signal_connect(G_OBJECT(myWidget), "move-active", + G_CALLBACK(signal_func_2), cblock); + return context->True(); + } + else if (strcmp(name, "popdown") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_popdown"; + g_signal_connect(G_OBJECT(myWidget), "popdown", + G_CALLBACK(signal_func_1), cblock); + return context->True(); + } + else if (strcmp(name, "popup") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_popup"; + g_signal_connect(G_OBJECT(myWidget), "popup", + G_CALLBACK(signal_func_1), cblock); + return context->True(); + } + else { + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); + } + } + else { + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); + } + + return context->False(); +} + Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-10 19:23:58 UTC (rev 2429) +++ sandbox/david/4x/rexxgtk.cls 2008-04-10 20:22:34 UTC (rev 2430) @@ -926,3 +926,44 @@ return self~signal_connect:super(event) +/*============================================================================*/ +/* Class: GtkComboBox */ +/*============================================================================*/ + +::class GtkComboBox public subclass GtkWidget + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxComboBoxNew" +::METHOD append_text EXTERNAL "LIBRARY rexxgtk GrxComboBoxAppendText" +::METHOD get_active_text EXTERNAL "LIBRARY rexxgtk GrxComboBoxGetActiveText" +::METHOD active_text EXTERNAL "LIBRARY rexxgtk GrxComboBoxGetActiveText" +::METHOD get_active EXTERNAL "LIBRARY rexxgtk GrxComboBoxGetActive" +::METHOD active EXTERNAL "LIBRARY rexxgtk GrxComboBoxGetActive" +::METHOD set_active EXTERNAL "LIBRARY rexxgtk GrxComboBoxSetActive" +::METHOD 'active=' EXTERNAL "LIBRARY rexxgtk GrxComboBoxSetActive" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxComboBoxSignalConnect" + +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + +::method signal_changed +return + +::method signal_move_active +return + +::method signal_popdown +return + +::method signal_popup +return + + +/*============================================================================*/ +/* Class: GtkComboBox_Text */ +/*============================================================================*/ + +::class GtkComboBox_Text public subclass GtkComboBox + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxComboBoxNewText" + + Modified: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp 2008-04-10 19:23:58 UTC (rev 2429) +++ sandbox/david/4x/rexxgtk.cpp 2008-04-10 20:22:34 UTC (rev 2430) @@ -307,6 +307,12 @@ REXX_METHOD(GrxTableAttach, GrxTableAttach), REXX_METHOD(GrxTableSetRowSpacings, GrxTableSetRowSpacings), REXX_METHOD(GrxTableSetColSpacings, GrxTableSetColSpacings), + REXX_METHOD(GrxComboBoxNew, GrxComboBoxNew), + REXX_METHOD(GrxComboBoxNewText, GrxComboBoxNewText), + REXX_METHOD(GrxComboBoxAppendText, GrxComboBoxAppendText), + REXX_METHOD(GrxComboBoxGetActive, GrxComboBoxGetActive), + REXX_METHOD(GrxComboBoxSetActive, GrxComboBoxSetActive), + REXX_METHOD(GrxComboBoxSignalConnect, GrxComboBoxSignalConnect), REXX_LAST_METHOD() }; Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-10 19:23:58 UTC (rev 2429) +++ sandbox/david/4x/rexxgtk.h 2008-04-10 20:22:34 UTC (rev 2430) @@ -167,9 +167,14 @@ REXX_METHOD_PROTOTYPE(GrxTableAttach) REXX_METHOD_PROTOTYPE(GrxTableSetRowSpacings) REXX_METHOD_PROTOTYPE(GrxTableSetColSpacings) +REXX_METHOD_PROTOTYPE(GrxComboBoxNew) +REXX_METHOD_PROTOTYPE(GrxComboBoxNewText) +REXX_METHOD_PROTOTYPE(GrxComboBoxAppendText) +REXX_METHOD_PROTOTYPE(GrxComboBoxGetActive) +REXX_METHOD_PROTOTYPE(GrxComboBoxSetActive) +REXX_METHOD_PROTOTYPE(GrxComboBoxSignalConnect) - #endif /* REXXGTK_H */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-11 16:40:53
|
Revision: 2431 http://oorexx.svn.sourceforge.net/oorexx/?rev=2431&view=rev Author: wdashley Date: 2008-04-11 09:35:04 -0700 (Fri, 11 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Added the entry box to the 4x stuff. Modified Paths: -------------- sandbox/david/4x/Makefile sandbox/david/4x/grxcombobox.cpp sandbox/david/4x/rexxgtk.cls Added Paths: ----------- sandbox/david/4x/grxentry.cpp Modified: sandbox/david/4x/Makefile =================================================================== --- sandbox/david/4x/Makefile 2008-04-10 20:22:34 UTC (rev 2430) +++ sandbox/david/4x/Makefile 2008-04-11 16:35:04 UTC (rev 2431) @@ -53,10 +53,10 @@ grxbutton.o \ grxpaned.o \ grxtable.o \ - grxcombobox.o + grxcombobox.o \ + grxentry.o # grxqueue.o \ # grxlabel.o \ -# grxentry.o \ # grxfixed.o \ # grxexpander.o \ # grxhandlebox.o \ @@ -110,8 +110,8 @@ grxtable.o: grxtable.cpp rexxgtk.h gcc -c $(GRXCFLAGS) grxtable.cpp -grxentry.o: grxentry.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxentry.c +grxentry.o: grxentry.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxentry.cpp grxfixed.o: grxfixed.c rexxgtk.h gcc -c $(GRXCFLAGS) grxfixed.c Modified: sandbox/david/4x/grxcombobox.cpp =================================================================== --- sandbox/david/4x/grxcombobox.cpp 2008-04-10 20:22:34 UTC (rev 2430) +++ sandbox/david/4x/grxcombobox.cpp 2008-04-11 16:35:04 UTC (rev 2431) @@ -57,7 +57,7 @@ /* Private Functions */ /*============================================================================*/ -static void signal_func_1(GtkWidget *window, +static void signal_func_0(GtkWidget *window, gpointer data) { cbcb *cblock = (cbcb *)data; @@ -71,7 +71,7 @@ } -static void signal_func_2(GtkWidget *window, +static void signal_func_1(GtkWidget *window, GtkScrollType arg1, gpointer data) { @@ -228,7 +228,7 @@ cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_changed"; g_signal_connect(G_OBJECT(myWidget), "changed", - G_CALLBACK(signal_func_1), cblock); + G_CALLBACK(signal_func_0), cblock); return context->True(); } else if (strcmp(name, "move_active") == 0) { @@ -236,7 +236,7 @@ cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_move_active"; g_signal_connect(G_OBJECT(myWidget), "move-active", - G_CALLBACK(signal_func_2), cblock); + G_CALLBACK(signal_func_1), cblock); return context->True(); } else if (strcmp(name, "popdown") == 0) { @@ -244,7 +244,7 @@ cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_popdown"; g_signal_connect(G_OBJECT(myWidget), "popdown", - G_CALLBACK(signal_func_1), cblock); + G_CALLBACK(signal_func_0), cblock); return context->True(); } else if (strcmp(name, "popup") == 0) { @@ -252,7 +252,7 @@ cblock->instance = context->threadContext->instance; cblock->signal_name = "signal_popup"; g_signal_connect(G_OBJECT(myWidget), "popup", - G_CALLBACK(signal_func_1), cblock); + G_CALLBACK(signal_func_0), cblock); return context->True(); } else { Copied: sandbox/david/4x/grxentry.cpp (from rev 2396, sandbox/david/grxentry.c) =================================================================== --- sandbox/david/4x/grxentry.cpp (rev 0) +++ sandbox/david/4x/grxentry.cpp 2008-04-11 16:35:04 UTC (rev 2431) @@ -0,0 +1,578 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + +static void signal_func_0(GtkWidget *window, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + context->DetachThread(); + return; +} + +static void signal_func_1(GtkWidget *window, + gchar * arg1, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + RexxObjectPtr rxarg1 = context->NewStringFromAsciiz(arg1);; + context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, rxarg1); + context->DetachThread(); + return; +} + +static void signal_func_1a(GtkWidget *window, + GtkMenu * menu, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + RexxObjectPtr rxwidget = (RexxObjectPtr)g_object_get_data(G_OBJECT(menu), "OORXOBJECT"); + context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, rxwidget); + context->DetachThread(); + return; +} + +static void signal_func_1b(GtkWidget *window, + GtkScrollType arg1, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + RexxObjectPtr scrolltype = context->NumberToObject((wholenumber_t)arg1);; + context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, scrolltype); + context->DetachThread(); + return; +} + +static void signal_func_2(GtkWidget *window, + GtkDeleteType type, + gint arg2, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + RexxObjectPtr rxtype = context->NumberToObject((wholenumber_t)type);; + RexxObjectPtr rxarg2 = context->NumberToObject((wholenumber_t)arg2);; + context->SendMessage2(rxobj, ((cbcb *)data)->signal_name, rxtype, rxarg2); + context->DetachThread(); + return; +} + +static void signal_func_3(GtkWidget *window, + GtkMovementStep step, + gint arg2, + gboolean arg3, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + RexxArrayObject arr; + + cblock->instance->AttachThread(&context); + arr = context->NewArray(3); + RexxObjectPtr rxstep = context->NumberToObject((wholenumber_t)step);; + context->ArrayPut(arr, rxstep, 1); + RexxObjectPtr rxarg2 = context->NumberToObject((wholenumber_t)arg2);; + context->ArrayPut(arr, rxarg2, 2); + RexxObjectPtr rxarg3 = context->NumberToObject((wholenumber_t)arg3);; + context->ArrayPut(arr, rxarg3, 3); + context->SendMessage(rxobj, ((cbcb *)data)->signal_name, arr); + context->DetachThread(); + return; +} + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + +/* + * Method: init + * + * Create an entry box. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxEntryNew, // Object_method name + OSELF, self) // Self +{ + GtkWidget *myWidget; + + myWidget = gtk_entry_new(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); + + return 0; +} + +/* + * Method: set_max_length + * + * Set the maximum length of text in the entry box. + * + * @param maxlen The max length. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxEntrySetMaxLength, // Object_method name + int, maxlen) // Max text length +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkEntry *myWidget = (GtkEntry *)context->PointerValue(rxptr); + + gtk_entry_set_max_length(myWidget, maxlen); + + return 0; +} + +/* + * Method: get_max_length + * + * Get the maximum length of text in the entry box. + * + * @return Max length + */ +RexxMethod0(int, // Return type + GrxEntryGetMaxLength) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkEntry *myWidget = (GtkEntry *)context->PointerValue(rxptr); + gint maxlen = 0; + + return gtk_entry_get_max_length(myWidget); +} + +/* + * Method: set_text + * + * Set the text in the entry box. + * + * @param text The text + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxEntrySetText, // Object_method name + CSTRING, text) // The text to set +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkEntry *myWidget = (GtkEntry *)context->PointerValue(rxptr); + + gtk_entry_set_text(myWidget, text); + + return 0; +} + +/* + * Method: get_text + * + * Get the text in the entry box. + * + * @return Text + */ +RexxMethod0(CSTRING, // Return type + GrxEntryGetText) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkEntry *myWidget = (GtkEntry *)context->PointerValue(rxptr); + + return gtk_entry_get_text(myWidget); +} + +/* + * Method: set_width_chars + * + * Set the width (in characters) of the entry box. + * + * @param width The width + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxEntrySetWidthChars, // Object_method name + int, width) // The width +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkEntry *myWidget = (GtkEntry *)context->PointerValue(rxptr); + + gtk_entry_set_width_chars(myWidget, width); + + return 0; +} + +/* + * Method: get_visibility + * + * Get the text visibility flag. + * + * @return Flag + */ +RexxMethod0(logical_t, // Return type + GrxEntryGetVisibility) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkEntry *myWidget = (GtkEntry *)context->PointerValue(rxptr); + + return gtk_entry_get_visibility(myWidget); +} + +/* + * Method: set_visibility + * + * Set the visibility of the text in the entry box. + * + * @param flag The visibility boolean + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxEntrySetVisibility, // Object_method name + logical_t, flag) // The flag +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkEntry *myWidget = (GtkEntry *)context->PointerValue(rxptr); + + gtk_entry_set_visibility(myWidget, flag); + + return 0; +} + +/* + * Method: get_invisible_char + * + * Get the text invisible char. + * + * @return Flag + */ +RexxMethod0(RexxObjectPtr, // Return type + GrxEntryGetInvisibleChar) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkEntry *myWidget = (GtkEntry *)context->PointerValue(rxptr); + char retc[2] = {' ', '\0'}; + + retc[0] = gtk_entry_get_invisible_char(myWidget); + return context->NewStringFromAsciiz(retc); +} + +/* + * Method: set_invisibile_char + * + * Set the invisible character. + * + * @param ichar The invisible character + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxEntrySetInvisibleChar, // Object_method name + CSTRING, ichar) // The character +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkEntry *myWidget = (GtkEntry *)context->PointerValue(rxptr); + + gtk_entry_set_invisible_char(myWidget, *ichar); + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(RexxObjectPtr, // Return type + GrxEntrySignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(name, "activate") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_activate"; + g_signal_connect(G_OBJECT(myWidget), "activate", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else if (strcmp(name, "backspace") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_backspace"; + g_signal_connect(G_OBJECT(myWidget), "backspace", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else if (strcmp(name, "changed") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_changed"; + g_signal_connect(G_OBJECT(myWidget), "changed", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else if (strcmp(name, "copy_clipboard") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_copy_clipboard"; + g_signal_connect(G_OBJECT(myWidget), "copy-clipboard", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else if (strcmp(name, "cut_clipboard") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_cut_clipboard"; + g_signal_connect(G_OBJECT(myWidget), "cut-clipboard", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else if (strcmp(name, "delete_from_cursor") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_delete_from_cursor"; + g_signal_connect(G_OBJECT(myWidget), "delete-from-cursor", + G_CALLBACK(signal_func_2), cblock); + return context->True(); + } + else if (strcmp(name, "insert_at_cursor") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_insert_at_cursor"; + g_signal_connect(G_OBJECT(myWidget), "insert-at-cursor", + G_CALLBACK(signal_func_1), cblock); + return context->True(); + } + else if (strcmp(name, "move_cursor") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_move_cursor"; + g_signal_connect(G_OBJECT(myWidget), "move-cursor", + G_CALLBACK(signal_func_3), cblock); + return context->True(); + } + else if (strcmp(name, "paste_clipboard") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_paste_clipboard"; + g_signal_connect(G_OBJECT(myWidget), "paste-clipboard", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else if (strcmp(name, "populate_popup") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_populate_popup"; + g_signal_connect(G_OBJECT(myWidget), "populate-popup", + G_CALLBACK(signal_func_1a), cblock); + return context->True(); + } + else if (strcmp(name, "toggle_overwrite") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_toggle_overwrite"; + g_signal_connect(G_OBJECT(myWidget), "toggle-overwrite", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else { + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); + } + + return context->False(); +} + +/* + * Method: init + * + * Create a new spin button. + * + * @param rxadj The adjustment object + * + * @param crate The climb rate + * + * @param digits The digits + * + * @return Zero. + */ +RexxMethod4(int, // Return type + GrxSpinButtonNew, // Object_method name + OSELF, self, // Self + RexxObjectPtr, rxadj, // Adjustment object + double, crate, // Climb rate + uint32_t, digits) // Digits +{ + GtkWidget *myWidget; + RexxPointerObject adjptr = (RexxPointerObject)context->SendMessage0(rxadj, "POINTER"); + GtkAdjustment *adj = (GtkAdjustment *)context->PointerValue(adjptr); + + + myWidget = gtk_spin_button_new(adj, crate, digits); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); + + return 0; +} + +/* + * Method: init + * + * Create a new spin button. + * + * @param lower The lower limit + * + * @param upper The upper limit + * + * @param step The step increment + * + * @return Zero. + */ +RexxMethod4(int, // Return type + GrxSpinButtonNewWithRange, // Object_method name + OSELF, self, // Self + double, lower, // Lower limit + double, upper, // Upper limit + double, step) // Step +{ + GtkWidget *myWidget; + + myWidget = gtk_spin_button_new_with_range(lower, upper, step); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(RexxObjectPtr, // Return type + GrxSpinButtonSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(name, "change_value") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_change_value"; + g_signal_connect(G_OBJECT(myWidget), "change-value", + G_CALLBACK(signal_func_1b), cblock); + return context->True(); + } + else if (strcmp(name, "value_changed") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_changed"; + g_signal_connect(G_OBJECT(myWidget), "value-changed", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else if (strcmp(name, "wrapped") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_wrapped"; + g_signal_connect(G_OBJECT(myWidget), "wrapped", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else { + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); + } + + return context->False(); +} + Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-10 20:22:34 UTC (rev 2430) +++ sandbox/david/4x/rexxgtk.cls 2008-04-11 16:35:04 UTC (rev 2431) @@ -967,3 +967,89 @@ ::METHOD init EXTERNAL "LIBRARY rexxgtk GrxComboBoxNewText" +/*============================================================================*/ +/* Class: GtkEntry */ +/*============================================================================*/ + +::class GtkEntry public subclass GtkWidget + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxEntryNew" +::METHOD max_length EXTERNAL "LIBRARY rexxgtk GrxEntryGetMaxLength" +::METHOD get_max_length EXTERNAL "LIBRARY rexxgtk GrxEntryGetMaxLength" +::METHOD set_max_length EXTERNAL "LIBRARY rexxgtk GrxEntrySetMaxLength" +::METHOD 'max_length=' EXTERNAL "LIBRARY rexxgtk GrxEntrySetMaxLength" +::METHOD set_width_chars EXTERNAL "LIBRARY rexxgtk GrxEntrySetWidthChars" +::METHOD 'width_chars=' EXTERNAL "LIBRARY rexxgtk GrxEntrySetWidthChars" +::METHOD text EXTERNAL "LIBRARY rexxgtk GrxEntryGetText" +::METHOD get_text EXTERNAL "LIBRARY rexxgtk GrxEntryGetText" +::METHOD set_text EXTERNAL "LIBRARY rexxgtk GrxEntrySetText" +::METHOD 'text=' EXTERNAL "LIBRARY rexxgtk GrxEntrySetText" +::METHOD visibility EXTERNAL "LIBRARY rexxgtk GrxEntryGetVisibility" +::METHOD get_visibility EXTERNAL "LIBRARY rexxgtk GrxEntryGetVisibility" +::METHOD set_visibility EXTERNAL "LIBRARY rexxgtk GrxEntrySetVisibility" +::METHOD 'visibility=' EXTERNAL "LIBRARY rexxgtk GrxEntrySetVisibility" +::METHOD invisile_char EXTERNAL "LIBRARY rexxgtk GrxEntryGetInvisibleChar" +::METHOD get_invisile_char EXTERNAL "LIBRARY rexxgtk GrxEntryGetInvisibleChar" +::METHOD set_invisile_char EXTERNAL "LIBRARY rexxgtk GrxEntrySetInvisibleChar" +::METHOD 'invisile_char=' EXTERNAL "LIBRARY rexxgtk GrxEntrySetInvisibleChar" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxEntrySignalConnect" + +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + +::method signal_activate +return + +::method signal_backspace +return + +::method signal_changed +return + +::method signal_copy_clipboard +return + +::method signal_cut_clipboard +return + +::method signal_delete_from_cursor +return + +::method signal_insert_at_cursor +return + +::method signal_move_cursor +return + +::method signal_paste_clipboard +return + +::method signal_populate_popup +return + +::method signal_toggle_overwrite +return + + +/*============================================================================*/ +/* Class: GtkSpinButton */ +/*============================================================================*/ + +::class GtkSpinButton public subclass GtkEntry + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxSpinButtonNew" +::METHOD sifnal_connect EXTERNAL "LIBRARY rexxgtk GrxSpinButtonSignalConnect" + +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + +::method signal_change_value +return + +::method signal_value_changed +return + +::method signal_wrapped +return + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-15 18:55:08
|
Revision: 2432 http://oorexx.svn.sourceforge.net/oorexx/?rev=2432&view=rev Author: wdashley Date: 2008-04-15 11:55:06 -0700 (Tue, 15 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Added new methods to rexxgtk.cpp. Modified Paths: -------------- sandbox/david/4x/Makefile sandbox/david/4x/grxbutton.cpp sandbox/david/4x/grxcombobox.cpp sandbox/david/4x/grxcontainer.cpp sandbox/david/4x/grxentry.cpp sandbox/david/4x/grxwidget.cpp sandbox/david/4x/grxwindow.cpp sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.cpp sandbox/david/4x/rexxgtk.h Added Paths: ----------- sandbox/david/4x/grxdialog.cpp Modified: sandbox/david/4x/Makefile =================================================================== --- sandbox/david/4x/Makefile 2008-04-11 16:35:04 UTC (rev 2431) +++ sandbox/david/4x/Makefile 2008-04-15 18:55:06 UTC (rev 2432) @@ -54,7 +54,8 @@ grxpaned.o \ grxtable.o \ grxcombobox.o \ - grxentry.o + grxentry.o \ + grxdialog.o # grxqueue.o \ # grxlabel.o \ # grxfixed.o \ @@ -66,7 +67,6 @@ # grxinterfaces.o \ # grxfilefilter.o \ # grximage.o \ -# grxdialog.o \ # grxglib.o \ # grxassistant.o \ # grxprogressbar.o \ @@ -140,8 +140,8 @@ grximage.o: grximage.c rexxgtk.h gcc -c $(GRXCFLAGS) grximage.c -grxdialog.o: grxdialog.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxdialog.c +grxdialog.o: grxdialog.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxdialog.cpp grxglib.o: grxglib.c rexxgtk.h gcc -c $(GRXCFLAGS) grxglib.c Modified: sandbox/david/4x/grxbutton.cpp =================================================================== --- sandbox/david/4x/grxbutton.cpp 2008-04-11 16:35:04 UTC (rev 2431) +++ sandbox/david/4x/grxbutton.cpp 2008-04-15 18:55:06 UTC (rev 2432) @@ -693,12 +693,8 @@ G_CALLBACK(signal_func_0), cblock); return context->True(); } - else { - RexxObjectPtr parent = context->GetSuper(); - return context->SendMessage0(parent, name); - } - - return context->False(); + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); } /** @@ -726,12 +722,8 @@ G_CALLBACK(signal_func_0), cblock); return context->True(); } - else { - RexxObjectPtr parent = context->GetSuper(); - return context->SendMessage0(parent, name); - } - - return context->False(); + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); } /** @@ -759,12 +751,8 @@ G_CALLBACK(signal_func_0), cblock); return context->True(); } - else { - RexxObjectPtr parent = context->GetSuper(); - return context->SendMessage0(parent, name); - } - - return context->False(); + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); } /** @@ -792,12 +780,8 @@ G_CALLBACK(signal_func_0), cblock); return context->True(); } - else { - RexxObjectPtr parent = context->GetSuper(); - return context->SendMessage0(parent, name); - } - - return context->False(); + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); } /** @@ -825,12 +809,8 @@ G_CALLBACK(signal_func_0), cblock); return context->True(); } - else { - RexxObjectPtr parent = context->GetSuper(); - return context->SendMessage0(parent, name); - } - - return context->False(); + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); } /** @@ -858,11 +838,7 @@ G_CALLBACK(signal_func_0), cblock); return context->True(); } - else { - RexxObjectPtr parent = context->GetSuper(); - return context->SendMessage0(parent, name); - } - - return context->False(); + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); } Modified: sandbox/david/4x/grxcombobox.cpp =================================================================== --- sandbox/david/4x/grxcombobox.cpp 2008-04-11 16:35:04 UTC (rev 2431) +++ sandbox/david/4x/grxcombobox.cpp 2008-04-15 18:55:06 UTC (rev 2432) @@ -260,11 +260,7 @@ return context->SendMessage0(parent, name); } } - else { - RexxObjectPtr parent = context->GetSuper(); - return context->SendMessage0(parent, name); - } - - return context->False(); + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); } Modified: sandbox/david/4x/grxcontainer.cpp =================================================================== --- sandbox/david/4x/grxcontainer.cpp 2008-04-11 16:35:04 UTC (rev 2431) +++ sandbox/david/4x/grxcontainer.cpp 2008-04-15 18:55:06 UTC (rev 2432) @@ -251,6 +251,28 @@ /** * Method: init * + * Create a new VBox from a pointer. + * + * @param ptr The VBoc pointer + * + * @return Zero. + */ +RexxMethod2(int, // Return type + GrxVBoxNewFromPointer, // Object_method name + OSELF, self, // Self + RexxObjectPtr, ptr) // The pointer +{ + RexxPointerObject vboxptr = (RexxPointerObject)context->SendMessage0(ptr, "POINTER"); + + context->SetObjectVariable("!POINTER", vboxptr); + g_object_set_data(G_OBJECT(ptr), "OORXOBJECT", self); + + return 0; +} + +/** + * Method: init + * * Create a new HBox. * * @param homog The homogeneous boolean @@ -355,12 +377,8 @@ G_CALLBACK(signal_func_1), cblock); return context->True(); } - else { - RexxObjectPtr parent = context->GetSuper(); - return context->SendMessage0(parent, name); - } - - return context->False(); + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); } @@ -421,10 +439,6 @@ G_CALLBACK(signal_func_1), cblock); return context->True(); } - else { - RexxObjectPtr parent = context->GetSuper(); - return context->SendMessage0(parent, name); - } - - return context->False(); + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); } Copied: sandbox/david/4x/grxdialog.cpp (from rev 2401, sandbox/david/grxdialog.c) =================================================================== --- sandbox/david/4x/grxdialog.cpp (rev 0) +++ sandbox/david/4x/grxdialog.cpp 2008-04-15 18:55:06 UTC (rev 2432) @@ -0,0 +1,1030 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + +static void signal_func_0(GtkWidget *window, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + context->DetachThread(); + return; +} + + +static void signal_func_1(GtkWidget *window, + gint arg1, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + RexxObjectPtr rxarg1 = context->NumberToObject((wholenumber_t)arg1);; + context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, rxarg1); + context->DetachThread(); + return; +} + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + +/* + * Method: init + * + * Create a dialog. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxDialogNew, // Object_method name + OSELF, self) // Self +{ + GtkWidget *myWidget; + + myWidget = gtk_dialog_new(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); + + return 0; +} + +/* + * Method: init + * + * Create a dialog with buttons. + * + * @param title The dialog title + * + * @param rxparent The parent window + * + * @param flags The flags + * + * @param btext1 The button text + * + * @param bid1 The response id + * + * @param btext2 The button text + * + * @param bid2 The response id + * + * @param btext3 The button text + * + * @param bid3 The response id + * + * @return Zero. + */ +RexxMethod9(int, // Return type + GrxDialogNewWithButtons, // Object_method name + CSTRING, title, // Dialog title + RexxObjectPtr, parent, // Parent window + int, flags, // Dialog flags + CSTRING, btext1, // Button text + int, bid1, // Response id + OPTIONAL_CSTRING, btext2, // Button text + OPTIONAL_int, bid2, // Response id + OPTIONAL_CSTRING, btext3, // Button text + OPTIONAL_int, bid3) // Response id +{ + RexxPointerObject parentptr = (RexxPointerObject)context->SendMessage0(parent, "POINTER"); + GtkWindow *myParent = (GtkWindow *)context->PointerValue(parentptr); + GtkWidget *myWidget, *vbox; + + if (btext3 != NULL) { + myWidget = gtk_dialog_new_with_buttons(title, myParent, (GtkDialogFlags)flags, + btext1, bid1, btext2, bid2, + btext3, bid3, NULL); + } + else if (btext2 != NULL) { + myWidget = gtk_dialog_new_with_buttons(title, myParent, (GtkDialogFlags)flags, + btext1, bid1, btext2, bid2, + NULL); + } + else { + myWidget = gtk_dialog_new_with_buttons(title, myParent, (GtkDialogFlags)flags, + btext1, bid1, NULL); + } + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + vbox = GTK_DIALOG(myWidget)->vbox; + // TODO!!!!!!!!!!!!!!!!!!!!!!!!!!! + // Set the vbox attribute here! + + return 0; +} + +/* + * Method: add_button + * + * Add buttons to a dialog. + * + * @param btext1 The button text + * + * @param bid1 The response id + * + * @return Zero. + */ +RexxMethod2(int, // Return type + GrxDialogAddButton, // Object_method name + CSTRING, btext, // Button text + int, bid) // Response id +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkDialog *myWidget = (GtkDialog *)context->PointerValue(rxptr); + + gtk_dialog_add_button(myWidget, btext, bid); + + return 0; +} + +/* + * Method: set_has_separator + * + * Add/remove the button separator. + * + * @param flag The separator flag. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxDialogSetHasSeparator, // Object_method name + logical_t, flag) // Separator boolean +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkDialog *myWidget = (GtkDialog *)context->PointerValue(rxptr); + + gtk_dialog_set_has_separator(myWidget, flag); + + return 0; +} + +/* + * Method: set_default_response + * + * Set the default response id. + * + * @param rid Response id + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxDialogSetDefaultResponse, // Object_method name + int, rid) // Response id +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkDialog *myWidget = (GtkDialog *)context->PointerValue(rxptr); + + gtk_dialog_set_default_response(myWidget, rid); + + return 0; +} + +/* + * Method: dialog_run + * + * Run a dialog. + * + * @return Response id + */ +RexxMethod0(int, // Return type + GrxDialogRun) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkDialog *myWidget = (GtkDialog *)context->PointerValue(rxptr); + gint response; + + response = gtk_dialog_run(myWidget); + + return response; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(RexxObjectPtr, // Return type + GrxDialogSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(name, "close") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_close"; + g_signal_connect(G_OBJECT(myWidget), "close", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else if (strcmp(name, "response") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_response"; + g_signal_connect(G_OBJECT(myWidget), "response", + G_CALLBACK(signal_func_1), cblock); + return context->True(); + } + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); +} + +/* + * Method: init + * + * Create a message dialog. + * + * @param rxparent The parent window + * + * @param flags The flags + * + * @param type The message type + * + * @param bset The button set + * + * @param text The message text + * + * @return Zero. + */ +RexxMethod5(int, // Return type + GrxMessageDialogNew, // Object_method name + RexxObjectPtr, parent, // Parent window + int, flags, // Dialog flags + int, type, // Message type + int, bset, // Button set + CSTRING, text) // Message text +{ + RexxPointerObject parentptr = (RexxPointerObject)context->SendMessage0(parent, "POINTER"); + GtkWindow *myParent = (GtkWindow *)context->PointerValue(parentptr); + GtkWidget *myWidget; + + + myWidget = gtk_message_dialog_new(myParent, (GtkDialogFlags)flags, + (GtkMessageType)type, + (GtkButtonsType)bset, text); + + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + + return 0; +} + +/* + * Method: init + * + * Create a file chooser dialog. + * + * @param title The title + * + * @param rxparent The parent window + * + * @param type The message type + * + * @param bset The button set + * + * @param text The message text + * + * @return Zero. + */ +RexxMethod9(int, // Return type + GrxFileChooserDialogNew, // Object_method name + CSTRING, title, // Title + RexxObjectPtr, parent, // Parent window + int, action, // Dialog action type + CSTRING, sid1, // Stock button id + int, rid1, // Response idt + OPTIONAL_CSTRING, sid2, // Stock button id + OPTIONAL_int, rid2, // Response idt + OPTIONAL_CSTRING, sid3, // Stock button id + OPTIONAL_int, rid3) // Response idt +{ + RexxPointerObject parentptr = (RexxPointerObject)context->SendMessage0(parent, "POINTER"); + GtkWindow *myParent = (GtkWindow *)context->PointerValue(parentptr); + GtkWidget *myWidget; + gint resptype; + + if (sid3 != NULL) { + myWidget = gtk_file_chooser_dialog_new(title, myParent, + (GtkFileChooserAction)action, + sid1, rid1, sid2, rid2, sid3, rid3, + NULL); + } + else if (sid2 != NULL) { + myWidget = gtk_file_chooser_dialog_new(title, myParent, + (GtkFileChooserAction)action, + sid1, rid1, sid2, rid2, NULL); + } + else { + myWidget = gtk_file_chooser_dialog_new(title, myParent, + (GtkFileChooserAction)action, + sid1, rid1, NULL); + } + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + + return 0; +} + +/* + * Method: init + * + * @param title The dialog title + * + * Create a font selection dialog. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxFontSelectionDialogNew, // Object_method name + CSTRING, title) // Dialog title +{ + GtkWidget *myWidget; + + myWidget = gtk_font_selection_dialog_new(title); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + + return 0; +} + +/* + * Method: set_font_name + * + * Set the font in the dialog. + * + * @param name The font name + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxFontSelectionDialogSetFontName, // Object_method name + CSTRING, name) // Font name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(myWidget), + name); + + return 0; +} + +/* + * Method: get_font_name + * + * Get the selected font name in the dialog. + * + * @return Font name + */ +RexxMethod0(CSTRING, // Return type + GrxFontSelectionDialogGetFontName) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + + return gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(myWidget)); +} + +/* + * Method: set_preview_text + * + * Set the preview text in the dialog. + * + * @param text The preview text + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxFontSelectionDialogSetPreviewText, // Object_method name + CSTRING, text) // Preview text +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + + gtk_font_selection_dialog_set_preview_text(GTK_FONT_SELECTION_DIALOG(myWidget), + text); + + return 0; +} + +/* + * Method: init + * + * Create an about dialog. + * + * @return Zero. + */ +RexxMethod0(int, // Return type + GrxAboutDialogNew) // Object_method name +{ + GtkWidget *myWidget; + + myWidget = gtk_about_dialog_new(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + + return 0; +} + +/* + * Method: set_name + * + * Set the about program name. + * + * @param text The program name + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxAboutDialogSetName, // Object_method name + CSTRING, name) // Program name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(myWidget), name); + + return 0; +} + +/* + * Method: set_version + * + * Set the about program version. + * + * @param text The program version + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxAboutDialogSetVersion, // Object_method name + CSTRING, version) // Program version +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(myWidget), version); + + return 0; +} + +/* + * Method: set_copyright + * + * Set the about program copyright notice. + * + * @param text The copyright notice + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxAboutDialogSetCopyright, // Object_method name + CSTRING, copyright) // Program copyright text +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(myWidget), copyright); + + return 0; +} + +/* + * Method: set_comments + * + * Set the about program comments. + * + * @param text The comments + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxAboutDialogSetComments, // Object_method name + CSTRING, comments) // Program comments +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(myWidget), comments); + + return 0; +} + +/* + * Method: set_license + * + * Set the about program comments. + * + * @param text The comments + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxAboutDialogSetLicense, // Object_method name + CSTRING, license) // Program license +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_about_dialog_set_license(GTK_ABOUT_DIALOG(myWidget), license); + + return 0; +} + +/* + * Method: set_wrap_license + * + * Set the boolean license wrap flag. + * + * @param flag The wrap flag + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxAboutDialogSetWrapLicense, // Object_method name + logical_t, flag) // Wrap boolean +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_about_dialog_set_wrap_license(GTK_ABOUT_DIALOG(myWidget), flag); + + return 0; +} + +/* + * Method: set_website + * + * Set the about program website. + * + * @param text The website URL + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxAboutDialogSetWebsite, // Object_method name + CSTRING, website) // Program website +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(myWidget), website); + + return 0; +} + +/* + * Method: set_website_label + * + * Set the about program website label. + * + * @param text The website label + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxAboutDialogSetWebsiteLabel, // Object_method name + CSTRING, label) // Program website label +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + + gtk_about_dialog_set_website_label(GTK_ABOUT_DIALOG(myWidget), label); + + return 0; +} + +/* + * Method: set_authors + * + * Set the about program authors. + * + * @param author1 The author + * + * @param author2 The author + * + * @param author3 The author + * + * @param author4 The author + * + * @param author5 The author + * + * @param author6 The author + * + * @param author7 The author + * + * @param author8 The author + * + * @param author9 The author + * + * @return Zero. + */ +RexxMethod9(int, // Return type + GrxAboutDialogSetAuthors, // Object_method name + CSTRING, author1, // Program author + OPTIONAL_CSTRING, author2, // Program author + OPTIONAL_CSTRING, author3, // Program author + OPTIONAL_CSTRING, author4, // Program author + OPTIONAL_CSTRING, author5, // Program author + OPTIONAL_CSTRING, author6, // Program author + OPTIONAL_CSTRING, author7, // Program author + OPTIONAL_CSTRING, author8, // Program author + OPTIONAL_CSTRING, author9) // Program author +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + const gchar *authors[10]; + + authors[9] = NULL; + if (author9 != NULL) { + authors[8] = author9; + } + else { + authors[8] = NULL; + } + if (author8 != NULL) { + authors[7] = author8; + } + else { + authors[7] = NULL; + } + if (author7 != NULL) { + authors[6] = author7; + } + else { + authors[6] = NULL; + } + if (author6 != NULL) { + authors[5] = author6; + } + else { + authors[5] = NULL; + } + if (author5 != NULL) { + authors[4] = author5; + } + else { + authors[4] = NULL; + } + if (author4 != NULL) { + authors[3] = author4; + } + else { + authors[3] = NULL; + } + if (author3 != NULL) { + authors[2] = author3; + } + else { + authors[2] = NULL; + } + if (author2 != NULL) { + authors[1] = author2; + } + else { + authors[1] = NULL; + } + authors[0] = author1; + gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(myWidget), authors); + + return 0; +} + +/* + * Method: set_artists + * + * Set the about program artists. + * + * @param artist1 The artist + * + * @param artist2 The artist + * + * @param artist3 The artist + * + * @param artist4 The artist + * + * @param artist5 The artist + * + * @param artist6 The artist + * + * @param artist7 The artist + * + * @param artist8 The artist + * + * @param artist9 The artist + * + * @return Zero. + */ +RexxMethod9(int, // Return type + GrxAboutDialogSetArtists, // Object_method name + CSTRING, artist1, // Program artist + OPTIONAL_CSTRING, artist2, // Program artist + OPTIONAL_CSTRING, artist3, // Program artist + OPTIONAL_CSTRING, artist4, // Program artist + OPTIONAL_CSTRING, artist5, // Program artist + OPTIONAL_CSTRING, artist6, // Program artist + OPTIONAL_CSTRING, artist7, // Program artist + OPTIONAL_CSTRING, artist8, // Program artist + OPTIONAL_CSTRING, artist9) // Program artist +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + const gchar *artists[10]; + + artists[9] = NULL; + if (artist9 != NULL) { + artists[8] = artist9; + } + else { + artists[8] = NULL; + } + if (artist8 != NULL) { + artists[7] = artist8; + } + else { + artists[7] = NULL; + } + if (artist7 != NULL) { + artists[6] = artist7; + } + else { + artists[6] = NULL; + } + if (artist6 != NULL) { + artists[5] = artist6; + } + else { + artists[5] = NULL; + } + if (artist5 != NULL) { + artists[4] = artist5; + } + else { + artists[4] = NULL; + } + if (artist4 != NULL) { + artists[3] = artist4; + } + else { + artists[3] = NULL; + } + if (artist3 != NULL) { + artists[2] = artist3; + } + else { + artists[2] = NULL; + } + if (artist2 != NULL) { + artists[1] = artist2; + } + else { + artists[1] = NULL; + } + artists[0] = artist1; + gtk_about_dialog_set_artists(GTK_ABOUT_DIALOG(myWidget), artists); + + return 0; +} + +/* + * Method: set_documentors + * + * Set the about program artists. + * + * @param author1 The author + * + * @param author2 The author + * + * @param author3 The author + * + * @param author4 The author + * + * @param author5 The author + * + * @param author6 The author + * + * @param author7 The author + * + * @param author8 The author + * + * @param author9 The author + * + * @return Zero. + */ +RexxMethod9(int, // Return type + GrxAboutDialogSetDocumentors, // Object_method name + CSTRING, author1, // Program artist + OPTIONAL_CSTRING, author2, // Program author + OPTIONAL_CSTRING, author3, // Program author + OPTIONAL_CSTRING, author4, // Program author + OPTIONAL_CSTRING, author5, // Program author + OPTIONAL_CSTRING, author6, // Program author + OPTIONAL_CSTRING, author7, // Program author + OPTIONAL_CSTRING, author8, // Program author + OPTIONAL_CSTRING, author9) // Program author +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + const gchar *authors[10]; + + authors[9] = NULL; + if (author9 != NULL) { + authors[8] = author9; + } + else { + authors[8] = NULL; + } + if (author8 != NULL) { + authors[7] = author8; + } + else { + authors[7] = NULL; + } + if (author7 != NULL) { + authors[6] = author7; + } + else { + authors[6] = NULL; + } + if (author6 != NULL) { + authors[5] = author6; + } + else { + authors[5] = NULL; + } + if (author5 != NULL) { + authors[4] = author5; + } + else { + authors[4] = NULL; + } + if (author4 != NULL) { + authors[3] = author4; + } + else { + authors[3] = NULL; + } + if (author3 != NULL) { + authors[2] = author3; + } + else { + authors[2] = NULL; + } + if (author2 != NULL) { + authors[1] = author2; + } + else { + authors[1] = NULL; + } + authors[0] = author1; + gtk_about_dialog_set_documenters(GTK_ABOUT_DIALOG(myWidget), authors); + + return 0; +} + +/* + * Method: set_logo + * + * Set the about program logo. + * + * @param logo The logo filename + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxAboutDialogSetLogo, // Object_method name + CSTRING, logofile) // Program logo filename +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GdkPixbuf *logo; + + logo = gdk_pixbuf_new_from_file(logofile, NULL); + gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(myWidget), logo); + + return 0; +} + +/* + * Method: init + * + * Create a color selection dialog + * + * @param title The dialog title + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxColorSelectionDialogNew, // Object_method name + CSTRING, title) // Dialog title +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GtkWidget *colorsel; + + myWidget = gtk_color_selection_dialog_new(title); + colorsel = GTK_COLOR_SELECTION_DIALOG(myWidget)->colorsel; + gtk_color_selection_set_has_opacity_control(GTK_COLOR_SELECTION(colorsel), TRUE); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", context->GetSelf()); + + return 0; +} + +/* + * Method: get_color + * + * Get the selected color. + * + * @return Color + */ +RexxMethod0(RexxObjectPtr, // Return type + GrxColorSelectionDialogGetColor) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + GtkWidget *colorsel; + GdkColor color; + guint alpha; + char colorstr[256]; + + colorsel = GTK_COLOR_SELECTION_DIALOG(myWidget)->colorsel; + gtk_color_selection_get_current_color(GTK_COLOR_SELECTION(colorsel), &color); + alpha = gtk_color_selection_get_current_alpha(GTK_COLOR_SELECTION(colorsel)); + + /* Set up the REXX return code */ + g_snprintf(colorstr, sizeof(colorstr), "#%04X%04X%04X%04X", + color.red, color.green, color.blue, alpha); + return context->NewStringFromAsciiz(colorstr); +} + Modified: sandbox/david/4x/grxentry.cpp =================================================================== --- sandbox/david/4x/grxentry.cpp 2008-04-11 16:35:04 UTC (rev 2431) +++ sandbox/david/4x/grxentry.cpp 2008-04-15 18:55:06 UTC (rev 2432) @@ -144,7 +144,7 @@ RexxArrayObject arr; cblock->instance->AttachThread(&context); - arr = context->NewArray(3); + arr = context->NewArray(1); RexxObjectPtr rxstep = context->NumberToObject((wholenumber_t)step);; context->ArrayPut(arr, rxstep, 1); RexxObjectPtr rxarg2 = context->NumberToObject((wholenumber_t)arg2);; @@ -458,12 +458,8 @@ G_CALLBACK(signal_func_0), cblock); return context->True(); } - else { - RexxObjectPtr parent = context->GetSuper(); - return context->SendMessage0(parent, name); - } - - return context->False(); + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); } /* @@ -568,11 +564,7 @@ G_CALLBACK(signal_func_0), cblock); return context->True(); } - else { - RexxObjectPtr parent = context->GetSuper(); - return context->SendMessage0(parent, name); - } - - return context->False(); + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); } Modified: sandbox/david/4x/grxwidget.cpp =================================================================== --- sandbox/david/4x/grxwidget.cpp 2008-04-11 16:35:04 UTC (rev 2431) +++ sandbox/david/4x/grxwidget.cpp 2008-04-15 18:55:06 UTC (rev 2432) @@ -886,10 +886,6 @@ G_CALLBACK(signal_func_0), cblock); return context->True(); } - else { - return context->False(); - } - return context->False(); } Modified: sandbox/david/4x/grxwindow.cpp =================================================================== --- sandbox/david/4x/grxwindow.cpp 2008-04-11 16:35:04 UTC (rev 2431) +++ sandbox/david/4x/grxwindow.cpp 2008-04-15 18:55:06 UTC (rev 2432) @@ -199,11 +199,7 @@ G_CALLBACK(signal_func_1), cblock); return context->True(); } - else { - RexxObjectPtr parent = context->GetSuper(); - return context->SendMessage0(parent, name); - } - - return context->False(); + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); } Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-11 16:35:04 UTC (rev 2431) +++ sandbox/david/4x/rexxgtk.cls 2008-04-15 18:55:06 UTC (rev 2432) @@ -76,6 +76,8 @@ /*============================================================================*/ /* Class: GTK */ +/* Note: This class should never be instatiated. It is here just provided */ +/* a container for a host of GTK constants. */ /*============================================================================*/ ::class gtk public @@ -321,14 +323,12 @@ ::constant G_TYPE_BOXED class 18 ::constant G_TYPE_PARAM class 19 ::constant G_TYPE_OBJECT class 20 - -- Just return the id - otherwise nop - end -return id /*============================================================================*/ /* Class: GtkWidget */ +/* Note: This is strictly an abstract class. It should never be instantiated */ +/* on its own. You should instantiate one of its subclasses instead. */ /*============================================================================*/ ::class GtkWidget public @@ -409,8 +409,8 @@ /*============================================================================*/ /* Class: GtkContainer */ -/* Note: This is strictly a base class. It should never be instantiated on */ -/* its own. You should instantiate one of its subclasses instead. */ +/* Note: This is strictly an abstract class. It should never be instantiated */ +/* on its own. You should instantiate one of its subclasses instead. */ /*============================================================================*/ ::class GtkContainer public subclass GtkWidget @@ -442,8 +442,8 @@ /*============================================================================*/ /* Class: GtkBox */ -/* Note: This is strictly a base class. It should never be instantiated on */ -/* its own. You should instantiate one of its subclasses instead. */ +/* Note: This is strictly an abstract class. It should never be instantiated */ +/* on its own. You should instantiate one of its subclasses instead. */ /*============================================================================*/ ::class GtkBox public subclass GtkContainer @@ -514,7 +514,7 @@ ::class GtkVBox_From_Pointer private subclass GtkVBox -::method init +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxVBoxNewFromPointer" return @@ -533,8 +533,8 @@ /*============================================================================*/ /* Class: GtkPaned */ -/* Note: This is strictly a base class. It should never be instantiated on */ -/* its own. You should instantiate one of its subclasses instead. */ +/* Note: This is strictly an abstract class. It should never be instantiated */ +/* on its own. You should instantiate one of its subclasses instead. */ /*============================================================================*/ ::class GtkPaned public subclass GtkContainer @@ -1053,3 +1053,118 @@ return +/*============================================================================*/ +/* Class: GtkDialog */ +/*============================================================================*/ + +::class GtkDialog public subclass GtkWindow + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxDialogNew" + +::method vbox +expose vbox +return vbox + +::METHOD 'has_separator=' EXTERNAL "LIBRARY rexxgtk GrxDialogSetHasSeparator" +::METHOD set_has_separator EXTERNAL "LIBRARY rexxgtk GrxDialogSetHasSeparator" +::METHOD 'default_response=' EXTERNAL "LIBRARY rexxgtk GrxDialogSetDefaultResponse" +::METHOD set_default_response EXTERNAL "LIBRARY rexxgtk GrxDialogSetDefaultResponse" +::METHOD add_button EXTERNAL "LIBRARY rexxgtk GrxDialogAddButton" +-- Note: the name of this method cannot be 'run' as that would override the +-- private 'run' instance method of the ooRexx Object class. +::METHOD dialog_run EXTERNAL "LIBRARY rexxgtk GrxDialogRun" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxDialogSignalConnect" + +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + +::method signal_close +return + +::method signal_response +return + + +/*============================================================================*/ +/* Class: GtkDialog_With_Buttons */ +/*============================================================================*/ + +::class GtkDialog_With_Buttons public subclass GtkDialog + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxDialogNewWithButtons" + + +/*============================================================================*/ +/* Class: GtkMessageDialog */ +/*============================================================================*/ + +::class GtkMessageDialog public subclass GtkDialog + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxMessageDialogNew" + + +/*============================================================================*/ +/* Class: GtkColorSelectionDialog */ +/*============================================================================*/ + +::class GtkColorSelectionDialog public subclass GtkDialog + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxColorSelectionDialogNew" +::METHOD color EXTERNAL "LIBRARY rexxgtk GrxColorSelectionDialogGetColor" +::METHOD get_color EXTERNAL "LIBRARY rexxgtk GrxColorSelectionDialogGetColor" + + +/*============================================================================*/ +/* Class: GtkFontSelectionDialog */ +/*============================================================================*/ + +::class GtkFontSelectionDialog public subclass GtkDialog + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxFontSelectionDialogNew" +::METHOD 'font_name=' EXTERNAL "LIBRARY rexxgtk GrxFontSelectionDialogSetFontName" +::METHOD set_font_name EXTERNAL "LIBRARY rexxgtk GrxFontSelectionDialogSetFontName" +::METHOD font_name EXTERNAL "LIBRARY rexxgtk GrxFontSelectionDialogGetFontName" +::METHOD get_font_name EXTERNAL "LIBRARY rexxgtk GrxFontSelectionDialogGetFontName" +::METHOD 'preview_text=' EXTERNAL "LIBRARY rexxgtk GrxFontSelectionDialogSetPreviewText" +::METHOD set_preview_text EXTERNAL "LIBRARY rexxgtk GrxFontSelectionDialogSetPreviewText" + + +/*============================================================================*/ +/* Class: GtkAboutDialog */ +/*============================================================================*/ + +::class GtkAboutDialog public subclass GtkDialog + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxAboutDialogNew" +::METHOD 'program_name=' EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetProgramName" +::METHOD set_program_name EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetProgramName" +::METHOD 'version=' EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetVersion" +::METHOD set_version EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetVersion" +::METHOD 'copyright=' EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetCopyright" +::METHOD set_copyright EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetCopyright" +::METHOD 'comments=' EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetComments" +::METHOD set_comments EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetComments" +::METHOD 'license=' EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetLicense" +::METHOD set_license EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetLicense" +::METHOD 'wrap_license=' EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetWrapLicense" +::METHOD set_wrap_license EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetWrapLicense" +::METHOD 'website=' EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetWebsite" +::METHOD set_website EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetWebsite" +::METHOD 'website_label=' EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetWebsiteLabel" +::METHOD set_website_label EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetWebsiteLabel" +::METHOD set_authors EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetAuthors" +::METHOD set_artists EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetArtists" +::METHOD set_documentors EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetDocumentors" +::METHOD 'logo=' EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetLogo" +::METHOD set_logo EXTERNAL "LIBRARY rexxgtk GrxAboutDialogSetLogo" + + +/*============================================================================*/ +/* Class: GtkFileChooserDialog */ +/*============================================================================*/ + +::class GtkFileChooserDialog public subclass GtkDialog inherit GtkFileChooser + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxFileChooserDialogNew" + + Modified: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp 2008-04-11 16:35:04 UTC (rev 2431) +++ sandbox/david/4x/rexxgtk.cpp 2008-04-15 18:55:06 UTC (rev 2432) @@ -313,6 +313,48 @@ REXX_METHOD(GrxComboBoxGetActive, GrxComboBoxGetActive), REXX_METHOD(GrxComboBoxSetActive, GrxComboBoxSetActive), REXX_METHOD(GrxComboBoxSignalConnect, GrxComboBoxSignalConnect), + REXX_METHOD(GrxDialogNew, GrxDialogNew), + REXX_METHOD(GrxDialogNewWithButtons, GrxDialogNewWithButtons), + REXX_METHOD(GrxDialogAddButton, GrxDialogAddButton), + REXX_METHOD(GrxDialogSetHasSeparator, GrxDialogSetHasSeparator), + REXX_METHOD(GrxDialogSetDefaultResponse, GrxDialogSetDefaultResponse), + REXX_METHOD(GrxDialogRun, GrxDialogRun), + REXX_METHOD(GrxDialogSignalConnect, GrxDialogSignalConnect), + REXX_METHOD(GrxMessageDialogNew, GrxMessageDialogNew), + REXX_METHOD(GrxFileChooserDialogNew, GrxFileChooserDialogNew), + REXX_METHOD(GrxFontSelectionDialogNew, GrxFontSelectionDialogNew), + REXX_METHOD(GrxFontSelectionDialogSetFontName, GrxFontSelectionDialogSetFontName), + REXX_METHOD(GrxFontSelectionDialogGetFontName, GrxFontSelectionDialogGetFontName), + REXX_METHOD(GrxFontSelectionDialogSetpreviewText, GrxFontSelectionDialogSetPreviewText), + REXX_METHOD(GrxAboutDialogNew, GrxAboutDialogNew), + REXX_METHOD(GrxAboutDialogSetName, GrxAboutDialogSetName), + REXX_METHOD(GrxAboutDialogSetVersion, GrxAboutDialogSetVersion), + REXX_METHOD(GrxAboutDialogSetCopyright, GrxAboutDialogSetCopyright), + REXX_METHOD(GrxAboutDialogSetComments, GrxAboutDialogSetComments), + REXX_METHOD(GrxAboutDialogSetLicense, GrxAboutDialogSetLicense), + REXX_METHOD(GrxAboutDialogSetWrapLicense, GrxAboutDialogSetWrapLicense), + REXX_METHOD(GrxAboutDialogSetWebsite, GrxAboutDialogSetWebsite), + REXX_METHOD(GrxAboutDialogSetWebsiteLabel, GrxAboutDialogSetWebsiteLabel), + REXX_METHOD(GrxAboutDialogSetAuthors, GrxAboutDialogSetAuthors), + REXX_METHOD(GrxAboutDialogSetArtists, GrxAboutDialogSetArtists), + REXX_METHOD(GrxAboutDialogSetDocumentors, GrxAboutDialogSetDocumentors), + REXX_METHOD(GrxAboutDialogSetLogo, GrxAboutDialogSetLogo), + REXX_METHOD(GrxColorSelectionDialogNew, GrxColorSelectionDialogNew), + REXX_METHOD(GrxColorSelectionDialogGetColor, GrxColorSelectionDialogGetColor), + REXX_METHOD(GrxEntryNew, GrxEntryNew), + REXX_METHOD(GrxEntrySetMaxLength, GrxEntrySetMaxLength), + REXX_METHOD(GrxEntryGetMaxLength, GrxEntryGetMaxLength), + REXX_METHOD(GrxEntrySetText, GrxEntrySetText), + REXX_METHOD(GrxEntryGetText, GrxEntryGetText), + REXX_METHOD(GrxEntrySetWidthChars, GrxEntrySetWidthChars), + REXX_METHOD(GrxEntrySetVisibility, GrxEntrySetVisibility), + REXX_METHOD(GrxEntryGetVisibility, GrxEntryGetVisibility), + REXX_METHOD(GrxEntryGetInvisibleChar, GrxEntryGetInvisibleChar), + REXX_METHOD(GrxEntrySetInvisibleChar, GrxEntrySetInvisibleChar), + REXX_METHOD(GrxEntrySignalConnect, GrxEntrySignalConnect), + REXX_METHOD(GrxSpinButtonNew, GrxSpinButtonNew), + REXX_METHOD(GrxSpinButtonNewWithRange, GrxSpinButtonNewWithRange), + REXX_METHOD(GrxSpinButtonSignalConnect, GrxSpinButtonSignalConnect), REXX_LAST_METHOD() }; Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-11 16:35:04 UTC (rev 2431) +++ sandbox/david/4x/rexxgtk.h 2008-04-15 18:55:06 UTC (rev 2432) @@ -173,8 +173,48 @@ REXX_METHOD_PROTOTYPE(GrxComboBoxGetActive) REXX_METHOD_PROTOTYPE(GrxComboBoxSetActive) REXX_METHOD_PROTOTYPE(GrxComboBoxSignalConnect) - - - -#endif /* REXXGTK_H */ - +REXX_METHOD_PROTOTYPE(GrxDialogNew) +REXX_METHOD_PROTOTYPE(GrxDialogNewWithButtons) +REXX_METHOD_PROTOTYPE(GrxDialogAddButton) +REXX_METHOD_PROTOTYPE(GrxDialogSetHasSeparator) +REXX_METHOD_PROTOTYPE(GrxDialogSetDefaultResponse) +REXX_METHOD_PROTOTYPE(GrxDialogRun) +REXX_METHOD_PROTOTYPE(GrxDialogSignalConnect) +REXX_METHOD_PROTOTYPE(GrxMessageDialogNew) +REXX_METHOD_PROTOTYPE(GrxFileChooserDialogNew) +REXX_METHOD_PROTOTYPE(GrxFontSelectionDialogNew) +REXX_METHOD_PROTOTYPE(GrxFontSelectionDialogSetFontName) +REXX_METHOD_PROTOTYPE(GrxFontSelectionDialogGetFontName) +REXX_METHOD_PROTOTYPE(GrxFontSelectionDialogSetPreviewText) +REXX_METHOD_PROTOTYPE(GrxAboutDialogNew) +REXX_METHOD_PROTOTYPE(GrxAboutDialogSetName) +REXX_METHOD_PROTOTYPE(GrxAboutDialogSetVersion) +REXX_METHOD_PROTOTYPE(GrxAboutDialogSetCopyright) +REXX_METHOD_PROTOTYPE(GrxAboutDialogSetComments) +REXX_METHOD_PROTOTYPE(GrxAboutDialogSetLicense) +REXX_METHOD_PROTOTYPE(GrxAboutDialogSetWrapLicense) +REXX_METHOD_PROTOTYPE(GrxAboutDialogSetWebsite) +REXX_METHOD_PROTOTYPE(GrxAboutDialogSetWebsiteLabel) +REXX_METHOD_PROTOTYPE(GrxAboutDialogSetAuthors) +REXX_METHOD_PROTOTYPE(GrxAboutDialogSetArtists) +REXX_METHOD_PROTOTYPE(GrxAboutDialogSetDocumentors) +REXX_METHOD_PROTOTYPE(GrxAboutDialogSetLogo) +REXX_METHOD_PROTOTYPE(GrxColorSelectionDialogNew) +REXX_METHOD_PROTOTYPE(GrxColorSelectionDialogGetColor) +REXX_METHOD_PROTOTYPE(GrxEntryNew) +REXX_METHOD_PROTOTYPE(GrxEntrySetMaxLength) +REXX_METHOD_PROTOTYPE(GrxEntryGetMaxLength) +REXX_METHOD_PROTOTYPE(GrxEntrySetText) +REXX_METHOD_PROTOTYPE(GrxEntryGetText) +REXX_METHOD_PROTOTYPE(GrxEntrySetWidthChars) +REXX_METHOD_PROTOTYPE(GrxEntrySetVisibility) +REXX_METHOD_PROTOTYPE(GrxEntryGetVisibility) +REXX_METHOD_PROTOTYPE(GrxEntryGetInvisibleChar) +REXX_METHOD_PROTOTYPE(GrxEntrySetInvisibleChar) +REXX_METHOD_PROTOTYPE(GrxEntrySignalConnect) +REXX_METHOD_PROTOTYPE(GrxSpinButtonNew) +REXX_METHOD_PROTOTYPE(GrxSpinButtonNewWithRange) +REXX_METHOD_PROTOTYPE(GrxSpinButtonSignalConnect) + + #endif /* REXXGTK_H */ + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-15 21:05:23
|
Revision: 2433 http://oorexx.svn.sourceforge.net/oorexx/?rev=2433&view=rev Author: wdashley Date: 2008-04-15 14:04:39 -0700 (Tue, 15 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Added the asistant methods to the 4x stuff. Modified Paths: -------------- sandbox/david/4x/Makefile sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.cpp sandbox/david/4x/rexxgtk.h Added Paths: ----------- sandbox/david/4x/grxassistant.cpp Modified: sandbox/david/4x/Makefile =================================================================== --- sandbox/david/4x/Makefile 2008-04-15 18:55:06 UTC (rev 2432) +++ sandbox/david/4x/Makefile 2008-04-15 21:04:39 UTC (rev 2433) @@ -55,7 +55,8 @@ grxtable.o \ grxcombobox.o \ grxentry.o \ - grxdialog.o + grxdialog.o \ + grxassistant.o # grxqueue.o \ # grxlabel.o \ # grxfixed.o \ @@ -68,7 +69,6 @@ # grxfilefilter.o \ # grximage.o \ # grxglib.o \ -# grxassistant.o \ # grxprogressbar.o \ # grxadjustment.o \ # grxscrolledwindow.o \ @@ -146,8 +146,8 @@ grxglib.o: grxglib.c rexxgtk.h gcc -c $(GRXCFLAGS) grxglib.c -grxassistant.o: grxassistant.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxassistant.c +grxassistant.o: grxassistant.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxassistant.cpp grxprogressbar.o: grxprogressbar.c rexxgtk.h gcc -c $(GRXCFLAGS) grxprogressbar.c Copied: sandbox/david/4x/grxassistant.cpp (from rev 2397, sandbox/david/grxassistant.c) =================================================================== --- sandbox/david/4x/grxassistant.cpp (rev 0) +++ sandbox/david/4x/grxassistant.cpp 2008-04-15 21:04:39 UTC (rev 2433) @@ -0,0 +1,421 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + +static void signal_func_0(GtkWidget *window, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + context->DetachThread(); + return; +} + +static void signal_func_1(GtkWidget *window, + GtkWidget *widget, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxObjectPtr rxwidget = (RexxObjectPtr)g_object_get_data(G_OBJECT(widget), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, rxwidget); + context->DetachThread(); + return; +} + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + +/* + * Method: init + * + * Create an assistant. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxAssistantNew, // Object_method name + OSELF, self) // Self +{ + GtkWidget *myWidget; + + myWidget = gtk_assistant_new(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); + + return 0; +} + +/* + * Method: set_current_page + * + * Set the assistant current page number. + * + * @param pagenum The page number + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxAssistantSetCurrentPage, // Object_method name + int, pagenum) // Page number +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkAssistant *myWidget = (GtkAssistant *)context->PointerValue(rxptr); + + gtk_assistant_set_current_page(myWidget, pagenum - 1); + + return 0; +} + +/* + * Method: get_current_page + * + * Get the assistant current page number. + * + * @return Page number + */ +RexxMethod0(int, // Return type + GrxAssistantGetCurrentPage) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkAssistant *myWidget = (GtkAssistant *)context->PointerValue(rxptr); + + return gtk_assistant_get_current_page(myWidget); +} + +/* + * Method: get_nth_page + * + * Get the assistant nth page. + * + * @param pagenum The page number + * + * @return Page + */ +RexxMethod1(RexxObjectPtr, // Return type + GrxAssistantGetNthPage, // Object_method name + int, pagenum) // Page number +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkAssistant *myWidget = (GtkAssistant *)context->PointerValue(rxptr); + GtkWidget *pageWidget; + + pageWidget = gtk_assistant_get_nth_page(myWidget, pagenum - 1); + return (RexxObjectPtr)g_object_get_data(G_OBJECT(pageWidget), "OORXOBJECT"); +} + +/* + * Method: prepend_page + * + * Prepend a page to the assistant. + * + * @param page The page + * + * @return Page number + */ +RexxMethod1(int, // Return type + GrxAssistantPrependPage, // Object_method name + RexxObjectPtr, page) // Page +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkAssistant *myWidget = (GtkAssistant *)context->PointerValue(rxptr); + RexxPointerObject pageptr = (RexxPointerObject)context->SendMessage0(page, "POINTER"); + GtkWidget *pageWidget = (GtkWidget *)context->PointerValue(pageptr); + + return gtk_assistant_prepend_page(myWidget, pageWidget); +} + +/* + * Method: append_page + * + * Append a page to the assistant. + * + * @param page The page + * + * @return Page number + */ +RexxMethod1(int, // Return type + GrxAssistantAppendPage, // Object_method name + RexxObjectPtr, page) // Page +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkAssistant *myWidget = (GtkAssistant *)context->PointerValue(rxptr); + RexxPointerObject pageptr = (RexxPointerObject)context->SendMessage0(page, "POINTER"); + GtkWidget *pageWidget = (GtkWidget *)context->PointerValue(pageptr); + + return gtk_assistant_append_page(myWidget, pageWidget); +} + +/* + * Method: insert_page + * + * Insert a page to the assistant. + * + * @param page The page + * + * @param pagenum The page number + * + * @return Page number + */ +RexxMethod2(int, // Return type + GrxAssistantInsertPage, // Object_method name + RexxObjectPtr, page, // Page + int, pagenum) // Page number +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkAssistant *myWidget = (GtkAssistant *)context->PointerValue(rxptr); + RexxPointerObject pageptr = (RexxPointerObject)context->SendMessage0(page, "POINTER"); + GtkWidget *pageWidget = (GtkWidget *)context->PointerValue(pageptr); + + return gtk_assistant_insert_page(myWidget, pageWidget, pagenum - 1); +} + +/* + * Method: set_page_type + * + * Set the assistant page type. + * + * @param page The page + * + * @param pagenum The page number + * + * @return Zero + */ +RexxMethod2(int, // Return type + GrxAssistantSetPageType, // Object_method name + RexxObjectPtr, page, // Page + int, type) // Page type +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkAssistant *myWidget = (GtkAssistant *)context->PointerValue(rxptr); + RexxPointerObject pageptr = (RexxPointerObject)context->SendMessage0(page, "POINTER"); + GtkWidget *pageWidget = (GtkWidget *)context->PointerValue(pageptr); + + gtk_assistant_set_page_type(myWidget, pageWidget, (GtkAssistantPageType)type); + + return 0; +} + +/* + * Method: set_page_title + * + * Set the assistant page title. + * + * @param page The page + * + * @param title The page title + * + * @return Zero + */ +RexxMethod2(int, // Return type + GrxAssistantSetPageTitle, // Object_method name + RexxObjectPtr, page, // Page + CSTRING, title) // Page title +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkAssistant *myWidget = (GtkAssistant *)context->PointerValue(rxptr); + RexxPointerObject pageptr = (RexxPointerObject)context->SendMessage0(page, "POINTER"); + GtkWidget *pageWidget = (GtkWidget *)context->PointerValue(pageptr); + + gtk_assistant_set_page_title(myWidget, pageWidget, title); + + return 0; +} + +/* + * Method: set_page_complete + * + * Set the assistant page complete. + * + * @param page The page + * + * @param flag The page complete flag + * + * @return Zero + */ +RexxMethod2(int, // Return type + GrxAssistantSetPageComplete, // Object_method name + RexxObjectPtr, page, // Page + logical_t, flag) // Page complete boolean +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkAssistant *myWidget = (GtkAssistant *)context->PointerValue(rxptr); + RexxPointerObject pageptr = (RexxPointerObject)context->SendMessage0(page, "POINTER"); + GtkWidget *pageWidget = (GtkWidget *)context->PointerValue(pageptr); + + gtk_assistant_set_page_complete(myWidget, pageWidget, flag); + + return 0; +} + +/* + * Method: set_page_header_image + * + * Set the assistant page header image. + * + * @param page The page + * + * @param filename The image file name + * + * @return Zero + */ +RexxMethod2(int, // Return type + GrxAssistantSetPageHeaderImage, // Object_method name + RexxObjectPtr, page, // Page + CSTRING, filename) // Image file name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkAssistant *myWidget = (GtkAssistant *)context->PointerValue(rxptr); + RexxPointerObject pageptr = (RexxPointerObject)context->SendMessage0(page, "POINTER"); + GtkWidget *pageWidget = (GtkWidget *)context->PointerValue(pageptr); + GdkPixbuf *image = gdk_pixbuf_new_from_file(filename, NULL); + + gtk_assistant_set_page_header_image(myWidget, pageWidget, image); + + return 0; +} + +/* + * Method: set_page_side_image + * + * Set the assistant page side image. + * + * @param page The page + * + * @param filename The image file name + * + * @return Zero + */ +RexxMethod2(int, // Return type + GrxAssistantSetPageSideImage, // Object_method name + RexxObjectPtr, page, // Page + CSTRING, filename) // Image file name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkAssistant *myWidget = (GtkAssistant *)context->PointerValue(rxptr); + RexxPointerObject pageptr = (RexxPointerObject)context->SendMessage0(page, "POINTER"); + GtkWidget *pageWidget = (GtkWidget *)context->PointerValue(pageptr); + GdkPixbuf *image = gdk_pixbuf_new_from_file(filename, NULL); + + gtk_assistant_set_page_side_image(myWidget, pageWidget, image); + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(RexxObjectPtr, // Return type + GrxAssistantSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(name, "apply") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_apply"; + g_signal_connect(G_OBJECT(myWidget), "apply", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else if (strcmp(name, "cancel") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_cancel"; + g_signal_connect(G_OBJECT(myWidget), "cancel", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else if (strcmp(name, "close") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_close"; + g_signal_connect(G_OBJECT(myWidget), "close", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else if (strcmp(name, "prepare") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_prepare"; + g_signal_connect(G_OBJECT(myWidget), "prepareset-focus", + G_CALLBACK(signal_func_1), cblock); + return context->True(); + } + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); +} + Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-15 18:55:06 UTC (rev 2432) +++ sandbox/david/4x/rexxgtk.cls 2008-04-15 21:04:39 UTC (rev 2433) @@ -1168,3 +1168,93 @@ ::METHOD init EXTERNAL "LIBRARY rexxgtk GrxFileChooserDialogNew" +/*============================================================================*/ +/* Class: GtkAssistant */ +/*============================================================================*/ + +::class GtkAssistant public subclass GtkWindow + +::method init +use strict arg +self~pointer = GrxAssistantNew() +return + +::method set_current_page +use strict arg widget, num +call GrxAssistantSetCurrentPage self~pointer, widget~pointer, num +return + +::method current_page +use strict arg +return GrxAssistantGetCurrentPage(self~pointer) + +::method get_current_page +use strict arg +return self~current_page() + +::method get_nth_page +use strict arg num +ptr = GrxAssistantGetNthPage(self~pointer, num) +return .local['GTK_Database']~at(ptr~upper()) + +::method prepend_page +use strict arg widget +return GrxAssistantPrependPage(self~pointer, widget~pointer) + +::method append_page +use strict arg widget +return GrxAssistantAppendPage(self~pointer, widget~pointer) + +::method insert_page +use strict arg widget, num +return GrxAssistantInsertPage(self~pointer, widget~pointer, num) + +::method set_page_type +use strict arg widget, type +call GrxAssistantSetPageType self~pointer, widget~pointer, GTK_Constant(type) +return + +::method set_page_title +use strict arg widget, title +call GrxAssistantSetPageTitle self~pointer, widget~pointer, title +return + +::method set_page_complete +use strict arg widget, flag +call GrxAssistantSetPageComplete self~pointer, widget~pointer, flag +return + +::method set_page_header_image +use strict arg widget, image +call GrxAssistantSetPageHeaderImage self~pointer, widget~pointer, image +return + +::method set_page_side_image +use strict arg widget, image +call GrxAssistantSetPageSideImage self~pointer, widget~pointer, image +return + +::method signal_connect +use strict arg event +select + when event = 'apply' then call GrxAssistantConnectSignal self~pointer, event + when event = 'cancel' then call GrxAssistantConnectSignal self~pointer, event + when event = 'close' then call GrxAssistantConnectSignal self~pointer, event + when event = 'prepare' then call GrxAssistantConnectSignal self~pointer, event + otherwise return self~signal_connect:super(event) + end +return .true + +::method signal_apply +return + +::method signal_cancel +return + +::method signal_close +return + +::method signal_prepare +return + + Modified: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp 2008-04-15 18:55:06 UTC (rev 2432) +++ sandbox/david/4x/rexxgtk.cpp 2008-04-15 21:04:39 UTC (rev 2433) @@ -355,6 +355,19 @@ REXX_METHOD(GrxSpinButtonNew, GrxSpinButtonNew), REXX_METHOD(GrxSpinButtonNewWithRange, GrxSpinButtonNewWithRange), REXX_METHOD(GrxSpinButtonSignalConnect, GrxSpinButtonSignalConnect), + REXX_METHOD(GrxAssistantNew, GrxAssistantNew), + REXX_METHOD(GrxAssistantSetCurrentPage, GrxAssistantSetCurrentPage), + REXX_METHOD(GrxAssistantGetCurrentPage, GrxAssistantGetCurrentPage), + REXX_METHOD(GrxAssistantGetNthPage, GrxAssistantGetNthPage), + REXX_METHOD(GrxAssistantPrependPage, GrxAssistantPrependPage), + REXX_METHOD(GrxAssistantAppendPage, GrxAssistantAppendPage), + REXX_METHOD(GrxAssistantInsertPage, GrxAssistantInsertPage), + REXX_METHOD(GrxAssistantSetPageType, GrxAssistantSetPageType), + REXX_METHOD(GrxAssistantSetPageTitle, GrxAssistantSetPageTitle), + REXX_METHOD(GrxAssistantSetPageComplete, GrxAssistantSetPageComplete), + REXX_METHOD(GrxAssistantSetPageHeaderImage, GrxAssistantSetPageHeaderImage), + REXX_METHOD(GrxAssistantSetPageSideImage, GrxAssistantSetPageSideImage), + REXX_METHOD(GrxAssistantSignalConnect, GrxAssistantSignalConnect), REXX_LAST_METHOD() }; Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-15 18:55:06 UTC (rev 2432) +++ sandbox/david/4x/rexxgtk.h 2008-04-15 21:04:39 UTC (rev 2433) @@ -215,6 +215,19 @@ REXX_METHOD_PROTOTYPE(GrxSpinButtonNew) REXX_METHOD_PROTOTYPE(GrxSpinButtonNewWithRange) REXX_METHOD_PROTOTYPE(GrxSpinButtonSignalConnect) +REXX_METHOD_PROTOTYPE(GrxAssistantNew) +REXX_METHOD_PROTOTYPE(GrxAssistantSetCurrentPage) +REXX_METHOD_PROTOTYPE(GrxAssistantGetCurrentPage) +REXX_METHOD_PROTOTYPE(GrxAssistantGetNthPage) +REXX_METHOD_PROTOTYPE(GrxAssistantPrependPage) +REXX_METHOD_PROTOTYPE(GrxAssistantAppendPage) +REXX_METHOD_PROTOTYPE(GrxAssistantInsertPage) +REXX_METHOD_PROTOTYPE(GrxAssistantSetPageType) +REXX_METHOD_PROTOTYPE(GrxAssistantSetPageTitle) +REXX_METHOD_PROTOTYPE(GrxAssistantSetPageComplete) +REXX_METHOD_PROTOTYPE(GrxAssistantSetPageHeaderImage) +REXX_METHOD_PROTOTYPE(GrxAssistantSetPageSideImage) +REXX_METHOD_PROTOTYPE(GrxAssistantSignalConnect) #endif /* REXXGTK_H */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-15 22:51:41
|
Revision: 2434 http://oorexx.svn.sourceforge.net/oorexx/?rev=2434&view=rev Author: wdashley Date: 2008-04-15 15:51:46 -0700 (Tue, 15 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Added label methods to the 4x stuff. Modified Paths: -------------- sandbox/david/4x/Makefile sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.cpp sandbox/david/4x/rexxgtk.h Added Paths: ----------- sandbox/david/4x/grxlabel.cpp Modified: sandbox/david/4x/Makefile =================================================================== --- sandbox/david/4x/Makefile 2008-04-15 21:04:39 UTC (rev 2433) +++ sandbox/david/4x/Makefile 2008-04-15 22:51:46 UTC (rev 2434) @@ -56,9 +56,9 @@ grxcombobox.o \ grxentry.o \ grxdialog.o \ - grxassistant.o + grxassistant.o \ + grxlabel.o \ # grxqueue.o \ -# grxlabel.o \ # grxfixed.o \ # grxexpander.o \ # grxhandlebox.o \ @@ -98,8 +98,8 @@ grxqueue.o: grxqueue.c rexxgtk.h gcc -c $(GRXCFLAGS) grxqueue.c -grxlabel.o: grxlabel.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxlabel.c +grxlabel.o: grxlabel.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxlabel.cpp grxbutton.o: grxbutton.cpp rexxgtk.h gcc -c $(GRXCFLAGS) grxbutton.cpp Copied: sandbox/david/4x/grxlabel.cpp (from rev 2397, sandbox/david/grxlabel.c) =================================================================== --- sandbox/david/4x/grxlabel.cpp (rev 0) +++ sandbox/david/4x/grxlabel.cpp 2008-04-15 22:51:46 UTC (rev 2434) @@ -0,0 +1,279 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + +static void signal_func_0(GtkWidget *window, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + context->DetachThread(); + return; +} + +static void signal_func_1(GtkWidget *window, + GtkWidget *widget, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxObjectPtr rxwidget = (RexxObjectPtr)g_object_get_data(G_OBJECT(widget), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, rxwidget); + context->DetachThread(); + return; +} + +static void signal_func_2(GtkWidget *window, + GtkMovementStep arg1, + gint arg2, + gboolean arg3, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + RexxArrayObject arr; + + cblock->instance->AttachThread(&context); + arr = context->NewArray(1); + RexxObjectPtr rxstep = context->NumberToObject((wholenumber_t)arg1);; + context->ArrayPut(arr, rxstep, 1); + RexxObjectPtr rxarg2 = context->NumberToObject((wholenumber_t)arg2);; + context->ArrayPut(arr, rxarg2, 2); + RexxObjectPtr rxarg3 = context->NumberToObject((wholenumber_t)arg3);; + context->ArrayPut(arr, rxarg3, 3); + context->SendMessage(rxobj, ((cbcb *)data)->signal_name, arr); + context->DetachThread(); + return; +} + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + +/* + * Method: init + * + * Create an label. + * + * @param text The text of the label (optional). + * + * @return Zero. + */ +RexxMethod2(int, // Return type + GrxLabelNew, // Object_method name + OSELF, self, // Self + OPTIONAL_CSTRING, text) // Label text +{ + GtkWidget *myWidget; + + if(text != NULL) + myWidget = gtk_label_new(text); + else + myWidget = gtk_label_new("\0"); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); + + return 0; +} + +/* + * Method: set_text + * + * Set the text of the label. + * + * @param text The text of the label. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxLabelSetText, // Object_method name + CSTRING, text) // Label text +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkLabel *myWidget = (GtkLabel *)context->PointerValue(rxptr); + + gtk_label_set_text(myWidget, text); + + return 0; +} + +/* + * Method: set_justify + * + * Set the label justification + * + * @param jtype The justification type + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxLabelSetJustify, // Object_method name + int, jtype) // Justification type +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkLabel *myWidget = (GtkLabel *)context->PointerValue(rxptr); + + gtk_label_set_justify(myWidget, (GtkJustification)jtype); + switch (jtype) { + case GTK_JUSTIFY_LEFT: + gtk_misc_set_alignment(GTK_MISC(myWidget), 0, 0); + break; + case GTK_JUSTIFY_RIGHT: + gtk_misc_set_alignment(GTK_MISC(myWidget), 1, 0); + break; + case GTK_JUSTIFY_CENTER: + gtk_misc_set_alignment(GTK_MISC(myWidget), 0.5, 0.5); + break; + default: + break; + } + + return 0; +} + +/* + * Method: get_justify + * + * get the label justification + * + * @return Justification type + */ +RexxMethod0(int, // Return type + GrxLabelGetJustify) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkLabel *myWidget = (GtkLabel *)context->PointerValue(rxptr); + + return (int)gtk_label_get_justify(myWidget); +} + +/* + * Method: set_selectable + * + * Set the label selectable flag. + * + * @param flag The selectable boolean + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxLabelSetSelectable, // Object_method name + logical_t, flag) // Selectable boolean +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkLabel *myWidget = (GtkLabel *)context->PointerValue(rxptr); + + gtk_label_set_selectable(myWidget, flag); + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(RexxObjectPtr, // Return type + GrxLabelSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(name, "copy_clipboard") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_copy_clipboard"; + g_signal_connect(G_OBJECT(myWidget), "copy-clipboard", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + else if (strcmp(name, "move_cursor") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_move_cursor"; + g_signal_connect(G_OBJECT(myWidget), "move-cursor", + G_CALLBACK(signal_func_2), cblock); + return context->True(); + } + else if (strcmp(name, "populate_popup") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_populate_popup"; + g_signal_connect(G_OBJECT(myWidget), "populate-popup", + G_CALLBACK(signal_func_1), cblock); + return context->True(); + } + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); +} + Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-15 21:04:39 UTC (rev 2433) +++ sandbox/david/4x/rexxgtk.cls 2008-04-15 22:51:46 UTC (rev 2434) @@ -1174,87 +1174,66 @@ ::class GtkAssistant public subclass GtkWindow -::method init -use strict arg -self~pointer = GrxAssistantNew() -return +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxAssistantNew" +::METHOD set_current_page EXTERNAL "LIBRARY rexxgtk GrxAssistantSetCurrentPage" +::METHOD 'current_page=' EXTERNAL "LIBRARY rexxgtk GrxAssistantSetCurrentPage" +::METHOD get_current_page EXTERNAL "LIBRARY rexxgtk GrxAssistantGetCurrentPage" +::METHOD current_page EXTERNAL "LIBRARY rexxgtk GrxAssistantGetCurrentPage" +::METHOD get_nth_page EXTERNAL "LIBRARY rexxgtk GrxAssistantGetNthPage" +::METHOD nth_page EXTERNAL "LIBRARY rexxgtk GrxAssistantGetNthPage" +::METHOD prepend_page EXTERNAL "LIBRARY rexxgtk GrxAssistantPrependPage" +::METHOD append_page EXTERNAL "LIBRARY rexxgtk GrxAssistantAppendPage" +::METHOD insert_page EXTERNAL "LIBRARY rexxgtk GrxAssistantInsertPage" +::METHOD set_page_type EXTERNAL "LIBRARY rexxgtk GrxAssistantSetPageType" +::METHOD set_page_complete EXTERNAL "LIBRARY rexxgtk GrxAssistantSetPageComplete" +::METHOD set_page_complete EXTERNAL "LIBRARY rexxgtk GrxAssistantSetPageComplete" +::METHOD set_page_header_image EXTERNAL "LIBRARY rexxgtk GrxAssistantSetPageHeaderImage" +::METHOD set_page_side_image EXTERNAL "LIBRARY rexxgtk GrxAssistantSetPageSideImage" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxAssistantSignalConnect" -::method set_current_page -use strict arg widget, num -call GrxAssistantSetCurrentPage self~pointer, widget~pointer, num -return +-- The following are the methods that can be connected to signals. By default +-- they do nothing. -::method current_page -use strict arg -return GrxAssistantGetCurrentPage(self~pointer) - -::method get_current_page -use strict arg -return self~current_page() - -::method get_nth_page -use strict arg num -ptr = GrxAssistantGetNthPage(self~pointer, num) -return .local['GTK_Database']~at(ptr~upper()) - -::method prepend_page -use strict arg widget -return GrxAssistantPrependPage(self~pointer, widget~pointer) - -::method append_page -use strict arg widget -return GrxAssistantAppendPage(self~pointer, widget~pointer) - -::method insert_page -use strict arg widget, num -return GrxAssistantInsertPage(self~pointer, widget~pointer, num) - -::method set_page_type -use strict arg widget, type -call GrxAssistantSetPageType self~pointer, widget~pointer, GTK_Constant(type) +::method signal_apply return -::method set_page_title -use strict arg widget, title -call GrxAssistantSetPageTitle self~pointer, widget~pointer, title +::method signal_cancel return -::method set_page_complete -use strict arg widget, flag -call GrxAssistantSetPageComplete self~pointer, widget~pointer, flag +::method signal_close return -::method set_page_header_image -use strict arg widget, image -call GrxAssistantSetPageHeaderImage self~pointer, widget~pointer, image +::method signal_prepare return -::method set_page_side_image -use strict arg widget, image -call GrxAssistantSetPageSideImage self~pointer, widget~pointer, image -return -::method signal_connect -use strict arg event -select - when event = 'apply' then call GrxAssistantConnectSignal self~pointer, event - when event = 'cancel' then call GrxAssistantConnectSignal self~pointer, event - when event = 'close' then call GrxAssistantConnectSignal self~pointer, event - when event = 'prepare' then call GrxAssistantConnectSignal self~pointer, event - otherwise return self~signal_connect:super(event) - end -return .true +/*============================================================================*/ +/* Class: GtkLabel */ +/*============================================================================*/ -::method signal_apply -return +::class GtkLabel public subclass GtkWidget -::method signal_cancel +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxLabelNew" +::METHOD get_justify EXTERNAL "LIBRARY rexxgtk GrxLabelGetJustify" +::METHOD justify EXTERNAL "LIBRARY rexxgtk GrxLabelGetJustify" +::METHOD 'justify=' EXTERNAL "LIBRARY rexxgtk GrxLabelSetJustify" +::METHOD set_justify EXTERNAL "LIBRARY rexxgtk GrxLabelSetJustify" +::METHOD set_text EXTERNAL "LIBRARY rexxgtk GrxLabelSetText" +::METHOD 'text=' EXTERNAL "LIBRARY rexxgtk GrxLabelSetText" +::METHOD set_selectable EXTERNAL "LIBRARY rexxgtk GrxLabelSetSelectable" +::METHOD 'selectable=' EXTERNAL "LIBRARY rexxgtk GrxLabelSetSelectable" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxLabelSignalConnect" + +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + +::method signal_copy_clipboard return -::method signal_close +::method signal_copy_move_cursor return -::method signal_prepare +::method signal_copy_populate_popup return Modified: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp 2008-04-15 21:04:39 UTC (rev 2433) +++ sandbox/david/4x/rexxgtk.cpp 2008-04-15 22:51:46 UTC (rev 2434) @@ -368,6 +368,12 @@ REXX_METHOD(GrxAssistantSetPageHeaderImage, GrxAssistantSetPageHeaderImage), REXX_METHOD(GrxAssistantSetPageSideImage, GrxAssistantSetPageSideImage), REXX_METHOD(GrxAssistantSignalConnect, GrxAssistantSignalConnect), + REXX_METHOD(GrxLabelNew, GrxLabelNew), + REXX_METHOD(GrxLabelSetText, GrxLabelSetText), + REXX_METHOD(GrxLabelSetJustify, GrxLabelSetJustify), + REXX_METHOD(GrxLabelGetJustify, GrxLabelGetJustify), + REXX_METHOD(GrxLabelSetSelectable, GrxLabelSetSelectable), + REXX_METHOD(GrxLabelSignalConnect, GrxLabelSignalConnect), REXX_LAST_METHOD() }; Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-15 21:04:39 UTC (rev 2433) +++ sandbox/david/4x/rexxgtk.h 2008-04-15 22:51:46 UTC (rev 2434) @@ -228,6 +228,12 @@ REXX_METHOD_PROTOTYPE(GrxAssistantSetPageHeaderImage) REXX_METHOD_PROTOTYPE(GrxAssistantSetPageSideImage) REXX_METHOD_PROTOTYPE(GrxAssistantSignalConnect) +REXX_METHOD_PROTOTYPE(GrxLabelNew) +REXX_METHOD_PROTOTYPE(GrxLabelSetText) +REXX_METHOD_PROTOTYPE(GrxLabelSetJustify) +REXX_METHOD_PROTOTYPE(GrxLabelGetJustify) +REXX_METHOD_PROTOTYPE(GrxLabelSetSelectable) +REXX_METHOD_PROTOTYPE(GrxLabelSignalConnect) #endif /* REXXGTK_H */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-16 00:53:36
|
Revision: 2435 http://oorexx.svn.sourceforge.net/oorexx/?rev=2435&view=rev Author: wdashley Date: 2008-04-15 17:53:41 -0700 (Tue, 15 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Added fixed methods to 4x stuff. Modified Paths: -------------- sandbox/david/4x/Makefile sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.cpp sandbox/david/4x/rexxgtk.h Added Paths: ----------- sandbox/david/4x/grxfixed.cpp Modified: sandbox/david/4x/Makefile =================================================================== --- sandbox/david/4x/Makefile 2008-04-15 22:51:46 UTC (rev 2434) +++ sandbox/david/4x/Makefile 2008-04-16 00:53:41 UTC (rev 2435) @@ -58,8 +58,8 @@ grxdialog.o \ grxassistant.o \ grxlabel.o \ + grxfixed.o # grxqueue.o \ -# grxfixed.o \ # grxexpander.o \ # grxhandlebox.o \ # grxnotebook.o \ @@ -113,8 +113,8 @@ grxentry.o: grxentry.cpp rexxgtk.h gcc -c $(GRXCFLAGS) grxentry.cpp -grxfixed.o: grxfixed.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxfixed.c +grxfixed.o: grxfixed.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxfixed.cpp grxexpander.o: grxexpander.c rexxgtk.h gcc -c $(GRXCFLAGS) grxexpander.c Copied: sandbox/david/4x/grxfixed.cpp (from rev 2347, sandbox/david/grxfixed.c) =================================================================== --- sandbox/david/4x/grxfixed.cpp (rev 0) +++ sandbox/david/4x/grxfixed.cpp 2008-04-16 00:53:41 UTC (rev 2435) @@ -0,0 +1,143 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + +/* + * Method: init + * + * Create an fixed. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxFixedNew, // Object_method name + OSELF, self) // Self +{ + GtkWidget *myWidget; + + + myWidget = gtk_fixed_new(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); + + return 0; +} + +/* + * Method: put + * + * Attach a widget to the fixed. + * + * @param rxwidget The widget to attach + * + * @param xpos The X position + * + * @param ypos The Y position + * + * @return Zero. + */ +RexxMethod3(int, // Return type + GrxFixedPut, // Object_method name + RexxObjectPtr, rxwidget, // Page number + int, xpos, // X position + int, ypos) // Y position +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkFixed *myWidget = (GtkFixed *)context->PointerValue(rxptr); + RexxPointerObject putwidget = (RexxPointerObject)context->SendMessage0(rxwidget, "POINTER"); + GtkWidget *putWidget = (GtkWidget *)context->PointerValue(putwidget); + + gtk_fixed_put(myWidget, putWidget, xpos, ypos); + + return 0; +} + +/* + * Method: move + * + * Move a widget in the fixed. + * + * @param rxwidget The widget to move + * + * @param xpos The X position + * + * @param ypos The Y position + * + * @return Zero. + */ +RexxMethod3(int, // Return type + GrxFixedMove, // Object_method name + RexxObjectPtr, rxwidget, // Page number + int, xpos, // X position + int, ypos) // Y position +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkFixed *myWidget = (GtkFixed *)context->PointerValue(rxptr); + RexxPointerObject movewidget = (RexxPointerObject)context->SendMessage0(rxwidget, "POINTER"); + GtkWidget *moveWidget = (GtkWidget *)context->PointerValue(movewidget); + + gtk_fixed_move(myWidget, moveWidget, xpos, ypos); + + return 0; +} + Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-15 22:51:46 UTC (rev 2434) +++ sandbox/david/4x/rexxgtk.cls 2008-04-16 00:53:41 UTC (rev 2435) @@ -1237,3 +1237,18 @@ return +/*============================================================================*/ +/* Class: GtkFixed */ +/*============================================================================*/ + +::class GtkFixed public subclass GtkContainer + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxFixedNew" +::METHOD put EXTERNAL "LIBRARY rexxgtk GrxFixedPut" +::METHOD move EXTERNAL "LIBRARY rexxgtk GrxFixedMove" + +::method signal_connect +use strict arg event +return self~signal_connect:super(event) + + Modified: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp 2008-04-15 22:51:46 UTC (rev 2434) +++ sandbox/david/4x/rexxgtk.cpp 2008-04-16 00:53:41 UTC (rev 2435) @@ -374,6 +374,9 @@ REXX_METHOD(GrxLabelGetJustify, GrxLabelGetJustify), REXX_METHOD(GrxLabelSetSelectable, GrxLabelSetSelectable), REXX_METHOD(GrxLabelSignalConnect, GrxLabelSignalConnect), + REXX_METHOD(GrxFixedNew, GrxFixedNew), + REXX_METHOD(GrxFixedPut, GrxFixedPut), + REXX_METHOD(GrxFixedMove, GrxFixedMove), REXX_LAST_METHOD() }; Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-15 22:51:46 UTC (rev 2434) +++ sandbox/david/4x/rexxgtk.h 2008-04-16 00:53:41 UTC (rev 2435) @@ -234,6 +234,9 @@ REXX_METHOD_PROTOTYPE(GrxLabelGetJustify) REXX_METHOD_PROTOTYPE(GrxLabelSetSelectable) REXX_METHOD_PROTOTYPE(GrxLabelSignalConnect) +REXX_METHOD_PROTOTYPE(GrxFixedNew) +REXX_METHOD_PROTOTYPE(GrxFixedPut) +REXX_METHOD_PROTOTYPE(GrxFixedMove) #endif /* REXXGTK_H */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-16 01:28:59
|
Revision: 2436 http://oorexx.svn.sourceforge.net/oorexx/?rev=2436&view=rev Author: wdashley Date: 2008-04-15 18:29:03 -0700 (Tue, 15 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Added expander methods to the 4x stuff. Modified Paths: -------------- sandbox/david/4x/Makefile sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.cpp sandbox/david/4x/rexxgtk.h Added Paths: ----------- sandbox/david/4x/grxexpander.cpp Modified: sandbox/david/4x/Makefile =================================================================== --- sandbox/david/4x/Makefile 2008-04-16 00:53:41 UTC (rev 2435) +++ sandbox/david/4x/Makefile 2008-04-16 01:29:03 UTC (rev 2436) @@ -58,9 +58,9 @@ grxdialog.o \ grxassistant.o \ grxlabel.o \ - grxfixed.o + grxfixed.o \ + grxexpander.o \ # grxqueue.o \ -# grxexpander.o \ # grxhandlebox.o \ # grxnotebook.o \ # grxeventbox.o \ @@ -116,8 +116,8 @@ grxfixed.o: grxfixed.cpp rexxgtk.h gcc -c $(GRXCFLAGS) grxfixed.cpp -grxexpander.o: grxexpander.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxexpander.c +grxexpander.o: grxexpander.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxexpander.cpp grxhandlebox.o: grxhandlebox.c rexxgtk.h gcc -c $(GRXCFLAGS) grxhandlebox.c Copied: sandbox/david/4x/grxexpander.cpp (from rev 2347, sandbox/david/grxexpander.c) =================================================================== --- sandbox/david/4x/grxexpander.cpp (rev 0) +++ sandbox/david/4x/grxexpander.cpp 2008-04-16 01:29:03 UTC (rev 2436) @@ -0,0 +1,229 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + +static void signal_func_0(GtkWidget *window, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + context->SendMessage0(rxobj, ((cbcb *)data)->signal_name); + context->DetachThread(); + return; +} + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + +/* + * Method: init + * + * Create an assistant. + * + * @param label The expander label + * + * @return Zero. + */ +RexxMethod2(int, // Return type + GrxExpanderNew, // Object_method name + OSELF, self, // Self + CSTRING, label) // Expander label +{ + GtkWidget *myWidget; + + myWidget = gtk_expander_new(label); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); + + return 0; +} + +/* + * Method: set_expanded + * + * Set the expander state. + * + * @param state The expander state flag + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxExpanderSetExpanded, // Object_method name + logical_t, state) // Expander state +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkExpander *myWidget = (GtkExpander *)context->PointerValue(rxptr); + + gtk_expander_set_expanded(myWidget, state); + + return 0; +} + +/* + * Method: set_label + * + * Set the expander label. + * + * @param label The expander label + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxExpanderSetLabel, // Object_method name + CSTRING, label) // Expander label +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkExpander *myWidget = (GtkExpander *)context->PointerValue(rxptr); + + gtk_expander_set_label(myWidget, label); + + return 0; +} + +/* + * Method: get_label + * + * Get the expander label. + * + * @return Label + */ +RexxMethod0(CSTRING, // Return type + GrxExpanderGetLabel) // Object_method name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkExpander *myWidget = (GtkExpander *)context->PointerValue(rxptr); + + return gtk_expander_get_label(myWidget); +} + +/* + * Method: use_underline + * + * Set the expander underline. + * + * @param flag The expander underline flag + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxExpanderSetUnderline, // Object_method name + logical_t, flag) // Expander underline boolean +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkExpander *myWidget = (GtkExpander *)context->PointerValue(rxptr); + + gtk_expander_set_use_underline(myWidget, flag); + + return 0; +} + +/* + * Method: use_spacing + * + * Set the expander spacing. + * + * @param spacing The expander spacing amount + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxExpanderSetSpacing, // Object_method name + int, spacing) // Expander spacing amount +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkExpander *myWidget = (GtkExpander *)context->PointerValue(rxptr); + + gtk_expander_set_spacing(myWidget, spacing); + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(RexxObjectPtr, // Return type + GrxExpanderSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(name, "activate") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_activate"; + g_signal_connect(G_OBJECT(myWidget), "activate", + G_CALLBACK(signal_func_0), cblock); + return context->True(); + } + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); +} + Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-16 00:53:41 UTC (rev 2435) +++ sandbox/david/4x/rexxgtk.cls 2008-04-16 01:29:03 UTC (rev 2436) @@ -1252,3 +1252,29 @@ return self~signal_connect:super(event) +/*============================================================================*/ +/* Class: GtkExpander */ +/*============================================================================*/ + +::class GtkExpander public subclass GtkContainer + +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxExpanderNew" +::METHOD set_expanded EXTERNAL "LIBRARY rexxgtk GrxExpanderSetExpanded" +::METHOD 'expanded=' EXTERNAL "LIBRARY rexxgtk GrxExpanderSetExpanded" +::METHOD label EXTERNAL "LIBRARY rexxgtk GrxExpanderGetLabel" +::METHOD get_label EXTERNAL "LIBRARY rexxgtk GrxExpanderGetLabel" +::METHOD set_label EXTERNAL "LIBRARY rexxgtk GrxExpanderSetLabel" +::METHOD 'label=' EXTERNAL "LIBRARY rexxgtk GrxExpanderSetLabel" +::METHOD set_use_underline EXTERNAL "LIBRARY rexxgtk GrxExpanderSetUseUnderline" +::METHOD 'use_underline=' EXTERNAL "LIBRARY rexxgtk GrxExpanderSetUseUnderline" +::METHOD set_spacing EXTERNAL "LIBRARY rexxgtk GrxExpanderSetSpacing" +::METHOD 'spacing=' EXTERNAL "LIBRARY rexxgtk GrxExpanderSetSpacing" +::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxExpanderSignalSpacing" + +-- The following are the methods that can be connected to signals. By default +-- they do nothing. + +::method signal_activate +return + + Modified: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp 2008-04-16 00:53:41 UTC (rev 2435) +++ sandbox/david/4x/rexxgtk.cpp 2008-04-16 01:29:03 UTC (rev 2436) @@ -377,6 +377,13 @@ REXX_METHOD(GrxFixedNew, GrxFixedNew), REXX_METHOD(GrxFixedPut, GrxFixedPut), REXX_METHOD(GrxFixedMove, GrxFixedMove), + REXX_METHOD(GrxExpanderNew, GrxExpanderNew), + REXX_METHOD(GrxExpanderSetExpanded, GrxExpanderSetExpanded), + REXX_METHOD(GrxExpanderSetLabel, GrxExpanderSetLabel), + REXX_METHOD(GrxExpanderGetLabel, GrxExpanderGetLabel), + REXX_METHOD(GrxExpanderSetUseUnderline, GrxExpanderSetUseUnderline), + REXX_METHOD(GrxExpanderSetSpacing, GrxExpanderSetSpacing), + REXX_METHOD(GrxExpanderSignalConnect, GrxExpanderSignalConnect), REXX_LAST_METHOD() }; Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-16 00:53:41 UTC (rev 2435) +++ sandbox/david/4x/rexxgtk.h 2008-04-16 01:29:03 UTC (rev 2436) @@ -237,6 +237,13 @@ REXX_METHOD_PROTOTYPE(GrxFixedNew) REXX_METHOD_PROTOTYPE(GrxFixedPut) REXX_METHOD_PROTOTYPE(GrxFixedMove) +REXX_METHOD_PROTOTYPE(GrxExpanderNew) +REXX_METHOD_PROTOTYPE(GrxExpanderSetExpanded) +REXX_METHOD_PROTOTYPE(GrxExpanderSetLabel) +REXX_METHOD_PROTOTYPE(GrxExpanderGetLabel) +REXX_METHOD_PROTOTYPE(GrxExpanderSetUseUnderline) +REXX_METHOD_PROTOTYPE(GrxExpanderSetSpacing) +REXX_METHOD_PROTOTYPE(GrxExpanderSignalConnect) #endif /* REXXGTK_H */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-04-16 14:32:08
|
Revision: 2437 http://oorexx.svn.sourceforge.net/oorexx/?rev=2437&view=rev Author: wdashley Date: 2008-04-16 07:25:12 -0700 (Wed, 16 Apr 2008) Log Message: ----------- ArtifactID: None Comment: Added handle box methods to the 4x stuff. Modified Paths: -------------- sandbox/david/4x/Makefile sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.cpp sandbox/david/4x/rexxgtk.h Added Paths: ----------- sandbox/david/4x/grxhandlebox.cpp Modified: sandbox/david/4x/Makefile =================================================================== --- sandbox/david/4x/Makefile 2008-04-16 01:29:03 UTC (rev 2436) +++ sandbox/david/4x/Makefile 2008-04-16 14:25:12 UTC (rev 2437) @@ -60,8 +60,7 @@ grxlabel.o \ grxfixed.o \ grxexpander.o \ -# grxqueue.o \ -# grxhandlebox.o \ + grxhandlebox.o \ # grxnotebook.o \ # grxeventbox.o \ # grxrange.o \ @@ -95,9 +94,6 @@ grxcontainer.o: grxcontainer.cpp rexxgtk.h gcc -c $(GRXCFLAGS) grxcontainer.cpp -grxqueue.o: grxqueue.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxqueue.c - grxlabel.o: grxlabel.cpp rexxgtk.h gcc -c $(GRXCFLAGS) grxlabel.cpp @@ -119,8 +115,8 @@ grxexpander.o: grxexpander.cpp rexxgtk.h gcc -c $(GRXCFLAGS) grxexpander.cpp -grxhandlebox.o: grxhandlebox.c rexxgtk.h - gcc -c $(GRXCFLAGS) grxhandlebox.c +grxhandlebox.o: grxhandlebox.cpp rexxgtk.h + gcc -c $(GRXCFLAGS) grxhandlebox.cpp grxnotebook.o: grxnotebook.c rexxgtk.h gcc -c $(GRXCFLAGS) grxnotebook.c Copied: sandbox/david/4x/grxhandlebox.cpp (from rev 2397, sandbox/david/grxhandlebox.c) =================================================================== --- sandbox/david/4x/grxhandlebox.cpp (rev 0) +++ sandbox/david/4x/grxhandlebox.cpp 2008-04-16 14:25:12 UTC (rev 2437) @@ -0,0 +1,199 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Authors; */ +/* W. David Ashley <da...@us...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +/* include the linux headers and our local stuff */ +#include "rexxgtk.h" + + +/*----------------------------------------------------------------------------*/ +/* Global variables */ +/*----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------*/ +/* Local Definitions */ +/*----------------------------------------------------------------------------*/ + + +/*============================================================================*/ +/* Private Functions */ +/*============================================================================*/ + +static void signal_func_1(GtkWidget *window, + GtkWidget *widget, + gpointer data) +{ + cbcb *cblock = (cbcb *)data; + RexxObjectPtr rxobj = (RexxObjectPtr)g_object_get_data(G_OBJECT(window), "OORXOBJECT"); + RexxObjectPtr rxwidget = (RexxObjectPtr)g_object_get_data(G_OBJECT(widget), "OORXOBJECT"); + RexxThreadContext *context; + + cblock->instance->AttachThread(&context); + context->SendMessage1(rxobj, ((cbcb *)data)->signal_name, rxwidget); + context->DetachThread(); + return; +} + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + +/* + * Method: init + * + * Create an handle box. + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxHandleBoxNew, // Object_method name + OSELF, self) // Self +{ + GtkWidget *myWidget; + + myWidget = gtk_handle_box_new(); + context->SetObjectVariable("!POINTER", context->NewPointer(myWidget)); + g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); + + return 0; +} + +/* + * Method: set_shadow_type + * + * Set the handle box shadow type. + * + * @param type The shadow type + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxHandleBoxSetShadowType, // Object_method name + int, type) // Shadow type +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkHandleBox *myWidget = (GtkHandleBox *)context->PointerValue(rxptr); + + gtk_handle_box_set_shadow_type(myWidget, (GtkShadowType)type); + + return 0; +} + +/* + * Method: set_position + * + * Set the handle box position type. + * + * @param type The position type + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxHandleBoxSetPosition, // Object_method name + int, type) // Position type +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkHandleBox *myWidget = (GtkHandleBox *)context->PointerValue(rxptr); + + gtk_handle_box_set_handle_position(myWidget, (GtkPositionType)type); + + return 0; +} + +/* + * Method: set_snap_edge + * + * Set the handle box snap edge type. + * + * @param type The snap edge type + * + * @return Zero. + */ +RexxMethod1(int, // Return type + GrxHandleBoxSetSnapEdge, // Object_method name + int, type) // Snap edge type +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkHandleBox *myWidget = (GtkHandleBox *)context->PointerValue(rxptr); + + gtk_handle_box_set_snap_edge(myWidget, (GtkPositionType)type); + + return 0; +} + +/** + * Method: signal_connect + * + * Connect a signal to an ooRexx method. + * + * @param name The signal name + * + * @return Zero + */ +RexxMethod1(RexxObjectPtr, // Return type + GrxHandleBoxSignalConnect, // Object_method name + CSTRING, name) // Signal name +{ + RexxPointerObject rxptr = (RexxPointerObject)context->GetObjectVariable("!POINTER"); + GtkWidget *myWidget = (GtkWidget *)context->PointerValue(rxptr); + cbcb *cblock; + + if (strcmp(name, "child_attached") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_child_attached"; + g_signal_connect(G_OBJECT(myWidget), "child-attached", + G_CALLBACK(signal_func_1), cblock); + return context->True(); + } + else if (strcmp(name, "child_detached") == 0) { + cblock = (cbcb *)malloc(sizeof(cbcb)); + cblock->instance = context->threadContext->instance; + cblock->signal_name = "signal_child_detached"; + g_signal_connect(G_OBJECT(myWidget), "child-detached", + G_CALLBACK(signal_func_1), cblock); + return context->True(); + } + RexxObjectPtr parent = context->GetSuper(); + return context->SendMessage0(parent, name); +} + Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-04-16 01:29:03 UTC (rev 2436) +++ sandbox/david/4x/rexxgtk.cls 2008-04-16 14:25:12 UTC (rev 2437) @@ -1278,3 +1278,59 @@ return +/*============================================================================*/ +/* Class: GtkExpander_With_Mnemonic */ +/*============================================================================*/ + +::class GtkExpander_With_Mnemonic public subclass GtkExpander + +::method init +use arg label = '' +self~init:super(label) +self~use_underline = .true +return + + +/*============================================================================*/ +/* Class: GtkHandleBox */ +/*============================================================================*/ + +::class GtkHandleBox public subclass GtkContainer + +::method init +use strict arg +self~pointer = GrxHandleBoxNew() +return + +::method 'shadow_type=' +use strict arg type +call GrxHandleBoxSetShadowType self~pointer, GTK_Constant(type) +return + +::method set_shadow_type +use strict arg self~shadow_type +return + +::method 'handle_position=' +use strict arg type +call GrxHandleBoxSetHandlePosition self~pointer, GTK_Constant(type) +return + +::method set_handle_position +use strict arg self~handle_position +return + +::method 'snap_edge=' +use strict arg type +call GrxHandleBoxSetSnapEdge self~pointer, GTK_Constant(type) +return + +::method set_snap_edge +use strict arg self~snap_edge +return + +::method signal_connect +use strict arg event +return self~signal_connect:super(event) + + Modified: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp 2008-04-16 01:29:03 UTC (rev 2436) +++ sandbox/david/4x/rexxgtk.cpp 2008-04-16 14:25:12 UTC (rev 2437) @@ -384,6 +384,11 @@ REXX_METHOD(GrxExpanderSetUseUnderline, GrxExpanderSetUseUnderline), REXX_METHOD(GrxExpanderSetSpacing, GrxExpanderSetSpacing), REXX_METHOD(GrxExpanderSignalConnect, GrxExpanderSignalConnect), + REXX_METHOD(GrxHandleBoxNew, GrxHandleBoxNew), + REXX_METHOD(GrxHandleBoxSetShadowType, GrxHandleBoxSetShadowType), + REXX_METHOD(GrxHandleBoxSetPosition, GrxHandleBoxSetPosition), + REXX_METHOD(GrxHandleBoxSetSnapEdge, GrxHandleBoxSetSnapEdge), + REXX_METHOD(GrxHandleBoxSignalConnect, GrxHandleBoxSignalConnect), REXX_LAST_METHOD() }; Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-04-16 01:29:03 UTC (rev 2436) +++ sandbox/david/4x/rexxgtk.h 2008-04-16 14:25:12 UTC (rev 2437) @@ -244,6 +244,11 @@ REXX_METHOD_PROTOTYPE(GrxExpanderSetUseUnderline) REXX_METHOD_PROTOTYPE(GrxExpanderSetSpacing) REXX_METHOD_PROTOTYPE(GrxExpanderSignalConnect) +REXX_METHOD_PROTOTYPE(GrxHandleBoxNew) +REXX_METHOD_PROTOTYPE(GrxHandleBoxSetShadowType) +REXX_METHOD_PROTOTYPE(GrxHandleBoxSetPosition) +REXX_METHOD_PROTOTYPE(GrxHandleBoxSetSnapEdge) +REXX_METHOD_PROTOTYPE(GrxHandleBoxSignalConnect) #endif /* REXXGTK_H */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |