"Dhanapalan, Kumar" wrote:
>   I am trying to add a checkbox (XmToggleButton) to the first column of my
> Xbae Matrix. Would any one of you please help me with this. Any examples....

In the attachment you'll find the examples/matrix.c program with a couple
of added lines (near the end).

Does this help ?

        Danny
-- 
Danny Backx ([EMAIL PROTECTED] [EMAIL PROTECTED])
Home page :     http://users.skynet.be/danny.backx
Projects:       LessTif (http://www.lesstif.org)
                Oleo    (http://www.gnu.org/software/oleo/oleo.html)
/*
 * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore)
 *                        All rights reserved
 *
 * Copyright © 2001 by the LessTif Developers
 *
 * Permission to use, copy, modify and distribute this material for
 * any purpose and without fee is hereby granted, provided that the
 * above copyright notice and this permission notice appear in all
 * copies, and that the name of Bellcore not be used in advertising
 * or publicity pertaining to this material without the specific,
 * prior written permission of an authorized representative of
 * Bellcore.
 *
 * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX-
 * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT
 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN-
 * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS.  THE
 * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR
 * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY
 * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT-
 * ING TO THE SOFTWARE.
 *
 * $Id: matrix.c,v 1.3 2001/03/09 08:17:34 dannybackx Exp $
 */

#include <stdio.h>

#ifdef HAVE_CONFIG_H
#include <XbaeConfig.h>
#endif
#include <stdlib.h>
#include <Xbae/Matrix.h>
#include <Xm/ToggleB.h>

static String fallback[] = {
        "Matrix*mw.rowLabels:           1, 2, 3, 4, 5, 6",
        "Matrix*mw.columns:             5",
        "Matrix*mw.rows:                6",
        "Matrix*mw.columnWidths:        8, 3, 10, 10, 10",
        "Matrix*mw.allowColumnResize:   True",
        "Matrix*mw.cells:               Orange, 12, Rough, Inches, Large\n"
        "                               Blue, 323, Smooth, Feet, Medium\n"
        "                               Yellow, 456, Bristly, Meters, Large\n"
        "                               Green, 1, Knobby, Miles, Small\n"
        "                               Pink, 33, Hairy, Quarts, Small\n"
        "                               Black, 7, Silky, Gallons, Small",
        "Matrix*mw.cellBackgrounds:     white, antiquewhite, white, white, 
antiquewhite\n"
        "                               white, antiquewhite, white, white, 
antiquewhite\n"
        "                               white, antiquewhite, white, white, 
antiquewhite\n"
        "                               white, antiquewhite, white, white, 
antiquewhite\n"
        "                               white, antiquewhite, white, white, 
antiquewhite\n"
        "                               white, antiquewhite, white, white, 
antiquewhite",
        "Matrix*mw.colors:              blue, black, blue, blue, black\n"
        "                               blue, black, blue, blue, black\n"
        "                               blue, black, blue, blue, black\n"
        "                               blue, black, blue, blue, black\n"
        "                               blue, black, blue, blue, black\n"
        "                               blue, black, blue, blue, black",
        "Matrix*mw.columnLabels:        Color, #, Texture, Measure, Size",
        "Matrix*mw.columnLabelAlignments:alignment_beginning, alignment_center,"
        "                               alignment_beginning, alignment_beginning,"
        "                               alignment_beginning",
        "Matrix*mw.columnAlignments:    alignment_beginning, alignment_end,"
        "                               alignment_beginning, alignment_beginning,"
        "                               alignment_beginning",
        "Matrix*labelFont:              -*-helvetica-bold-r-*-*-14-*-*-*-*-*-*-*",
        "Matrix*fontList:               -*-helvetica-medium-r-*-*-10-*-*-*-*-*-*-*",
        "Matrix*cellHighlightThickness: 2",
        "Matrix*cellShadowThickness:    2",
        "Matrix*cellMarginWidth:        0",
        "Matrix*cellMarginHeight:       3",
        "Matrix*gridType:               grid_cell_shadow",
        "Matrix*cellShadowType:         shadow_in",
        "Matrix*rowLabelColor:          Red",
        "Matrix*columnLabelColor:       Blue",
        "Matrix*mw.buttonLabels:        True",
        "Matrix*mw.allowColumnResize:   True",
        NULL
};

void
labelCB(Widget mw, XtPointer cd, XtPointer cb)
{
    XbaeMatrixLabelActivateCallbackStruct *cbs =
        ( XbaeMatrixLabelActivateCallbackStruct * )cb;

    if( cbs->row_label )
        if( XbaeMatrixIsRowSelected( mw, cbs->row ) )
            XbaeMatrixDeselectRow( mw, cbs->row );
        else
            XbaeMatrixSelectRow( mw, cbs->row );
    else
        if( XbaeMatrixIsColumnSelected( mw, cbs->column ) )
            XbaeMatrixDeselectColumn( mw, cbs->column );
        else
            XbaeMatrixSelectColumn( mw, cbs->column );
}

void Toggle(Widget w, XtPointer client, XtPointer call)
{
        fprintf(stderr, "Toggle !\n");
}

/*
 * Simple example of loaded Matrix
 */

int
main(int argc, char *argv[])
{
    Widget toplevel, mw, button;
    XtAppContext app;

#ifdef USE_EDITRES
    extern void _XEditResCheckMessages();
#endif

    toplevel = XtVaAppInitialize(&app, "Matrix",
                                 NULL, 0,
                                 &argc, argv,
                                 fallback,
                                 NULL);
#ifdef USE_EDITRES
    XtAddEventHandler( toplevel, (EventMask)0, True,
                       _XEditResCheckMessages, NULL);
#endif

    mw = XtVaCreateManagedWidget("mw",
                                 xbaeMatrixWidgetClass, toplevel,
                                 NULL);

    XtAddCallback( mw, XmNlabelActivateCallback, ( XtCallbackProc )labelCB,
                   NULL );

    button = XtVaCreateManagedWidget("toggle me", xmToggleButtonWidgetClass, mw, NULL);
    XbaeMatrixSetCellWidget(mw, 0, 0, button);
    XtAddCallback(button, XmNvalueChangedCallback, Toggle, (XtPointer)0);

    XtRealizeWidget(toplevel);
    XtAppMainLoop(app);
    
    /*NOTREACHED*/
    return 0;
}

Reply via email to