Changeset 30 in Sophya for trunk/SophyaPI/PI/pistdwdgx.cc
- Timestamp:
- Nov 1, 1996, 8:14:18 PM (29 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PI/pistdwdgx.cc
r23 r30 221 221 222 222 223 /************* PICheckBoxX ************/ 224 #include <Xm/ToggleB.h> 225 226 // Fonction prive (CallBack) 227 static void toggb_action(Widget w, XtPointer *usd, XtPointer *calld); 228 229 /* Nouvelle-Fonction */ 230 void toggb_action(Widget , XtPointer *usd, XtPointer *) 231 { 232 PICheckBoxX *picb; 233 picb = (PICheckBoxX *) usd ; 234 picb->Send(picb->Msg(), PIMsg_DataChanged, (void *)picb->GetState()); 235 return; 236 } 237 238 /* --Methode-- */ 239 PICheckBoxX::PICheckBoxX(PIContainerGen *par, char *nom, PIMessage msg, 240 int sx, int sy, int px, int py) 241 : PICheckBoxGen(par, nom, msg, sx, sy, px, py) 242 { 243 CreateXtWdg(nom, xmToggleButtonWidgetClass, NULL, sx, sy, px, py); 244 XtAddCallback(XtWdg(), XmNvalueChangedCallback, 245 toggb_action, (XtPointer)this); 246 Arg warg[2]; 247 XtSetArg(warg[0],XmNhighlightThickness, 0); 248 XtSetValues(XtWdg(), warg, 1); 249 Manage(); 250 } 251 252 253 /* --Methode-- */ 254 PICheckBoxX::~PICheckBoxX() 255 {} 256 257 258 /* --Methode-- */ 259 void PICheckBoxX::SetState(bool st) 260 { 261 Arg warg[2]; 262 XtSetArg(warg[0],XmNset, st); 263 XtSetValues(XtWdg(), warg, 1); 264 return; 265 } 266 267 /* --Methode-- */ 268 bool PICheckBoxX::GetState() 269 { 270 int val; 271 Arg warg[2]; 272 XtSetArg(warg[0], XmNset, &val); 273 XtGetValues(XtWdg(), warg, 1); 274 return ((bool)val); 275 } 276 277 223 278 /************* PIScaleX ************/ 224 279 #include <Xm/Scale.h> … … 241 296 /* --Methode-- */ 242 297 PIScaleX::PIScaleX(PIContainerGen *par, char *nom, PIMessage msg, 243 int min, int max, int sx, int sy, int px, int py)244 : PIScaleGen(par, nom, msg, min, max, sx, sy, px, py)298 bool horiz, int sx, int sy, int px, int py) 299 : PIScaleGen(par, nom, msg, horiz, sx, sy, px, py) 245 300 { 246 301 int n=0; … … 248 303 CreateXtWdg(nom, xmScaleWidgetClass, NULL, sx, sy, px, py); 249 304 XtSetArg(warg[n], XmNshowValue, TRUE); n++; 250 if ( sx > sy)305 if (horiz) 251 306 { 252 307 XtSetArg(warg[n], XmNorientation, XmHORIZONTAL); n++; … … 263 318 264 319 XtSetValues(XtWdg(), warg, n); 265 SetMinMax( min, max);266 SetValue( min);320 SetMinMax(1, 10); 321 SetValue(1); 267 322 XtAddCallback(XtWdg(), XmNvalueChangedCallback, 268 323 scale_action, (XtPointer)this); … … 312 367 XtGetValues(this->sdw, warg, n); 313 368 mVal = val; 314 return( val);369 return(mVal); 315 370 } 316 371 … … 322 377 } 323 378 324 /************* PICheckBoxX ************/ 325 #include <Xm/ToggleB.h> 379 380 381 /************* PIScrollBarX ************/ 382 383 #include <Xm/ScrollBar.h> 326 384 327 385 // Fonction prive (CallBack) 328 static void toggb_action(Widget w, XtPointer *usd, XtPointer *calld); 329 330 /* Nouvelle-Fonction */ 331 void toggb_action(Widget , XtPointer *usd, XtPointer *) 332 { 333 PICheckBoxX *picb; 334 picb = (PICheckBoxX *) usd ; 335 picb->Send(picb->Msg(), PIMsg_DataChanged, (void *)picb->GetState()); 336 return; 337 } 338 339 /* --Methode-- */ 340 PICheckBoxX::PICheckBoxX(PIContainerGen *par, char *nom, PIMessage msg, 341 int sx, int sy, int px, int py) 342 : PICheckBoxGen(par, nom, msg, sx, sy, px, py) 343 { 344 CreateXtWdg(nom, xmToggleButtonWidgetClass, NULL, sx, sy, px, py); 345 XtAddCallback(XtWdg(), XmNvalueChangedCallback, 346 toggb_action, (XtPointer)this); 347 Arg warg[2]; 348 XtSetArg(warg[0],XmNhighlightThickness, 0); 349 XtSetValues(XtWdg(), warg, 1); 386 static void scrollbar_action(Widget w, XtPointer *usd, 387 XmScrollBarCallbackStruct *calld); 388 static void scrollbar_drag(Widget w, XtPointer *usd, 389 XmScrollBarCallbackStruct *calld); 390 391 void scrollbar_action(Widget, XtPointer *usd, 392 XmScrollBarCallbackStruct *calld) 393 { 394 PIScrollBar *pis; 395 396 pis = (PIScrollBar *) usd ; 397 pis->CBSetVal(calld->value); 398 pis->Send(pis->Msg(), PIMsg_DataChanged, (void *)calld->value); 399 return; 400 } 401 402 void scrollbar_drag(Widget, XtPointer *usd, 403 XmScrollBarCallbackStruct *calld) 404 { 405 PIScrollBar *pis; 406 407 pis = (PIScrollBar *) usd ; 408 pis->CBSetVal(calld->value); 409 pis->Send(pis->Msg(), PIMsg_Drag, (void *)calld->value); 410 return; 411 } 412 413 /* --Methode-- */ 414 PIScrollBarX::PIScrollBarX(PIContainerGen *par, char *nom, PIMessage msg, 415 bool vert, int sx, int sy, int px, int py) 416 : PIScrollBarGen(par, nom, msg, vert, sx, sy, px, py) 417 { 418 int n=0; 419 Arg warg[3]; 420 421 CreateXtWdg(nom, xmScrollBarWidgetClass, NULL, sx, sy, px, py); 422 if (vert) 423 { 424 XtSetArg(warg[n], XmNorientation, XmVERTICAL); n++; 425 XtSetArg(warg[n], XmNprocessingDirection, XmMAX_ON_BOTTOM); n++; 426 } 427 else 428 { 429 XtSetArg(warg[n], XmNorientation, XmHORIZONTAL); n++; 430 XtSetArg(warg[n], XmNprocessingDirection, XmMAX_ON_RIGHT); n++; 431 } 432 XtSetValues(XtWdg(), warg, n); 433 mAcD = false; 434 mVal = -1; 435 mMin = mMax = 0; 436 mSz = 0; 437 SetMinMax(0, 100); 438 SetSize(10); 439 SetValue(0); 440 XtAddCallback(XtWdg(), XmNvalueChangedCallback, 441 scrollbar_action, (XtPointer)this); 350 442 Manage(); 351 443 } 352 444 353 354 /* --Methode-- */ 355 PICheckBoxX::~PICheckBoxX() 445 /* --Methode-- */ 446 PIScrollBarX::~PIScrollBarX() 356 447 {} 357 448 358 449 359 450 /* --Methode-- */ 360 void PICheckBoxX::SetState(bool st) 361 { 362 Arg warg[2]; 363 XtSetArg(warg[0],XmNset, st); 364 XtSetValues(XtWdg(), warg, 1); 365 return; 366 } 367 368 /* --Methode-- */ 369 bool PICheckBoxX::GetState() 451 void PIScrollBarX::ActivateDrag(bool acd) 452 { 453 if (mAcD == acd) return; 454 455 if (mAcD) 456 XtRemoveCallback(XtWdg(), XmNdragCallback, 457 scrollbar_drag, (XtPointer)this); 458 else 459 XtAddCallback(XtWdg(), XmNdragCallback, 460 scrollbar_drag, (XtPointer)this); 461 mAcD = acd; 462 return; 463 } 464 465 /* --Methode-- */ 466 void PIScrollBarX::SetMinMax(int min, int max) 467 { 468 if (min >= max) max = min+100; 469 if (mVal < min) mVal = min; 470 if (mVal > max) mVal = max; 471 int n=0; 472 Arg warg[3]; 473 XtSetArg(warg[n], XmNminimum, min); n++; 474 XtSetArg(warg[n], XmNmaximum, max); n++; 475 XtSetArg(warg[n], XmNvalue, mVal); n++; 476 XtSetValues(XtWdg(), warg, n); 477 mMin = min; mMax = max; 478 return; 479 } 480 481 482 /* --Methode-- */ 483 void PIScrollBarX::SetValue(int val) 484 { 485 int n=0; 486 if (val < mMin) val = mMin; 487 if (val > mMax) val = mMax; 488 Arg warg[2]; 489 XtSetArg(warg[n], XmNvalue, val); n++; 490 XtSetValues(this->sdw, warg, n); 491 mVal = val; 492 return; 493 } 494 495 /* --Methode-- */ 496 int PIScrollBarX::GetValue() 370 497 { 371 498 int val; 372 Arg warg[2]; 373 XtSetArg(warg[0], XmNset, &val); 374 XtGetValues(XtWdg(), warg, 1); 375 return ((bool)val); 376 } 499 int n=0; 500 Arg warg[2]; 501 XtSetArg(warg[n], XmNvalue, &val); n++; 502 XtGetValues(this->sdw, warg, n); 503 mVal = val; 504 return(mVal); 505 } 506 507 /* --Methode-- */ 508 void PIScrollBarX::SetSize(int sz) 509 { 510 int n=0; 511 Arg warg[3]; 512 int szl; 513 514 szl = mMax-mMin; 515 if (sz > szl) sz = szl; 516 szl /= 100; 517 if (szl < 1) szl = 1; 518 if (sz < szl) sz = szl; 519 szl = sz/10; 520 if (szl < 1) szl = 1; 521 XtSetArg(warg[n], XmNsliderSize, sz); n++; 522 XtSetArg(warg[n], XmNpageIncrement, sz); n++; 523 XtSetArg(warg[n], XmNincrement, szl); n++; 524 XtSetValues(this->sdw, warg, n); 525 mSz = sz; 526 return; 527 } 528 529 /* --Methode-- */ 530 int PIScrollBarX::GetSize() 531 { 532 int sz; 533 int n=0; 534 Arg warg[2]; 535 XtSetArg(warg[n], XmNsliderSize, &sz); n++; 536 XtGetValues(this->sdw, warg, n); 537 mSz = sz; 538 return(mSz); 539 } 540 541 542 /* --Methode-- */ 543 void PIScrollBarX::CBSetVal(int val) 544 { 545 mVal = val; 546 return; 547 } 548
Note:
See TracChangeset
for help on using the changeset viewer.