home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / cmd / xfe / XfeWidgets / Xfe / ManagerP.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  24.2 KB  |  553 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/ManagerP.h>                                        */
  21. /* Description:    XfeManager widget private header file.                    */
  22. /* Author:        Ramiro Estrugo <ramiro@netscape.com>                    */
  23. /*                                                                        */
  24. /*----------------------------------------------------------------------*/
  25.  
  26.  
  27.  
  28. #ifndef _XfeManagerP_h_                            /* start ManagerP.h        */
  29. #define _XfeManagerP_h_
  30.  
  31. #include <Xfe/XfeP.h>
  32. #include <Xfe/PrimitiveP.h>
  33. #include <Xfe/Manager.h>
  34. #include <Xfe/PrepareP.h>
  35. #include <Xm/ManagerP.h>
  36.  
  37. #ifdef __cplusplus                                /* start C++            */
  38. extern "C" {
  39. #endif
  40.  
  41. /*----------------------------------------------------------------------*/
  42. /*                                                                        */
  43. /* XfeManagerClassPart                                                    */
  44. /*                                                                        */
  45. /*----------------------------------------------------------------------*/
  46. typedef struct
  47. {
  48.     XfeBitGravityType    bit_gravity;            /* bit_gravity            */
  49.     XfeGeometryProc        preferred_geometry;        /* preferred_geometry    */
  50.     XfeGeometryProc        minimum_geometry;        /* minimum_geometry        */
  51.     XtWidgetProc        update_rect;            /* update_rect            */
  52.     XfeChildFunc        accept_child;            /* accept_child            */
  53.     XfeChildFunc        insert_child;            /* insert_child            */
  54.     XfeChildFunc        delete_child;            /* delete_child            */
  55.     XtWidgetProc        change_managed;            /* change_managed        */
  56.     XfePrepareProc        prepare_components;        /* prepare_components    */
  57.     XtWidgetProc        layout_components;        /* layout_components    */
  58.     XtWidgetProc        layout_children;        /* layout_children        */
  59.     XfeExposeProc        draw_background;        /* draw_background        */
  60.     XfeExposeProc        draw_shadow;            /* draw_shadow            */
  61.     XfeExposeProc        draw_components;        /* draw_components        */
  62.     XtPointer            extension;                /* extension            */
  63.  
  64. } XfeManagerClassPart;
  65.  
  66. /*----------------------------------------------------------------------*/
  67. /*                                                                        */
  68. /* XfeManagerClassRec                                                    */
  69. /*                                                                        */
  70. /*----------------------------------------------------------------------*/
  71. typedef struct _XfeManagerClassRec
  72. {
  73.     CoreClassPart            core_class;
  74.     CompositeClassPart        composite_class;
  75.     ConstraintClassPart        constraint_class;
  76.     XmManagerClassPart        manager_class;
  77.     XfeManagerClassPart        xfe_manager_class;
  78. } XfeManagerClassRec;
  79.  
  80. externalref XfeManagerClassRec xfeManagerClassRec;
  81.  
  82. /*----------------------------------------------------------------------*/
  83. /*                                                                        */
  84. /* XfeManagerPart                                                        */
  85. /*                                                                        */
  86. /*----------------------------------------------------------------------*/
  87. typedef struct _XfeManagerPart
  88. {
  89.     /* Callback Resources */
  90.     XtCallbackList        resize_callback;        /* Widget Resize        */
  91.     XtCallbackList        change_managed_callback;/* Widget Resize        */
  92.     XtCallbackList        layout_callback;        /* Widget Layout Request*/
  93.     
  94.     /* Busy resources */
  95.     Boolean                busy;                    /* Busy  ?                */
  96.     Cursor                busy_cursor;            /* Busy Cursor            */
  97.     Boolean                busy_cursor_on;            /* Busy Cursor On ?        */
  98.  
  99.     /* Misc resources */
  100.     XtEnum                shadow_type;            /* Shadow Type            */
  101.     Boolean                ignore_configure;        /* Ignore Configure        */
  102.  
  103.     /* Geometry resources */
  104.     Boolean                use_preferred_width;    /* use preferred width    */
  105.     Boolean                use_preferred_height;    /* use preferred height    */
  106.  
  107.     /* Margin resources */
  108.     Dimension            margin_left;            /* Margin Left            */
  109.     Dimension            margin_right;            /* Margin Right            */
  110.     Dimension            margin_top;                /* Margin Top            */
  111.     Dimension            margin_bottom;            /* Margin Bottom        */
  112.  
  113.     Dimension            min_width;                /* Min width            */
  114.     Dimension            min_height;                /* Min height            */
  115.  
  116.     /* Read Only Resources */
  117.     Dimension            preferred_width;        /* Preferred Width        */
  118.     Dimension            preferred_height;        /* Preferred Height        */
  119.  
  120.     /* For c++ usage */
  121.     XtPointer            instance_pointer;        /* Instance pointer        */
  122.     
  123.     /* Private Data Members */
  124.     int                    config_flags;            /* Require Geometry        */
  125.     int                    prepare_flags;            /* Require Geometry        */
  126.     Boolean                component_flag;            /* Components Layout ?    */
  127.  
  128.     XRectangle            widget_rect;            /* Widget Rect            */
  129.     XfeDimensionsRec    old_dimensions;            /* Old dimensions        */
  130. } XfeManagerPart;
  131.  
  132. /*----------------------------------------------------------------------*/
  133. /*                                                                        */
  134. /* XfeManagerRec                                                        */
  135. /*                                                                        */
  136. /*----------------------------------------------------------------------*/
  137. typedef struct _XfeManagerRec
  138. {
  139.     CorePart            core;
  140.     CompositePart        composite;
  141.     ConstraintPart        constraint;
  142.     XmManagerPart        manager;
  143.     XfeManagerPart        xfe_manager;
  144. } XfeManagerRec;
  145.  
  146. /*----------------------------------------------------------------------*/
  147. /*                                                                        */
  148. /* XfeManagerConstraintPart                                                */
  149. /*                                                                        */
  150. /*----------------------------------------------------------------------*/
  151. typedef struct _XfeManagerConstraintPart
  152. {
  153.     int                    position_index;            /* Position Index        */
  154.     Boolean                private_component;        /* Private Component    */
  155. } XfeManagerConstraintPart;
  156.  
  157. /*----------------------------------------------------------------------*/
  158. /*                                                                        */
  159. /* XfeManagerConstraintRec                                                */
  160. /*                                                                        */
  161. /*----------------------------------------------------------------------*/
  162. typedef struct _XfeManagerConstraintRec
  163. {
  164.     XmManagerConstraintPart        manager;
  165.     XfeManagerConstraintPart    xfe_manager;
  166. } XfeManagerConstraintRec;
  167.  
  168. /*----------------------------------------------------------------------*/
  169. /*                                                                        */
  170. /* XfeManager Method invocation functions                                */
  171. /*                                                                        */
  172. /*----------------------------------------------------------------------*/
  173. extern void
  174. _XfeManagerChainInitialize        (Widget            rw,
  175.                                  Widget            nw,
  176.                                  WidgetClass    wc);
  177. /*----------------------------------------------------------------------*/
  178. extern Boolean
  179. _XfeManagerChainSetValues        (Widget            ow,
  180.                                  Widget            rw,
  181.                                  Widget            nw,
  182.                                  WidgetClass    wc);
  183. /*----------------------------------------------------------------------*/
  184. extern void
  185. _XfeConstraintChainInitialize    (Widget            rw,
  186.                                  Widget            nw,
  187.                                  WidgetClass    wc);
  188. /*----------------------------------------------------------------------*/
  189. extern Boolean
  190. _XfeConstraintChainSetValues    (Widget            ow,
  191.                                  Widget            rw,
  192.                                  Widget            nw,
  193.                                  WidgetClass    wc);
  194. /*----------------------------------------------------------------------*/
  195. extern void
  196. _XfeManagerPreferredGeometry    (Widget            w,
  197.                                  Dimension *    width_out,
  198.                                  Dimension *    height_out);
  199. /*----------------------------------------------------------------------*/
  200. extern void
  201. _XfeManagerMinimumGeometry        (Widget            w,
  202.                                  Dimension *    width_out,
  203.                                  Dimension *    height_out);
  204. /*----------------------------------------------------------------------*/
  205. extern void
  206. _XfeManagerUpdateRect            (Widget            w);
  207. /*----------------------------------------------------------------------*/
  208. extern Boolean
  209. _XfeManagerAcceptChild            (Widget            child);
  210. /*----------------------------------------------------------------------*/
  211. extern Boolean
  212. _XfeManagerInsertChild            (Widget            child);
  213. /*----------------------------------------------------------------------*/
  214. extern Boolean
  215. _XfeManagerDeleteChild            (Widget            child);
  216. /*----------------------------------------------------------------------*/
  217. extern void
  218. _XfeManagerChangeManaged        (Widget            child);
  219. /*----------------------------------------------------------------------*/
  220. extern void
  221. _XfeManagerPrepareComponents    (Widget            w,
  222.                                  int            flags);
  223. /*----------------------------------------------------------------------*/
  224. extern void
  225. _XfeManagerLayoutComponents        (Widget            w);
  226. /*----------------------------------------------------------------------*/
  227. extern void
  228. _XfeManagerLayoutChildren        (Widget            w);
  229. /*----------------------------------------------------------------------*/
  230. extern void
  231. _XfeManagerDrawBackground        (Widget            w,
  232.                                  XEvent *        event,
  233.                                  Region            region,
  234.                                  XRectangle *    clip_rect);
  235. /*----------------------------------------------------------------------*/
  236. extern void
  237. _XfeManagerDrawComponents        (Widget            w,
  238.                                  XEvent *        event,
  239.                                  Region            region,
  240.                                  XRectangle *    clip_rect);
  241. /*----------------------------------------------------------------------*/
  242. extern void
  243. _XfeManagerDrawShadow            (Widget            w,
  244.                                  XEvent *        event,
  245.                                  Region            region,
  246.                                  XRectangle *    clip_rect);
  247. /*----------------------------------------------------------------------*/
  248.  
  249. /*----------------------------------------------------------------------*/
  250. /*                                                                        */
  251. /* XfeManager private functions                                            */
  252. /*                                                                        */
  253. /*----------------------------------------------------------------------*/
  254. extern void
  255. _XfeManagerChildrenInfo            (Widget            w,
  256.                                  Dimension *    max_width_out,
  257.                                  Dimension *    max_height_out,
  258.                                  Dimension *    total_width_out,
  259.                                  Dimension *    total_height_out,
  260.                                  Cardinal *        num_managed_out,
  261.                                  Cardinal *        num_components_out);
  262. /*----------------------------------------------------------------------*/
  263. extern void
  264. _XfeManagerComponentInfo        (Widget            w,
  265.                                  Dimension *    max_width_out,
  266.                                  Dimension *    max_height_out);
  267. /*----------------------------------------------------------------------*/
  268.  
  269. /*----------------------------------------------------------------------*/
  270. /*                                                                        */
  271. /* XfeManagerWidgetClass bit_gravity access macro                        */
  272. /*                                                                        */
  273. /*----------------------------------------------------------------------*/
  274. #define _XfeManagerAccessBitGravity(w) \
  275. (((XfeManagerWidgetClass) XtClass(w))->xfe_manager_class.bit_gravity)
  276.  
  277. /*----------------------------------------------------------------------*/
  278. /*                                                                        */
  279. /* Xt Composite member access                                            */
  280. /*                                                                        */
  281. /*----------------------------------------------------------------------*/
  282. #define _XfemChildren(w) \
  283. (((CompositeWidget) (w))->composite . children)
  284. /*----------------------------------------------------------------------*/
  285. #define _XfemNumChildren(w) \
  286. (((CompositeWidget) (w))->composite . num_children)
  287. /*----------------------------------------------------------------------*/
  288.  
  289. /*----------------------------------------------------------------------*/
  290. /*                                                                        */
  291. /* Xm Manager member access                                                */
  292. /*                                                                        */
  293. /*----------------------------------------------------------------------*/
  294. #define _XfemAcceleratorWidget(w) \
  295. (((XmManagerWidget) (w))->manager . accelerator_widget)
  296. /*----------------------------------------------------------------------*/
  297. #define _XfemActiveChild(w) \
  298. (((XmManagerWidget) (w))->manager . active_child)
  299. /*----------------------------------------------------------------------*/
  300. #define _XfemBackgroundGC(w) \
  301. (((XmManagerWidget) (w))->manager . background_GC)
  302. /*----------------------------------------------------------------------*/
  303. #define _XfemBottomShadowGC(w) \
  304. (((XmManagerWidget) (w))->manager . bottom_shadow_GC)
  305. /*----------------------------------------------------------------------*/
  306. #define _XfemBottomShadowColor(w) \
  307. (((XmManagerWidget) (w))->manager . bottom_shadow_color)
  308. /*----------------------------------------------------------------------*/
  309. #define _XfemBottomShadowPixmap(w) \
  310. (((XmManagerWidget) (w))->manager . bottom_shadow_pixmap)
  311. /*----------------------------------------------------------------------*/
  312. #define _XfemEligibleForMultiButtonEvent(w) \
  313. (((XmManagerWidget) (w))->manager . eligible_for_multi_button_event)
  314. /*----------------------------------------------------------------------*/
  315. #define _XfemEventHandlerAdded(w) \
  316. (((XmManagerWidget) (w))->manager . event_handler_added)
  317. /*----------------------------------------------------------------------*/
  318. #define _XfemForeground(w) \
  319. (((XmManagerWidget) (w))->manager . foreground)
  320. /*----------------------------------------------------------------------*/
  321. #define _XfemHasFocus(w) \
  322. (((XmManagerWidget) (w))->manager . has_focus)
  323. /*----------------------------------------------------------------------*/
  324. #define _XfemHelpCallback(w) \
  325. (((XmManagerWidget) (w))->manager . help_callback)
  326. /*----------------------------------------------------------------------*/
  327. #define _XfemHighlightGC(w) \
  328. (((XmManagerWidget) (w))->manager . highlight_GC)
  329. /*----------------------------------------------------------------------*/
  330. #define _XfemHighlightColor(w) \
  331. (((XmManagerWidget) (w))->manager . highlight_color)
  332. /*----------------------------------------------------------------------*/
  333. #define _XfemHighlightPixmap(w) \
  334. (((XmManagerWidget) (w))->manager . highlight_pixmap)
  335. /*----------------------------------------------------------------------*/
  336. #define _XfemHighlightedWidget(w) \
  337. (((XmManagerWidget) (w))->manager . highlighted_widget)
  338. /*----------------------------------------------------------------------*/
  339. #define _XfemInitialFocus(w) \
  340. (((XmManagerWidget) (w))->manager . initial_focus)
  341. /*----------------------------------------------------------------------*/
  342. #define _XfemKeyboardList(w) \
  343. (((XmManagerWidget) (w))->manager . keyboard_list)
  344. /*----------------------------------------------------------------------*/
  345. #define _XfemNavigationType(w) \
  346. (((XmManagerWidget) (w))->manager . navigation_type)
  347. /*----------------------------------------------------------------------*/
  348. #define _XfemNumKeyboardEntries(w) \
  349. (((XmManagerWidget) (w))->manager . num_keyboard_entries)
  350. /*----------------------------------------------------------------------*/
  351. #define _XfemPopupHandlerCallback(w) \
  352. (((XmManagerWidget) (w))->manager . popup_handler_callback)
  353. /*----------------------------------------------------------------------*/
  354. #define _XfemSelectedGadget(w) \
  355. (((XmManagerWidget) (w))->manager . selected_gadget)
  356. /*----------------------------------------------------------------------*/
  357. #define _XfemShadowThickness(w) \
  358. (((XmManagerWidget) (w))->manager . shadow_thickness)
  359. /*----------------------------------------------------------------------*/
  360. #define _XfemSizeKeyboardList(w) \
  361. (((XmManagerWidget) (w))->manager . size_keyboard_list)
  362. /*----------------------------------------------------------------------*/
  363. #define _XfemStringDirection(w) \
  364. (((XmManagerWidget) (w))->manager . string_direction)
  365. /*----------------------------------------------------------------------*/
  366. #define _XfemTopShadowGC(w) \
  367. (((XmManagerWidget) (w))->manager . top_shadow_GC)
  368. /*----------------------------------------------------------------------*/
  369. #define _XfemTopShadowColor(w) \
  370. (((XmManagerWidget) (w))->manager . top_shadow_color)
  371. /*----------------------------------------------------------------------*/
  372. #define _XfemTopShadowPixmap(w) \
  373. (((XmManagerWidget) (w))->manager . top_shadow_pixmap)
  374. /*----------------------------------------------------------------------*/
  375. #define _XfemTraversalOn(w) \
  376. (((XmManagerWidget) (w))->manager . traversal_on)
  377. /*----------------------------------------------------------------------*/
  378. #define _XfemUnitType(w) \
  379. (((XmManagerWidget) (w))->manager . unit_type)
  380. /*----------------------------------------------------------------------*/
  381. #define _XfemUserData(w) \
  382. (((XmManagerWidget) (w))->manager . user_data)
  383. /*----------------------------------------------------------------------*/
  384.  
  385.  
  386. /*----------------------------------------------------------------------*/
  387. /*                                                                        */
  388. /* XfeManager member access                                                */
  389. /*                                                                        */
  390. /*----------------------------------------------------------------------*/
  391. #define _XfemChangeManagedCallback(w) \
  392. (((XfeManagerWidget) (w))->xfe_manager . change_managed_callback)
  393. /*----------------------------------------------------------------------*/
  394. #define _XfemResizeCallback(w) \
  395. (((XfeManagerWidget) (w))->xfe_manager . resize_callback)
  396. /*----------------------------------------------------------------------*/
  397. #define _XfemLayoutCallback(w) \
  398. (((XfeManagerWidget) (w))->xfe_manager . layout_callback)
  399. /*----------------------------------------------------------------------*/
  400. #define _XfemBusyCursor(w) \
  401. (((XfeManagerWidget) (w))->xfe_manager . busy_cursor)
  402. /*----------------------------------------------------------------------*/
  403. #define _XfemBusy(w) \
  404. (((XfeManagerWidget) (w))->xfe_manager . busy)
  405. /*----------------------------------------------------------------------*/
  406. #define _XfemBusyCursorOn(w) \
  407. (((XfeManagerWidget) (w))->xfe_manager . busy_cursor_on)
  408. /*----------------------------------------------------------------------*/
  409. #define _XfemShadowType(w) \
  410. (((XfeManagerWidget) (w))->xfe_manager . shadow_type)
  411. /*----------------------------------------------------------------------*/
  412. #define _XfemMarginLeft(w) \
  413. (((XfeManagerWidget) (w))->xfe_manager . margin_left)
  414. /*----------------------------------------------------------------------*/
  415. #define _XfemMarginRight(w) \
  416. (((XfeManagerWidget) (w))->xfe_manager . margin_right)
  417. /*----------------------------------------------------------------------*/
  418. #define _XfemMarginTop(w) \
  419. (((XfeManagerWidget) (w))->xfe_manager . margin_top)
  420. /*----------------------------------------------------------------------*/
  421. #define _XfemMarginBottom(w) \
  422. (((XfeManagerWidget) (w))->xfe_manager . margin_bottom)
  423. /*----------------------------------------------------------------------*/
  424. #define _XfemOrderFunction(w) \
  425. (((XfeManagerWidget) (w))->xfe_manager . order_function)
  426. /*----------------------------------------------------------------------*/
  427. #define _XfemOrderPolicy(w) \
  428. (((XfeManagerWidget) (w))->xfe_manager . order_policy)
  429. /*----------------------------------------------------------------------*/
  430. #define _XfemOrderData(w) \
  431. (((XfeManagerWidget) (w))->xfe_manager . order_data)
  432. /*----------------------------------------------------------------------*/
  433. #define _XfemIgnoreConfigure(w) \
  434. (((XfeManagerWidget) (w))->xfe_manager . ignore_configure)
  435. /*----------------------------------------------------------------------*/
  436. #define _XfemPreferredWidth(w) \
  437. (((XfeManagerWidget) (w))->xfe_manager . preferred_width)
  438. /*----------------------------------------------------------------------*/
  439. #define _XfemPreferredHeight(w) \
  440. (((XfeManagerWidget) (w))->xfe_manager . preferred_height)
  441. /*----------------------------------------------------------------------*/
  442. #define _XfemMinWidth(w) \
  443. (((XfeManagerWidget) (w))->xfe_manager . min_width)
  444. /*----------------------------------------------------------------------*/
  445. #define _XfemMinHeight(w) \
  446. (((XfeManagerWidget) (w))->xfe_manager . min_height)
  447. /*----------------------------------------------------------------------*/
  448. #define _XfemUsePreferredWidth(w) \
  449. (((XfeManagerWidget) (w))->xfe_manager . use_preferred_width)
  450. /*----------------------------------------------------------------------*/
  451. #define _XfemUsePreferredHeight(w) \
  452. (((XfeManagerWidget) (w))->xfe_manager . use_preferred_height)
  453. /*----------------------------------------------------------------------*/
  454. #define _XfemConfigFlags(w) \
  455. (((XfeManagerWidget) (w))->xfe_manager . config_flags)
  456. /*----------------------------------------------------------------------*/
  457. #define _XfemPrepareFlags(w) \
  458. (((XfeManagerWidget) (w))->xfe_manager . prepare_flags)
  459. /*----------------------------------------------------------------------*/
  460. #define _XfemComponentFlag(w) \
  461. (((XfeManagerWidget) (w))->xfe_manager . component_flag)
  462. /*----------------------------------------------------------------------*/
  463. #define _XfemWidgetRect(w) \
  464. (((XfeManagerWidget) (w))->xfe_manager . widget_rect)
  465. /*----------------------------------------------------------------------*/
  466. #define _XfemInstancePointer(w) \
  467. (((XfeManagerWidget) (w))->xfe_manager . instance_pointer)
  468. /*----------------------------------------------------------------------*/
  469. #define _XfemOldWidth(w) \
  470. (((XfeManagerWidget) (w))->xfe_manager . old_dimensions . width)
  471. /*----------------------------------------------------------------------*/
  472. #define _XfemOldHeight(w) \
  473. (((XfeManagerWidget) (w))->xfe_manager . old_dimensions . height)
  474. /*----------------------------------------------------------------------*/
  475.  
  476. /*----------------------------------------------------------------------*/
  477. /*                                                                        */
  478. /* XfeManager misc access macros                                        */
  479. /*                                                                        */
  480. /*----------------------------------------------------------------------*/
  481. #define _XfemOffsetLeft(w)        (_XfemShadowThickness(w) +    \
  482.                                  _XfemMarginLeft(w))
  483. /*----------------------------------------------------------------------*/
  484. #define _XfemOffsetRight(w)        (_XfemShadowThickness(w) +    \
  485.                                  _XfemMarginRight(w))
  486. /*----------------------------------------------------------------------*/
  487. #define _XfemOffsetTop(w)        (_XfemShadowThickness(w) +    \
  488.                                  _XfemMarginTop(w))
  489. /*----------------------------------------------------------------------*/
  490. #define _XfemOffsetBottom(w)        (_XfemShadowThickness(w) +    \
  491.                                      _XfemMarginBottom(w))
  492. /*----------------------------------------------------------------------*/
  493. #define _XfemRectHeight(w)        (_XfemWidgetRect(w) . height)
  494. /*----------------------------------------------------------------------*/
  495. #define _XfemRectWidth(w)        (_XfemWidgetRect(w) . width)
  496. /*----------------------------------------------------------------------*/
  497. #define _XfemRectX(w)            (_XfemWidgetRect(w) . x)
  498. /*----------------------------------------------------------------------*/
  499. #define _XfemRectY(w)            (_XfemWidgetRect(w) . y)
  500. /*----------------------------------------------------------------------*/
  501.  
  502. /*----------------------------------------------------------------------*/
  503. /*                                                                        */
  504. /* Children indexing macro - Assuming w is Composite                    */
  505. /*                                                                        */
  506. /*----------------------------------------------------------------------*/
  507. #define _XfeChildrenIndex(w,n)                            \
  508. (((n < _XfemNumChildren(w)) && _XfemChildren(w))        \
  509. ? _XfemChildren(w)[n] : NULL)
  510.  
  511. /*----------------------------------------------------------------------*/
  512. /*                                                                        */
  513. /* Child is Shown - Both alive and managed                                */
  514. /*                                                                        */
  515. /*----------------------------------------------------------------------*/
  516. #define _XfeChildIsShown(w) (_XfeIsAlive(w) && _XfeIsManaged(w))
  517.  
  518. /*----------------------------------------------------------------------*/
  519. /*                                                                        */
  520. /* XfeManager child constraint part access macro                        */
  521. /*                                                                        */
  522. /*----------------------------------------------------------------------*/
  523. #define _XfeManagerConstraintPart(w) \
  524. (&(((XfeManagerConstraintRec *) _XfeConstraints(w)) -> xfe_manager))
  525.  
  526.  
  527. /*----------------------------------------------------------------------*/
  528. /*                                                                        */
  529. /* XfeManager child individual constraint resource access macro            */
  530. /*                                                                        */
  531. /*----------------------------------------------------------------------*/
  532. #define _XfeManagerPrivateComponent(w) \
  533. (_XfeManagerConstraintPart(w)) -> private_component
  534. /*----------------------------------------------------------------------*/
  535. #define _XfeManagerPositionIndex(w) \
  536. (_XfeManagerConstraintPart(w)) -> position_index
  537. /*----------------------------------------------------------------------*/
  538.  
  539. /*----------------------------------------------------------------------*/
  540. /*                                                                        */
  541. /* XfeManager default dimensions                                        */
  542. /*                                                                        */
  543. /*----------------------------------------------------------------------*/
  544. #define XfeMANAGER_DEFAULT_WIDTH    2
  545. #define XfeMANAGER_DEFAULT_HEIGHT    2
  546. /*----------------------------------------------------------------------*/
  547.  
  548. #ifdef __cplusplus                                /* end C++                */
  549. }
  550. #endif
  551.  
  552. #endif                                            /* end ManagerP.h        */
  553.