comparison lwlib/lwlib-Xm.c @ 217:d44af0c54775 r20-4b7

Import from CVS: tag r20-4b7
author cvs
date Mon, 13 Aug 2007 10:08:34 +0200
parents 41ff10fd062f
children f220cc83d72e
comparison
equal deleted inserted replaced
216:43306a74e31c 217:d44af0c54775
374 static void 374 static void
375 xm_update_toggle (widget_instance* instance, Widget widget, widget_value* val) 375 xm_update_toggle (widget_instance* instance, Widget widget, widget_value* val)
376 { 376 {
377 Arg al [2]; 377 Arg al [2];
378 XtRemoveAllCallbacks (widget, XmNvalueChangedCallback); 378 XtRemoveAllCallbacks (widget, XmNvalueChangedCallback);
379 #ifndef ENERGIZE
380 XtAddCallback (widget, XmNvalueChangedCallback, xm_generic_callback, 379 XtAddCallback (widget, XmNvalueChangedCallback, xm_generic_callback,
381 instance); 380 instance);
382 #else
383 XtAddCallback (widget, XmNvalueChangedCallback,
384 xm_internal_update_other_instances, instance);
385 #endif
386 XtSetArg (al [0], XmNset, val->selected); 381 XtSetArg (al [0], XmNset, val->selected);
387 XtSetArg (al [1], XmNalignment, XmALIGNMENT_BEGINNING); 382 XtSetArg (al [1], XmNalignment, XmALIGNMENT_BEGINNING);
388 XtSetValues (widget, al, 2); 383 XtSetValues (widget, al, 2);
389 } 384 }
390 385
1578 1573
1579 #endif /* SCROLLBARS_MOTIF */ 1574 #endif /* SCROLLBARS_MOTIF */
1580 1575
1581 /* Table of functions to create widgets */ 1576 /* Table of functions to create widgets */
1582 1577
1583 #ifdef ENERGIZE
1584
1585 /* interface with the XDesigner generated functions */
1586 typedef Widget (*widget_maker) (Widget);
1587 extern Widget create_project_p_sheet (Widget parent);
1588 extern Widget create_debugger_p_sheet (Widget parent);
1589 extern Widget create_breaklist_p_sheet (Widget parent);
1590 extern Widget create_le_browser_p_sheet (Widget parent);
1591 extern Widget create_class_browser_p_sheet (Widget parent);
1592 extern Widget create_call_browser_p_sheet (Widget parent);
1593 extern Widget create_build_dialog (Widget parent);
1594 extern Widget create_editmode_dialog (Widget parent);
1595 extern Widget create_search_dialog (Widget parent);
1596 extern Widget create_project_display_dialog (Widget parent);
1597
1598 static Widget
1599 make_one (widget_instance* instance, widget_maker fn)
1600 {
1601 Widget result;
1602 Arg al [64];
1603 int ac = 0;
1604
1605 if (instance->pop_up_p)
1606 {
1607 XtSetArg (al [ac], XmNallowShellResize, TRUE); ac++;
1608 result = XmCreateDialogShell (instance->parent, "dialog", NULL, 0);
1609 XtAddCallback (result, XmNpopdownCallback, &xm_nosel_callback,
1610 (XtPointer) instance);
1611 (*fn) (result);
1612 }
1613 else
1614 {
1615 result = (*fn) (instance->parent);
1616 XtRealizeWidget (result);
1617 }
1618 return result;
1619 }
1620
1621 static Widget
1622 make_project_p_sheet (widget_instance* instance)
1623 {
1624 return make_one (instance, create_project_p_sheet);
1625 }
1626
1627 static Widget
1628 make_debugger_p_sheet (widget_instance* instance)
1629 {
1630 return make_one (instance, create_debugger_p_sheet);
1631 }
1632
1633 static Widget
1634 make_breaklist_p_sheet (widget_instance* instance)
1635 {
1636 return make_one (instance, create_breaklist_p_sheet);
1637 }
1638
1639 static Widget
1640 make_le_browser_p_sheet (widget_instance* instance)
1641 {
1642 return make_one (instance, create_le_browser_p_sheet);
1643 }
1644
1645 static Widget
1646 make_class_browser_p_sheet (widget_instance* instance)
1647 {
1648 return make_one (instance, create_class_browser_p_sheet);
1649 }
1650
1651 static Widget
1652 make_call_browser_p_sheet (widget_instance* instance)
1653 {
1654 return make_one (instance, create_call_browser_p_sheet);
1655 }
1656
1657 static Widget
1658 make_build_dialog (widget_instance* instance)
1659 {
1660 return make_one (instance, create_build_dialog);
1661 }
1662
1663 static Widget
1664 make_editmode_dialog (widget_instance* instance)
1665 {
1666 return make_one (instance, create_editmode_dialog);
1667 }
1668
1669 static Widget
1670 make_search_dialog (widget_instance* instance)
1671 {
1672 return make_one (instance, create_search_dialog);
1673 }
1674
1675 static Widget
1676 make_project_display_dialog (widget_instance* instance)
1677 {
1678 return make_one (instance, create_project_display_dialog);
1679 }
1680
1681 #endif /* ENERGIZE */
1682
1683 widget_creation_entry 1578 widget_creation_entry
1684 xm_creation_table [] = 1579 xm_creation_table [] =
1685 { 1580 {
1686 #ifdef MENUBARS_MOTIF 1581 #ifdef MENUBARS_MOTIF
1687 {"menubar", make_menubar}, 1582 {"menubar", make_menubar},
1689 #endif 1584 #endif
1690 #ifdef SCROLLBARS_MOTIF 1585 #ifdef SCROLLBARS_MOTIF
1691 {"vertical-scrollbar", make_vertical_scrollbar}, 1586 {"vertical-scrollbar", make_vertical_scrollbar},
1692 {"horizontal-scrollbar", make_horizontal_scrollbar}, 1587 {"horizontal-scrollbar", make_horizontal_scrollbar},
1693 #endif 1588 #endif
1694 #ifdef ENERGIZE
1695 {"project_p_sheet", make_project_p_sheet},
1696 {"debugger_p_sheet", make_debugger_p_sheet},
1697 {"breaklist_psheet", make_breaklist_p_sheet},
1698 {"leb_psheet", make_le_browser_p_sheet},
1699 {"class_browser_psheet", make_class_browser_p_sheet},
1700 {"ctree_browser_psheet", make_call_browser_p_sheet},
1701 {"build", make_build_dialog},
1702 {"editmode", make_editmode_dialog},
1703 {"search", make_search_dialog},
1704 {"project_display", make_project_display_dialog},
1705 #endif /* ENERGIZE */
1706 {NULL, NULL} 1589 {NULL, NULL}
1707 }; 1590 };
1708 1591
1709 /* Destruction of instances */ 1592 /* Destruction of instances */
1710 void 1593 void
1892 } 1775 }
1893 1776
1894 static void 1777 static void
1895 xm_generic_callback (Widget widget, XtPointer closure, XtPointer call_data) 1778 xm_generic_callback (Widget widget, XtPointer closure, XtPointer call_data)
1896 { 1779 {
1897 #if !defined (ENERGIZE) && (defined (MENUBARS_MOTIF) || defined (DIALOGS_MOTIF)) 1780 #if (defined (MENUBARS_MOTIF) || defined (DIALOGS_MOTIF))
1898 /* We want the selected status to change only when we decide it 1781 /* We want the selected status to change only when we decide it
1899 should change. Yuck but correct. */ 1782 should change. Yuck but correct. */
1900 if (XtClass (widget) == xmToggleButtonWidgetClass 1783 if (XtClass (widget) == xmToggleButtonWidgetClass
1901 || XtClass (widget) == xmToggleButtonGadgetClass) 1784 || XtClass (widget) == xmToggleButtonGadgetClass)
1902 { 1785 {