ftp.nice.ch/pub/next/graphics/3d/geomview.1.4.1.s.tar.gz#/Geomview/src/bin/crayola/sgi/crayola.main.c

This is crayola.main.c in view mode; [Download] [Up]

#include <stdio.h>
#include "geom.h"
#include "color.h"
#include "callbacks.h"
#include "ui.h"
#include "crayola.h"
#include "forms.h"
#include "panel.h"


main() {
  foreground();

  create_the_forms();

  fl_init();

  fl_set_button(GetButton, 1); 

  fl_set_slider_value(IntensitySlide, 1.0);
  fl_set_colorwheel_intensity(colorwheel, 1.0);
  fl_set_slider_value(AlphaSlide, 1.0);
  fl_set_colorwheel_alpha(colorwheel, 1.0);

  fl_show_form(MainForm, FL_PLACE_SIZE, TRUE, "Crayola");
 
  init();
 
  uiThaw();

  while(1) {
    fl_check_forms();
    checkpipes();
  }
}

float get_float_val(FL_OBJECT *obj) {
  float f;
  sscanf(fl_get_input(obj), "%f", &f);
  return f;
}


void set_float_val(FL_OBJECT *obj, float f) {
  char buf[64];
  sprintf(buf, "%.2f", f);
  fl_set_input(obj, buf);
}

void UndoButtonProc(FL_OBJECT *obj, long val) {
  undo();
}

void IntensityProc(FL_OBJECT *obj, long val) {
  fl_set_colorwheel_intensity(colorwheel, 
			      fl_get_slider_value(IntensitySlide));
  fl_redraw_object(colorwheel);
}

void AlphaProc(FL_OBJECT *obj, long val) {
  fl_set_colorwheel_alpha(colorwheel, fl_get_slider_value(AlphaSlide));
  fl_redraw_object(colorwheel);
}

void QuitButtonProc(FL_OBJECT *obj, long val) {
  quit();
}

void EliminateButtonProc(FL_OBJECT *obj, long val) {
}
		 
/* 
 * UI routines requried by the common routines 
 */
void uiFreeze() {
  fl_freeze_form(MainForm);
}

void uiThaw() {
  fl_unfreeze_form(MainForm);
}

int uiSet() {
  return fl_get_button(SetButton);
}

int uiSetAll() {
  return fl_get_button(SetAllButton);
}

int uiGet() {
  return fl_get_button(GetButton);
}

int uiEliminateColor() {
  return fl_get_button(EliminateButton);
}

void uiChangeColor(ColorA *color) {
  fl_set_colorwheel(colorwheel, &(color->r));
  fl_set_colorwheel_alpha(colorwheel, color->a);
  fl_set_slider_value(IntensitySlide, 
		      fl_get_colorwheel_intensity(colorwheel));
  fl_set_slider_value(AlphaSlide, color->a);
}

void uiCurrentColor(ColorA *color) {
  fl_get_colorwheel(colorwheel, &(color->r));
  color->a = fl_get_slider_value(AlphaSlide);
}

int uiQuery(char *ques1, char *ques2, char *ques3, char *res1, char *res2) 
{
  FL_OBJECT *obj = NULL;
  uiFreeze();
  fl_set_object_label(QuestionText1, ques1);
  fl_set_object_label(QuestionText2, ques2);
  fl_set_object_label(QuestionText3, ques3);
  fl_set_object_label(AnswerButton1, res1);
  fl_set_object_label(AnswerButton2, res2);
  fl_show_form(QueryForm, FL_PLACE_MOUSE, TRUE, "Crayola");
  while (1) {
    obj = fl_do_forms();
    if (obj == AnswerButton1 || obj == AnswerButton2) break;
  }
  fl_hide_form(QueryForm);
  uiThaw();
  return (obj == AnswerButton1 ? 0 : 1);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.