//铸入型起重棒
, W" V. x) h4 L/* These include files are needed for the following template code. */
+ M' w& k. _' d( A& E( X/ M( s. I#include <stdio.h>- U2 ?* E' F1 j
#include <uf.h>1 G2 A+ j# z+ n# L& ]: S
#include <uf_defs.h>
( J9 k2 C3 y. G$ K( j5 I; j#include <uf_exit.h>
& i' ^" o7 p4 L' j9 O2 S#include <uf_ui.h>
: s8 p% t) N7 _6 q#include <uf_styler.h>
6 ~ t+ E# C, {- o% ?! ^#include <uf_mb.h>8 s: I* X. _; |2 @
#include "CCHF.h"& T3 w! P2 R+ U% s, `9 Z. T- `
#include <uf_modl.h>
+ ]* W' e& C9 x1 x& ~2 E5 r" D#include <uf_obj.h>) Q+ O) J, l" N' l1 K( C) s7 G
#include <math.h> /* The following definition defines the number of callback entries *// G7 G3 U; |" ?& O- e3 G
/* in the callback structure: */
; o* v, l1 j! \, p5 K- O( Y. A/* UF_STYLER_callback_info_t CCHF_cbs */7 X1 E- r5 ~1 T9 {7 D* R
#define CCHF_CB_COUNT ( 6 + 1 ) /* Add 1 for the terminator */ /*--------------------------------------------------------------------------+ o5 g) P! { g! H! m0 P9 F
The following structure defines the callback entries used by the9 A, u' h' E; Y: a) n! _! X$ O" Z
styler file. This structure MUST be passed into the user function,
' ]1 a7 } }- T9 ?UF_STYLER_create_dialog along with CCHF_CB_COUNT.
7 e/ E( ]" k% @ h6 W1 [; W$ u--------------------------------------------------------------------------*/; F6 j7 a3 B5 O) c1 A8 u0 _2 j
static UF_STYLER_callback_info_t CCHF_cbs[CCHF_CB_COUNT] =( `8 t. s% T/ u% d- ?. V2 M, { ?( H# |
{+ B% h7 H' h+ M& q! b0 A% m! p
{UF_STYLER_DIALOG_INDEX, UF_STYLER_CONSTRUCTOR_CB , 0, CCHF_con_cb},
6 \2 }7 H1 {) h3 T$ B* Y& V7 v{UF_STYLER_DIALOG_INDEX, UF_STYLER_OK_CB , 0, CCHF_apply_cb},
* V5 S% C; k8 H& I; B{UF_STYLER_DIALOG_INDEX, UF_STYLER_APPLY_CB , 0, CCHF_apply_cb},
/ I% {- i; _& j; ]{UF_STYLER_DIALOG_INDEX, UF_STYLER_CANCEL_CB , 0, CCHF_cancel_cb},$ f; W3 j4 K, m
{CCHF_TYPE , UF_STYLER_VALUE_CHANGED_CB, 0, CCHF_type_cb},+ h- c+ }: s& B$ ~5 m
{CCHF_OPTION_D , UF_STYLER_ACTIVATE_CB , 0, CCHF_D_cb},+ i4 a4 H9 Z3 ] Z* f/ n! D
{UF_STYLER_NULL_OBJECT, UF_STYLER_NO_CB, 0, 0 }
6 l+ J* B- X. W4 L4 o};7 ^8 {* z0 R L; U$ l$ P: |
static UF_MB_styler_actions_t actions[] = {# `+ R7 e; D" u9 P5 B
{ "CCHF.dlg", NULL, CCHF_cbs, UF_MB_STYLER_IS_NOT_TOP },
x+ a/ m. Z f1 S{ NULL, NULL, NULL, 0 } /* This is a NULL terminated list */
; V3 u# Q4 H/ C5 T9 g. `! l k' {6 b. z}; char * strings_D[6]={"25","32","36","40","50","70"};4 P3 v7 R" g& z7 K6 m# Z
char * D;9 }; ]1 t i0 ~9 V( [+ X7 u
int user_click=0;5 N+ Q0 |+ \# m7 ]8 }% w% T8 y7 v
int cancel_click=0;
$ t' e7 |) c0 E n8 R! G1 uint type,D_int; extern void ufusr (char *param, int *retcode, int rlen)
+ S1 ^9 p9 S8 F2 D8 n{/ J- D% ?% J2 n
int response = 0;; ^5 f& M3 f- z4 T+ I- J) O; x
int error_code = 0; int choice;
1 V( v; e# Z" z/ mint defalt[2];
9 i, U- @: f) G# Y6 Cdouble point1[3],point2[3],point3[3],point4[3],point5[3],point6[3];
) I, k I9 |8 b1 o/ b9 n1 M& B5 A/ Jdouble direction[3]={0,1,0};8 h5 w* K' i) V k
// int i; char * D1, * D2, * T, * A, * B, * C, * E;, a3 x6 [) {6 S
char * R1;
' Z! ~( \+ m6 Q# m+ ^char * block_len[3];
- J1 [. L# G, r! ^' O4 X* x' O, HUF_FEATURE_SIGN sign = UF_NULLSIGN; //建立一个新的目标体
7 Y( o" _/ a$ A$ q# @UF_FEATURE_SIGN sign1 = UF_NEGATIVE; //减去目标实体) Y" o0 q- [4 }8 `, d5 c! O8 W
UF_FEATURE_SIGN sign2 = UF_POSITIVE; //加目标实体
+ F! T9 ?. {6 |tag_t cyl1_obj,cyl1_fea,cyl2_obj,cyl3_obj,cyl4_obj,cyl5_obj,blk_obj;' ~0 U0 F* q- a
tag_t blend1_tag,blend2_tag,blend3_tag,blend4_tag; uf_list_p_t edge_list,object_list; if ( ( UF_initialize() ) != 0 )4 C }1 L7 b* j. B) i
return; if ( ( error_code = UF_STYLER_create_dialog ( "CCHF.dlg",
; E i2 b0 G5 O0 xCCHF_cbs, /* Callbacks from dialog */+ K3 t2 I3 _3 S/ Y% M3 r- l
CCHF_CB_COUNT, /* number of callbacks*/$ |* S% r1 H" f% |7 g4 F
NULL, /* This is your client data */: }- v# `0 ]6 H3 U9 |: S" e
&response ) ) != 0 )
# h7 ^8 f( }* d/ f8 p. \- m{
% I. @6 T8 E& A# Y& \' qchar fail_message[133]; /* Get the user function fail message based on the fail code.*/& [3 G& Y3 ]/ D4 p5 x
UF_get_fail_message(error_code, fail_message);
3 E1 F8 h7 ~* ?. C) E% c8 K5 tUF_UI_set_status (fail_message);
* w1 V6 O- d$ y# ?) Hprintf ( "%s\n", fail_message );
% V2 s+ `0 A( z/ d" I} if(cancel_click==1)# V7 G( k, I/ N* ~% K
{! U$ K, _+ I% i( {
UF_terminate();
& E% `+ i. I% c0 ^; F+ P. C p& Areturn;) t) _# C: _+ x' p& w
} switch(D_int)
7 ]5 e: o* y' f0 `! a{
) {4 W2 @0 J4 ~- l3 ?case 0:
4 U3 ?) n# R" [9 I kD1="46";
& z- a; C }& A- v+ tD2="36";5 k- {7 c0 S0 J
T="12.6"; M1 {( O2 N, Q3 F! g1 C
A="25";/ p/ k: ]3 }" E
B="30";
2 E" i9 X( l: T6 w) ]C="15";- Z/ B: \8 i; m* N# d- j+ M
E="16.6";, `* t, V3 }: K2 a( s
if(type==1)6 I, h _ q+ D) o6 z
{
3 X2 t6 q6 Y/ n7 n+ p& H" lD1="60";
" Y5 r6 N3 g; M}5 Y9 f0 W5 [6 {' \, B K
break;
: ?2 }/ a, r" A C3 i% ucase 1:4 ~ K1 _$ \. k& }
D1="55";6 n: W* u. N) |& [: m- R8 t) x9 @
D2="42";
% T2 ~4 ]0 |5 sT="13.1";) J& S/ l# I. V8 t I2 A; Z& y
A="30";
' t! C( c4 s' }9 T. m2 U4 M) IB="40";# L- x/ \9 {0 Q0 k! ?
C="20";
$ G% v$ D$ c) @7 CE="16.8";
# N( A2 R6 z" P e; Y! yif(type==1) d5 p8 U F. k7 |' |+ F+ C7 V
{
& C* y4 g6 W1 `6 MD1="70";2 ]' N# p7 k* D
}
k: Z2 x" r* L# y1 ?+ fbreak;1 g1 @& r2 a4 V! h
case 2:
+ F$ D9 a! A, S' w" J' mD1="60";2 s* ?: r2 A4 G" F J3 \ X
D2="46";
% U3 l+ q9 v6 r. i" B5 C& YT="18.5";
; w% [3 Q1 V2 ]* nA="35";
' @+ l7 [! X& N/ L. gB="45";
. {: Z& J2 w& q; zC="25";
- S- w% T+ C3 J' ^' iE="17";
- t; ~+ I& }4 g! E+ V2 v5 Rif(type==1): E9 m. V0 D( A H
{
2 d8 D- U/ v( AD1="80";1 k. f! h# k: h6 j$ T8 R0 P
}3 J- D( D# S2 h9 v4 J- Q
break;' o8 O) T ]. w, F2 g' d+ `
case 3:
8 [' c% V- T/ V& J6 x3 [D1="70";
2 [, f) w8 |: C7 DD2="55"; l1 ~# C8 g8 g0 P* _7 Q1 o
T="18.9";
* a) h/ d! |, [& z& @) x, WA="35";2 c# U; o1 W+ u8 ~" @* [
B="60";7 C9 Q5 H, h* I4 t1 M9 x* t: M' D; d9 S
C="30";/ ~( f E% W8 d5 Q/ M
E="17.4";1 S4 ]; n5 u7 J0 S8 |
if(type==1)
( z q( }. p/ Z$ W% v{: a% R" r' F5 G, z* s* ?
D1="90";: x+ x# m6 \7 |5 e
}
+ A3 p4 S0 k% p/ |" m' B7 Mbreak;
' D/ K* R# ?# @ h8 Fcase 4:
$ y/ t5 f+ y" x! N/ jD1="90";
$ v* n( r( Q5 e gD2="70";
6 f% O% B3 U# Z) IT="25.2";
2 C# Q" g" f3 x" j! UA="35";
* R( F0 E7 P+ M' r- b) Q$ W( W+ cB="70";
& S5 C, X8 H, c0 DC="40";
3 ]' f- ~" I* v8 Y) PE="18.1";, g& l# f J! ^4 D; K
if(type==1)0 I# S3 `+ V* J
{
/ W" C4 `% t. u4 Q0 m, K jD1="120";3 z6 V" ^7 x! F; [7 W( D
}! j! i) @5 C: j7 f7 ]3 I
break;
* H; Z- k7 J# @. s+ Ncase 5:
0 N' M$ e& p6 G" m0 `, RD1="120";
* `) X7 u% f8 a3 FD2="100"; L4 K* e9 U/ C: C3 t0 j/ V
T="31.1";
" |8 ]! Y# Y+ G n7 bA="40";
) o6 P% Y& d/ h( qB="80";4 l9 Z+ }1 D' e. x8 a& t
C="40";; }% u0 h6 |4 O* e
E="19.4";9 c8 R- r4 s% {5 Q" } b
if(type==1)
$ ~4 g" J6 }5 K6 V( i9 M2 r{
$ A0 `1 ~' o) O) tD1="140";
) V2 q8 I/ Y7 G( x}
) _6 y7 x& N/ d! a$ S! vbreak;- q- e2 f* b/ k: i) E; K# x
default:
9 q! w' `; R! `: _$ j" W! b% ubreak;# H d( L% k7 J
} if (user_click==1)3 N* u4 D( A \9 d2 k
{. J3 T$ _3 H( D4 I0 F
choice = uc1616("指定插入点", defalt, 0, point1);
" _* V( n. X2 Z7 ^4 C4 ~! C, _: qif(choice == 2) //判断退出对话框
4 y: x5 m( |9 {% z9 A) M{' j3 f9 t9 b/ v1 B! h, L
UF_terminate();
^) g, g* D1 Z! D; X/ i- w0 ireturn;
' N' [( o8 i6 T6 R; c8 W} R1="2";: Z6 s; X; t5 I' X0 e* p
if(type==1)) Z) v' r5 E! @/ t8 u
{1 ]4 {. |5 e6 P1 u( r; o) M1 @
R1="4";
* F, z" ?% o; T+ m* b7 ^' q}
. c; e: T F' o+ A! _* u7 a//cyl1
3 u3 H& H8 W5 E1 u5 RUF_MODL_create_cyl1 (sign,point1,T,D1,direction,&cyl1_obj);4 ?7 I; S; C- [. d% q4 b; F
UF_MODL_ask_feat_body(cyl1_obj,&cyl1_fea);
& h" F' ^7 V- AUF_OBJ_set_color (cyl1_fea, 9); //设置实体颜色 UF_MODL_create_list(&edge_list);; u0 d @) r) \) k6 r9 d5 p2 ^- y# v
UF_MODL_ask_feat_edges (cyl1_obj, &edge_list);3 ~2 G5 i) u h. K0 W8 \( _- }; W7 i
UF_MODL_create_blend (R1, edge_list, 0, 0, 0, 0.5, &blend1_tag); //倒圆角cyl1
, W. E* a N) x! f' {- l D1 hUF_MODL_delete_list(&edge_list);- x* ?/ ]! o" `" p- u0 Z
//cyl2
' U, z/ `4 T$ z( jpoint2[0]=point1[0];
9 B* [$ Z9 _7 q* upoint2[1]=point1[1]+atof(T);. g6 q3 N9 w, m4 D; k
point2[2]=point1[2];% E0 p$ p8 @. X1 B, { P. D
UF_MODL_create_cyl1 (sign2,point2,A,D,direction,&cyl2_obj);
7 n" ?! x9 Q' b7 m) h' K//cyl3
5 C. K. w0 t- B; w5 W# Gpoint3[0]=point1[0];6 Y) t" N- E# v1 H
point3[1]=point2[1]+atof(A);
6 Y4 v! I9 n# X3 O, J( V, opoint3[2]=point1[2];+ E O1 y0 J% X/ p
UF_MODL_create_cyl1 (sign2,point3,B,D2,direction,&cyl3_obj);) R% A. ?! h# g/ O
//cyl4$ C t! w$ c/ e! }3 W0 S6 n6 D
point4[0]=point1[0];
& Z4 I' ]& T; Gpoint4[1]=point3[1]+atof(B);
# H3 M0 f3 z# C8 Epoint4[2]=point1[2];& g; v9 W/ @6 k8 |7 c
UF_MODL_create_cyl1 (sign2,point4,C,D,direction,&cyl4_obj);( p$ @, Z. k0 |: _- l: |6 f
//cyl5
5 R. }1 k' x% q5 ^( [+ Zpoint5[0]=point1[0];
. z) z7 [4 M' Cpoint5[1]=point4[1]+atof(C);
$ E$ }# |8 q' p3 Ipoint5[2]=point1[2];% g" y: F* [* ?, c5 H% g" c* Q) F
UF_MODL_create_cyl1 (sign2,point5,E,D2,direction,&cyl5_obj);
4 R9 f- Y* l- F5 o4 o//倒圆角
2 J4 \/ i9 R9 m, M0 ?4 TUF_MODL_create_list(&edge_list);
* q* k9 d0 m0 f6 ?+ n9 b" z. GUF_MODL_ask_feat_edges (cyl2_obj, &edge_list);7 g7 v8 d$ A8 o* T! v
UF_MODL_create_blend ("5", edge_list, 0, 0, 0, 0.5, &blend2_tag); //倒圆角cyl24 O* F# m# J7 g( V4 W8 m
UF_MODL_delete_list(&edge_list); UF_MODL_create_list(&edge_list);
% P! ~% d3 H0 K& V# GUF_MODL_ask_feat_edges (cyl4_obj, &edge_list);
% C7 I4 x! \) ~UF_MODL_create_blend ("3", edge_list, 0, 0, 0, 0.5, &blend3_tag); //倒圆角cyl4" F9 I# k' ^0 X3 J- T2 H
UF_MODL_delete_list(&edge_list); UF_MODL_create_list(&edge_list);
. n# a4 t' Q: ?UF_MODL_ask_feat_edges (cyl5_obj, &edge_list);
* h0 q/ Z8 ^) A% W. N( C2 TUF_MODL_create_blend ("3", edge_list, 0, 0, 0, 0.5, &blend4_tag); //倒圆角cyl5# B2 Y+ ]3 b7 A! O8 q* M
UF_MODL_delete_list(&edge_list);5 a6 h- Q( k! ^9 w
//减体用blk
" B# @2 G$ F1 D# b5 xblock_len[0] = D2;5 O3 q, L( |; x- B* B: l) @
block_len[1] = D2;
: i; G1 J4 t4 _block_len[2] = D2;7 U0 |0 N& ]+ {& W- d+ C
point6[0]=point1[0]+atof(D)/2;4 W; L$ t3 [2 S6 U* V: S
point6[1]=point5[1]-8;
2 Y; F: S9 }# W% a( C/ Gpoint6[2]=point1[2]-atof(D2)/2;
* T( f2 E3 S5 p c) n5 S% j0 qUF_MODL_create_block1 (sign1, point6, block_len, &blk_obj);
, h! b2 e8 q( O8 d, E9 k//消参
. I3 e8 |% }( X9 hUF_MODL_create_list(&object_list);8 X+ Y4 U) t# L/ S, f
UF_MODL_put_list_item(object_list, cyl1_fea);
/ S: ^! s! [. O# s' h! b2 k9 ^8 [UF_MODL_delete_object_parms (object_list);: A8 m' |$ z$ \: j" B8 t3 R) g
UF_MODL_delete_list(&object_list);8 o$ m4 f4 M0 _, N. G* F2 N( a
} UF_terminate();9 e6 ?% P* O. |: [, \# t
return;" `1 T8 |" \7 b; F2 }+ O- {: K
}5 H5 H2 ~4 |- e3 E5 e1 P
extern int ufusr_ask_unload (void)! |0 C6 m" E; m9 ~. o
{
9 \. v) K9 |, P% _5 J+ f7 d2 o/* unload immediately after application exits*/
. G/ u0 b/ K* q; c2 x6 k1 g, ?return ( UF_UNLOAD_IMMEDIATELY ); /*via the unload selection dialog... */
9 b3 H* z- q+ ]/ z( L. n* g/*return ( UF_UNLOAD_SEL_DIALOG ); */
" S$ }/ e4 D" x6 ?3 f3 H/*when ug terminates... */
5 e" M$ E& t, U' E/*return ( UF_UNLOAD_UG_TERMINATE ); */
9 D6 L" F& O' `8 M1 B' u) @} extern void ufusr_cleanup (void)
9 x# X- ^/ K: v% j* X4 C3 l{
3 {% y; f1 U% ^8 [return;
( w/ [4 D% w2 p; D) _}6 G* v! v( _) e% R( a
int CCHF_con_cb ( int dialog_id,
# j: k: P5 i5 k8 G6 p" wvoid * client_data,
7 Y/ u( a: W" a4 v9 j: CUF_STYLER_item_value_type_p_t callback_data)
+ [( Z& U! X6 M; d& M{, s: M2 H6 m) |& c6 ]0 P! ?
/* Make sure User Function is available. */7 Z7 e7 }0 F' ?' D' k
UF_STYLER_item_value_type_t data; if ( UF_initialize() != 0)
7 N* H: A; X. V& S2 n( X; O" kreturn ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */; C" e6 r9 g: S- c7 ^6 Y- N" W
data.item_id = CCHF_OPTION_D;
. x/ W9 E& A: F xdata.item_attr = UF_STYLER_SUBITEM_VALUES;
4 m% c+ g& w4 l! a% odata.count = 6;! P, L1 N: A c# Y* Q
data.value.strings = strings_D;
: f5 i. X/ A3 W2 @4 m6 e" Z7 L, ]4 [UF_STYLER_set_value(dialog_id,&data); data.item_id = CCHF_WIDE_STRING;
& L y: O" F8 d+ j7 c7 u9 z/ Ndata.item_attr = UF_STYLER_VALUE;, U) c; k9 x* h. Y; {& |( Q
data.value.string = "三住标准/材质:S25C";
% w; n4 V, a/ e' X: r$ xUF_STYLER_set_value(dialog_id,&data); D="25";5 E' v* ~* v" J9 p
type=0;
6 {" k8 | V. D" ]D_int=0; UF_terminate (); /* Callback acknowledged, do not terminate dialog */6 L( _' y% Z. N C# Y3 I% l, R- J
return (UF_UI_CB_CONTINUE_DIALOG);4 \+ \; v- K( h" I& i* n' }6 N
/* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */ V) p# A M2 S6 V1 }0 I; w, V% u
/* for this callback type. You must continue dialog construction.*/ } int CCHF_apply_cb ( int dialog_id,) H* w' \6 B7 |2 C* a
void * client_data,% E! i% E V* @1 s' L
UF_STYLER_item_value_type_p_t callback_data)
) A6 }3 l4 ]* v' }{8 u/ m0 L" Z* |' p! V: g6 `
/* Make sure User Function is available. */% d( @# `1 F* j* ~
if ( UF_initialize() != 0)
/ u+ W- a0 t9 W; u3 c( j$ e" dreturn ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */
* k, o& s- {2 E4 {user_click=1; UF_terminate (); /* Callback acknowledged, terminate dialog */: N, k" \; Q: a B& {
/* It is STRONGLY recommended that you exit your */
" r4 z1 ~) h6 y! J" `! _/* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/
9 G) a1 Y+ D9 J+ Q/* return ( UF_UI_CB_EXIT_DIALOG ); */' Q! Y3 `: i/ z1 o9 G' G6 u9 N& Y8 @
return (UF_UI_CB_EXIT_DIALOG); } int CCHF_cancel_cb ( int dialog_id,4 V+ }- {( i" e( U9 i! K
void * client_data,7 q" j3 v% |! x' {
UF_STYLER_item_value_type_p_t callback_data)) L0 @3 X0 I6 \9 A# z9 \4 f5 ^) r J
{
* K8 T+ H+ w& _7 ?7 t7 u, f/* Make sure User Function is available. */" D4 Z8 i+ |% R$ l1 ?4 f
if ( UF_initialize() != 0)
3 V: I9 d# ^3 L, D; Nreturn ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */
* Y0 _# M# @' Y) Rcancel_click=1; UF_terminate (); /* Callback acknowledged, terminate dialog */
$ C$ ~; M. n4 k& C/ W5 w# d' H/* It is STRONGLY recommended that you exit your */9 q8 v: s9 [4 M' j2 F4 ~5 K
/* callback with UF_UI_CB_EXIT_DIALOG in a cancel call */4 O9 r+ Z+ f7 t+ H
/* back rather than UF_UI_CB_CONTINUE_DIALOG. */9 L# A9 a+ E, X) g0 H m. r8 ]
return ( UF_UI_CB_EXIT_DIALOG ); } int CCHF_type_cb ( int dialog_id, T* H2 K9 V4 n1 V6 Y2 Z! q, `
void * client_data,
& ~( |! p8 X6 r7 ^UF_STYLER_item_value_type_p_t callback_data)& B6 _4 u0 y! I' G" d
{+ o, o# w- w H* x) T9 \7 d
/* Make sure User Function is available. */
4 {0 s$ b& Q' R: o( {4 }! tUF_STYLER_item_value_type_t data; if ( UF_initialize() != 0)' `( E# @5 D2 f8 `: g6 J
return ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */7 U# @* D7 Q$ J, v4 ^
data.item_id = CCHF_TYPE;5 T+ K+ G |, ~) t! {: f8 C1 {3 o
data.item_attr = UF_STYLER_VALUE;
0 H. [! K, M# g2 _# Q6 zUF_STYLER_ask_value(dialog_id,&data); type=data.value.integer; UF_terminate (); /* Callback acknowledged, do not terminate dialog */, T4 n. j$ v" ^" Z
return (UF_UI_CB_CONTINUE_DIALOG); /* or Callback acknowledged, terminate dialog. */4 {6 w9 w) |2 B& C
/* return ( UF_UI_CB_EXIT_DIALOG ); */ } int CCHF_D_cb ( int dialog_id,. J" N+ h$ b- ^) n i
void * client_data,: z. d, ^9 k; D9 p
UF_STYLER_item_value_type_p_t callback_data)
% n( F, V) f0 c" g{
, \# f5 `+ C% D5 b$ c( o% d/* Make sure User Function is available. */; h6 a8 Q! Q! t H! g8 @
UF_STYLER_item_value_type_t data; if ( UF_initialize() != 0)
% ]/ U4 I% J6 m7 }: Creturn ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */! P$ b0 ^( o9 m [( k S! c9 E5 B3 v
data.item_id = CCHF_OPTION_D;
$ e; @- V R( n0 r* e8 f9 Ndata.item_attr = UF_STYLER_VALUE;
4 J4 \! s* ^2 y! e# H' K: u7 j" f/ QUF_STYLER_ask_value(dialog_id,&data); D_int=data.value.integer;3 R4 {7 ~+ k' B" N: ^5 u8 O
D=strings_D[D_int]; UF_terminate (); /* Callback acknowledged, do not terminate dialog */
9 Y- M$ [7 q' ^/ Sreturn (UF_UI_CB_CONTINUE_DIALOG); /* or Callback acknowledged, terminate dialog. */* H( x0 }, O1 O: ^
/* return ( UF_UI_CB_EXIT_DIALOG ); */ }
* s% F+ q7 X F7 Y1 H, ~) h
3 N% A8 W. n+ e" ], p2 |) B" A7 K% p |