//铸入型起重棒4 f+ {' k2 U" q# V
/* These include files are needed for the following template code. */5 h. s! }3 {! l' |/ |! z
#include <stdio.h>+ ` R1 A8 n3 q0 C* w2 u, T
#include <uf.h>
3 l; s. g2 ^' M1 Z$ r8 k# X# W#include <uf_defs.h>
# u) D6 @7 Q z& O# }3 d- L#include <uf_exit.h>& _; R" W" W' m+ B
#include <uf_ui.h># j" o' L9 Q4 V3 Z
#include <uf_styler.h>' ]* ?8 G7 d6 c6 b' C& U H: \/ ]! G
#include <uf_mb.h>
% s7 t- z+ W: Y# w#include "CCHF.h"' ]0 ^5 \4 n+ _! E: J" {( Y, a6 G
#include <uf_modl.h>
$ P/ @8 O6 B6 Z. j#include <uf_obj.h>
4 o3 N- W, q5 u' k3 {7 ~2 |#include <math.h> /* The following definition defines the number of callback entries */# Y6 X) V2 m; @# c8 y& W( ?
/* in the callback structure: */
6 @' v0 T: m! h6 \; h3 I+ C/* UF_STYLER_callback_info_t CCHF_cbs */
; U x0 Q9 ~8 j! k/ F) X#define CCHF_CB_COUNT ( 6 + 1 ) /* Add 1 for the terminator */ /*--------------------------------------------------------------------------
% f h& U! |, J) A" o1 d9 f/ TThe following structure defines the callback entries used by the
& |, B. c2 \% ?' J& Z+ J0 Hstyler file. This structure MUST be passed into the user function,; B8 z0 r- w* A% T. a8 }4 ~
UF_STYLER_create_dialog along with CCHF_CB_COUNT.+ d6 ^, \* i/ Q% u) j) Q8 s0 h* x
--------------------------------------------------------------------------*/
9 ^6 q1 B& n/ \( n+ p" s+ sstatic UF_STYLER_callback_info_t CCHF_cbs[CCHF_CB_COUNT] =5 w- b1 U& E! n V
{/ N1 m- k! v$ r/ ^0 a8 d
{UF_STYLER_DIALOG_INDEX, UF_STYLER_CONSTRUCTOR_CB , 0, CCHF_con_cb},
, d; q) ?; M- H{UF_STYLER_DIALOG_INDEX, UF_STYLER_OK_CB , 0, CCHF_apply_cb},
+ C7 ?: X8 s9 W2 I6 r{UF_STYLER_DIALOG_INDEX, UF_STYLER_APPLY_CB , 0, CCHF_apply_cb},0 e+ p; `- b/ v2 e
{UF_STYLER_DIALOG_INDEX, UF_STYLER_CANCEL_CB , 0, CCHF_cancel_cb},
/ Z% x0 w: n: k{CCHF_TYPE , UF_STYLER_VALUE_CHANGED_CB, 0, CCHF_type_cb},, Y2 j5 m6 K, F! y5 n+ ?9 h; v' D7 m( h
{CCHF_OPTION_D , UF_STYLER_ACTIVATE_CB , 0, CCHF_D_cb},$ k4 [2 ~; P) E' N) }( w$ O
{UF_STYLER_NULL_OBJECT, UF_STYLER_NO_CB, 0, 0 }7 F9 K( d" D. i4 ~6 W) i
};
$ x0 E9 i$ J5 O) u& c7 P: Ystatic UF_MB_styler_actions_t actions[] = {
/ g# S& \" P; o* m9 J{ "CCHF.dlg", NULL, CCHF_cbs, UF_MB_STYLER_IS_NOT_TOP },. t" @3 @( X' K" A
{ NULL, NULL, NULL, 0 } /* This is a NULL terminated list */* N6 c% w) k, U* D1 C* z% j& E, z
}; char * strings_D[6]={"25","32","36","40","50","70"};
3 ^/ g, ^: B6 G) f! r# Rchar * D;
7 g8 G% v0 c: r* c0 }* P9 M0 w m; jint user_click=0;2 d- C# q. v. [6 \0 @5 S
int cancel_click=0;0 I; `7 r% _* v$ Q
int type,D_int; extern void ufusr (char *param, int *retcode, int rlen)
9 a/ O! Y4 A# G2 b% {{) ^# g E; S1 k
int response = 0;/ L. B3 G" ]2 L& Z1 }
int error_code = 0; int choice;
! b# y4 ~- e4 u @int defalt[2];
# p5 |; Q: i* [- f- Z: ^6 b$ zdouble point1[3],point2[3],point3[3],point4[3],point5[3],point6[3];7 |8 c4 C, q- I% |7 g
double direction[3]={0,1,0};
+ T- X# I" }5 X- _; j0 O// int i; char * D1, * D2, * T, * A, * B, * C, * E;/ X0 y! f4 ]0 @* N! V1 v7 N
char * R1;
$ L( ~. D0 K# s& Mchar * block_len[3];7 j5 Q6 ~) q1 u/ p6 z- v; E5 J U
UF_FEATURE_SIGN sign = UF_NULLSIGN; //建立一个新的目标体* y" M2 g' }6 [) j1 n4 O& k
UF_FEATURE_SIGN sign1 = UF_NEGATIVE; //减去目标实体
) M+ \/ C* N+ v( L& xUF_FEATURE_SIGN sign2 = UF_POSITIVE; //加目标实体
: n( ]# x1 k# k K- ?$ `9 wtag_t cyl1_obj,cyl1_fea,cyl2_obj,cyl3_obj,cyl4_obj,cyl5_obj,blk_obj;' k* s4 q5 w; \9 l! u( E
tag_t blend1_tag,blend2_tag,blend3_tag,blend4_tag; uf_list_p_t edge_list,object_list; if ( ( UF_initialize() ) != 0 )7 {. e: D* E: g1 L9 U. _. I; k
return; if ( ( error_code = UF_STYLER_create_dialog ( "CCHF.dlg",
* o/ C* T6 i4 [CCHF_cbs, /* Callbacks from dialog */
# Q, S% d1 l' A- |, hCCHF_CB_COUNT, /* number of callbacks*/6 \& o! w. B0 p2 g; ?' W+ C
NULL, /* This is your client data */
4 V. K- b1 I/ W2 a* _ z&response ) ) != 0 )
6 A4 N& y4 A# g* [{
" p/ O& N" R9 r" Gchar fail_message[133]; /* Get the user function fail message based on the fail code.*/
8 M# k" _& }7 Z$ L6 @: x; X* I- DUF_get_fail_message(error_code, fail_message);
* k- ~0 ?* O/ Y/ y0 H. a* h3 bUF_UI_set_status (fail_message);
! E3 J2 @5 S) a* ]5 J& Z b8 ~4 Yprintf ( "%s\n", fail_message );( @$ z% Z E v, x
} if(cancel_click==1); C# L$ v3 p3 M3 y
{* N& D) H0 a* g e& o' N4 `) i9 @1 E
UF_terminate();
5 m2 F( j/ l: R1 b5 D/ H9 _return;! ]0 L. h# b, D& w
} switch(D_int)
! X7 ~* f; w# T: E0 m) b; @{
) b; c; n8 G! d0 ]5 n8 w3 rcase 0:
0 p. z' Z5 [* N& `3 v/ MD1="46";8 K! V2 L# L3 _' v$ s, U' ~
D2="36";
3 B% s2 c+ Q8 _0 }9 jT="12.6";: j: M% q1 }( H
A="25";
! a, B, a# A% Q5 z3 u6 kB="30";
% L2 C/ J. k! n+ m0 @- A% `C="15";2 S* \6 v( b9 H
E="16.6";4 @# f0 W2 [- t7 u" M) i; m. j" a& m4 G
if(type==1)
; O5 y4 l9 \# H3 d{. q% a0 p- X7 Y2 S' Z3 p
D1="60";5 |8 Q3 @1 p1 H3 U9 a
}
8 r! d1 w$ `, b4 v/ D$ Nbreak;
, \# I9 l0 S8 P3 R! vcase 1: t/ @! f. z6 L2 X! J* C
D1="55";5 F/ o) r& U/ U7 h
D2="42";' K1 e% ^ X; i1 P. U& H0 B
T="13.1";" m5 t' ?" q& N* G: u
A="30";
- T2 L& f, Q( a1 I LB="40";2 Q! r! l) e( q; l) C
C="20";- h! c& q0 T: b5 S9 P8 B
E="16.8";
% W% S/ Y8 F$ \5 E" dif(type==1)8 G) q2 ?9 B* e# m7 ?
{
8 t' j; @4 ^: z hD1="70";
" E" l( _( D% g; g4 q$ L}& X) t3 e; o, c" `2 a7 l6 Y* Q
break;
& X+ ]" `1 k: |. F* x6 z9 ?0 ]2 Zcase 2:
+ u1 A: d4 B9 h: jD1="60";5 e$ K2 g7 P8 `! P$ g; T1 F
D2="46";
; b1 R- c4 Q# O5 ZT="18.5";
4 ^/ _# ]" G1 j& nA="35";
% K# N2 ]9 Z( s" ^8 @. NB="45";
( K% z, X0 }( \) _" ~9 SC="25";
# c) V9 Z& @. g l8 G" _E="17";' g% J5 @2 l# w& Y: A/ u
if(type==1)6 p/ ^6 v; o% x1 v. Q
{2 K' p0 ]8 L1 X2 s
D1="80";
# C9 A) B" L* l2 `" m# h0 a}& M; {- r- `6 b8 q
break;' h# q9 `& m2 O$ u
case 3:) }( J3 K( }9 t; H A- o! B! a
D1="70";
. Q7 K- U L, o% p1 n R8 }D2="55";
. k" W( K5 W+ hT="18.9";
* U- L) A$ B8 j( Y- a: fA="35";
: D# R5 j7 R. z: O6 M5 L) tB="60";- q$ m% K8 w3 T, l5 U& m
C="30";
# p( U* k) V; L" t* J5 q" ?E="17.4";& b' j' g+ s9 S3 D
if(type==1)# ?* a I a [0 f( g8 B% p2 E
{) g/ C# v, t) o- w& |" q5 V1 e
D1="90";& Q8 {+ K0 E7 m' K+ y+ C7 Q
}
& p0 q; \( `( N8 Bbreak;+ j4 n1 [6 `% Q, e0 d! i
case 4:( G% p. f, |3 Z8 @' @6 M
D1="90";
7 N+ F/ j1 i3 o6 R: X. Z6 UD2="70";% B5 t3 \; [# @6 x0 m1 t/ s
T="25.2";
* }$ y9 }6 e2 H; u1 b* N- g$ ]; VA="35";5 H4 P# X- z4 v" Z/ c, w4 ^5 A: ^
B="70";& G$ X2 A3 v% o6 @' u" O, n) s
C="40";
9 r5 r8 p3 j( A2 hE="18.1";& y! \ y1 q% p. a/ r; c
if(type==1)
3 W, C% H& o7 w- S4 ^{7 W9 c& m& k% _7 B
D1="120"; e0 j$ X _6 p
}* c0 d: ]' Y' s7 r5 f
break;
8 }: i+ Z u" f; @: ]case 5:
& m/ S2 V7 Y/ A0 CD1="120";
: K) T* `5 k0 | RD2="100";. [; j- }! y7 Z2 C* J
T="31.1";
, ^, e E" Z2 IA="40";0 A2 b- D5 g/ a: o/ |7 X' x& A
B="80";. b6 E9 e8 g+ J! u
C="40";5 I3 c7 `0 ^% w& Q
E="19.4";+ o8 Q. O; u3 p! F& u# H
if(type==1)6 U3 F' ?9 m, j# b+ C
{
2 o7 ?) F0 u# BD1="140";
4 p4 D. B# X" \' v1 o}
6 r4 r' e+ r& [: ^break;
! [4 ?8 O I# s) ]. Hdefault:
, M* c3 ~, n) C- E7 I9 ybreak;
+ q6 ^6 v; d, n- G7 ?1 v} if (user_click==1)
5 C6 n1 }7 y W- q; |) R. Z3 e8 A{( i9 E. `& y! n! N4 Q" C* U: @+ I
choice = uc1616("指定插入点", defalt, 0, point1);2 [" x6 p% J6 Q! d' k+ d$ F$ O' w
if(choice == 2) //判断退出对话框
' `6 b4 s6 q/ {/ c{( X7 k+ y1 m" k+ U7 ]. M7 I& R0 V' p
UF_terminate();: }% p2 C' N; k6 v4 _4 I
return;
! F! X- R; u: g: k$ J: E- v1 d} R1="2";$ D* @& n. J# Q1 I
if(type==1)
& u1 `' F2 Q, N4 e{6 `8 H: C B) ~6 ~' g9 [) ]5 k
R1="4";
: G @2 F% h9 H$ B}6 b$ l3 L; a: u# H- U) ^2 t0 \
//cyl1
( A5 J \+ _: ^$ KUF_MODL_create_cyl1 (sign,point1,T,D1,direction,&cyl1_obj);1 n6 Z7 v& }0 B7 `4 q9 z- {$ ^" A
UF_MODL_ask_feat_body(cyl1_obj,&cyl1_fea);
! N, j3 I2 N0 J1 ^UF_OBJ_set_color (cyl1_fea, 9); //设置实体颜色 UF_MODL_create_list(&edge_list);
' J" ?8 u+ p) g* |UF_MODL_ask_feat_edges (cyl1_obj, &edge_list);
! b; A3 o/ p+ C2 \UF_MODL_create_blend (R1, edge_list, 0, 0, 0, 0.5, &blend1_tag); //倒圆角cyl1
* t, @$ N' p& j3 k$ QUF_MODL_delete_list(&edge_list);
6 E# J/ _; ~3 b7 ^. t5 U//cyl22 g, o S' P1 w0 l; k( a$ W/ K, n
point2[0]=point1[0];, E( }0 m& J" S- Z. n
point2[1]=point1[1]+atof(T);
" W" i+ N5 c( F6 e* |) a3 s4 ~point2[2]=point1[2];
. D4 `: v! g( B: eUF_MODL_create_cyl1 (sign2,point2,A,D,direction,&cyl2_obj);/ {* y5 ]% U9 {/ q. A! s
//cyl39 _; y' I4 o' Y& @
point3[0]=point1[0];
) \& V& X* y3 |$ j3 ^ Npoint3[1]=point2[1]+atof(A);/ Z1 M3 H7 f4 `2 J& V7 t2 s
point3[2]=point1[2];1 k# |' a- c0 A* }
UF_MODL_create_cyl1 (sign2,point3,B,D2,direction,&cyl3_obj);, q3 w1 [- v& M8 S" ]$ t% i* m
//cyl4
7 I" ?: Y8 i: J% C, Rpoint4[0]=point1[0];
n& U2 e; I% |. n& }8 f7 Opoint4[1]=point3[1]+atof(B);" l$ Z6 p' Y% p) A( i
point4[2]=point1[2];
% f3 Q* m: y) X4 F: f( iUF_MODL_create_cyl1 (sign2,point4,C,D,direction,&cyl4_obj);8 Q; h8 l, G( H& f+ O
//cyl5
0 d7 v3 W, }2 x" x) C2 p! H0 Cpoint5[0]=point1[0];
1 L! g, k7 G7 rpoint5[1]=point4[1]+atof(C);
* M; w* U) l$ |% l$ V1 g0 V* E" Vpoint5[2]=point1[2];
% `2 y9 P% S+ A n9 l& c" y+ g: P, \UF_MODL_create_cyl1 (sign2,point5,E,D2,direction,&cyl5_obj);
2 E# [- y0 \& V# N! ~9 S8 Y//倒圆角) R/ w" ]6 r! A' W' U9 M, P+ p
UF_MODL_create_list(&edge_list);0 y0 g" k/ {% l5 s* _
UF_MODL_ask_feat_edges (cyl2_obj, &edge_list);
+ b# p# }$ }" w# h8 KUF_MODL_create_blend ("5", edge_list, 0, 0, 0, 0.5, &blend2_tag); //倒圆角cyl2
- x, H5 C, E/ v' [# \UF_MODL_delete_list(&edge_list); UF_MODL_create_list(&edge_list);
8 q9 Z- q1 L9 \ K& ^6 }UF_MODL_ask_feat_edges (cyl4_obj, &edge_list);
0 `1 R+ f" {/ Z2 ^$ GUF_MODL_create_blend ("3", edge_list, 0, 0, 0, 0.5, &blend3_tag); //倒圆角cyl4
8 X6 ^# w: r- p, ]3 aUF_MODL_delete_list(&edge_list); UF_MODL_create_list(&edge_list);9 B# |& _) e7 \" E
UF_MODL_ask_feat_edges (cyl5_obj, &edge_list);- {$ t: w: S" l- h. o
UF_MODL_create_blend ("3", edge_list, 0, 0, 0, 0.5, &blend4_tag); //倒圆角cyl5
" ?( C, X0 l4 ]9 S6 HUF_MODL_delete_list(&edge_list);
7 N8 C( @: g4 h8 {7 q/ C; E! i8 L1 t//减体用blk
1 ?2 T: h5 U1 p- L) J4 c4 N6 f# vblock_len[0] = D2;# N, ~$ n7 T6 D6 c1 f2 z$ S
block_len[1] = D2;- e# V) C4 ^6 }7 i
block_len[2] = D2;; p! B% ]# B' K- q: W
point6[0]=point1[0]+atof(D)/2;6 C& n9 l5 N# F/ ^5 G8 n& S
point6[1]=point5[1]-8;
3 ^( u7 _3 o9 m. f( O$ `7 W6 Qpoint6[2]=point1[2]-atof(D2)/2;6 P5 b3 j* Z; T% B( F( T
UF_MODL_create_block1 (sign1, point6, block_len, &blk_obj);# y% S8 T( q4 K4 S
//消参- ^9 J6 |7 Z0 ^* _8 _ @
UF_MODL_create_list(&object_list);
$ T$ s5 f& }* f4 OUF_MODL_put_list_item(object_list, cyl1_fea);# L- |. H+ f9 S& [; l8 b
UF_MODL_delete_object_parms (object_list);
3 _6 y5 C3 j. W Z) VUF_MODL_delete_list(&object_list);
2 r. C& f7 N0 s3 L( V* `7 N% v; b} UF_terminate();; ]! H7 l: A0 k: O+ v
return;
6 \+ t6 S1 z& }7 d1 N# O}0 y" C. q8 U* z% i
extern int ufusr_ask_unload (void): o2 i& v" O+ p1 w! f$ M6 x
{4 N1 W& {8 p" O5 F2 ]5 L5 _: A
/* unload immediately after application exits*/
8 e/ w' ]3 k7 ireturn ( UF_UNLOAD_IMMEDIATELY ); /*via the unload selection dialog... */$ e& E# f; C# b1 ]% o1 G2 _
/*return ( UF_UNLOAD_SEL_DIALOG ); */- Q4 G+ s9 y* r. F. d. G) m, X
/*when ug terminates... */
+ o% n6 T1 m9 c8 F/*return ( UF_UNLOAD_UG_TERMINATE ); */5 k& n" G2 p6 a H( g0 Q7 h* V
} extern void ufusr_cleanup (void)# r( Z; k8 S& W
{
8 I5 M5 v/ [) X$ m$ l6 preturn; @1 b; h# R. ]( A8 L! }) m2 v
}& [! N2 J4 M+ L$ i. l6 Z
int CCHF_con_cb ( int dialog_id,! v5 }5 c0 \, f2 e
void * client_data,5 W) t( `4 O% s1 T$ i. P
UF_STYLER_item_value_type_p_t callback_data), U0 D2 r/ i- U9 |5 T# f8 {
{# r$ z* d. U' u5 G+ U% B: O: E% n. U
/* Make sure User Function is available. */
D# S# s7 Z8 Z. J+ vUF_STYLER_item_value_type_t data; if ( UF_initialize() != 0)- U. J* t5 H; l( ]- h
return ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */; F# m1 v" z6 }9 T7 _) `, s
data.item_id = CCHF_OPTION_D;$ b; {! Z. L+ K! B$ F* p% U
data.item_attr = UF_STYLER_SUBITEM_VALUES;& Y5 A4 D9 ?4 P
data.count = 6;
0 _2 U4 E9 x( o0 Zdata.value.strings = strings_D;
1 w' n+ d- [/ x/ Z- `, q" v- |' P6 SUF_STYLER_set_value(dialog_id,&data); data.item_id = CCHF_WIDE_STRING;
' \+ M) t. F) ldata.item_attr = UF_STYLER_VALUE;
# {2 z$ |: q& V0 vdata.value.string = "三住标准/材质:S25C";7 r4 }- x( v$ Y( c2 ~4 S- g
UF_STYLER_set_value(dialog_id,&data); D="25";
8 N3 h, i) n; d1 ~5 X- rtype=0;
$ e# j8 c6 q. w4 A. w" D$ N/ y# @D_int=0; UF_terminate (); /* Callback acknowledged, do not terminate dialog */( h8 f2 C) R, N( k' H2 k4 d
return (UF_UI_CB_CONTINUE_DIALOG);0 z* n- x9 @8 P
/* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */- f2 Z; ~( ^2 J; R
/* for this callback type. You must continue dialog construction.*/ } int CCHF_apply_cb ( int dialog_id,! a0 H3 B+ n8 C) r- W V* H) c
void * client_data,) x- x0 X" S, m' l* Y$ y
UF_STYLER_item_value_type_p_t callback_data)
% B' o2 y7 c& F, t/ T{: A4 U1 z5 s2 p. b+ E
/* Make sure User Function is available. */
! [. ^6 o1 ?. l2 Xif ( UF_initialize() != 0)
E" u% P- p- L1 C- breturn ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */) ?- t9 b, {+ {% s' S' B% |
user_click=1; UF_terminate (); /* Callback acknowledged, terminate dialog */. b* X2 h2 y% _8 o" @
/* It is STRONGLY recommended that you exit your */
2 N# u! |/ _/ g4 ?9 |4 D/* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/
6 m- w% w7 N# K/* return ( UF_UI_CB_EXIT_DIALOG ); */
! I8 c/ K! o) k- r$ q1 t9 jreturn (UF_UI_CB_EXIT_DIALOG); } int CCHF_cancel_cb ( int dialog_id,
" |; @; K' y$ V/ T' z% m+ Rvoid * client_data,! y, Z( I' B B! W2 {/ s1 c2 W' @1 h
UF_STYLER_item_value_type_p_t callback_data)
! y* m# N* b! b6 C{; }0 O: K& X0 H
/* Make sure User Function is available. */
! F8 w5 j9 y7 [2 b' H. _if ( UF_initialize() != 0)3 g$ O s' A+ `/ C
return ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */
4 s3 O( X/ J( u% gcancel_click=1; UF_terminate (); /* Callback acknowledged, terminate dialog */% Q) k; F# G7 z3 r& I/ K+ I* e
/* It is STRONGLY recommended that you exit your */7 S" @) H n* N; C
/* callback with UF_UI_CB_EXIT_DIALOG in a cancel call */. i$ l, s* ~# t$ N, P
/* back rather than UF_UI_CB_CONTINUE_DIALOG. */6 x+ S# B' C1 D: G+ B" O0 z
return ( UF_UI_CB_EXIT_DIALOG ); } int CCHF_type_cb ( int dialog_id,
+ o0 ]) Y1 ]: mvoid * client_data,: a+ a' G* |, @: b) ?3 y; L
UF_STYLER_item_value_type_p_t callback_data)
- i, I; `, P5 M# T{
) \$ X7 [4 [1 x/* Make sure User Function is available. */
6 y- [! o* Z% ~& j. }" qUF_STYLER_item_value_type_t data; if ( UF_initialize() != 0)& d$ \# m0 w5 R! a7 G
return ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */# h3 k4 A: ]0 k1 P2 x# O
data.item_id = CCHF_TYPE;
. f t- ~5 V1 w1 q' e q' [data.item_attr = UF_STYLER_VALUE;$ L- }6 b) n7 g; z6 b
UF_STYLER_ask_value(dialog_id,&data); type=data.value.integer; UF_terminate (); /* Callback acknowledged, do not terminate dialog */- z0 e+ |+ f( I$ K r& D* j
return (UF_UI_CB_CONTINUE_DIALOG); /* or Callback acknowledged, terminate dialog. */" P6 ^* P5 K4 h& |# p6 b
/* return ( UF_UI_CB_EXIT_DIALOG ); */ } int CCHF_D_cb ( int dialog_id,
8 z# w3 y; T) `7 w, W6 p. B" Pvoid * client_data,8 c+ o8 ]# P9 n
UF_STYLER_item_value_type_p_t callback_data)
8 m5 @5 P! m* ~$ @' [3 S3 h3 D{4 z& t' \, `7 z4 G5 c
/* Make sure User Function is available. */
$ t7 P( w. B& Q, u; o' K+ ^UF_STYLER_item_value_type_t data; if ( UF_initialize() != 0)
0 u6 l3 k& Z; T3 b* C. t `- Ireturn ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */
4 B7 O1 N+ _4 ]& H! w% ydata.item_id = CCHF_OPTION_D;7 B) @$ n; D* V
data.item_attr = UF_STYLER_VALUE;
5 @: L( c0 I& z$ j% C: dUF_STYLER_ask_value(dialog_id,&data); D_int=data.value.integer;
% P2 o- ]' _5 x, s" p2 dD=strings_D[D_int]; UF_terminate (); /* Callback acknowledged, do not terminate dialog */
6 y" L/ G& l3 \- Ereturn (UF_UI_CB_CONTINUE_DIALOG); /* or Callback acknowledged, terminate dialog. */
9 i( C0 t' A( l7 [/* return ( UF_UI_CB_EXIT_DIALOG ); */ }
w8 T7 Z5 V& E( K2 B2 d. U8 k2 e) D
|