/*

    Bist: a chemical drawing tool
    Copyright (C) 2008 Valerio Benfante

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
// generated by Fast Light User Interface Designer (fluid) version 1.0104


void atom_prop_ok_cb(Fl_Widget*, void*);
void atom_prop_cancel_cb(Fl_Widget*, void*);
void atom_prop_select_atom_color_cb(Fl_Widget* w, void* d);
void atom_prop_select_string_color_cb(Fl_Widget* w, void* d);
void atom_prop_select_valign_atom_cb(Fl_Widget* w, void* d);
void atom_prop_select_current_font_dimension(Fl_Widget* w, void* d);
void atom_prop_select_current_font(Fl_Widget* w, void* d);
void atom_prop_charge_cb(Fl_Widget* w, void* d);
void atom_prop_charge_pos_cb(Fl_Widget* w, void* d);
void atom_prop_charge_sing_el(Fl_Widget* w, void* d);
void atom_win(atomo* at);


/**
 *Questa classe  rappresenta la finestra per cabiare  le proprietà degli
 *atomi
 */


class atom_prop : public Fl_Window{

  friend void atom_prop_ok_cb(Fl_Widget*, void*);
  friend void atom_prop_cancel_cb(Fl_Widget*, void*);
  friend void atom_prop_select_atom_color_cb(Fl_Widget* w, void* d);
  friend void atom_prop_select_string_color_cb(Fl_Widget* w, void* d);
  friend void atom_prop_select_align_atom_cb(Fl_Widget* w, void* d);
  friend void atom_prop_select_valign_atom_cb(Fl_Widget* w, void* d);
  friend void atom_prop_select_current_font_dimension(Fl_Widget* w, void* d);
  friend void atom_prop_select_current_font(Fl_Widget* w, void* d);
  friend void atom_prop_charge_cb(Fl_Widget* w, void* d);
  friend void atom_prop_charge_pos_cb(Fl_Widget* w, void* d);
  friend void atom_prop_charge_sing_el(Fl_Widget* w, void* d);
  friend void atom_prop_charge_pair_el(Fl_Widget* w, void* d);

public:
  atom_prop(atomo* at);
  
  virtual ~atom_prop();

  virtual int handle(int e);

  bool check_if_type_etic(int typ);

  bool check_if_type_etic(int typ,int pos) throw (out_of_range);

protected:
  string _apici;
  string _pedici;

  atomo* _atom;

  int _r;
  int _g;
  int _b;
  int _ra;
  int _ga;
  int _ba;
  
  int _align;
  int _valign;
};


