Summary of Control Functions


  Control *new_control(Window *parent, Rect r);
  Control *add_control(Control *parent, Rect r);
  void     del_control(Control *c);

  int     attach_to_window(Window *parent, Control *c);
  int     attach_to_control(Control *parent, Control *c);
  int     remove_control(Control *c);
  int     bring_control_to_front(Control *c);
  int     send_control_to_back(Control *c);

  Window *parent_window(Control *c);

  void    draw_control(Control *c);
  void    redraw_control(Control *c);
  void    redraw_control_rect(Control *c, Rect r);

  Rect    get_control_area(Control *c);
  void    move_control(Control *c, Rect r);
  void    size_control(Control *c, Rect r);

  int     is_visible(Control *c);
  void    show_control(Control *c);
  void    hide_control(Control *c);

  void    set_control_background(Control *c, Colour col);
  Colour  get_control_background(Control *c);

  void    set_control_foreground(Control *c, Colour col);
  Colour  get_control_foreground(Control *c);

  void    set_control_text(Control *c, char *text);
  char *  get_control_text(Control *c);

  void    set_control_data(Control *c, void *data);
  void *  get_control_data(Control *c);

  void    set_control_value(Control *c, long value);
  long    get_control_value(Control *c);

  void    set_control_image(Control *c, Image *img);
  Image * get_control_image(Control *c);

  void    set_control_font(Control *c, Font *f);
  Font *  get_control_font(Control *c);

  int   is_enabled(Control *c);
  void  enable(Control *c);
  void  disable(Control *c);

  int   is_checked(Control *c);
  void  check(Control *c);
  void  uncheck(Control *c);

  int   is_highlighted(Control *c);
  void  highlight(Control *c);
  void  unhighlight(Control *c);

  int   is_armed(Control *c);
  void  arm(Control *c);
  void  disarm(Control *c);

  int   has_focus(Control *c);
  void  set_focus(Control *c);

  void  flash_control(Control *c);
  void  activate_control(Control *c);


The above is a list of the functions which will work on many different kinds of controls and windows. See the individual sections for details on each function.

Most of the above functions cause a control's update call-back to be called. If no update call-back has been set, the control is redrawn by default.

When a control is deleted, its deletion call-back is called just prior to deletion, if one exists. This function typically tidies up and released any memory stored in the control's extra pointer.