home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / cmd / xfe / XfeWidgets / Xfe / TempTwo.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  23.3 KB  |  761 lines

  1. /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  *
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18. /*-----------------------------------------*/
  19. /*                                                                        */
  20. /* Name:        <Xfe/TempTwo.c>                                            */
  21. /* Description:    XfeTempTwo widget source.                                */
  22. /* Author:        Ramiro Estrugo <ramiro@netscape.com>                    */
  23. /*                                                                        */
  24. /*----------------------------------------------------------------------*/
  25.  
  26.  
  27. #include <stdio.h>
  28.  
  29. #include <Xfe/TempTwoP.h>
  30.  
  31. /* Possible children classes */
  32. #include <Xfe/Label.h>
  33. #include <Xfe/Button.h>
  34. #include <Xfe/Cascade.h>
  35.  
  36. #include <Xm/Separator.h>
  37. #include <Xm/SeparatoG.h>
  38.  
  39. #define MESSAGE1 "Widget is not an XfeTempTwo."
  40. #define MESSAGE2 "XfeTemptwo can only have XfeButton & XmSeparator children."
  41.  
  42. /*----------------------------------------------------------------------*/
  43. /*                                                                        */
  44. /* Core class methods                                                    */
  45. /*                                                                        */
  46. /*----------------------------------------------------------------------*/
  47. static void        ClassPartInitialize    (WidgetClass);
  48. static void     Initialize            (Widget,Widget,ArgList,Cardinal *);
  49. static void     Destroy                (Widget);
  50. static Boolean    SetValues            (Widget,Widget,Widget,ArgList,Cardinal *);
  51. static void        GetValuesHook        (Widget,ArgList,Cardinal *);
  52.  
  53. /*----------------------------------------------------------------------*/
  54. /*                                                                        */
  55. /* Constraint class methods                                                */
  56. /*                                                                        */
  57. /*----------------------------------------------------------------------*/
  58. static void        ConstraintInitialize(Widget,Widget,ArgList,Cardinal *);
  59. static Boolean    ConstraintSetValues    (Widget,Widget,Widget,ArgList,Cardinal *);
  60. static void     ConstraintDestroy    (Widget);
  61.  
  62. /*----------------------------------------------------------------------*/
  63. /*                                                                        */
  64. /* XfeManager class methods                                                */
  65. /*                                                                        */
  66. /*----------------------------------------------------------------------*/
  67. static void        PreferredGeometry    (Widget,Dimension *,Dimension *);
  68. static Boolean    AcceptChild            (Widget);
  69. static Boolean    InsertChild            (Widget);
  70. static Boolean    DeleteChild            (Widget);
  71. static void        ChangeManaged        (Widget);
  72. static void        PrepareComponents    (Widget,int);
  73. static void        LayoutComponents    (Widget);
  74. static void        LayoutChildren        (Widget);
  75. static void        DrawComponents        (Widget,XEvent *,Region,XRectangle *);
  76.  
  77. /*----------------------------------------------------------------------*/
  78. /*                                                                        */
  79. /* XfeTempTwo class methods                                                */
  80. /*                                                                        */
  81. /*----------------------------------------------------------------------*/
  82. static void    LayoutString            (Widget);
  83. static void    DrawString                (Widget,XEvent *,Region,XRectangle *);
  84.  
  85. /*----------------------------------------------------------------------*/
  86. /*                                                                        */
  87. /* XfeTempTwo action procedures                                            */
  88. /*                                                                        */
  89. /*----------------------------------------------------------------------*/
  90. static void     BtnUp                (Widget,XEvent *,char **,Cardinal *);
  91. static void     BtnDown                (Widget,XEvent *,char **,Cardinal *);
  92.  
  93. /*----------------------------------------------------------------------*/
  94. /*                                                                        */
  95. /* Resource callprocs                                                    */
  96. /*                                                                        */
  97. /*----------------------------------------------------------------------*/
  98. static void    DefaultSashColor        (Widget,int,XrmValue *);
  99.  
  100. /*----------------------------------------------------------------------*/
  101. /*                                                                        */
  102. /* XfeTempTwo resources                                                    */
  103. /*                                                                        */
  104. /*----------------------------------------------------------------------*/
  105. static XtResource resources[] =     
  106. {                    
  107.     /* Cursor resources */
  108.     {
  109.         XmNhorizontalCursor,
  110.         XmCHorizontalCursor,
  111.         XmRCursor,
  112.         sizeof(Cursor),
  113.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . horizontal_cursor),
  114.         XmRString, 
  115.         "sb_h_double_arrow"
  116.     },
  117.     {
  118.         XmNverticalCursor,
  119.         XmCVerticalCursor,
  120.         XmRCursor,
  121.         sizeof(Cursor),
  122.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . vertical_cursor),
  123.         XmRString, 
  124.         "sb_v_double_arrow"
  125.     },
  126.  
  127.     /* Color resources */
  128.     {
  129.         XmNsashColor,
  130.         XmCSashColor,
  131.         XmRPixel,
  132.         sizeof(Pixel),
  133.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . sash_color),
  134.         XmRCallProc, 
  135.         (XtPointer) _XfeCallProcCopyForeground
  136.     },
  137.  
  138.     { 
  139.         XmNseparatorThickness,
  140.         XmCSeparatorThickness,
  141.         XmRInt,
  142.         sizeof(int),
  143.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . separator_thickness),
  144.         XmRImmediate, 
  145.         (XtPointer) 50
  146.     },
  147.     { 
  148.         XmNseparatorType,
  149.         XmCSeparatorType,
  150.         XmRSeparatorType,
  151.         sizeof(unsigned char),
  152.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . separator_type),
  153.         XmRImmediate, 
  154.         (XtPointer) XmSHADOW_ETCHED_IN
  155.     },
  156.     { 
  157.         XmNspacing,
  158.         XmCSpacing,
  159.         XmRHorizontalDimension,
  160.         sizeof(Dimension),
  161.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . spacing),
  162.         XmRImmediate, 
  163.         (XtPointer) 1
  164.     },
  165.  
  166.     { 
  167.         XmNbuttonLayout,
  168.         XmCButtonLayout,
  169.         XmRButtonLayout,
  170.         sizeof(unsigned char),
  171.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . button_layout),
  172.         XmRImmediate, 
  173.         (XtPointer) XmBUTTON_LABEL_ONLY
  174.     },
  175.     { 
  176.         XmNorientation,
  177.         XmCOrientation,
  178.         XmROrientation,
  179.         sizeof(unsigned char),
  180.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . orientation),
  181.         XmRImmediate, 
  182.         (XtPointer) XmHORIZONTAL
  183.     },
  184.  
  185.     { 
  186.         XmNraised,
  187.         XmCRaised,
  188.         XmRBoolean,
  189.         sizeof(Boolean),
  190.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . raised),
  191.         XmRImmediate, 
  192.         (XtPointer) False
  193.     },
  194.     { 
  195.         XmNraiseBorderThickness,
  196.         XmCRaiseBorderThickness,
  197.         XmRHorizontalDimension,
  198.         sizeof(Dimension),
  199.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . raise_border_thickness),
  200.         XmRImmediate, 
  201.         (XtPointer) 0
  202.     },
  203.     {
  204.         XmNchildUsePreferredHeight,
  205.         XmCChildUsePreferredHeight,
  206.         XmRBoolean,
  207.         sizeof(Boolean),
  208.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . child_use_pref_height),
  209.         XmRImmediate, 
  210.         (XtPointer) False
  211.     },
  212.     {
  213.         XmNchildUsePreferredWidth,
  214.         XmCChildUsePreferredWidth,
  215.         XmRBoolean,
  216.         sizeof(Boolean),
  217.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . child_use_pref_width),
  218.         XmRImmediate, 
  219.         (XtPointer) False
  220.     },
  221.  
  222.     /* Force all the margins to 0 */
  223.     { 
  224.         XmNmarginBottom,
  225.         XmCMarginBottom,
  226.         XmRVerticalDimension,
  227.         sizeof(Dimension),
  228.         XtOffsetOf(XfeTempTwoRec , xfe_manager . margin_bottom),
  229.         XmRImmediate, 
  230.         (XtPointer) 0
  231.     },
  232.     { 
  233.         XmNmarginLeft,
  234.         XmCMarginLeft,
  235.         XmRHorizontalDimension,
  236.         sizeof(Dimension),
  237.         XtOffsetOf(XfeTempTwoRec , xfe_manager . margin_left),
  238.         XmRImmediate, 
  239.         (XtPointer) 0
  240.     },
  241.     { 
  242.         XmNmarginRight,
  243.         XmCMarginRight,
  244.         XmRHorizontalDimension,
  245.         sizeof(Dimension),
  246.         XtOffsetOf(XfeTempTwoRec , xfe_manager . margin_right),
  247.         XmRImmediate, 
  248.         (XtPointer) 0
  249.     },
  250.     { 
  251.         XmNmarginTop,
  252.         XmCMarginTop,
  253.         XmRVerticalDimension,
  254.         sizeof(Dimension),
  255.         XtOffsetOf(XfeTempTwoRec , xfe_manager . margin_top),
  256.         XmRImmediate, 
  257.         (XtPointer) 0
  258.     },
  259. };   
  260.  
  261. /*----------------------------------------------------------------------*/
  262. /*                                                                        */
  263. /* XfeTempTwo synthetic resources                                        */
  264. /*                                                                        */
  265. /*----------------------------------------------------------------------*/
  266. static XmSyntheticResource synthetic_resources[] =
  267. {
  268.     { 
  269.         XmNspacing,
  270.         sizeof(Dimension),
  271.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . spacing),
  272.         _XmFromHorizontalPixels,
  273.         _XmToHorizontalPixels 
  274.     },
  275.     { 
  276.         XmNraiseBorderThickness,
  277.         sizeof(Dimension),
  278.         XtOffsetOf(XfeTempTwoRec , xfe_temp_two . raise_border_thickness),
  279.         _XmFromHorizontalPixels,
  280.         _XmToHorizontalPixels 
  281.     },
  282. };
  283.  
  284. /*----------------------------------------------------------------------*/
  285. /*                                                                        */
  286. /* XfeTempTwo constraint resources                                        */
  287. /*                                                                        */
  288. /*----------------------------------------------------------------------*/
  289. static XtResource constraint_resources[] = 
  290. {
  291.     { 
  292.         XmNmaxHeight,
  293.         XmCMaxHeight,
  294.         XmRDimension,
  295.         sizeof(Dimension),
  296.         XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . max_height),
  297.         XmRImmediate,
  298.         (XtPointer) 65535
  299.     },
  300.     { 
  301.         XmNmaxWidth,
  302.         XmCMaxWidth,
  303.         XmRDimension,
  304.         sizeof(Dimension),
  305.         XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . max_width),
  306.         XmRImmediate,
  307.         (XtPointer) 65535
  308.     },
  309.     { 
  310.         XmNminHeight,
  311.         XmCMinHeight,
  312.         XmRDimension,
  313.         sizeof(Dimension),
  314.         XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . min_height),
  315.         XmRImmediate,
  316.         (XtPointer) 0
  317.     },
  318.     { 
  319.         XmNminWidth,
  320.         XmCMinWidth,
  321.         XmRDimension,
  322.         sizeof(Dimension),
  323.         XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . min_width),
  324.         XmRImmediate,
  325.         (XtPointer) 0
  326.     },
  327. };   
  328.  
  329. /*----------------------------------------------------------------------*/
  330. /*                                                                        */
  331. /* XfeTempTwo constraint synthetic resources                            */
  332. /*                                                                        */
  333. /*----------------------------------------------------------------------*/
  334. static XmSyntheticResource constraint_synthetic_resources[] =
  335. {
  336.     { 
  337.         XmNmaxWidth,
  338.         sizeof(Dimension),
  339.         XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . max_width),
  340.         _XmFromHorizontalPixels,
  341.         _XmToHorizontalPixels 
  342.     },
  343.     { 
  344.         XmNmaxWidth,
  345.         sizeof(Dimension),
  346.         XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . max_width),
  347.         _XmFromHorizontalPixels,
  348.         _XmToHorizontalPixels 
  349.     },
  350.     { 
  351.         XmNmaxHeight,
  352.         sizeof(Dimension),
  353.         XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . max_height),
  354.         _XmFromVerticalPixels,
  355.         _XmToVerticalPixels 
  356.     },
  357.     { 
  358.         XmNmaxHeight,
  359.         sizeof(Dimension),
  360.         XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . max_height),
  361.         _XmFromVerticalPixels,
  362.         _XmToVerticalPixels 
  363.     },
  364. };
  365.  
  366. /*----------------------------------------------------------------------*/
  367. /*                                                                        */
  368. /* XfeTempTwo actions                                                    */
  369. /*                                                                        */
  370. /*----------------------------------------------------------------------*/
  371. static XtActionsRec actions[] = 
  372. {
  373.     { "BtnDown",            BtnDown                },
  374.     { "BtnUp",                BtnUp                },
  375. };
  376.  
  377. /*----------------------------------------------------------------------*/
  378. /*                                                                        */
  379. /* Widget Class Record Initialization                                   */
  380. /*                                                                        */
  381. /*----------------------------------------------------------------------*/
  382. _XFE_WIDGET_CLASS_RECORD(temptwo,TempTwo) =
  383. {
  384.     {
  385.         (WidgetClass) &xfeManagerClassRec,        /* superclass            */
  386.         "XfeTempTwo",                            /* class_name            */
  387.         sizeof(XfeTempTwoRec),                    /* widget_size            */
  388.         NULL,                                    /* class_initialize        */
  389.         ClassPartInitialize,                    /* class_part_initialize*/
  390.         FALSE,                                    /* class_inited            */
  391.         Initialize,                                /* initialize            */
  392.         NULL,                                    /* initialize_hook        */
  393.         XtInheritRealize,                        /* realize                */
  394.         actions,                                /* actions                */
  395.         XtNumber(actions),                        /* num_actions            */
  396.         resources,                              /* resources            */
  397.         XtNumber(resources),                    /* num_resources        */
  398.         NULLQUARK,                              /* xrm_class            */
  399.         TRUE,                                   /* compress_motion        */
  400.         XtExposeCompressMaximal,                /* compress_exposure    */
  401.         TRUE,                                   /* compress_enterleave    */
  402.         FALSE,                                  /* visible_interest        */
  403.         Destroy,                                /* destroy                */
  404.         XtInheritResize,                        /* resize                */
  405.         XtInheritExpose,                        /* expose                */
  406.         SetValues,                              /* set_values            */
  407.         NULL,                                   /* set_values_hook        */
  408.         XtInheritSetValuesAlmost,                /* set_values_almost    */
  409.         GetValuesHook,                            /* get_values_hook        */
  410.         NULL,                                   /* access_focus            */
  411.         XtVersion,                              /* version                */
  412.         NULL,                                   /* callback_private        */
  413.         XtInheritTranslations,                    /* tm_table                */
  414.         XtInheritQueryGeometry,                    /* query_geometry        */
  415.         XtInheritDisplayAccelerator,            /* display accelerator    */
  416.         NULL,                                   /* extension            */
  417.     },
  418.     
  419.     /* Composite Part */
  420.     {
  421.         XtInheritGeometryManager,                /* geometry_manager        */
  422.         XtInheritChangeManaged,                    /* change_managed        */
  423.         XtInheritInsertChild,                    /* insert_child            */
  424.         XtInheritDeleteChild,                    /* delete_child            */
  425.         NULL                                    /* extension            */
  426.     },
  427.  
  428.     /* Constraint Part */
  429.     {
  430.         constraint_resources,                    /* constraint res        */
  431.         XtNumber(constraint_resources),            /* num constraint res    */
  432.         sizeof(XfeTempTwoConstraintRec),        /* constraint size        */
  433.         ConstraintInitialize,                    /* init proc            */
  434.         ConstraintDestroy,                        /* destroy proc            */
  435.         ConstraintSetValues,                    /* set values proc        */
  436.         NULL,                                   /* extension            */
  437.     },
  438.  
  439.     /* XmManager Part */
  440.     {
  441.         XtInheritTranslations,                    /* tm_table                */
  442.         synthetic_resources,                    /* syn resources        */
  443.         XtNumber(synthetic_resources),            /* num syn_resources    */
  444.         constraint_synthetic_resources,            /* syn resources        */
  445.         XtNumber(constraint_synthetic_resources),/* num syn_resources    */
  446.         XmInheritParentProcess,                 /* parent_process        */
  447.         NULL,                                   /* extension            */
  448.     },
  449.     
  450.     /* XfeManager Part     */
  451.     {
  452.         XfeInheritBitGravity,                    /* bit_gravity            */
  453.         PreferredGeometry,                        /* preferred_geometry    */
  454.         XfeInheritMinimumGeometry,                /* minimum_geometry        */
  455.         XfeInheritUpdateRect,                    /* update_rect            */
  456.         AcceptChild,                            /* accept_child            */
  457.         InsertChild,                            /* insert_child            */
  458.         DeleteChild,                            /* delete_child            */
  459.         ChangeManaged,                            /* change_managed        */
  460.         PrepareComponents,                        /* prepare_components    */
  461.         LayoutComponents,                        /* layout_components    */
  462.         LayoutChildren,                            /* layout_children        */
  463.         NULL,                                    /* draw_background        */
  464.         XfeInheritDrawShadow,                    /* draw_shadow            */
  465.         DrawComponents,                            /* draw_components        */
  466.         NULL,                                    /* extension            */
  467.     },
  468.  
  469.     /* XfeTempTwo Part */
  470.     {
  471.         LayoutString,                            /* layout_string        */
  472.         DrawString,                                /* draw_string            */
  473.         NULL,                                    /* extension            */
  474.     },
  475. };
  476.  
  477. /*----------------------------------------------------------------------*/
  478. /*                                                                        */
  479. /* xfeTempTwoWidgetClass declaration.                                    */
  480. /*                                                                        */
  481. /*----------------------------------------------------------------------*/
  482. _XFE_WIDGET_CLASS(temptwo,TempTwo);
  483.  
  484. /*----------------------------------------------------------------------*/
  485. /*                                                                        */
  486. /* XfeTempTwo resource call procedures                                    */
  487. /*                                                                        */
  488. /*----------------------------------------------------------------------*/
  489. static void
  490. DefaultSashColor(Widget w,int offset,XrmValue * value)
  491. {
  492.     XfeTempTwoPart *        ttp = _XfeTempTwoPart(w);
  493.     static Pixel            sash_color;
  494.  
  495.     sash_color = _XfemForeground(w);
  496.    
  497.     value->addr = (XPointer) &sash_color;
  498.     value->size = sizeof(sash_color);
  499. }
  500. /*----------------------------------------------------------------------*/
  501.  
  502. /*----------------------------------------------------------------------*/
  503. /*                                                                        */
  504. /* Core Class methods                                                    */
  505. /*                                                                        */
  506. /*----------------------------------------------------------------------*/
  507. static void
  508. ClassPartInitialize(WidgetClass wc)
  509. {
  510.     XfeTempTwoWidgetClass cc = (XfeTempTwoWidgetClass) wc;
  511.     XfeTempTwoWidgetClass sc = (XfeTempTwoWidgetClass) _XfeSuperClass(wc);
  512.  
  513.     /* Resolve inheritance of all XfeTempTwo class methods */
  514.     _XfeResolve(cc,sc,xfe_temp_two_class,layout_string,XfeInheritLayoutString);
  515.     _XfeResolve(cc,sc,xfe_temp_two_class,draw_string,XfeInheritDrawString);
  516. }
  517. /*----------------------------------------------------------------------*/
  518. static void
  519. Initialize(Widget rw,Widget nw,ArgList args,Cardinal *nargs)
  520. {
  521.     XfeTempTwoPart *        ttp = _XfeTempTwoPart(nw);
  522.  
  523.     /* Initialize private members */
  524.     ttp->temp_GC = XfeAllocateSelectionGc(nw,
  525.                                           _XfemShadowThickness(nw),
  526.                                           ttp->sash_color,
  527.                                           _XfeBackgroundPixel(nw));
  528.  
  529.     /* Finish of initialization */
  530.     _XfeManagerChainInitialize(rw,nw,xfeTempTwoWidgetClass);
  531. }
  532. /*----------------------------------------------------------------------*/
  533. static void
  534. Destroy(Widget w)
  535. {
  536.     XfeTempTwoPart *        ttp = _XfeTempTwoPart(w);
  537.  
  538.     XtReleaseGC(w,ttp->temp_GC);
  539. }
  540. /*----------------------------------------------------------------------*/
  541. static Boolean
  542. SetValues(Widget ow,Widget rw,Widget nw,ArgList args,Cardinal *nargs)
  543. {
  544.     XfeTempTwoPart *        np = _XfeTempTwoPart(nw);
  545.     XfeTempTwoPart *        op = _XfeTempTwoPart(ow);
  546.     Boolean                    update_sash_gc = False;
  547.  
  548.     /* shadow_thickness */
  549.     if (_XfemShadowThickness(nw) != _XfemShadowThickness(ow))
  550.     {
  551.         _XfemConfigFlags(nw) |= XfeConfigLE;
  552.  
  553.         update_sash_gc = True;
  554.     }
  555.     
  556.     /* sash_color */
  557.     if (np->sash_color != op->sash_color)
  558.     {
  559.         _XfemConfigFlags(nw) |= XfeConfigLE;
  560.  
  561.         update_sash_gc = True;
  562.     }
  563.  
  564.     /* Update the sash gc if needed */
  565.     if (update_sash_gc)
  566.     {
  567.         XtReleaseGC(nw,np->temp_GC);
  568.  
  569.         np->temp_GC = XfeAllocateSelectionGc(nw,
  570.                                              _XfemShadowThickness(nw),
  571.                                              np->sash_color,
  572.                                              _XfeBackgroundPixel(nw));
  573.     }
  574.  
  575.     return _XfeManagerChainSetValues(ow,rw,nw,xfeTempTwoWidgetClass);
  576. }
  577. /*----------------------------------------------------------------------*/
  578. static void
  579. GetValuesHook(Widget w,ArgList args,Cardinal* nargs)
  580. {
  581.     XfeTempTwoPart *        ttp = _XfeTempTwoPart(w);
  582.     Cardinal                i;
  583.     
  584.     for (i = 0; i < *nargs; i++)
  585.     {
  586. #if 0
  587.         /* label_string */
  588.         if (strcmp(args[i].name,XmNlabelString) == 0)
  589.         {
  590.             *((XtArgVal *) args[i].value) = 
  591.                 (XtArgVal) XmStringCopy(lp->label_string);
  592.         }
  593.         /* font_list */
  594.         else if (strcmp(args[i].name,XmNfontList) == 0)
  595.         {
  596.             *((XtArgVal *) args[i].value) = 
  597.                 (XtArgVal) XmFontListCopy(lp->font_list);
  598.         }      
  599. #endif
  600.     }
  601. }
  602. /*----------------------------------------------------------------------*/
  603.  
  604. /*----------------------------------------------------------------------*/
  605. /*                                                                        */
  606. /* Constraint class methods                                                */
  607. /*                                                                        */
  608. /*----------------------------------------------------------------------*/
  609. static void
  610. ConstraintInitialize(Widget rc,Widget nc,ArgList args,Cardinal *nargs)
  611. {
  612.      Widget                        w = _XfeParent(nc);
  613.     XfeTempTwoPart *            ttp = _XfeTempTwoPart(w);
  614.  
  615.     /* Finish constraint initialization */
  616.     _XfeConstraintChainInitialize(rc,nc,xfeTempTwoWidgetClass);
  617. }
  618. /*----------------------------------------------------------------------*/
  619. static void
  620. ConstraintDestroy(Widget c)
  621. {
  622.      Widget                        w = XtParent(c);
  623.     XfeTempTwoPart *            ttp = _XfeTempTwoPart(w);
  624. }
  625. /*----------------------------------------------------------------------*/
  626. static Boolean
  627. ConstraintSetValues(Widget oc,Widget rc,Widget nc,ArgList args,Cardinal *nargs)
  628. {
  629.     Widget                        w = XtParent(nc);
  630.     XfeTempTwoPart *            ttp = _XfeTempTwoPart(w);
  631.  
  632.      XfeTempTwoConstraintPart *    ncp = _XfeTempTwoConstraintPart(nc);
  633.      XfeTempTwoConstraintPart *    ocp = _XfeTempTwoConstraintPart(oc);
  634.  
  635.     /* Finish constraint set values */
  636.     return _XfeConstraintChainSetValues(oc,rc,nc,xfeTempTwoWidgetClass);
  637. }
  638. /*----------------------------------------------------------------------*/
  639.  
  640. /*----------------------------------------------------------------------*/
  641. /*                                                                        */
  642. /* XfeManager class methods                                                */
  643. /*                                                                        */
  644. /*----------------------------------------------------------------------*/
  645. static void
  646. PreferredGeometry(Widget w,Dimension * width,Dimension * height)
  647. {
  648.     XfeTempTwoPart *        ttp = _XfeTempTwoPart(w);
  649.  
  650. }
  651. /*----------------------------------------------------------------------*/
  652. static Boolean
  653. AcceptChild(Widget child)
  654. {
  655.     return True;
  656. }
  657. /*----------------------------------------------------------------------*/
  658. static Boolean
  659. InsertChild(Widget child)
  660. {
  661.     Widget                    w = XtParent(child);
  662.     XfeTempTwoPart *        ttp = _XfeTempTwoPart(w);
  663.  
  664.     return True;
  665. }
  666. /*----------------------------------------------------------------------*/
  667. static Boolean
  668. DeleteChild(Widget child)
  669. {
  670.     Widget                    w = XtParent(child);
  671.     XfeTempTwoPart *        ttp = _XfeTempTwoPart(w);
  672.  
  673.     return True;
  674. }
  675. /*----------------------------------------------------------------------*/
  676. static void
  677. ChangeManaged(Widget w)
  678. {
  679.     XfeTempTwoPart *        ttp = _XfeTempTwoPart(w);
  680. }
  681. /*----------------------------------------------------------------------*/
  682. static void
  683. PrepareComponents(Widget w,int flags)
  684. {
  685.     if (flags & _XFE_PREPARE_LABEL_STRING)
  686.     {
  687.     }
  688. }
  689. /*----------------------------------------------------------------------*/
  690. static void
  691. LayoutComponents(Widget w)
  692. {
  693.     XfeTempTwoPart *    ttp = _XfeTempTwoPart(w);
  694.     
  695. }
  696. /*----------------------------------------------------------------------*/
  697. static void
  698. LayoutChildren(Widget w)
  699. {
  700.     XfeTempTwoPart *    ttp = _XfeTempTwoPart(w);
  701.     
  702. }
  703. /*----------------------------------------------------------------------*/
  704. static void
  705. DrawComponents(Widget w,XEvent * event,Region region,XRectangle * clip_rect)
  706. {
  707.     XfeTempTwoPart *    ttp = _XfeTempTwoPart(w);
  708.  
  709. }
  710. /*----------------------------------------------------------------------*/
  711.  
  712. /*----------------------------------------------------------------------*/
  713. /*                                                                        */
  714. /* XfeTempTwo class methods                                                */
  715. /*                                                                        */
  716. /*----------------------------------------------------------------------*/
  717. static void
  718. LayoutString(Widget w)
  719. {
  720.     XfeTempTwoPart *    ttp = _XfeTempTwoPart(w);
  721.  
  722. }
  723. /*----------------------------------------------------------------------*/
  724. static void
  725. DrawString(Widget w,XEvent * event,Region region,XRectangle * clip_rect)
  726. {
  727.     XfeTempTwoPart *    ttp = _XfeTempTwoPart(w);
  728.  
  729. }
  730. /*----------------------------------------------------------------------*/
  731.  
  732. /*----------------------------------------------------------------------*/
  733. /*                                                                        */
  734. /* XfeTempTwo action procedures                                            */
  735. /*                                                                        */
  736. /*----------------------------------------------------------------------*/
  737. static void
  738. BtnDown(Widget w,XEvent * event,char ** params,Cardinal * nparams)
  739. {
  740.     XfeTempTwoPart *    ttp = _XfeTempTwoPart(w);
  741. }
  742. /*----------------------------------------------------------------------*/
  743. static void
  744. BtnUp(Widget w,XEvent * event,char ** params,Cardinal * nparams)
  745. {
  746.     XfeTempTwoPart *    ttp = _XfeTempTwoPart(w);
  747. }
  748. /*----------------------------------------------------------------------*/
  749.  
  750. /*----------------------------------------------------------------------*/
  751. /*                                                                        */
  752. /* XfeTempTwo Public Methods                                            */
  753. /*                                                                        */
  754. /*----------------------------------------------------------------------*/
  755. /* extern */ Widget
  756. XfeCreateTempTwo(Widget pw,char * name,Arg * av,Cardinal ac)
  757. {
  758.     return XtCreateWidget(name,xfeTempTwoWidgetClass,pw,av,ac);
  759. }
  760. /*----------------------------------------------------------------------*/
  761.