From: <wda...@us...> - 2008-01-14 16:13:46
|
Revision: 2207 http://oorexx.svn.sourceforge.net/oorexx/?rev=2207&view=rev Author: wdashley Date: 2008-01-14 08:13:51 -0800 (Mon, 14 Jan 2008) Log Message: ----------- ArtifactID: None Comment: Added the API to create a new stock button and a test script. Modified Paths: -------------- sandbox/david/grxbutton.c sandbox/david/rexxgtk.c sandbox/david/rexxgtk.cls Added Paths: ----------- sandbox/david/test4-1.rex Modified: sandbox/david/grxbutton.c =================================================================== --- sandbox/david/grxbutton.c 2008-01-14 15:48:55 UTC (rev 2206) +++ sandbox/david/grxbutton.c 2008-01-14 16:13:51 UTC (rev 2207) @@ -112,6 +112,34 @@ /*----------------------------------------------------------------------------*/ +/* Rexx External Function: GrxButtonNewFromStock */ +/* Description: Create a push button. */ +/* Rexx Args: Button type */ +/*----------------------------------------------------------------------------*/ + +APIRET APIENTRY GrxButtonNewFromStock(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_button_new_from_stock(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: GrxButtonSetLabel */ /* Description: Set the label of the button. */ /* Rexx Args: Pointer to the widget */ Modified: sandbox/david/rexxgtk.c =================================================================== --- sandbox/david/rexxgtk.c 2008-01-14 15:48:55 UTC (rev 2206) +++ sandbox/david/rexxgtk.c 2008-01-14 16:13:51 UTC (rev 2207) @@ -179,6 +179,7 @@ "GrxButtonSetLabel", "GrxButtonGetLabel", "GrxButtonUseUnderline", + "GrxButtonNewFromStock", "GrxButtonConnectSignal", "GrxCheckButtonNew", "GrxCheckButtonGetState", Modified: sandbox/david/rexxgtk.cls =================================================================== --- sandbox/david/rexxgtk.cls 2008-01-14 15:48:55 UTC (rev 2206) +++ sandbox/david/rexxgtk.cls 2008-01-14 16:13:51 UTC (rev 2207) @@ -649,7 +649,21 @@ self~label = label return +/*============================================================================*/ +/* Class: Button_FromStock */ +/*============================================================================*/ +::class GtkButton_From_Stock public subclass GtkButton + +::method init +use strict arg stockid +self~pointer = GrxButtonNewFromStock(stockid) +if self~pointer = 0 then do + raise syntax 93.900 array ('A button with the spcified stockid was not found.') + end +return + + /*============================================================================*/ /* Class: Checkbutton */ /*============================================================================*/ Added: sandbox/david/test4-1.rex =================================================================== --- sandbox/david/test4-1.rex (rev 0) +++ sandbox/david/test4-1.rex 2008-01-14 16:13:51 UTC (rev 2207) @@ -0,0 +1,81 @@ +#!/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 4-1 +-- Foundations of GTK+ Development +-- by Andrew Krause + +window = .myMainWindow~new('GTK_WINDOW_TOPLEVEL') +window~set_title('Stock Buttons') +window~connect_signal("destroy") +window~set_border_width(10) +window~set_size_request(250, 100) + +window~connect_signal("destroy") + +button = .MyButton~new('gtk-close') + +button~connect_signal("clicked") + +window~add(button) +window~show_all() + +call gtk_main +return + + +::requires 'rexxgtk.cls' + +::class myMainWindow subclass GtkWindow + +::method signal_destroy +.local['GTK_Quit'] = .true +return + +::class MyButton subclass GtkButton_From_Stock + +::method signal_clicked +widgetpointer = upper(GrxWidgetGetTopLevel(self~pointer)) +widget = .local['GTK_Database']~at(widgetpointer) +widget~destroy() +return + Property changes on: sandbox/david/test4-1.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. |