//铸入型起重棒& m$ _+ i0 e# }2 Z' ?
/* These include files are needed for the following template code. */- W+ w4 h" J6 i+ c: d! z, f
#include <stdio.h>
7 N- V" f/ H- S u. _9 G) }#include <uf.h>. L) ~1 k: L* l# i$ O
#include <uf_defs.h>
$ x( [/ v) Z; y( k/ L7 _# c3 p/ a#include <uf_exit.h>
. U5 m! x$ s* Y+ y: p#include <uf_ui.h>. A2 K. a' ^6 p; X. y: N- L d3 u8 v" X
#include <uf_styler.h>
+ s7 h: Y4 P T; j% d5 U#include <uf_mb.h>
& L1 O" L, X3 ]( m: A% i#include "CCHF.h"* ^5 L6 v# X- s7 A9 {5 G$ x% T
#include <uf_modl.h>$ i; L1 Q, K4 q! \# r
#include <uf_obj.h>( ^$ {* O' ]. |1 j) d, w4 I/ i; {
#include <math.h> /* The following definition defines the number of callback entries */
: A% I. O& `; Q: E! ]9 \/* in the callback structure: */* T2 I/ S5 H+ h! K
/* UF_STYLER_callback_info_t CCHF_cbs */
B% g/ L$ H6 d. x#define CCHF_CB_COUNT ( 6 + 1 ) /* Add 1 for the terminator */ /*--------------------------------------------------------------------------0 O, c# n, l8 t! T: S+ Z
The following structure defines the callback entries used by the
3 P9 _% V6 ~# P7 @1 R8 Dstyler file. This structure MUST be passed into the user function,
& o! E, U; g) A: I0 CUF_STYLER_create_dialog along with CCHF_CB_COUNT.
1 s# `" f5 }: C/ X+ S--------------------------------------------------------------------------*/
! q) P9 f. O- Y( `) E- O. Mstatic UF_STYLER_callback_info_t CCHF_cbs[CCHF_CB_COUNT] =$ z2 o! C( A/ ?! }' O
{
# @ c& T ^- M) K7 @3 V2 w{UF_STYLER_DIALOG_INDEX, UF_STYLER_CONSTRUCTOR_CB , 0, CCHF_con_cb},
5 l$ ]' x& ~' ~ N/ c1 n: q* ?: D{UF_STYLER_DIALOG_INDEX, UF_STYLER_OK_CB , 0, CCHF_apply_cb},0 R3 n# B% s) s0 I; S& l
{UF_STYLER_DIALOG_INDEX, UF_STYLER_APPLY_CB , 0, CCHF_apply_cb},, x* k3 [ q% [2 z5 Q7 S' a
{UF_STYLER_DIALOG_INDEX, UF_STYLER_CANCEL_CB , 0, CCHF_cancel_cb},
9 \% e1 b9 k" M5 r4 s' W2 ?! f/ T{CCHF_TYPE , UF_STYLER_VALUE_CHANGED_CB, 0, CCHF_type_cb},
/ D: P2 g0 y6 o O) \{CCHF_OPTION_D , UF_STYLER_ACTIVATE_CB , 0, CCHF_D_cb},7 J: t! B% Y: [
{UF_STYLER_NULL_OBJECT, UF_STYLER_NO_CB, 0, 0 }* W: ~9 A% G- O A: G S
};# ^: I) u8 x1 }: a
static UF_MB_styler_actions_t actions[] = {
4 m% Q0 F5 }7 m- D{ "CCHF.dlg", NULL, CCHF_cbs, UF_MB_STYLER_IS_NOT_TOP },
7 |, G$ h* E5 m6 b' N5 d% U{ NULL, NULL, NULL, 0 } /* This is a NULL terminated list */7 N/ u1 P0 _/ }- N" A
}; char * strings_D[6]={"25","32","36","40","50","70"};
0 ^- @ o: }' n" }. I$ u' [char * D;
% T) g& s& V' x# d! m! B+ U6 ~* Q3 zint user_click=0;
$ h) N9 c: z0 l# P* T; { z# U, ]int cancel_click=0;3 U2 c/ [4 o: P" o# ~9 R9 y
int type,D_int; extern void ufusr (char *param, int *retcode, int rlen)/ E! V7 |( Z4 ?: `
{3 o- _: g' H- S
int response = 0;* C5 A/ D" U% {1 n8 V
int error_code = 0; int choice;& w, w/ c: V; B. F) ~9 s' m! ^
int defalt[2];* k4 T0 M- O. v' A
double point1[3],point2[3],point3[3],point4[3],point5[3],point6[3];% ^9 Z1 S- R$ `# j3 |, R
double direction[3]={0,1,0};7 L( o; V4 u" i& S% s8 Y
// int i; char * D1, * D2, * T, * A, * B, * C, * E;
# L" k9 B& Q9 Achar * R1;* y* R6 n5 j- c( U3 Q7 b
char * block_len[3];" p) K- ^5 t, |( H* Z; n
UF_FEATURE_SIGN sign = UF_NULLSIGN; //建立一个新的目标体3 G6 q4 n4 Q; F9 P' `
UF_FEATURE_SIGN sign1 = UF_NEGATIVE; //减去目标实体
+ ?2 m& X8 m1 u% q B; v' NUF_FEATURE_SIGN sign2 = UF_POSITIVE; //加目标实体% c: {6 C( g" n
tag_t cyl1_obj,cyl1_fea,cyl2_obj,cyl3_obj,cyl4_obj,cyl5_obj,blk_obj;, b+ Q6 ]6 T+ O& l- g% f
tag_t blend1_tag,blend2_tag,blend3_tag,blend4_tag; uf_list_p_t edge_list,object_list; if ( ( UF_initialize() ) != 0 )
- ~" B: n- O9 k. L5 i) J9 _return; if ( ( error_code = UF_STYLER_create_dialog ( "CCHF.dlg",
/ W6 ]; C) |( k6 FCCHF_cbs, /* Callbacks from dialog */
( y0 C$ k, {! d! B+ f( I- Q, GCCHF_CB_COUNT, /* number of callbacks*/; ~: Q& A3 w, F4 J: f
NULL, /* This is your client data */
1 K/ t) b* E8 f8 G9 I&response ) ) != 0 )9 D* l, A- `4 G7 [( U, r" x
{
! E; G n4 F7 I( Zchar fail_message[133]; /* Get the user function fail message based on the fail code.*/
1 g/ |* O0 w/ m- F0 X4 PUF_get_fail_message(error_code, fail_message);
0 }1 `7 _' P4 V$ K5 C: ]UF_UI_set_status (fail_message);0 y6 G5 D0 g4 A9 l
printf ( "%s\n", fail_message );
; b) [' c* c& `} if(cancel_click==1): J5 m5 \. G4 v% ], |
{
3 @: h# H6 }8 L- jUF_terminate();
) i% b0 a! c, e( _; G' s2 {return;
7 E1 p4 ^1 ^" D} switch(D_int)
3 \) r. d5 Q z, U- r$ m, }{
) Z: q" g8 I- `0 O# T. @case 0:0 S6 R3 K* X; f+ u9 E. r$ Z9 Z
D1="46";
. W; P7 i" Y6 }D2="36";
{" x( K( r( k" t$ uT="12.6";3 x* `* Q5 S0 R p' x% _
A="25";4 |. ]5 w" F* w
B="30";/ L R% S" y5 W! Y& l
C="15";
% X4 r \1 t7 L3 x/ j0 @; yE="16.6";
' D4 n1 d y, T6 x- F; rif(type==1)$ {# x. J7 W; ~. K) K; _! C! d
{
/ t, h- I I# j" K* bD1="60";* q- l, y) ] X& _ Q5 M' H
}
: w8 O5 M( C" Q% H& `: |. k* a! dbreak;
# t6 w3 h2 ~8 J/ a+ ?; _case 1:
. J$ \* ^- \+ O" [" ED1="55";# J! D: Q1 v! [" h& Q
D2="42";( @* t# G; S" B' ?1 x9 Y) L" N0 x1 v
T="13.1";
8 F0 U- p( E5 e- W# iA="30";* b5 t0 Z& k! G( E) W4 N `
B="40";3 Y# ~/ {' r5 S+ e* ~
C="20";! M1 P1 G2 y; o8 [
E="16.8";7 o- ^5 a% K# d- x! W& I0 b4 \
if(type==1)6 {7 i, F. E% y7 n6 _1 G# c
{
% j1 p3 w1 S/ K$ |" D& ~D1="70";
$ H; m. Y( ]7 X- S1 B, O( R}
+ p z& J6 {& dbreak;4 I# c7 d5 g& r2 S H
case 2:% R2 p+ g8 @4 b. n( s2 h' n
D1="60";1 f# p7 [$ ?$ F& K h- z+ e' F! a5 z4 Y
D2="46";# F! V; Y$ }4 k" A3 j
T="18.5";
* m$ s e8 S1 ?, V( qA="35";
4 p/ T% y6 l- e. m2 V$ kB="45";
9 Z( ?' g2 i4 N: N5 e4 lC="25";! H' D$ B3 k9 T+ p
E="17";
* T7 p% V. Q" X1 p* ]- ~( Eif(type==1)
: C, q5 H8 M8 H* D+ H2 u( V# y8 _{! @, ?) E" R. l: V3 b7 ?
D1="80";5 l+ M m! H5 U5 [1 d! j. N
}3 {$ B" Y! H' w! D0 h3 @( |
break;" Y' w$ D% J# T/ n
case 3:
. c% q0 n# S) {$ }+ M% ED1="70";& U P4 n3 N _9 _+ A* [+ H
D2="55";
9 q9 x3 ?1 y* IT="18.9"; d/ {3 c, }0 `
A="35";
6 z6 T+ O4 f% c) n2 AB="60";; N% `, ^7 k' W, u4 L
C="30";8 T8 k' E7 C* k4 }# b8 \
E="17.4";5 _( [; }9 f d' W5 N- L$ o: r
if(type==1)
4 |+ Z! h* `% V3 @- @{
3 S9 Z! @! k G) a' R, t* `D1="90";& r/ ~" r3 Z! n' W$ g
} D+ s/ W# W2 t- w3 j# ~" z& Q
break;
+ L5 L3 \3 l; _" w, ncase 4:* |" G8 _. Z2 A+ ^& @& u2 j
D1="90";
. Z: |. q9 o- d$ B& ND2="70";' e- X: a4 J3 H* v) a7 e
T="25.2";5 g3 Z' d1 r8 I
A="35";( p, c* b2 l' d! G8 [/ J0 l% ]* g- s
B="70";7 ~4 J1 _, q9 ]5 \
C="40";4 I" j% a% i8 i
E="18.1";
" A+ @- t* Q: f& m$ }+ t Iif(type==1)
% g7 ~( h+ q/ T$ o/ k$ O5 _4 e{
3 D! ~. p( O- _& A5 |# ID1="120";8 r* w& P6 U0 {
}
; ?! \# A) d& ^$ f" W2 `break;7 W0 Z# S% k9 Z$ O- ^
case 5:; L7 u( H; g' b9 T* [4 L
D1="120";
; e* L( _/ l/ w* @6 k8 N/ gD2="100";
# A5 [+ E: {$ o+ H+ [6 JT="31.1";
* I, W$ l' x1 u8 Y3 q9 PA="40";6 u/ V: @& U3 s2 U( \, c- O
B="80";
4 Y. j6 a* P' P% x) F0 w" `C="40";
8 Q0 ` J* n! \" ?2 V* @. DE="19.4";) U$ O- k8 g, n: t- Y0 h
if(type==1)" f; \5 m2 r. L+ X! V
{6 r- L4 `3 h' w' ^! i% R
D1="140";1 s1 R6 K# L- S' g
}% z' I) R0 K: L, m
break;: H( A. K/ D2 j! @
default: t6 J3 P8 n/ M6 `7 a3 x2 p1 ~; d J) Y
break;
. y, q, l7 S6 z+ m: @% ^; b7 U} if (user_click==1), D0 K$ w V& S8 V- e, |. x
{
U5 _& c3 P% U2 n, Fchoice = uc1616("指定插入点", defalt, 0, point1);$ H3 J4 C _ ]- M' N. ~
if(choice == 2) //判断退出对话框. P1 S4 c5 i: ~& B' O+ p
{! [; G( ?$ C g; r) A+ M
UF_terminate();. P9 K8 _, i" p1 ^, R, I2 t
return;) W4 I. f5 n" D& G# V/ c
} R1="2";; D5 Z. X& [/ H Q+ E) j! C$ [ m
if(type==1)
" }, H* H) [6 \ Y{5 p0 E' \; _" J8 o/ O
R1="4";8 `) d' W# p) ^$ m @9 @
}
. k; c7 A# K. h8 q) I- r! M# [//cyl18 L" ^ T5 | R, g: ~3 D
UF_MODL_create_cyl1 (sign,point1,T,D1,direction,&cyl1_obj);% @4 ^2 y: `( F' J3 v) h' [, e
UF_MODL_ask_feat_body(cyl1_obj,&cyl1_fea);
4 u6 h) g4 O$ c: M- F! @, _UF_OBJ_set_color (cyl1_fea, 9); //设置实体颜色 UF_MODL_create_list(&edge_list);
- B4 x7 ^. \8 {4 ]( BUF_MODL_ask_feat_edges (cyl1_obj, &edge_list);/ c; M0 i& F j/ f% x
UF_MODL_create_blend (R1, edge_list, 0, 0, 0, 0.5, &blend1_tag); //倒圆角cyl1
! A+ `* q1 T& x( |5 ZUF_MODL_delete_list(&edge_list);7 g# n6 `, O8 p4 w3 e
//cyl2( W' F7 ^. W: V# s0 f) M
point2[0]=point1[0];
8 f1 q3 k* e- C# i: [ B8 cpoint2[1]=point1[1]+atof(T);! i$ l2 s8 n6 Y% N3 j9 {
point2[2]=point1[2];8 w( [: l0 ?4 b
UF_MODL_create_cyl1 (sign2,point2,A,D,direction,&cyl2_obj);% p6 h2 @- P8 G+ ?
//cyl37 S6 P5 O* {3 W! i
point3[0]=point1[0];8 e6 X& x/ f+ o! n- |+ S t. d
point3[1]=point2[1]+atof(A);
' B2 h3 z8 S6 n' M2 C3 y1 h/ opoint3[2]=point1[2];, ]% H. ^! R& B& q. y
UF_MODL_create_cyl1 (sign2,point3,B,D2,direction,&cyl3_obj);
& }, y" a& d6 r% L3 u! I//cyl4
3 h: ^% d# m1 Q0 h, N/ E( A) opoint4[0]=point1[0];
& c* T- N2 }! ^+ o8 X' j3 d3 epoint4[1]=point3[1]+atof(B);
& D& h7 @, ~+ wpoint4[2]=point1[2];
8 o* M& ?( f6 f- gUF_MODL_create_cyl1 (sign2,point4,C,D,direction,&cyl4_obj);
+ a+ ], r5 ] }$ E! _! r4 G8 m//cyl52 l" C8 G6 s$ L0 r" T9 N$ ]
point5[0]=point1[0];6 p! [9 S" O! \! p n
point5[1]=point4[1]+atof(C);
q! H- s; ]) ~point5[2]=point1[2];( B6 [6 \: P& J- A5 H4 a) ?$ l
UF_MODL_create_cyl1 (sign2,point5,E,D2,direction,&cyl5_obj);
! E: \5 \+ H; S; L: [//倒圆角! I, W7 Q4 f9 ?6 G
UF_MODL_create_list(&edge_list);
; j2 ]/ \' a6 T9 X6 V$ S. zUF_MODL_ask_feat_edges (cyl2_obj, &edge_list);- V8 \/ `: O" E: T" r* x3 |$ N4 `
UF_MODL_create_blend ("5", edge_list, 0, 0, 0, 0.5, &blend2_tag); //倒圆角cyl2: c5 J* w; m' m: r! C
UF_MODL_delete_list(&edge_list); UF_MODL_create_list(&edge_list);8 b Y6 v4 T4 \' Y7 s
UF_MODL_ask_feat_edges (cyl4_obj, &edge_list);, P* ^& H( Z- T. P' R* Q3 a, a% @9 |0 }
UF_MODL_create_blend ("3", edge_list, 0, 0, 0, 0.5, &blend3_tag); //倒圆角cyl4" c" r7 o7 z: j4 T
UF_MODL_delete_list(&edge_list); UF_MODL_create_list(&edge_list);& w. f7 |$ K; C. p% v/ f5 A0 I1 ^
UF_MODL_ask_feat_edges (cyl5_obj, &edge_list);, Q4 d7 o1 @9 Y. N) D4 Y- Z8 O
UF_MODL_create_blend ("3", edge_list, 0, 0, 0, 0.5, &blend4_tag); //倒圆角cyl5
5 ?6 Z8 D; D2 H; d; d; WUF_MODL_delete_list(&edge_list);7 g' J, Y/ w$ N+ }- B( x
//减体用blk
2 u. ?: }7 a4 V2 _1 |block_len[0] = D2;
# T" Q+ |5 P6 y/ [block_len[1] = D2;
R4 s" h+ R/ o7 m# pblock_len[2] = D2;+ f8 j* _, c8 m
point6[0]=point1[0]+atof(D)/2;
# n: n& A; y. {) J/ Cpoint6[1]=point5[1]-8;. w5 U) o9 z4 f& n: f& _
point6[2]=point1[2]-atof(D2)/2;5 e0 T5 f. c8 i/ _6 s
UF_MODL_create_block1 (sign1, point6, block_len, &blk_obj);# y! Q) H; ]& z& C$ r) M
//消参1 Y* j2 a6 R, x7 X m6 y7 K3 A3 p. I
UF_MODL_create_list(&object_list);
( S. s1 P# o! h8 x6 F0 YUF_MODL_put_list_item(object_list, cyl1_fea);
. G; k5 f+ u( V* | g) x6 TUF_MODL_delete_object_parms (object_list);" q+ v3 A3 ?$ V. H. ?& N
UF_MODL_delete_list(&object_list);% ?# w" j) E3 V1 I. N5 R
} UF_terminate();
( G! ?" N6 f8 q% v# {return;2 P' Y. H2 [# T, i7 _) R/ y% D
}
/ ?4 i; X* V+ l5 Nextern int ufusr_ask_unload (void)
n' Y H5 G$ ^) H' K8 B9 q7 l{# X: x' j* p5 o4 w: [
/* unload immediately after application exits*/
6 {. S5 e6 \! D4 P) xreturn ( UF_UNLOAD_IMMEDIATELY ); /*via the unload selection dialog... */
) H( G+ H# V; O, i f5 ]5 {2 w/*return ( UF_UNLOAD_SEL_DIALOG ); */0 v9 q' d+ n8 l" g3 Q+ T
/*when ug terminates... */8 \: X( ?1 K' ?) _4 q+ V) m
/*return ( UF_UNLOAD_UG_TERMINATE ); */
; E6 j7 ]- o+ \' }7 n/ Y, S5 i8 O} extern void ufusr_cleanup (void)
0 n$ K/ h. c4 w+ z8 x{. G: V {+ m" B7 b# |+ f
return;
0 \8 B* ]: V3 M# O+ t/ Z% c0 F}
7 M+ d) L( H3 h- M3 rint CCHF_con_cb ( int dialog_id,
% r9 x* ?5 V' d. xvoid * client_data,
, ?/ `9 F- x, R Z* [# lUF_STYLER_item_value_type_p_t callback_data)
3 E+ }- W3 u% F5 g2 [{, r3 W y3 J1 t4 u' z# S6 e7 K
/* Make sure User Function is available. */7 |* c& o h7 N0 ~' h* Z' l
UF_STYLER_item_value_type_t data; if ( UF_initialize() != 0)- [ `( q, j9 r/ F
return ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */! n& I% y! s" x+ @! A# Z
data.item_id = CCHF_OPTION_D;1 ~- R# w- V/ E5 ]
data.item_attr = UF_STYLER_SUBITEM_VALUES;
3 Q. f; B s4 C" i% Xdata.count = 6;
/ ~2 ~% {* k$ V' vdata.value.strings = strings_D;
! B8 Y4 j3 J2 L) a, V3 cUF_STYLER_set_value(dialog_id,&data); data.item_id = CCHF_WIDE_STRING;
2 ^. g5 {/ ~; C5 B( r# ]data.item_attr = UF_STYLER_VALUE;4 H" |) ]. }4 p3 B; r) b
data.value.string = "三住标准/材质:S25C";
% j4 A/ L. [( I' P3 jUF_STYLER_set_value(dialog_id,&data); D="25";
# a0 g, K+ H e, ]" Ktype=0;1 k) }& k3 T E) @6 i3 `4 c5 |
D_int=0; UF_terminate (); /* Callback acknowledged, do not terminate dialog */
7 e% q( E- I$ q& h breturn (UF_UI_CB_CONTINUE_DIALOG);
6 b0 h# r0 M, X* U5 I/* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */
8 y& j; }9 [0 n+ Y7 O/ {5 u! G/* for this callback type. You must continue dialog construction.*/ } int CCHF_apply_cb ( int dialog_id,
7 T% c) z7 U& \$ p5 {& i' J+ R8 }9 A! fvoid * client_data,
2 @7 F; V. P; V+ hUF_STYLER_item_value_type_p_t callback_data)
; J0 x3 x4 x/ l& V4 M{
9 ]! a, u' I& o/* Make sure User Function is available. */. R) ?1 E/ g1 l
if ( UF_initialize() != 0)
9 Z8 h( e" U+ B3 Nreturn ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */
+ i2 O( Q, i3 i! h L! juser_click=1; UF_terminate (); /* Callback acknowledged, terminate dialog */
8 x8 z3 z- f: g. D$ P; D/* It is STRONGLY recommended that you exit your */3 W" t; u0 H# d
/* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/
5 P* p+ |/ n, L6 x) Q/* return ( UF_UI_CB_EXIT_DIALOG ); */% ]7 a- f" H% n$ |% F: H
return (UF_UI_CB_EXIT_DIALOG); } int CCHF_cancel_cb ( int dialog_id,; E* q; G* j1 n+ C. \9 l
void * client_data,; I8 ]- H/ [9 L8 E0 r5 V
UF_STYLER_item_value_type_p_t callback_data)) f r9 F1 c( Y; B3 y
{5 P/ N4 B" ]7 K' `6 @
/* Make sure User Function is available. */. f/ f. I8 y# {* |8 ]
if ( UF_initialize() != 0)6 V5 [; z2 G) \" x# x" k4 |3 \* u" w7 i
return ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */
0 E2 u4 A& O" _" F y9 y) C4 ncancel_click=1; UF_terminate (); /* Callback acknowledged, terminate dialog */
% J V- ]/ {. N4 a& I; U7 Y( P/* It is STRONGLY recommended that you exit your */; X; `1 y5 ^; C) `: F9 G
/* callback with UF_UI_CB_EXIT_DIALOG in a cancel call */
1 w: k# T6 b% V; v4 H% J: g- x/* back rather than UF_UI_CB_CONTINUE_DIALOG. */
3 F- R8 r5 i* Y& J, V+ l- M% |# Qreturn ( UF_UI_CB_EXIT_DIALOG ); } int CCHF_type_cb ( int dialog_id,: c% v+ @2 B& B+ d
void * client_data,$ O3 ?" _/ e- b' I
UF_STYLER_item_value_type_p_t callback_data)
+ g, G& E1 m, g i+ c. r3 {{
. t; q( q2 q: q- m* F/* Make sure User Function is available. */
) Q2 W+ Y/ L. i8 i- o \0 ~UF_STYLER_item_value_type_t data; if ( UF_initialize() != 0)) C5 ~ S% B, Z# I
return ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */2 S2 f8 T$ w% T& e( l6 Y
data.item_id = CCHF_TYPE;
2 l7 w1 d w# [+ B: p/ X, G$ k" Hdata.item_attr = UF_STYLER_VALUE;
; ~* I* X2 q7 _( AUF_STYLER_ask_value(dialog_id,&data); type=data.value.integer; UF_terminate (); /* Callback acknowledged, do not terminate dialog */
1 {7 i/ F9 _+ D/ I& b* m xreturn (UF_UI_CB_CONTINUE_DIALOG); /* or Callback acknowledged, terminate dialog. */
0 v* t9 {' s/ H5 I2 v$ l/* return ( UF_UI_CB_EXIT_DIALOG ); */ } int CCHF_D_cb ( int dialog_id,
& G1 `& ]4 I h9 Zvoid * client_data,6 u) j$ Q. B# M$ R# i
UF_STYLER_item_value_type_p_t callback_data)
( h( \9 r" T% M# c. Z5 \{
6 M. T5 H% B* C' o8 [9 V6 {/* Make sure User Function is available. */
! D7 J+ @, W$ U7 k6 yUF_STYLER_item_value_type_t data; if ( UF_initialize() != 0)
& S' ]# A# A# }8 a( U4 X% |: p( ~return ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */& t, K% }) x2 X' x/ x
data.item_id = CCHF_OPTION_D;6 K% v$ T* d5 Q/ _
data.item_attr = UF_STYLER_VALUE;' j; Y9 J9 M) o5 j% D$ E* V1 l8 Z
UF_STYLER_ask_value(dialog_id,&data); D_int=data.value.integer;
/ x A1 n% U/ G0 JD=strings_D[D_int]; UF_terminate (); /* Callback acknowledged, do not terminate dialog */
0 a6 a7 _1 j, \, F _return (UF_UI_CB_CONTINUE_DIALOG); /* or Callback acknowledged, terminate dialog. */
: C& }3 h0 g" D0 E/* return ( UF_UI_CB_EXIT_DIALOG ); */ }
5 x- b* b& A* ]7 z3 ~2 @% ]* A3 U& t; P& X$ Y- R" E h
|