







                         CChhaapptteerr 33

            CCoommppoossiittee WWiiddggeettss aanndd TThheeiirr CChhiillddrreenn



Composite å(饹 _c_o_m_p_o_s_i_t_e_W_i_d_g_e_t_C_l_a_s_s Υ
饹Ǥ륦å)ϻҥåȤ򲿸ĤǤĤ
Ǥ롥äơComposite åȤϥץߥƥ
åȤ⤺ä¿λŻԤʤФʤ
Composite åȤλŻ (åȥ饹ľܼ
뤫Intrinsics δؿǴŪ˼)ʲ˼
:

+o    ҥåȤ˴ޤǡƤδԤ

+o    Composite åȤ˴줿Ȥˡ¹
     åȤ˴Ԥ

+o    ҥåȤΤɽǽʤ(Ĥޤꡤ֤
     ʤäƤҥå)ʪŪ(ȥ
     )Ԥ

+o    ֤ˤҥåȤΰΥޥåԥ󥰤ȥ
     ޥåԥ󥰤Ԥ

ΤδϰŪʼ³Ǥ _X_t_C_r_e_a_t_e_W_i_d_g_e_t  _X_t_D_e_-
_s_t_r_o_y_W_i_d_g_e_t ǰ롥 _X_t_C_r_e_a_t_e_W_i_d_g_e_t ϿƥåȤ
insert_child ³ƤӽФơƥåȤ˻ҥ
åȤɲä롥 _X_t_D_e_s_t_r_o_y_W_i_d_g_e_t ϡƥåȤ
delete_child ³ƤӽФơҥåȤƥ
åȤ롥κݡ˴ Composite 
åȤλҥåȤ˴뤳Ȥݾڤ롥

ȥޥ͡㤬ºݤ˴֤ˤΤϻҥå
ΰǤꡤɽǽȤʤΤϤǤ롥㤨
СʣѿХåե򥵥ݡȤƤ Composite Խ
åȤϡХåեȤ˻ҥåȤ1ĳƤ뤫
ʤΤɽΤ¸ߤ뾮ΥХåե
⤷ʤɽǽʽ°륦åȤϡ
֤Ǥ륦åȤȸƤФ졤ȥޥ͡η׻
ݤȤʤ롥ʳΥåȤϴ֤Ǥʤå
ȸƤФ롥ˤꡤIntrinsics ϤΤ褦ʥå
ϥޥåפʤ

ҥåȤ _X_t_M_a_n_a_g_e_C_h_i_l_d, _X_t_M_a_n_a_g_e_C_h_i_l_d_r_e_n,
_X_t_U_n_m_a_n_a_g_e_C_h_i_l_d, _X_t_U_n_m_a_n_a_g_e_C_h_i_l_d_r_e_n, _X_t_C_h_a_n_g_e_M_a_n_a_g_e_d_S_e_t 
ƿƥåȤ뽸˲ä줿ꡤν礫
줿ꤹ롥δؿ change_managed ³Ƥ
ФƥåȤ˻ҥåȤʪŪ쥤ȤƷ
褦Τ롥ʰ״ؿ _X_t_C_r_e_a_t_e_M_a_n_a_g_e_d_W_i_d_g_e_t 
_X_t_C_r_e_a_t_e_W_i_d_g_e_t ƤӽФη̤Ф _X_t_M_a_n_a_g_e_C_h_i_l_d 









                             -2-


ƤӽФ

֤λҥɥΤۤȤɤϥޥåפ뤬Υ
åȤϡʪŪΰϼΤɽԤʤ
ˤʤ뤳Ȥ⤢롥 _m_a_p___w_h_e_n___m_a_n_a_g_e_d եɤ _F_a_l_s_e ʤ
С֤ΥåȤǤäƤ⼫ưŪˤϥޥåפ
ΥեɤΥǥեͤ _T_r_u_e Ǥꡤ
_X_t_S_e_t_M_a_p_p_e_d_W_h_e_n_M_a_n_a_g_e_d Ȥäѹ뤳ȤǤ롥

Composite åȥ饹Ϥ줾쥸ȥޥ͡
롥ȥޥ͡ϡ֤λҥåȤ
Composite åȤΥɥΤɤɽ٤
ʤФʤʤȥѤϼ4ĤΥ饹
ʬव:

ܥå(Fixed boxes)
                ܥåϡƥåȤ
                ޤäλҥåȤġƤλҥ
                åȤϴ֤ˤʤꡤΤ⥸
                ȥޥ͡ФꥯȤϹԤʤ

Ʊܥå(Homogeneous boxes)
                ƱܥåϻҥåȤƱ褦
                줾ФƱȥ
                ŬѤ롥

ۼܥå(Heterogeneous boxes)
                ۼܥåϻҥåȤ֤
                ξġ̾ϡΰ֤ԥñ
                Ǥϻꤵ뤳ȤϤʤҥåȤȿ
                åȤδط䡤ҥåȤ¾
                λҥåȤδطɽ롥
                ʤ顤ɥΥѹ뤳Ȥ
                뤿Ǥ롥ۼܥåΥ饹
                Constraint 饹Υ֥饹Ǥ롥

ܥå(Shell boxes)
                ܥå̾ϻҥåȤ1Ĥ
                Υ̥Υ
                Ʊˤʤ롥ɥޥ͡㤬(⤷¸
                ߤ)ɥΥѹ硤
                ȥޥ͡ϥɥޥ͡
                ʤФʤ餺ܥå _C_o_n_f_i_g_u_r_e_N_o_-
                _t_i_f_y ٥ȤʤФʤʤ


00..11..  ҥåȤ CCoommppoossiittee åȤؤɲ::
iinnsseerrtt__cchhiilldd ³³

ҥåȤƥåȤλҥåȤΥꥹȤɲ
뤿ᡤؿ _X_t_C_r_e_a_t_e_W_i_d_g_e_t ϿƥåȤΥ饹롼
 insert_child ƤӽФComposite åȤ
ġinsert_child ³ؤΥݥ󥿤η _X_t_W_i_d_g_e_t_P_r_o_c Ǥ
롥









                             -3-

__
||
typedef void (*XtWidgetProc)(Widget);
      Widget _w;


_w         ҥåȤϤ
||__

Composite åȤΤۤȤɤϥѡ饹Ѿ
롥 _C_o_m_p_o_s_i_t_e_W_i_d_g_e_t_C_l_a_s_s  insert_child 롼
ϡinsert_position ³ƤӽФƻҥåȤ _c_h_i_l_-
_d_r_e_n ꥹλꤷ֤롥ΥꥹȤɬפ˱
Ƴĥ롥

Composite åȤФơȼ insert_child 롼
뤳Ȥ롥ϡñ˻ҥåȤ¤٤
俷åȤФȤʤ楦åȤ
ᡤҥåȤο¤뤿˹Ԥ롥Composite
åȤ˥åȤǤʤҤ(12 Ϥ
ȤΤ)ˤϡ1.4.2.1 ĥ쥳 _C_o_m_p_o_s_i_t_e_-
_C_l_a_s_s_E_x_t_e_n_s_i_o_n ꤷΥ쥳ɤ _a_c_c_e_p_t_s___o_b_j_e_c_t_s ե
ɤ _T_r_u_e 򥻥åȤʤФʤʤ _C_o_m_p_o_s_i_t_e_C_l_a_s_s_E_x_-
_t_e_n_s_i_o_n 쥳ɤꤷʤä _a_c_c_e_p_t_s___o_b_j_e_c_t_s ե
ɤ _F_a_l_s_e Ǥϡinsert_child ³Ū˥
֥饹Ĵ٤ʤƤ⡤ Composite åȤλҤ
Core Υ֥饹ǤȤߤʤ褤

 _c_h_i_l_d_r_e_n ˿Ҥ;͵ʤ(Ĥޤꡤ
_n_u_m___c_h_i_l_d_r_e_n  _n_u_m___s_l_o_t_s )硤insert_child ³
κƳƤ _n_u_m___s_l_o_t_s ιǽ˹ԤʤФ
ʤˡinsert_child ³Ŭڤʰ֤˻Ҥ
֤ _n_u_m___c_h_i_l_d_r_e_n եɤͤ䤹


00..22..  ҥåȤ:: iinnsseerrtt__ppoossiittiioonn ³³

composite åȤΥ󥹥󥹤ϡҥåȤݻ
ˤĤƤξܤɬפȤ礬롥㤨С
ץꥱǤϡǽǥ롼ʬ줿Ūʽ
¤٤줿ޥɥܥΥåȤȤȤ롥ޤ
ܥ줿˴طʤ˥ե٥åȽ¤
褦ʥե̾ɽܥȤȤ롥

XtNinsertPosition ꥽ꤹ뤳Ȥˤꡤץꥱ
ϻҥåȤθ椹뤳ȤǤ
롥composite åȤΥ󥹥 insert_position
³ؤΥݥ󥿤η _X_t_O_r_d_e_r_P_r_o_c Ǥ롥
















                             -4-

__
||
typedef Cardinal (*XtOrderProc)(Widget);
      Widget _w;


_w         줿åȤϤ
||__

饤ȤҥåȤν뤳Ȥǧ᤿ Com-
posite å(̾Ʊܥå)ϡåȤΥ
󥹥󥹤 insert_position ³򡤥饹 insert_child
³ƤӽФơҥåȤ _c_h_i_l_d_r_e_n 
ɤ뤫뤳ȤǤ롥äơcomposite 
åȥ饹ȤäƤ륯饤ȤϡΥ饹Υ
åȤΥ󥹥󥹤˰ۤʤ¤ѤδŬѤ뤳Ȥ
Ǥ롥 composite åȤΥ󥹥󥹤
ݤˡ̤ insert_position ³꥽ϤȤˤ
ƹԤ

insert_position ³ᤷͤϡΥåȤˤ
ϤλҥåȤο򼨤ΥåȤˤĤơ
֤줿ϡ¾ΤɤλҤˤ뤳Ȥ򼨤
졤_n_u_m___c_h_i_l_d_r_e_n ֤줿ϡ¾ΤɤλҥåȤ
ˤ뤳Ȥ롥ǥեȤ insert_position
ؿ _n_u_m___c_h_i_l_d_r_e_n ֤δؿϾ񤭤뤳ȤǤ
롥񤭤ϡcomposite åȤΥ꥽ꥹȤ
åͿȤäƹԤ


00..33..  ҥåȤκ:: ddeelleettee__cchhiilldd ³³


ƥåȤ _c_h_i_l_d_r_e_n ꥹȤҥåȤ
ᡤؿ _X_t_D_e_s_t_r_o_y_W_i_d_g_e_t ϺǸˡComposite ǤƤΥ
饹 delete_child ³ؤθƤӽФԤdelete_child
³ؤΥݥ󥿤η _X_t_W_i_d_g_e_t_P_r_o_c Ǥ롥


__
||
typedef void (*XtWidgetProc)(Widget);
      Widget _w;


_w    ҤϤ
||__

åȤΤۤȤɤϡѡ饹 delete_child 
³Ѿ롥Фˤʤ륦åȤ Composite
åȤϡФˤʤ륦åȤ뤿ȼ
delete_child åȤ롥












                             -5-


00..44..  åȤФҤɲäȺ

Intrinsics ϡcomposite åȤĴåȤФ
ƥåȤɲäȺԤѥ롼󷲤Ѱդ
Ƥ롥Υ롼󷲤ϺǽŪˤ composite åȤ
change_managed ³ƤӽФ(μ³ؤΥݥ󥿤
NULL Ǥʤ) change_managed ³ؤΥݥ󥿤η
_X_t_W_i_d_g_e_t_P_r_o_c Ǥ롥 widget ϡƤҤΥ
Ȥѹ compsite åȤꤹ롥


00..44..11..  

åȤΥꥹȤ򡤿ƤǤ Composite Υȥ
Ƥ (ĤޤɽǤ)åȤ˲äˤϡ _X_t_M_a_n_-
_a_g_e_C_h_i_l_d_r_e_n Ѥ롥

__
||
typedef Widget *WidgetList;

void XtManageChildren(_c_h_i_l_d_r_e_n, _n_u_m___c_h_i_l_d_r_e_n)
      WidgetList _c_h_i_l_d_r_e_n;
      Cardinal _n_u_m___c_h_i_l_d_r_e_n;


_c_h_i_l_d_r_e_n  ҥåȤΥꥹȤꤹ롥ҥåȤ
          饹 RectObj ޤϤΥ֥饹ǤʤФʤ
          ʤ

_n_u_m___c_h_i_l_d_r_e_n
          ꥹλҤοꤹ롥
||__

ؿ _X_t_M_a_n_a_g_e_C_h_i_l_d_r_e_n ιԤʲ˼:

+o    ҤοƤƱǤϤʤȡƤΥ饹 _c_o_m_p_o_s_-
     _i_t_e_W_i_d_g_e_t_C_l_a_s_s Υ֥饹̵ˤϥ顼򵯤
     

+o    ̤οƤ˴Ǥ¨¤롥Ǥʤ
     СꥹΥˡʻҤ줾Ф _X_t_M_a_n_-
     _a_g_e_C_h_i_l_d_r_e_n ԤδؿϡҥåȤ˴
     ֤ˤ뤫˴Ǥ̵뤷Ǥʤ
     դ롥

+o    Ƥꥢ饤졤ҥåƤ˰դ塤
     ֤ĤämҥåȤΰɽǽ
     :

     -    ΥåȤοƤ change_managed 롼
          ӽФ











                             -6-


     -    ˴֤줿ҤΤꥢ饤
          ʤåȤФ _X_t_R_e_a_l_i_z_e_W_i_d_g_e_t Ƥ
          Ф

     -    ˴֤줿ҤΤ_m_a_p___w_h_e_n___m_a_n_a_g_e_d
          ͤ _T_r_u_e Ǥ륦åȤޥåפ롥

Ҥ֤ˤ뤳ȤϡҤνˤҤ˴ˤ¸
ʤƤΥ쥤Ƚ롼ϡ_m_a_n_a_g_e_d եɤ
_T_r_u_e ǤҤ򰷤ǤʤҤ̵뤹٤Ǥ롥compos-
ite å (ä fixed box å)ˤ
insert_child ³ _X_t_M_a_n_a_g_e_C_h_i_l_d ƤӽФΤ
դ뤳ȡ

ƥåȤꥢ饤ȡΥåȤ
change_managed ³ƤӽФ졤ΥåȤ
ƤҤν礬ѲȤΤ롥ƥåȤϻ
Ƥκ֤ȥꥢ饤ԤȤǤ롥ƥåȤ
ɬפ˱ _X_t_M_o_v_e_W_i_d_g_e_t ƤӽФƻҤư롥
_x, _y եɤ򹹿 _X_M_o_v_e_W_i_n_d_o_w ƤӽФؿǤ롥

composite åȤ˻ҤΥ䶭ѹ
硤 _X_t_R_e_s_i_z_e_W_i_d_g_e_t ƤӽФȡδؿ _w_i_d_t_h,
_h_e_i_g_h_t, _b_o_r_d_e_r___w_i_d_t_h եɤ򹹿 _X_C_o_n_f_i_g_u_r_e_W_i_n_-
_d_o_w ƤӽФ֤ȥѹ _X_t_C_o_n_f_i_g_u_r_e_W_i_d_g_e_t 
ȤäƱ˹ԤȤǤ롥6.6 򻲾Ȥ뤳ȡ


Ƥδ֤ˤҤν˻ҥå1Ĥɲä
ϡ _X_t_M_a_n_a_g_e_C_h_i_l_d Ȥȡ

__
||
void XtManageChild(_c_h_i_l_d)
      Widget _c_h_i_l_d;


_c_h_i_l_d     ҥåȤꤹ롥 Must be of class Rec-
          tObj or any subclass thereof.
||__

ؿ _X_t_M_a_n_a_g_e_C_h_i_l_d Ĺ1 _W_i_d_g_e_t_L_i_s_t ۤ _X_t_M_a_n_-
_a_g_e_C_h_i_l_d_r_e_n ƤӽФ


1Ĥμ³ǻҥåȤƴ֤ˤ뤿
ϡ _X_t_C_r_e_a_t_e_M_a_n_a_g_e_d_W_i_d_g_e_t ޤ _X_t_V_a_C_r_e_a_t_e_M_a_n_a_g_e_d_W_i_d_g_e_t 
Ѥ뤳ȡ















                             -7-

__
||
Widget XtCreateManagedWidget(_n_a_m_e, _w_i_d_g_e_t___c_l_a_s_s, _p_a_r_e_n_t, _a_r_g_s, _n_u_m___a_r_g_s)
      String _n_a_m_e;
      WidgetClass _w_i_d_g_e_t___c_l_a_s_s;
      Widget _p_a_r_e_n_t;
      ArgList _a_r_g_s;
      Cardinal _n_u_m___a_r_g_s;


_n_a_m_e      륦åȤФ롤꥽Υ󥹥
          ̾ꤹ롥

_w_i_d_g_e_t___c_l_a_s_s
          륦åȤФ롤åȥ饹
          Υݥ󥿤ꤹ롥Must be rreeccttOObbjjCCllaassss or any
          subclass thereof.

_p_a_r_e_n_t    ƥåȤꤹ롥Composite 饹Υ
          ֥饹ǤʤФʤʤ

_a_r_g_s      ¾Υ꥽񤭤뤿ΰꥹȤ
          ꤹ롥

_n_u_m___a_r_g_s  ꥹȤǿꤹ롥
||__

ؿ _X_t_C_r_e_a_t_e_M_a_n_a_g_e_d_W_i_d_g_e_t ϡ _X_t_C_r_e_a_t_e_W_i_d_g_e_t  _X_t_M_a_n_-
_a_g_e_C_h_i_l_d ƤӽФδʰ״ؿǤ롥


__
||
Widget XtVaCreateManagedWidget(_n_a_m_e, _w_i_d_g_e_t___c_l_a_s_s, _p_a_r_e_n_t, ...)
      String _n_a_m_e;
      WidgetClass _w_i_d_g_e_t___c_l_a_s_s;
      Widget _p_a_r_e_n_t;


_n_a_m_e      륦åȤФ롤꥽Υ󥹥
          ̾ꤹ롥

_w_i_d_g_e_t___c_l_a_s_s
          륦åȤФ롤åȥ饹
          Υݥ󥿤ꤹ롥Must be rreeccttOObbjjCCllaassss or any
          subclass thereof.

_p_a_r_e_n_t    ƥåȤꤹ롥Composite 饹
          ֥饹ǤʤФʤʤ

...       ¾Υ꥽񤭤ĹꥹȤ
          ꤹ롥
||__

_X_t_V_a_C_r_e_a_t_e_M_a_n_a_g_e_d_W_i_d_g_e_t εǽϡ _X_t_C_r_e_a_t_e_M_a_n_a_g_e_d_W_i_d_g_e_t 









                             -8-


 _a_r_g_s  _n_u_m___a_r_g_s ĹꥹȤ֤
ƱǤ롥 2.5.1 ǴƤ롥


00..44..22..  Ҥδֲ

ƥåȤδꥹȤҤΥꥹȤˤϡ
_X_t_U_n_m_a_n_a_g_e_C_h_i_l_d_r_e_n Ѥ롥

__
||
void XtUnmanageChildren(_c_h_i_l_d_r_e_n, _n_u_m___c_h_i_l_d_r_e_n)
      WidgetList _c_h_i_l_d_r_e_n;
      Cardinal _n_u_m___c_h_i_l_d_r_e_n;


_c_h_i_l_d_r_e_n  ҥåȤΥꥹȤꤹ롥ҥåȤ
           RectObj 饹Υ֥饹ǤʤФ
          ʤ

_n_u_m___c_h_i_l_d_r_e_n
          ҥåȤοꤹ롥
||__

ؿ _X_t_U_n_m_a_n_a_g_e_C_h_i_l_d_r_e_n νʲ˼:

+o    ̤οƤ˴ǤС¨¤롥

+o    ҥåȤοƤƱǤʤ礫Ƥ _c_o_m_p_o_s_-
     _i_t_e_W_i_d_g_e_t_C_l_a_s_s Υ֥饹Ǥʤˤϡ顼
     

+o    ꥹΥˡʻҥåȤ줾Ф
     _X_t_U_n_m_a_n_a_g_e_C_h_i_l_d_r_e_n ¹Ԥ롥δؿϡҥ
     Ȥ֤Ǥ̵뤷֤Ǥмν
     Ԥ:

     -    ҥåȤ֤Ȱդ롥

     -    ҥåȤꥢ饤Ƥ
          ꡤ_m_a_p___w_h_e_n___m_a_n_a_g_e_d եɤ _T_r_u_e ǤС
          򥢥ޥåפ롥

+o    Ƥꥢ饤Ƥ硤ҤΤ줫
     ֤ˤʤäƤʤСƤ change_managed 롼
     ƤӽФ

_X_t_U_n_m_a_n_a_g_e_C_h_i_l_d_r_e_n ϻҥåȤ˴ϹԤʤƤδ
åȤ饦åȤϡҥåȤ
Ū򤱤ƤǺƤӴ֤ˤ뤿˻Ȥ
åȤ˴ˤϡ _X_t_D_e_s_t_r_o_y_W_i_d_g_e_t ƤӽФʤ
ФʤʤˤĤƤ 2.9 򻲾Ȥ뤳ȡ











                             -9-


ƥåȤδåȤҥåȤ1Ĥ
ˤϡ _X_t_U_n_m_a_n_a_g_e_C_h_i_l_d Ѥ뤳ȡ

__
||
void XtUnmanageChild(_c_h_i_l_d)
      Widget _c_h_i_l_d;


_c_h_i_l_d     ҥåȤꤹ롥Must be of class RectObj
          or any subclass thereof.
||__

ؿ _X_t_U_n_m_a_n_a_g_e_C_h_i_l_d Ĺ 1 ΥåȥꥹȤ
_X_t_U_n_m_a_n_a_g_e_C_h_i_l_d_r_e_n ƤӽФ

δؿ٥롼ǤꡤŪ composite
åȺ롼ǻȤ롥ˡcomposite 
åȤåȸͭι٥ʰ׼³Ѱդ뤳
Ǥ롥


00..44..33..  åȤؤѹΥХɥ

饤ȤϡIntrinsics ٸƤӽФǡҤ
֤ˤ뤳Ȥȴ֤뤳ȤƱ˼¹ԤǤ롥
Ȥ1θƤӽФǡ 1Ĥ뤤ʣλҤΥȥ
ѹ륳Хå³ꤹ뤳ȤǤ롥compos-
ite åȥ饹ϡ饤Ȥ1θƤӽФ
change_managed ³̡(֤ˤ뤳Ȥȡ֤
)˸ƤӽФ뤫³1٤ƤӽФ뤫
롥

composite åȥ饹ϡ _C_o_m_p_o_s_i_t_e_C_l_a_s_s_E_x_t_e_n_s_i_o_n 
¤Τ뤳Ȥˤꡤchange_managed ᥽åɤθƤӽФ
ˡꤹ롥ι¤ΤˤĤƤ 1.4.2.1 Ƥ
롥
 .PN CompositeClassExtension 쥳ɤ _a_l_l_o_w_s___c_h_a_n_g_e___m_a_n_-
_a_g_e_d___s_e_t եɤ _F_a_l_s_e ʤСchange_managed ³
2ƤӽФ롥1ܤϥ饤ȤΥХå
ȥѹꥯȤǡ2ܤϥꥯȤθǤ
롥_a_l_l_o_w_s___c_h_a_n_g_e___m_a_n_a_g_e_d___s_e_t եɤ _T_r_u_e ʤ
Сchange_managed ᥽åɤ1٤ƤӽФ롥θƤӽ
ϡꤵ줿ҥåȤ˴֤֡ΰ
졤饤ȤΥХåƤӽФ줿˹Ԥ
롥 composite 饹ѡȤγĥ쥳ɤˡ쥳ɷ
_N_U_L_L_Q_U_A_R_K ĥСֹ椬 1 礭 _C_o_m_p_o_s_i_t_e_C_l_a_s_-
_s_E_x_t_e_n_s_i_o_n ̵硤뤤 _X_t_I_n_h_e_r_i_t_C_h_a_n_g_e_M_a_n_a_g_e_d 
饹˥饹쥳ɤǻꤵƤˤϡ
_a_l_l_o_w_s___c_h_a_n_g_e___m_a_n_a_g_e_d___s_e_t եɤͤϥѡ饹
Ѿ롥

composite åȤǤƤΡȥƤ
νФɲáƱ˹Ԥˤϡ









                            -10-


_X_t_C_h_a_n_g_e_M_a_n_a_g_e_d_S_e_t Ѥ뤳ȡ

__
||
void XtChangeManagedSet(_u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n, _n_u_m___u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n,
                                              _d_o___c_h_a_n_g_e___p_r_o_c, _c_l_i_e_n_t___d_a_t_a,
                                              _m_a_n_a_g_e___c_h_i_l_d_r_e_n, _n_u_m___m_a_n_a_g_e___c_h_i_l_d_r_e_n)
      WidgetList _u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n;
      Cardinal _n_u_m___u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n;
      XtDoChangeProc _d_o___c_h_a_n_g_e___p_r_o_c;
      XtPointer _c_l_i_e_n_t___d_a_t_a;
      WidgetList _m_a_n_a_g_e___c_h_i_l_d_r_e_n;
      Cardinal _n_u_m___m_a_n_a_g_e___c_h_i_l_d_r_e_n;


_u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n Specifies the list of widget children to
                  initially remove from the managed set.  
                  åȤǽ˼ҥåȤ
                  ꥹȤꤹ롥

_n_u_m___u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n
                  _u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n ǿꤹ롥

_d_o___c_h_a_n_g_e___p_r_o_c    Ҥ֤ˤȡ֤
                  δ֤˸ƤӽФ³ꤹ롥ޤ
                  ϡNULL ꤹ롥

_c_l_i_e_n_t___d_a_t_a       do_change_proc Ϥ饤ȥǡ
                  ꤹ롥

_m_a_n_a_g_e___c_h_i_l_d_r_e_n   ǽŪ˴åȤɲäҥå
                  ΥꥹȤꤹ롥

_n_u_m___m_a_n_a_g_e___c_h_i_l_d_r_e_n
                  _m_a_n_a_g_e___c_h_i_l_d_r_e_n ꥹȤǿꤹ롥
||__

ؿ _X_t_C_h_a_n_g_e_M_a_n_a_g_e_d_S_e_t ϰʲνԤ:

+o    _n_u_m___u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n  _n_u_m___m_a_n_a_g_e___c_h_i_l_d_r_e_n ξ 0
     ʤС¨¤롥

+o    _m_a_n_a_g_e___c_h_i_l_d_r_e_n ꥹȤ _u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n ꥹȤǻ
     줿åȤοƤƱǤϤʤȡƤ
     _c_o_m_p_o_s_i_t_e_W_i_d_g_e_t_C_l_a_s_s Υ֥饹̵ˡٹ
     Ϥ롥

+o    ̤οƤ˴ǤС¨¤롥

+o    _d_o___c_h_a_n_g_e___p_r_o_c  NULL ǤʤƤ _C_o_m_p_o_s_i_t_e_C_l_a_s_s_E_x_-
     _t_e_n_s_i_o_n  _a_l_l_o_w_s___c_h_a_n_g_e___m_a_n_a_g_e_d___s_e_t եɤ _F_a_l_s_e
     ʤС _X_t_C_h_a_n_g_e_M_a_n_a_g_e_d_S_e_t ϰʲνԤ:











                            -11-


     -    _X_t_U_n_m_a_n_a_g_e_C_h_i_l_d_r_e_n (_u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n, _n_u_m___u_n_m_a_n_-
          _a_g_e___c_h_i_l_d_r_e_n) ƤӽФ

     -    _d_o___c_h_a_n_g_e___p_r_o_c ƤӽФ

     -    _X_t_M_a_n_a_g_e_C_h_i_l_d_r_e_n (_m_a_n_a_g_e___c_h_i_l_d_r_e_n, _n_u_m___m_a_n_-
          _a_g_e___c_h_i_l_d_r_e_n) ƤӽФ

+o    Ǥʤ硤ʲν¹Ԥ:

     -    _u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n ꥹȤΤ줾λҤˤĤƼ
          ԤҤ֤ʤ̵뤷
          ʤ֤Ȱդ롥ޤҤꥢ饤
          Ƥơ_m_a_p___w_h_e_n___m_a_n_a_g_e_d եɤ _T_r_u_e
          ʤСΥåȤϥޥåפ롥

     -    _d_o___c_h_a_n_g_e___p_r_o_c  NULL ǤʤС³Ƥӽ
          롥

     -    _m_a_n_a_g_e___c_h_i_l_d_r_e_n ꥹΤ줾λҤˤĤƼ
          ԤҤ˴֤˴ʤ̵
          롥ǤʤС֤Ȱդ롥

     -    Ƥꥢ饤ƤơƤλҤ˰դƤ
          硤Ƥ change_managed ³ƤӽФ졤³
          ƿ֤ˤʤäҤɽǽˤ롥ɽ
          ǽˤ뤳Ȥϡ֤ˤ줿ҤΤ
          ꥢ饤ƤʤΤФ _X_t_R_e_a_l_i_z_e_W_i_d_g_e_t
          ƤӽФ֤ˤ줿ҤΤ
          _m_a_p___w_h_e_n___m_a_n_a_g_e_d  _T_r_u_e ǤΤޥåפ
          ȤˤäƹԤ롥

ƥåȤ composite 饹ѡȤ _e_x_t_e_n_s_i_o_n ե
ɤˡ쥳ɷ _N_U_L_L_Q_U_A_R_K ǥС1礭 _C_o_m_-
_p_o_s_i_t_e_C_l_a_s_s_E_x_t_e_n_s_i_o_n 쥳ɤ̵硤ĿƤΥ饹쥳
ɤΥ饹 _X_t_I_n_h_e_r_i_t_C_h_a_n_g_e_M_a_n_a_g_e_d ꤵƤ
ˤϡ_a_l_l_o_w_s___c_h_a_n_g_e___m_a_n_a_g_e_d___s_e_t եɤͤϥ
饹Ѿ롥 _c_o_m_p_o_s_i_t_e_W_i_d_g_e_t_C_l_a_s_s Ѿ
롤_a_l_l_o_w_s___c_h_a_n_g_e___m_a_n_a_g_e_d___s_e_t եɤͤ _F_a_l_s_e Ǥ
롥


Ҥ _u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n ꥹȤ _m_a_n_a_g_e___c_h_i_l_d_r_e_n ꥹȤξ
뤳ȤϸǤϤʤΤ褦ʸƤӽФԤȡҤ
ƤӽФ˴֤ΤޤޤǤ뤬Ҥ֤ˤ
Ǥ _d_o___c_h_a_n_g_e___p_r_o_c ³ϻҤ˱ƶͿ뤳ȤǤ롥

_d_o___c_h_a_n_g_e___p_r_o_c η _X_t_D_o_C_h_a_n_g_e_P_r_o_c Ǥ롥















                            -12-

__
||
typedef void (*XtDoChangeProc)(Widget, WidgetList, Cardinal*, WidgetList, Cardinal*, XtPointer);
      Widget _c_o_m_p_o_s_i_t_e___p_a_r_e_n_t;
      WidgetList _u_n_m_a_n_g_e___c_h_i_l_d_r_e_n;
      Cardinal *_n_u_m___u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n;
      WidgetList _m_a_n_a_g_e___c_h_i_l_d_r_e_n;
      Cardinal *_n_u_m___m_a_n_a_g_e___c_h_i_l_d_r_e_n;
      XtPointer _c_l_i_e_n_t___d_a_t_a;


_c_o_m_p_o_s_i_t_e___p_a_r_e_n_t  åȤѹ롤composite 饹
                  ƥåȤϤ

_u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n åȤ줿ФλҤΥꥹ
                  ȤϤ

_n_u_m___u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n
                  _u_n_m_a_n_a_g_e___c_h_i_l_d_r_e_n ꥹȤǿϤ

_m_a_n_a_g_e___c_h_i_l_d_r_e_n   åȤɲä褦ȤƤҤΥꥹ
                  ȤϤ

_n_u_m___m_a_n_a_g_e___c_h_i_l_d_r_e_n
                  _m_a_n_a_g_e___c_h_i_l_d_r_e_n ꥹȤǿϤ

_c_l_i_e_n_t___d_a_t_a       _X_t_C_h_a_n_g_e_M_a_n_a_g_e_d_S_e_t Ϥ饤ȥǡ
                  ꤹ롥
||__

_d_o___c_h_a_n_g_e___p_r_o_c ³ϡ _X_t_C_h_a_n_g_e_M_a_n_a_g_e_d_S_e_t θƤӽФ¦
Ѥ1Ĥ뤤ʣλҤѹ롥ѹϴåȤ
Ǥ⾯ʤǹԤ롥ѹˤϥȥѹΥ
Ȥޤޤ졤ξˤ _X_t_C_h_a_n_g_e_M_a_n_a_g_e_d_S_e_t θƤӽФ
¦ϡIntrinsics Ūˤϡ֤λҤԤä
ȥѹΥꥯȤ򡤿ƤΥȥޥ͡ƤӽФ
ƤǧȤѤ뤳ȤǤ롥
ᡤ_d_o___c_h_a_n_g_e___p_r_o_c ³ҤҤܤ륦åȤ
ȥѹ硤λҥåȤ _u_n_m_a_n_-
_a_g_e___c_h_i_l_d_r_e_n ꥹȤ _m_a_n_a_g_e___c_h_i_l_d_r_e_n ꥹȤ˴ޤޤƤʤ
Фʤʤ


00..44..44..  åȤ֤ɤη

Ϳ줿ҥåȤδ֤Ĵ٤뤿ˤϡ
_X_t_I_s_M_a_n_a_g_e_d Ѥ뤳ȡ

















                            -13-

__
||
Boolean XtIsManaged(_w)
       Widget _w;


_w
||__

ؿ _X_t_I_s_M_a_n_a_g_e_d ϡꤵ줿åȤΥ饹 Rec-
tObj Υ֥饹ǤꡤĴ֤ˤʤ _T_r_u_e
֤ǤʤСδؿ _F_a_l_s_e ֤


00..55..  åȤޥåפ

̾ϥåȤϴ֤ˤʤäȤ˥ޥåפ롥
εưϡåȤȤ XtNmappedWhenMan-
aged ꥽ꤹ뤳Ȥ䡤_m_a_p___w_h_e_n___m_a_n_a_g_e_d եɤ
_F_a_l_s_e ꤹ뤳Ȥˤäƾ񤭤Ǥ롥


Ϳ줿åȤ _m_a_p___w_h_e_n___m_a_n_a_g_e_d եɤͤ
ˤϡ _X_t_S_e_t_M_a_p_p_e_d_W_h_e_n_M_a_n_a_g_e_d Ѥ뤳ȡ

__
||
void XtSetMappedWhenManaged(_w, _m_a_p___w_h_e_n___m_a_n_a_g_e_d)
      Widget _w;
      Boolean _m_a_p___w_h_e_n___m_a_n_a_g_e_d;


_w         åȤꤹ롥Must be of class Core or
          any subclass thereof.

_m_a_p___w_h_e_n___m_a_n_a_g_e_d
          Boolean ͤꤹ롥ͤϥåȤ
          _m_a_p___w_h_e_n___m_a_n_a_g_e_d եɤ˳Ǽ뿷ͤ
          롥
||__

åȤꥢ饤Ƥꡤ֤Ǥꡤ
_m_a_p___w_h_e_n___m_a_n_a_g_e_d  _T_r_u_e ʤС _X_t_S_e_t_M_a_p_p_e_d_W_h_e_n_M_a_n_a_g_e_d 
ɥޥåפ롥åȤꥢ饤Ƥꡤ
֤Ǥꡤ _m_a_p___w_h_e_n___m_a_n_a_g_e_d  _F_a_l_s_e, ʤС
_X_t_S_e_t_M_a_p_p_e_d_W_h_e_n_M_a_n_a_g_e_d ϥɥ򥢥ޥåפ롥
_X_t_S_e_t_M_a_p_p_e_d_W_h_e_n_M_a_n_a_g_e_d ϴʰ״ؿǤꡤ _X_t_S_e_t_V_a_l_u_e_s Ƥ
ФXtNmappedWhenManaged ꥽˿ͤꤷ
åȤŬڤ˥ޥåפ뤳Ȥ(®)Ǥ
롥 _X_t_S_e_t_M_a_p_p_e_d_W_h_e_n_M_a_n_a_g_e_d Ȥäƥޥåԥ󥰤椹ˡ
ʳˤ⡤饤Ȥ _m_a_p_p_e_d___w_h_e_n___m_a_n_a_g_e_d  _F_a_l_s_e 
 _X_t_M_a_p_W_i_d_g_e_t  _X_t_U_n_m_a_p_W_i_d_g_e_t Ū˸ƤӽФˡ⤢
롥











                            -14-


åȤŪ˥ޥåפˤϡ _X_t_M_a_p_W_i_d_g_e_t Ѥ
뤳ȡ

__
||
XtMapWidget(_w)
     Widget _w;


_w         åȤꤹ롥Must be of class Core or
          any subclass thereof.
||__

åȤŪ˥ޥåפˤϡ _X_t_U_n_m_a_p_W_i_d_g_e_t 
Ѥ뤳ȡ

__
||
XtUnmapWidget(_w)
     Widget _w;


_w         åȤꤹ롥Must be of class Core or
          any subclass thereof.
||__



00..66..  դ CCoommppoossiittee å

Constraint åȤ _c_o_m_p_o_s_i_t_e_W_i_d_g_e_t_C_l_a_s_s Υ֥饹
Ǥ롥̾ͳϡconstraint åȤϻҤ˴Ϣ
˴ŤƻҤΥȥǤ뤳ȤǤ롥
ϡҤͭ뤳ȤƤ⤵Ȥäñ
ʾ⤢뤷Ҥưѹ¾λҤѹ
ФʤʤȤäʣʾ⤢롥Constraint 
åȤȤȡƤϥ꥽ηҤ
Ϳ뤳ȤǤ롥㤨СConstraint 饹Ǥƥ
åȤҤκ祵Ƥ硤
꥽ϻҥåȤ줾ФƼ롥Υ
ϡҥåȤΥ饹Ƥ꥽Τ
˰롥ä constraint ꥽ϡҥåȤ
Ф¾Υ꥽ƱͤˡꥹȤ꥽ե
ޤ뤳ȤǤ롥

Constraint åȤϡ̾ composite åȤ
˲äҥåȤ줾Ф constraint 
˽ʤƤϤʤʤ

åȤˤưפˤ뤿ȡIntrinsics Ҥ
б constraint 뤳Ȥưפˤ뤿ᡤ
åȤ _c_o_n_s_t_r_a_i_n_t_s եɤġΥե
Ͽƥåȸͭι¤ΤΥɥ쥹ǤꡤҤ˴ؤ
constraint ݻƤ롥ҥåȤοƤ









                            -15-


_c_o_n_s_t_r_a_i_n_t_W_i_d_g_e_t_C_l_a_s_s Υ֥饹̵硤Ҥ _c_o_n_-
_s_t_r_a_i_n_t_s եɤ NULL Ǥ롥

Constraint Υ֥饹ϡѡ饹 con-
straint 쥳ɤ constraint ǡɲä뤳ȤǤ롥
ǽˤ뤿ᡤåȤˤϡconstraint
쥳ɤץ饤١Ȥ .h եʤФʤ
κݤˤϡåȤΥ쥳Ʊ
Ȥ㤨СҥåȤκȺ⤵ɬ
륦åȥ饹ϡʲΤ褦 constraint 쥳
뤳ȤǤ:


     typedef struct {
          Dimension max_width, max_height;
     } MaxConstraintPart;

     typedef struct {
          MaxConstraintPart max;
     } MaxConstraintRecord, *MaxConstraint;


Υåȥ饹Υ֥饹ǡ˺Ǿ
ɬפ硤constraint 쥳ɤϰʲΤ褦
ʤ:


     typedef struct {
          Dimension min_width, min_height;
     } MinConstraintPart;

     typedef struct {
          MaxConstraintPart max;
          MinConstraintPart min;
     } MaxMinConstraintRecord, *MaxMinConstraint;


Intrinsics ϡconstraint γơʤ
вǽʸ¤ԤȤ롥Constraint 饹쥳
ѡȤˤϡưפˤ뤿Υȥ꡼Ĥ롥
_C_o_n_s_t_r_a_i_n_t_C_l_a_s_s_P_a_r_t Υ쥳ɤƿƤե
ɤȼ³Ǥ뤬ƥåȤλҤξǥ
¹Ԥɬ餬ƤӽФ롥

ؿ _X_t_C_r_e_a_t_e_W_i_d_g_e_t ϿƥåȤΥ饹쥳
_c_o_n_s_t_r_a_i_n_t___s_i_z_e եɤѤҤ constraint 
ɤƤ롥ޤ _X_t_C_r_e_a_t_e_W_i_d_g_e_t ϡconstraint ꥽
ѤơҥåȤб constraint 쥳
 resource եɤͤꤹ롥줫餳δؿϡ
constraint ³ƤӽФˤꡤƥ
Ȥ constraint ꥽᤿ constraint եɤ
뤳ȤǤͿ줿 constraint ˽äƻҤ
ưѹ뤳ȤǤ褦ˤʤ롥










                            -16-


ؿ _X_t_G_e_t_V_a_l_u_e_s  _X_t_S_e_t_V_a_l_u_e_s ¹Ԥ줿Ȥδ
 constraint ꥽ѤҥåȤб
constraint ͤޤϼԤ줫 _X_t_S_e_t_V_a_l_u_e_s 
constraint åȤ set_values³ƤӽФ
ꡤƥåȤ줿 constraint եɤƷ׻
Ҥΰư䥵ѹŬڤ˹ԤȤǤ롥 Con-
straint åȥ饹ȤΥѡ饹쥳ɷ
 _N_U_L_L_Q_U_A_R_K Ǥ _C_o_n_s_t_r_a_i_n_t_C_l_a_s_s_E_x_t_e_n_s_i_o_n 쥳ɤ _C_o_n_-
_s_t_r_a_i_n_t_C_l_a_s_s_P_a_r_t  _e_x_t_e_n_s_i_o_n եɤ˻äƤꡤĳ
ĥ쥳ɤ _g_e_t___v_a_l_u_e_s___h_o_o_k եɤ NULL Ǥʤ硤
_X_t_G_e_t_V_a_l_u_e_s  get_values_hook ƤӽФˤꡤ
åȤ줿 constraint եɤ֤ȤǤ
롥

ؿ _X_t_D_e_s_t_r_o_y_W_i_d_g_e_t  constraint ˴³Ƥӽ
constraint 쥳ɤФưŪ˳ݤΰ
롥constraint 쥳ɼȤ constraint ˴³ǲ
ƤϤʤʤؿ _X_t_D_e_s_t_r_o_y_W_i_d_g_e ϡνưŪ˹













































                            -17-






























































