// Copyright (C) 2010, Guy Barrand. All rights reserved.
// See the file tools.license for terms.

#ifndef tools_sg_strings
#define tools_sg_strings

#include <string>

namespace tools {
namespace sg {

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
inline const std::string& tick_modeling_none() {
  static const std::string s_v("none");
  return s_v;
}
inline const std::string& tick_modeling_hippo() {
  static const std::string s_v("hippo");
  return s_v;
}
inline const std::string& tick_modeling_hplot() {
  static const std::string s_v("hplot");
  return s_v;
}

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
inline const std::string& infos_modeling_ROOT() {
  static const std::string s_v("ROOT");
  return s_v;
}
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
inline const std::string& encoding_none() {
  static const std::string s_v("none");
  return s_v;
}
inline const std::string& encoding_PAW() {
  static const std::string s_v("PAW");
  return s_v;
}

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
inline const std::string& modeling_boxes() {
  static const std::string s_v("boxes");
  return s_v;
}

inline const std::string& modeling_wire_boxes() {
  static const std::string s_v("wire_boxes");
  return s_v;
}
inline const std::string& modeling_lines() {
  static const std::string s_v("lines");
  return s_v;
}
inline const std::string& modeling_segments() {
  static const std::string s_v("segments");
  return s_v;
}
inline const std::string& modeling_points() {
  static const std::string s_v("points");
  return s_v;
}
inline const std::string& modeling_top_lines() {
  static const std::string s_v("top_lines");
  return s_v;
}
inline const std::string& modeling_top_lines_boxes() {
  static const std::string s_v("top_lines_boxes");
  return s_v;
}
inline const std::string& modeling_texts() {
  static const std::string s_v("texts");
  return s_v;
}
inline const std::string& modeling_curve() {
  static const std::string s_v("curve");
  return s_v;
}
inline const std::string& modeling_filled_curve() {
  static const std::string s_v("filled_curve");
  return s_v;
}
inline const std::string& modeling_bar_chart() {
  static const std::string s_v("bar_chart");
  return s_v;
}
inline const std::string& modeling_solid() {
  static const std::string s_v("solid");
  return s_v;
}
inline const std::string& modeling_wire_frame() {
  static const std::string s_v("wire_frame");
  return s_v;
}
inline const std::string& modeling_reduced_wire_frame() {
  static const std::string s_v("reduced_wire_frame");
  return s_v;
}
inline const std::string& modeling_polygon() {
  static const std::string s_v("polygon");
  return s_v;
}
inline const std::string& modeling_none() {
  static const std::string s_v("none");
  return s_v;
}
inline const std::string& modeling_I() {
  static const std::string s_v("I");
  return s_v;
}
inline const std::string& modeling_plus() {
  static const std::string s_v("plus");
  return s_v;
}

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
inline const std::string& light_model_base_color() {
  static const std::string s_v("base_color");
  return s_v;
}
inline const std::string& light_model_phong() {
  static const std::string s_v("phong");
  return s_v;
}

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
inline const std::string& font_hershey() {
  static const std::string s_v("hershey");
  return s_v;
}

#define TOOLS_FONT_TTF(a__name) \
inline const std::string& font_##a__name##_ttf() {\
  static const std::string s_v(std::string(#a__name)+".ttf");\
  return s_v;\
}

TOOLS_FONT_TTF(arial)
TOOLS_FONT_TTF(arialbd)
TOOLS_FONT_TTF(timesbd)
TOOLS_FONT_TTF(symbol)
TOOLS_FONT_TTF(helvetica)
TOOLS_FONT_TTF(times_roman)
TOOLS_FONT_TTF(cour)
TOOLS_FONT_TTF(courbd)
TOOLS_FONT_TTF(couri)
TOOLS_FONT_TTF(courbi)

#undef TOOLS_FONT_TTF

inline const std::string& font_stixgeneral_otf() {
  static const std::string s_v("stixgeneral.otf");
  return s_v;
}

inline const std::string& font_STIX2Text_Regular_otf() {
  static const std::string s_v("STIX2Text-Regular.otf");
  return s_v;
}

inline const std::string& gui_font() {
  //static const std::string s_v("arial.ttf");
  static const std::string s_v("arialbd.ttf");
  return s_v;
}

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// From TAttText.cxx :
//*-*      1 : times-medium-i-normal      "Times New Roman"      1           4
//*-*      2 : times-bold-r-normal        "Times New Roman"      0           7
//*-*      3 : times-bold-i-normal        "Times New Roman"      1           7
//*-*      4 : helvetica-medium-r-normal  "Arial"                0           4
//*-*      5 : helvetica-medium-o-normal  "Arial"                1           4
//*-*      6 : helvetica-bold-r-normal    "Arial"                0           7
//*-*      7 : helvetica-bold-o-normal    "Arial"                1           7
//*-*      8 : courier-medium-r-normal    "Courier New"          0           4
//*-*      9 : courier-medium-o-normal    "Courier New"          1           4
//*-*     10 : courier-bold-r-normal      "Courier New"          0           7
//*-*     11 : courier-bold-o-normal      "Courier New"          1           7
//*-*     12 : symbol-medium-r-normal     "Symbol"               0           6
//*-*     13 : times-medium-r-normal      "Times New Roman"      0           4
//*-*     14 :                            "Wingdings"            0           4

inline const std::string& font_ROOT_12() {static const std::string s_v("timesi.ttf");return s_v;}
inline const std::string& font_ROOT_22() {static const std::string s_v("timesbd.ttf");return s_v;}
inline const std::string& font_ROOT_32() {static const std::string s_v("timesbi.ttf");return s_v;}
inline const std::string& font_ROOT_42() {static const std::string s_v("arial.ttf");return s_v;}
inline const std::string& font_ROOT_52() {static const std::string s_v("ariali.ttf");return s_v;}
inline const std::string& font_ROOT_62() {static const std::string s_v("arialbd.ttf");return s_v;}
inline const std::string& font_ROOT_72() {static const std::string s_v("arialbi.ttf");return s_v;}
inline const std::string& font_ROOT_82() {static const std::string s_v("cour.ttf");return s_v;}
inline const std::string& font_ROOT_92() {static const std::string s_v("couri.ttf");return s_v;}
inline const std::string& font_ROOT_102() {static const std::string s_v("courbd.fff");return s_v;}
inline const std::string& font_ROOT_112() {static const std::string s_v("courbi.fff");return s_v;}
inline const std::string& font_ROOT_122() {static const std::string s_v("symbol.fff");return s_v;}
inline const std::string& font_ROOT_132() {static const std::string s_v("times.ttf");return s_v;}
inline const std::string& font_ROOT_142() {static const std::string s_v("wingding.fff");return s_v;}

}}

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////

#include "../S_STRING"

namespace tools {
namespace sg {
TOOLS_GLOBAL_STRING(node_end) //for write_bsg, sg::rbsg
//TOOLS_GLOBAL_STRING(clear_scene)
//TOOLS_GLOBAL_STRING(no_hide_menu)
//TOOLS_GLOBAL_STRING(back_color)
//TOOLS_GLOBAL_STRING(adapt_camera)
//TOOLS_GLOBAL_STRING(adapt_camera_sg_was_empty)
TOOLS_GLOBAL_STRING(delete)
TOOLS_GLOBAL_STRING(movable)

TOOLS_GLOBAL_STRING(1D)
TOOLS_GLOBAL_STRING(2D)

//TOOLS_GLOBAL_STRING(whole)
TOOLS_GLOBAL_STRING(col)
TOOLS_GLOBAL_STRING(row)

TOOLS_GLOBAL_STRING_VALUE(white_jpg,white.jpg)

//slides :
TOOLS_GLOBAL_STRING(pos_x_wcam)
TOOLS_GLOBAL_STRING(pos_y_hcam)
TOOLS_GLOBAL_STRING(scale)
TOOLS_GLOBAL_STRING(rad_per_sec)
//TOOLS_GLOBAL_STRING(kind)
TOOLS_GLOBAL_STRING(axis)
TOOLS_GLOBAL_STRING(time_interval)
TOOLS_GLOBAL_STRING(pos_col)
TOOLS_GLOBAL_STRING(pos_row)
TOOLS_GLOBAL_STRING(repeat)
TOOLS_GLOBAL_STRING(class)
TOOLS_GLOBAL_STRING(camera_height)

TOOLS_GLOBAL_STRING(none)

}}

#endif


