view anagram/guisupport/charsdc.h @ 15:f5acaf0c8a29

Don't cast through "volatile int". Causes a gcc warning nowadays. XXX: should put something else back here to frighten the optimizer
author David A. Holland
date Tue, 31 May 2022 01:00:55 -0400
parents 13d2b8934445
children
line wrap: on
line source

/*
 * AnaGram, A System for Syntax Directed Programming
 * Copyright 1993-2000 Parsifal Software. All Rights Reserved.
 * See the file COPYING for license and usage terms.
 *
 * charsdc.h - Character set display module
 */

#ifndef CHARSDC_H
#define CHARSDC_H

#include "dc.h"

class char_map_dc : public dc {
public:
  static MenuOption *auxTable[];
  virtual MenuOption **getAuxWinMenu(void) { return auxTable; }

  char_map_dc(void);
  char_map_dc(char_map_dc &x) : dc(x) {}

  virtual void getLine(unsigned) const;

  virtual dc_ref set_elements(unsigned);
  virtual dc_ref usage(unsigned);

  virtual int set_elements_ok(unsigned);
  virtual int usage_ok(unsigned);
};

class char_set_dc : public dc {
public:
  static MenuOption *auxTable[];
  MenuOption **getAuxWinMenu(void) { return auxTable; }

  char_set_dc(void);
  char_set_dc(char_set_dc &x) : dc(x) {}

  virtual void getLine(unsigned) const;

  virtual dc_ref partition_sets(unsigned);
  virtual dc_ref set_elements(unsigned);
  virtual dc_ref usage(unsigned);

  //virtual int partition_sets_ok(unsigned);
  virtual int set_elements_ok(unsigned);
  virtual int usage_ok(unsigned);
};

class partition_set_dc : public dc {
public:
  unsigned char_set_number;

  static MenuOption *auxTable[];
  MenuOption **getAuxWinMenu(void) { return auxTable; }


  partition_set_dc(unsigned, const AgString);
  partition_set_dc(partition_set_dc &x)
  : dc(x), char_set_number(x.char_set_number) {}

  virtual void getLine(unsigned) const;

  virtual dc_ref set_elements(unsigned);
  virtual dc_ref usage(unsigned);

  virtual int set_elements_ok(unsigned) { return 1; }
  virtual int usage_ok(unsigned);
};

class partition_table_dc : public dc {
public:
  static MenuOption *auxTable[];
  virtual MenuOption **getAuxWinMenu(void) { return auxTable; }

  partition_table_dc(void);
  partition_table_dc(partition_table_dc &x) : dc(x) {}

  virtual void getLine(unsigned) const;

  virtual dc_ref set_elements(unsigned);
  virtual dc_ref usage(unsigned);

  virtual int usage_ok(unsigned);
};

class set_elements_dc : public dc {
public:
  unsigned *list;

  set_elements_dc(unsigned *l, unsigned n, char *foot);
  set_elements_dc(set_elements_dc &x) : dc(x), list(x.list) {}

  virtual void getLine(unsigned) const;
};


dc_ref part_set_window(int);


#endif /* CHARSDC_H */