From: <wda...@us...> - 2008-08-05 17:52:49
|
Revision: 2860 http://oorexx.svn.sourceforge.net/oorexx/?rev=2860&view=rev Author: wdashley Date: 2008-08-05 17:52:57 +0000 (Tue, 05 Aug 2008) Log Message: ----------- ArtifactID: None Comment: Some chapter 7 fixes. Modified Paths: -------------- sandbox/david/4x/grxscrolledwindow.cpp sandbox/david/4x/grxtextbuffer.cpp sandbox/david/4x/grxtextview.cpp sandbox/david/4x/rexxgtk.cls sandbox/david/4x/rexxgtk.cpp sandbox/david/4x/rexxgtk.h sandbox/david/4x/test7-3.rex sandbox/david/4x/test7-5.rex sandbox/david/4x/test7-6.rex sandbox/david/4x/test7-7.rex sandbox/david/4x/test7-8.rex Modified: sandbox/david/4x/grxscrolledwindow.cpp =================================================================== --- sandbox/david/4x/grxscrolledwindow.cpp 2008-08-05 14:51:43 UTC (rev 2859) +++ sandbox/david/4x/grxscrolledwindow.cpp 2008-08-05 17:52:57 UTC (rev 2860) @@ -109,27 +109,24 @@ RexxMethod3(int, // Return type GrxScrolledWindowNew, // Object_method name OSELF, self, // Self - OPTIONAL_RexxObjectPtr, rxhadj, // The horizontal adjustment - OPTIONAL_RexxObjectPtr, rxvadj) // The vertical adjustment + OPTIONAL_RexxObjectPtr, rxhadj, // The horizontal adjustment + OPTIONAL_RexxObjectPtr, rxvadj) // The vertical adjustment { GtkWidget *myWidget; - GtkAdjustment *hadj, *vadj; + GtkAdjustment *hadj = NULL, *vadj = NULL; - if (rxhadj == NULL) { - hadj = NULL; + if (rxhadj != NULL) { + if (rxhadj != context->Nil()) { + RexxPointerObject hadjptr = (RexxPointerObject)context->SendMessage0(rxhadj, "POINTER"); + hadj = (GtkAdjustment *)context->PointerValue(hadjptr); + } } - else { - RexxPointerObject hadjptr = (RexxPointerObject)context->SendMessage0(rxhadj, "POINTER"); - hadj = (GtkAdjustment *)context->PointerValue(hadjptr); + if (rxvadj != NULL) { + if (rxvadj != context->Nil()) { + RexxPointerObject vadjptr = (RexxPointerObject)context->SendMessage0(rxvadj, "POINTER"); + vadj = (GtkAdjustment *)context->PointerValue(vadjptr); + } } - if (rxvadj == NULL) { - vadj = NULL; - } - else { - RexxPointerObject vadjptr = (RexxPointerObject)context->SendMessage0(rxvadj, "POINTER"); - vadj = (GtkAdjustment *)context->PointerValue(vadjptr); - } - myWidget = gtk_scrolled_window_new(hadj, vadj); context->SendMessage1(self, "POINTER=", context->NewPointer(myWidget)); g_object_set_data(G_OBJECT(myWidget), "OORXOBJECT", self); Modified: sandbox/david/4x/grxtextbuffer.cpp =================================================================== --- sandbox/david/4x/grxtextbuffer.cpp 2008-08-05 14:51:43 UTC (rev 2859) +++ sandbox/david/4x/grxtextbuffer.cpp 2008-08-05 17:52:57 UTC (rev 2860) @@ -82,13 +82,19 @@ * * @return Zero. **/ -RexxMethod1(int, // Return type +RexxMethod2(int, // Return type GrxTextBufferNew, // Object_method name - OSELF, self) // Self + OSELF, self, // Self + OPTIONAL_RexxObjectPtr, rxptr) // buffer pointer { GtkTextBuffer *myBuffer; - myBuffer = gtk_text_buffer_new(NULL); + if (rxptr == context->Nil()) { + myBuffer = gtk_text_buffer_new(NULL); + } + else { + myBuffer = (GtkTextBuffer *)context->PointerValue((RexxPointerObject)rxptr); + } context->SendMessage1(self, "POINTER=", context->NewPointer(myBuffer)); g_object_set_data(G_OBJECT(myBuffer), "OORXOBJECT", self); @@ -96,28 +102,6 @@ } /** - * Method: init - * - * Create an textbuffer. - * - * @param rxptr The widget pointer - * - * @return Zero. - **/ -RexxMethod2(int, // Return type - GrxTextBufferNewFromPtr, // Object_method name - OSELF, self, // Self - RexxObjectPtr, rxptr) -{ - GtkTextBuffer *myBuffer = (GtkTextBuffer *)context->PointerValue((RexxPointerObject)rxptr); - - context->SendMessage1(self, "POINTER=", context->NewPointer(myBuffer)); - g_object_set_data(G_OBJECT(myBuffer), "OORXOBJECT", self); - - return 0; -} - -/** * Method: set_text * * Set the textbuffer text. Modified: sandbox/david/4x/grxtextview.cpp =================================================================== --- sandbox/david/4x/grxtextview.cpp 2008-08-05 14:51:43 UTC (rev 2859) +++ sandbox/david/4x/grxtextview.cpp 2008-08-05 17:52:57 UTC (rev 2860) @@ -213,16 +213,7 @@ GtkTextBuffer *myBuffer; myBuffer = gtk_text_view_get_buffer(myWidget); - // TODO: This does not work because no TextBuffer Rexx object has been - // instantaited! - return (RexxObjectPtr)g_object_get_data(G_OBJECT(myBuffer), "OORXOBJECT"); - RexxObjectPtr txtbuf = (RexxObjectPtr)g_object_get_data(G_OBJECT(myBuffer), "OORXOBJECT"); - if (txtbuf == NULL) { - // no Rexx Object found so create it - RexxClassObject cobj = context->FindClass("GtkTextBuffer"); - txtbuf = context->SendMessage1(cobj, "NEW", context->NewPointer(myBuffer)); - } - return txtbuf; + return context->SendMessage1(self, "create_textbuffer", context->NewPointer(myBuffer)); } /** Modified: sandbox/david/4x/rexxgtk.cls =================================================================== --- sandbox/david/4x/rexxgtk.cls 2008-08-05 14:51:43 UTC (rev 2859) +++ sandbox/david/4x/rexxgtk.cls 2008-08-05 17:52:57 UTC (rev 2860) @@ -237,9 +237,9 @@ ::constant GTK_RELIEF_HALF 1 ::constant GTK_RELIEF_NONE 2 -- GtkAtom -::constant GTK_SELECTION_PRIMARY 1 -::constant GTK_SELECTION_SECONDARY 2 -::constant GTK_SELECTION_CLIPBOARD 69 +::constant GDK_SELECTION_PRIMARY 1 +::constant GDK_SELECTION_SECONDARY 2 +::constant GDK_SELECTION_CLIPBOARD 69 -- GtkShadow ::constant GTK_SHADOW_NONE 0 ::constant GTK_SHADOW_IN 1 @@ -1990,19 +1990,19 @@ ::method newFromFile class use strict arg filename -img = self~new() +img = .GtkImage~new() img~set_from_file(filename) return img ::method newFromStock class use strict arg stockid, size -img = self~new() +img = .GtkImage~new() img~set_from_stock(stockid, size) return img ::method newFromIconName class use strict arg iconname, size -img = self~new() +img = .GtkImage~new() img~set_from_icon_name(iconname, size) return img @@ -2072,6 +2072,9 @@ ::METHOD 'right_margin=' EXTERNAL "LIBRARY rexxgtk GrxTextViewSetRightMargin" ::METHOD add_child_at_offset EXTERNAL "LIBRARY rexxgtk GrxTextViewAddChildAtOffset" ::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxTextViewSignalConnect" +::Method create_textbuffer private +use strict arg ptr +return .GtkTextBuffer~new(ptr) -- The following are the methods that can be connected to signals. By default -- they do nothing. @@ -2128,18 +2131,7 @@ ::class GtkTextBuffer public -::method init -if arg() = 1 then do - use strict arg ptr - self~init_1args(ptr) - return - end -self~init_0args() -return - -::METHOD init_1args private EXTERNAL "LIBRARY rexxgtk GrxTextBufferNewFromPtr" -::METHOD init_0args private EXTERNAL "LIBRARY rexxgtk GrxTextBufferNew" - +::METHOD init EXTERNAL "LIBRARY rexxgtk GrxTextBufferNew" ::METHOD set_text EXTERNAL "LIBRARY rexxgtk GrxTextBufferSetText" ::METHOD 'text=' EXTERNAL "LIBRARY rexxgtk GrxTextBufferSetText" ::METHOD get_text EXTERNAL "LIBRARY rexxgtk GrxTextBufferGetText" @@ -2157,6 +2149,16 @@ ::METHOD insert_image EXTERNAL "LIBRARY rexxgtk GrxTextBufferInsertImage" ::METHOD signal_connect EXTERNAL "LIBRARY rexxgtk GrxTextBufferSignalConnect" +-- These methods 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 !pointer +return +::method pointer +expose !pointer +return !pointer + -- The following are the methods that can be connected to signals. By default -- they do nothing. @@ -2192,7 +2194,7 @@ ::METHOD init_1args private EXTERNAL "LIBRARY rexxgtk GrxAdjustmentNewFromPtr" ::METHOD init_6args private EXTERNAL "LIBRARY rexxgtk GrxAdjustmentNew" --- This methods should only be invoked by the C++ code. That is the only place +-- These methods should only be invoked by the C++ code. That is the only place -- where it is actually useful. ::method 'pointer=' expose !pointer @@ -2229,7 +2231,7 @@ ::METHOD append EXTERNAL "LIBRARY rexxgtk GrxListStoreAppend" ::METHOD set EXTERNAL "LIBRARY rexxgtk GrxListStoreSetValue" --- This methods should only be invoked by the C++ code. That is the only place +-- These methods should only be invoked by the C++ code. That is the only place -- where it is actually useful. ::method 'pointer=' expose !pointer @@ -2815,7 +2817,7 @@ ::METHOD init EXTERNAL "LIBRARY rexxgtk GrxTreeViewColumnNew" --- This methods should only be invoked by the C++ code. That is the only place +-- These methods should only be invoked by the C++ code. That is the only place -- where it is actually useful. ::method 'pointer=' expose !pointer @@ -2849,7 +2851,7 @@ ::METHOD append EXTERNAL "LIBRARY rexxgtk GrxTreeStoreAppend" ::METHOD set EXTERNAL "LIBRARY rexxgtk GrxTreeStoreSetValue" --- This methods should only be invoked by the C++ code. That is the only place +-- These methods should only be invoked by the C++ code. That is the only place -- where it is actually useful. ::method 'pointer=' expose !pointer Modified: sandbox/david/4x/rexxgtk.cpp =================================================================== --- sandbox/david/4x/rexxgtk.cpp 2008-08-05 14:51:43 UTC (rev 2859) +++ sandbox/david/4x/rexxgtk.cpp 2008-08-05 17:52:57 UTC (rev 2860) @@ -576,7 +576,6 @@ REXX_METHOD(GrxTextViewAddChildAtOffset, GrxTextViewAddChildAtOffset), REXX_METHOD(GrxTextViewSignalConnect, GrxTextViewSignalConnect), REXX_METHOD(GrxTextBufferNew, GrxTextBufferNew), - REXX_METHOD(GrxTextBufferNewFromPtr, GrxTextBufferNewFromPtr), REXX_METHOD(GrxTextBufferSetText, GrxTextBufferSetText), REXX_METHOD(GrxTextBufferInsertText, GrxTextBufferInsertText), REXX_METHOD(GrxTextBufferGetText, GrxTextBufferGetText), Modified: sandbox/david/4x/rexxgtk.h =================================================================== --- sandbox/david/4x/rexxgtk.h 2008-08-05 14:51:43 UTC (rev 2859) +++ sandbox/david/4x/rexxgtk.h 2008-08-05 17:52:57 UTC (rev 2860) @@ -384,7 +384,6 @@ REXX_METHOD_PROTOTYPE(GrxTextViewAddChildAtOffset) REXX_METHOD_PROTOTYPE(GrxTextViewSignalConnect) REXX_METHOD_PROTOTYPE(GrxTextBufferNew) -REXX_METHOD_PROTOTYPE(GrxTextBufferNewFromPtr) REXX_METHOD_PROTOTYPE(GrxTextBufferSetText) REXX_METHOD_PROTOTYPE(GrxTextBufferInsertText) REXX_METHOD_PROTOTYPE(GrxTextBufferGetText) Modified: sandbox/david/4x/test7-3.rex =================================================================== --- sandbox/david/4x/test7-3.rex 2008-08-05 14:51:43 UTC (rev 2859) +++ sandbox/david/4x/test7-3.rex 2008-08-05 17:52:57 UTC (rev 2860) @@ -71,7 +71,7 @@ buffer~text = 'This is some text!' || '0A'x || 'Change me!' || '0A'x || 'Please!' scrolled_win = .GtkScrolledWindow~new(.nil, .nil) -scrolled_win~set_policy(.gtk~GTK_POLICY_AUTOMAYIC, .gtk~GTK_POLICY_ALWAYS) +scrolled_win~set_policy(.gtk~GTK_POLICY_AUTOMATIC, .gtk~GTK_POLICY_ALWAYS) scrolled_win~add(textview) window~add(scrolled_win) window~show_all() Modified: sandbox/david/4x/test7-5.rex =================================================================== --- sandbox/david/4x/test7-5.rex 2008-08-05 14:51:43 UTC (rev 2859) +++ sandbox/david/4x/test7-5.rex 2008-08-05 17:52:57 UTC (rev 2860) @@ -96,29 +96,26 @@ ::class MyCut subclass GtkButton ::method signal_clicked -cb = .GtkClipboard~get(.gtk~GDK_SELECTION_CLIPBOARD) buffer = self~user_data~get_buffer() -buffer~cut_clipboard(cb, .true) +buffer~cut_clipboard(.true) return ::class MyCopy subclass GtkButton ::method signal_clicked -cb = .GtkClipboard~get(.gtk~GDK_SELECTION_CLIPBOARD) buffer = self~user_data~get_buffer() -buffer~copy_clipboard(cb) +buffer~copy_clipboard() return ::class MyPaste subclass GtkButton ::method signal_clicked -cb = .GtkClipboard~get(.gtk~GDK_SELECTION_CLIPBOARD) buffer = self~user_data~get_buffer() -buffer~paste_clipboard(cb, .true) +buffer~paste_clipboard(.true) return Modified: sandbox/david/4x/test7-6.rex =================================================================== --- sandbox/david/4x/test7-6.rex 2008-08-05 14:51:43 UTC (rev 2859) +++ sandbox/david/4x/test7-6.rex 2008-08-05 17:52:57 UTC (rev 2860) @@ -99,7 +99,7 @@ buffer = self~user_data[2]~get_buffer() iter = buffer~forward_search(find, .true) -do while iter <> '' +do while iter <> .nil i = i + 1 iter = buffer~forward_search_next(find, iter) end Modified: sandbox/david/4x/test7-7.rex =================================================================== --- sandbox/david/4x/test7-7.rex 2008-08-05 14:51:43 UTC (rev 2859) +++ sandbox/david/4x/test7-7.rex 2008-08-05 17:52:57 UTC (rev 2860) @@ -51,25 +51,25 @@ text_scales[1]~scale = 0.25 text_scales[2] = .text_to_double~new() text_scales[2]~str = 'Double Extra Small' -text_scales[2]~scale = 'PANGO_SCALE_XX_SMALL' +text_scales[2]~scale = .gtk~PANGO_SCALE_XX_SMALL text_scales[3] = .text_to_double~new() text_scales[3]~str = 'Extra Small' -text_scales[3]~scale = 'PANGO_SCALE_X_SMALL' +text_scales[3]~scale = .gtk~PANGO_SCALE_X_SMALL text_scales[4] = .text_to_double~new() text_scales[4]~str = 'Small' -text_scales[4]~scale = 'PANGO_SCALE_SMALL' +text_scales[4]~scale = .gtk~PANGO_SCALE_SMALL text_scales[5] = .text_to_double~new() text_scales[5]~str = 'Medium' -text_scales[5]~scale = 'PANGO_SCALE_MEDIUM' +text_scales[5]~scale = .gtk~PANGO_SCALE_MEDIUM text_scales[6] = .text_to_double~new() text_scales[6]~str = 'Large' -text_scales[6]~scale = 'PANGO_SCALE_LARGE' +text_scales[6]~scale = .gtk~PANGO_SCALE_LARGE text_scales[7] = .text_to_double~new() text_scales[7]~str = 'Extra Large' -text_scales[7]~scale = 'PANGO_SCALE_X_LARGE' +text_scales[7]~scale = .gtk~PANGO_SCALE_X_LARGE text_scales[8] = .text_to_double~new() text_scales[8]~str = 'Double Extra Large' -text_scales[8]~scale = 'PANGO_SCALE_XX_LARGE' +text_scales[8]~scale = .gtk~PANGO_SCALE_XX_LARGE text_scales[9] = .text_to_double~new() text_scales[9]~str = 'Double Sized' text_scales[9]~scale = 2.0 Modified: sandbox/david/4x/test7-8.rex =================================================================== --- sandbox/david/4x/test7-8.rex 2008-08-05 14:51:43 UTC (rev 2859) +++ sandbox/david/4x/test7-8.rex 2008-08-05 17:52:57 UTC (rev 2860) @@ -55,8 +55,9 @@ buffer = textview~get_buffer() buffer~set_text(" ooRexx" || '0A'x) -image = .GtkImage_From_File~new('oorexx.jpg') +image = .GtkImage~newFromFile('oorexx.jpg') buffer~insert_image(image, 0) +say 'got here' scrolled_win = .GtkScrolledWindow~new(.nil, .nil) scrolled_win~add(textview) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |