From: <wda...@us...> - 2008-01-13 20:47:51
|
Revision: 2198 http://oorexx.svn.sourceforge.net/oorexx/?rev=2198&view=rev Author: wdashley Date: 2008-01-13 12:47:55 -0800 (Sun, 13 Jan 2008) Log Message: ----------- ArtifactID: None Comment: Added the GtkExpander class and test script. Also performed more cleanup. Modified Paths: -------------- sandbox/david/Makefile sandbox/david/Makefile.win sandbox/david/grxbutton.c sandbox/david/grxfixed.c sandbox/david/grxtable.c sandbox/david/rexxgtk.c sandbox/david/rexxgtk.cls Added Paths: ----------- sandbox/david/grxexpander.c sandbox/david/test3-6.rex Modified: sandbox/david/Makefile =================================================================== --- sandbox/david/Makefile 2008-01-13 20:22:04 UTC (rev 2197) +++ sandbox/david/Makefile 2008-01-13 20:47:55 UTC (rev 2198) @@ -54,7 +54,8 @@ grxpaned.o \ grxtable.o \ grxentry.o \ - grxfixed.o + grxfixed.o \ + grxexpander.o # Build the shared library @@ -96,8 +97,11 @@ grxfixed.o: grxfixed.c rexxgtk.h gcc -c $(GRXCFLAGS) grxfixed.c +grxexpander.o: grxexpander.c rexxgtk.h + gcc -c $(GRXCFLAGS) grxexpander.c + clean: rm *.so *.o Modified: sandbox/david/Makefile.win =================================================================== --- sandbox/david/Makefile.win 2008-01-13 20:22:04 UTC (rev 2197) +++ sandbox/david/Makefile.win 2008-01-13 20:47:55 UTC (rev 2198) @@ -66,7 +66,9 @@ grxbutton.obj \ grxpaned.obj \ grxtable.obj \ - grxentry.obj + grxentrytable.obj \ + grxfixed.obj \ + grxexpander.obj # Build the DLL @@ -109,8 +111,11 @@ grxfixed.obj: grxfixed.c rexxgtk.h cl -c $(GRXCFLAGS) grxfixed.c +grxexpander.obj: grxexpander.c rexxgtk.h + cl -c $(GRXCFLAGS) grxexpander.c + clean: rm *.so *.o Modified: sandbox/david/grxbutton.c =================================================================== --- sandbox/david/grxbutton.c 2008-01-13 20:22:04 UTC (rev 2197) +++ sandbox/david/grxbutton.c 2008-01-13 20:47:55 UTC (rev 2198) @@ -90,8 +90,9 @@ /* Rexx Args: None */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxButtonNew(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxButtonNew(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; @@ -117,8 +118,9 @@ /* Label */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxButtonSetLabel(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxButtonSetLabel(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; @@ -148,8 +150,9 @@ /* Rexx Args: Pointer to the widget */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxButtonGetLabel(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxButtonGetLabel(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { const gchar *label = NULL; GtkWidget *myWidget; @@ -189,8 +192,9 @@ /* Relief Styls */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxButtonSetRelief(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxButtonSetRelief(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; GtkReliefStyle style; @@ -229,8 +233,9 @@ /* Flag */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxButtonUseUnderline(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxButtonUseUnderline(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; gboolean flag; @@ -260,8 +265,9 @@ /* Rexx Args: Label */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxCheckButtonNew(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxCheckButtonNew(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; @@ -292,8 +298,9 @@ /* Rexx Args: Pointer to the widget */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxCheckButtonGetState(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxCheckButtonGetState(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; gboolean checked = FALSE; @@ -325,8 +332,9 @@ /* New state */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxCheckButtonSetState(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxCheckButtonSetState(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; gboolean checked = FALSE; @@ -359,8 +367,9 @@ /* Label (optional) */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxRadioButtonNew(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxRadioButtonNew(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; GSList *head; @@ -394,8 +403,9 @@ /* Rexx Args: Pointer to the widget */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxRadioButtonGroup(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxRadioButtonGroup(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; GSList *head = NULL; @@ -428,8 +438,8 @@ /*----------------------------------------------------------------------------*/ APIRET APIENTRY GrxButtonConnectSignal(const char * Name, - const size_t Argc, const RXSTRING Argv[], - const char * Queuename, PRXSTRING Retstr) + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; Added: sandbox/david/grxexpander.c =================================================================== --- sandbox/david/grxexpander.c (rev 0) +++ sandbox/david/grxexpander.c 2008-01-13 20:47:55 UTC (rev 2198) @@ -0,0 +1,331 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* 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) +{ + char buffer[256]; + RXSTRING entry; + + // set up the queue entry data +#ifdef WIN32 + sprintf(buffer, "%p %s", window, data); +#else + snprintf(buffer, sizeof(buffer), "%p %s", window, data); +#endif + entry.strptr = buffer; + entry.strlength = strlen(buffer); + + // insert the signal event here + RexxAddQueue(GrxGetRexxQueueName(), &entry, RXQUEUE_FIFO); + + return; +} + + +/*============================================================================*/ +/* Public Functions */ +/*============================================================================*/ + + +/*----------------------------------------------------------------------------*/ +/* Rexx External Function: GrxExpanderNew */ +/* Description: Create a expander. */ +/* Rexx Args: Label */ +/*----------------------------------------------------------------------------*/ + +APIRET APIENTRY GrxExpanderNew(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) +{ + GtkWidget *myWidget; + + /* Check for valid arguments */ + if (GrxCheckArgs(1, Argc, Argv)) { + return RXFUNC_BADCALL; + } + + myWidget = gtk_expander_new(Argv[0].strptr); + + /* Set up the REXX return code */ + sprintf(Retstr->strptr, "%p", myWidget); + Retstr->strlength = strlen(Retstr->strptr); + + return RXFUNC_OK; +} + + +/*----------------------------------------------------------------------------*/ +/* Rexx External Function: GrxExpanderSetExpanded */ +/* Description: Set the expanded state. */ +/* Rexx Args: Pointer to the widget */ +/* State */ +/*----------------------------------------------------------------------------*/ + +APIRET APIENTRY GrxExpanderSetExpanded(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) +{ + GtkWidget *myWidget; + gboolean state; + + /* Check for valid arguments */ + if (Argc != 2 || !RXVALIDSTRING(Argv[0])) { + return RXFUNC_BADCALL; + } + + /* Initialize function parameters */ + sscanf(Argv[0].strptr, "%p", &myWidget); + sscanf(Argv[1].strptr, "%d", &state); + + if (GTK_IS_WIDGET(GTK_OBJECT(myWidget))) { + gtk_expander_set_expanded(GTK_EXPANDER(myWidget), state); + } + + /* Set up the REXX return code */ + *(Retstr->strptr) = '0'; + Retstr->strlength = 1; + + return RXFUNC_OK; +} + + +/*----------------------------------------------------------------------------*/ +/* Rexx External Function: GrxExpanderSetLabel */ +/* Description: Get the label of the expander. */ +/* Rexx Args: Pointer to the widget */ +/* Label */ +/*----------------------------------------------------------------------------*/ + +APIRET APIENTRY GrxExpanderSetLabel(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) +{ + GtkWidget *myWidget; + + /* Check for valid arguments */ + if (GrxCheckArgs(2, Argc, Argv)) { + return RXFUNC_BADCALL; + } + + /* Initialize function parameters */ + sscanf(Argv[0].strptr, "%p", &myWidget); + + if (GTK_IS_WIDGET(GTK_OBJECT(myWidget))) { + gtk_expander_set_label(GTK_EXPANDER(myWidget), Argv[1].strptr); + } + + /* Set up the REXX return code */ + *(Retstr->strptr) = '0'; + Retstr->strlength = 1; + + return RXFUNC_OK; +} + + +/*----------------------------------------------------------------------------*/ +/* Rexx External Function: GrxExpanderGetLabel */ +/* Description: Get the label of the expander. */ +/* Rexx Args: Pointer to the widget */ +/*----------------------------------------------------------------------------*/ + +APIRET APIENTRY GrxExpanderGetLabel(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) +{ + const gchar *label = NULL; + GtkWidget *myWidget; + + /* 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))) { + label = gtk_expander_get_label(GTK_EXPANDER(myWidget)); + } + + /* Set up the REXX return code */ + if (label != NULL) { + if (strlen(label) > RXAUTOBUFLEN - 1) { + Retstr->strptr = RexxAllocateMemory(strlen(label) + 1); + } + strcpy(Retstr->strptr, label); + } + else { + strcpy(Retstr->strptr, "\0"); + } + Retstr->strlength = strlen(Retstr->strptr); + + return RXFUNC_OK; +} + + +/*----------------------------------------------------------------------------*/ +/* Rexx External Function: GrxButtonUseUnderline */ +/* Description: Set the expander to use mnemonics */ +/* Rexx Args: Pointer to the widget */ +/* Flag */ +/*----------------------------------------------------------------------------*/ + +APIRET APIENTRY GrxExpanderUseUnderline(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) +{ + GtkWidget *myWidget; + gboolean flag; + + /* Check for valid arguments */ + if (GrxCheckArgs(2, Argc, Argv)) { + return RXFUNC_BADCALL; + } + + /* Initialize function parameters */ + sscanf(Argv[0].strptr, "%p", &myWidget); + sscanf(Argv[1].strptr, "%d", &flag); + + gtk_expander_set_use_underline(GTK_EXPANDER(myWidget), flag); + + /* Set up the REXX return code */ + *(Retstr->strptr) = '0'; + Retstr->strlength = 1; + + return RXFUNC_OK; +} + + +/*----------------------------------------------------------------------------*/ +/* Rexx External Function: GrxExpanderSetSpacing */ +/* Description: Set the spacing of the expander. */ +/* Rexx Args: Pointer to the widget */ +/* Spacing */ +/*----------------------------------------------------------------------------*/ + +APIRET APIENTRY GrxExpanderSetSpacing(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) +{ + GtkWidget *myWidget; + gint spacing; + + /* Check for valid arguments */ + if (GrxCheckArgs(2, Argc, Argv)) { + return RXFUNC_BADCALL; + } + + /* Initialize function parameters */ + sscanf(Argv[0].strptr, "%p", &myWidget); + sscanf(Argv[1].strptr, "%d", &spacing); + + if (GTK_IS_WIDGET(GTK_OBJECT(myWidget))) { + gtk_expander_set_spacing(GTK_EXPANDER(myWidget), spacing); + } + + /* Set up the REXX return code */ + *(Retstr->strptr) = '0'; + Retstr->strlength = 1; + + return RXFUNC_OK; +} + + +/*----------------------------------------------------------------------------*/ +/* Rexx External Function: GrxExpanderConnectSignal */ +/* Description: Connect a signal function to the Widget */ +/* Rexx Args: Pointer to the widget */ +/* Signal name */ +/*----------------------------------------------------------------------------*/ + +APIRET APIENTRY GrxExpanderConnectSignal(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) +{ + GtkWidget *myWidget; + + /* Check for valid arguments */ + if (GrxCheckArgs(2, Argc, Argv)) { + return RXFUNC_BADCALL; + } + + /* Initialize function parameters */ + sscanf(Argv[0].strptr, "%p", &myWidget); + + if (GTK_IS_WIDGET(GTK_OBJECT(myWidget))) { + if (strcmp(Argv[1].strptr, "activate") == 0) { + g_signal_connect(G_OBJECT(myWidget), "activate", + G_CALLBACK(signal_func_1), "signal_activate"); + } + else { + return RXFUNC_BADCALL; + } + } + else { + return RXFUNC_BADCALL; + } + + /* Set up the REXX return code */ + *(Retstr->strptr) = '0'; + Retstr->strlength = 1; + + return RXFUNC_OK; +} + Property changes on: sandbox/david/grxexpander.c ___________________________________________________________________ Name: svn:eol-style + native Modified: sandbox/david/grxfixed.c =================================================================== --- sandbox/david/grxfixed.c 2008-01-13 20:22:04 UTC (rev 2197) +++ sandbox/david/grxfixed.c 2008-01-13 20:47:55 UTC (rev 2198) @@ -69,8 +69,9 @@ /* Rexx Args: None */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxFixedNew(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxFixedNew(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; @@ -98,8 +99,9 @@ /* ypos */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxFixedPut(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxFixedPut(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *fixedWidget, *myWidget; gint xpos, ypos; @@ -136,8 +138,9 @@ /* ypos */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxFixedMove(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxFixedMove(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *fixedWidget, *myWidget; gint xpos, ypos; Modified: sandbox/david/grxtable.c =================================================================== --- sandbox/david/grxtable.c 2008-01-13 20:22:04 UTC (rev 2197) +++ sandbox/david/grxtable.c 2008-01-13 20:47:55 UTC (rev 2198) @@ -71,8 +71,9 @@ /* Homogeneous flag */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxTableNew(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxTableNew(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; gint rows, cols; @@ -111,8 +112,9 @@ /* yPadding */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxTableAttach(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxTableAttach(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *tableWidget, *myWidget; gint left, right, top, bottom; @@ -170,8 +172,9 @@ /* Spacing */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxTableSetRowSpacings(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxTableSetRowSpacings(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; gint spacing; @@ -203,8 +206,9 @@ /* Spacing */ /*----------------------------------------------------------------------------*/ -APIRET APIENTRY GrxTableSetColSpacings(char * Name, size_t Argc, RXSTRING Argv[], - char * Queuename, PRXSTRING Retstr) +APIRET APIENTRY GrxTableSetColSpacings(const char * Name, + const size_t Argc, const RXSTRING Argv[], + const char * Queuename, PRXSTRING Retstr) { GtkWidget *myWidget; gint spacing; Modified: sandbox/david/rexxgtk.c =================================================================== --- sandbox/david/rexxgtk.c 2008-01-13 20:22:04 UTC (rev 2197) +++ sandbox/david/rexxgtk.c 2008-01-13 20:47:55 UTC (rev 2198) @@ -266,22 +266,26 @@ "GrxWindowSetTitle", "GrxWindowStart", "GrxWindowConnectSignal", - "GrxPanedAdd1", "GrxPanedAdd2", "GrxPanedPack1", "GrxPanedPack2", "GrxHPanedNew", "GrxVPanedNew", - "GrxTableNew", "GrxTableAttach", "GrxTableSetRowSpacings", "GrxTableSetColSpacings", - "GrxFixedNew", "GrxFixedPut", "GrxFixedMove", + "GrxExpanderNew", + "GrxExpanderSetExpanded", + "GrxExpanderSetLabel", + "GrxExpanderGetLabel", + "GrxExpanderUseUnderline", + "GrxExpanderSetSpacing", + "GrxExpanderConnectSignal", }; Modified: sandbox/david/rexxgtk.cls =================================================================== --- sandbox/david/rexxgtk.cls 2008-01-13 20:22:04 UTC (rev 2197) +++ sandbox/david/rexxgtk.cls 2008-01-13 20:47:55 UTC (rev 2198) @@ -902,3 +902,73 @@ call GrxFixedMove self~pointer, widget~pointer, xpos, ypos return + +/*============================================================================*/ +/* Class: Expander */ +/*============================================================================*/ + +::class GtkExpander public subclass GtkContainer + +::method init +use strict arg label +self~pointer = GrxExpanderNew(label) +return + +::method 'expanded=' +use strict arg flag +call GrxExpanderSetExpanded self~pointer, flag +return + +::method set_expanded +use strict arg self~expanded +return + +::method label +use strict arg +call GrxExpanderGetLabel self~pointer +return + +::method get_label +use strict arg +return self~label + +::method 'label=' +use strict arg label +call GrxExpanderSetLabel self~pointer, label +return + +::method set_label +use strict arg self~label +return + +::method 'use_underline=' +use strict arg flag +call GrxExpanderUseUnderline self~pointer, flag +return + +::method set_use_underline +use strict arg self~use_underline +return + +::method 'spacing=' +use strict arg spacing +call GrxExpanderSetSpacing self~pointer, spacing +return + +::method set_spacing +use strict arg self~spacing +return + + +/*============================================================================*/ +/* Class: Expander_With_Mnemonic */ +/*============================================================================*/ + +::class GtkExpander_With_Mnemonic public subclass GtkExpander + +::method init +use arg label = '' +self~init:super(label) +self~use_underline = .true +return + Added: sandbox/david/test3-6.rex =================================================================== --- sandbox/david/test3-6.rex (rev 0) +++ sandbox/david/test3-6.rex 2008-01-13 20:47:55 UTC (rev 2198) @@ -0,0 +1,74 @@ +#!/usr/bin/rexx +/*----------------------------------------------------------------------------*/ +/* */ +/* 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...> */ +/* */ +/*----------------------------------------------------------------------------*/ + + +-- Derived from Listing 3-6 +-- Foundations of GTK+ Development +-- by Andrew Krause + +window = .myMainWindow~new('GTK_WINDOW_TOPLEVEL') +window~set_title('Expander') +window~connect_signal("destroy") +window~set_border_width(10) +window~set_size_request(200, 100) + +expander = .GtkExpander_With_Mnemonic~new('Click _Me For More!') +label = .GtkLabel~new('Hide me or show me,' || '0A'x || 'that is your choice') + +expander~add(label) +expander~set_expanded(.true) +window~add(expander) + +window~show_all() + +call gtk_main + +return + + +::requires 'rexxgtk.cls' + +::class myMainWindow subclass GtkWindow + +::method signal_destroy +.local['GTK_Quit'] = .true +return + Property changes on: sandbox/david/test3-6.rex ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |