% Don't edit this file. It was generated by gs_make:start/0 at 2017-3-14, 21:22:33.

out_opts([Option|Options],Gstkid,TkW,DB,ExtraArg,S,P,C) ->
  {Opt,Val} =
    case Option of 
      {{default,Cat,Key},V} -> {default,{Cat,{Key,V}}};
      {_Key,_V} -> Option;
      {default,Cat,Opti} -> {default,{Cat,Opti}};
      Atom when is_atom(Atom) -> {Atom,undefined};
      _ -> {error, {invalid_option,Option}}
    end,
  case Gstkid#gstkid.objtype of
   rectangle -> 
case Opt of
  move ->
    gen_citem_move(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  coords ->
    gen_citem_coords(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_citem_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_citem_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_citem_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_citem_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_citem_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_citem_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_citem_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_citem_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_citem_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  fill ->
    gen_citem_fill(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_rectangle:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   line -> 
case Opt of
  move ->
    gen_citem_move(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  coords ->
    gen_citem_coords(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_citem_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_citem_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_citem_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_citem_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_citem_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_citem_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_citem_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_citem_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_citem_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_line:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   gridline -> 
case Opt of
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_gridline:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   image -> 
case Opt of
  move ->
    gen_citem_move(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  coords ->
    gen_citem_coords(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_citem_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_citem_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_citem_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_citem_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_citem_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_citem_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_citem_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_citem_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_citem_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_image:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   button -> 
case Opt of
  x ->
    gen_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  y ->
    gen_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  width ->
    gen_width(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  height ->
    gen_height(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enable ->
    gen_enable(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  fg ->
    gen_fg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bg ->
    gen_bg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  anchor ->
    gen_anchor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_x ->
    gen_pack_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_y ->
    gen_pack_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_xy ->
    gen_pack_xy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  align ->
    gen_align(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  font ->
    gen_font(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  justify ->
    gen_justify(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  padx ->
    gen_padx(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pady ->
    gen_pady(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  configure ->
    gen_configure(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  label ->
    gen_label(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activebg ->
    gen_activebg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activefg ->
    gen_activefg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_button:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   canvas -> 
case Opt of
  x ->
    gen_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  y ->
    gen_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  width ->
    gen_width(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  height ->
    gen_height(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  anchor ->
    gen_anchor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_x ->
    gen_pack_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_y ->
    gen_pack_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_xy ->
    gen_pack_xy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  default ->
    gen_default(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activebg ->
    gen_so_activebg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bc ->
    gen_so_bc(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bg ->
    gen_so_bg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  scrollbg ->
    gen_so_scrollbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  scrollfg ->
    gen_so_scrollfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  scrolls ->
    gen_so_scrolls(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  selectbg ->
    gen_so_selectbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  selectbw ->
    gen_so_selectbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  selectfg ->
    gen_so_selectfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_canvas:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   checkbutton -> 
case Opt of
  x ->
    gen_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  y ->
    gen_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  width ->
    gen_width(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  height ->
    gen_height(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enable ->
    gen_enable(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  fg ->
    gen_fg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bg ->
    gen_bg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  anchor ->
    gen_anchor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_x ->
    gen_pack_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_y ->
    gen_pack_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_xy ->
    gen_pack_xy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  align ->
    gen_align(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  font ->
    gen_font(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  justify ->
    gen_justify(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  padx ->
    gen_padx(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pady ->
    gen_pady(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  configure ->
    gen_configure(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  label ->
    gen_label(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activebg ->
    gen_activebg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activefg ->
    gen_activefg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_checkbutton:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   radiobutton -> 
case Opt of
  x ->
    gen_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  y ->
    gen_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  width ->
    gen_width(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  height ->
    gen_height(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enable ->
    gen_enable(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  fg ->
    gen_fg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bg ->
    gen_bg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  anchor ->
    gen_anchor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_x ->
    gen_pack_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_y ->
    gen_pack_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_xy ->
    gen_pack_xy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  align ->
    gen_align(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  font ->
    gen_font(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  justify ->
    gen_justify(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  padx ->
    gen_padx(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pady ->
    gen_pady(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  configure ->
    gen_configure(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  label ->
    gen_label(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activebg ->
    gen_activebg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activefg ->
    gen_activefg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_radiobutton:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   arc -> 
case Opt of
  move ->
    gen_citem_move(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  coords ->
    gen_citem_coords(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_citem_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_citem_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_citem_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_citem_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_citem_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_citem_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_citem_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_citem_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_citem_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  fill ->
    gen_citem_fill(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_arc:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   editor -> 
case Opt of
  x ->
    gen_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  y ->
    gen_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  width ->
    gen_width(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  height ->
    gen_height(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  anchor ->
    gen_anchor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_x ->
    gen_pack_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_y ->
    gen_pack_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_xy ->
    gen_pack_xy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  configure ->
    gen_configure(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activebg ->
    gen_so_activebg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bc ->
    gen_so_bc(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bg ->
    gen_so_bg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  scrollbg ->
    gen_so_scrollbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  scrollfg ->
    gen_so_scrollfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  scrolls ->
    gen_so_scrolls(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  selectbg ->
    gen_so_selectbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  selectbw ->
    gen_so_selectbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  selectfg ->
    gen_so_selectfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_editor:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   entry -> 
case Opt of
  x ->
    gen_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  y ->
    gen_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  width ->
    gen_width(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  height ->
    gen_height(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enable ->
    gen_enable(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  fg ->
    gen_fg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bg ->
    gen_bg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  anchor ->
    gen_anchor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_x ->
    gen_pack_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_y ->
    gen_pack_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_xy ->
    gen_pack_xy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  configure ->
    gen_configure(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  selectbg ->
    gen_selectbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  selectbw ->
    gen_selectbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  selectfg ->
    gen_selectfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_entry:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   frame -> 
case Opt of
  x ->
    gen_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  y ->
    gen_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  anchor ->
    gen_anchor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_x ->
    gen_pack_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_y ->
    gen_pack_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_xy ->
    gen_pack_xy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  default ->
    gen_default(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  configure ->
    gen_configure(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_frame:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   grid -> 
case Opt of
  x ->
    gen_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  y ->
    gen_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  width ->
    gen_width(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  height ->
    gen_height(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  anchor ->
    gen_anchor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_x ->
    gen_pack_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_y ->
    gen_pack_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_xy ->
    gen_pack_xy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  default ->
    gen_default(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_grid:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   gs -> 
case Opt of
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_gs:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   label -> 
case Opt of
  x ->
    gen_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  y ->
    gen_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  width ->
    gen_width(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  height ->
    gen_height(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  fg ->
    gen_fg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bg ->
    gen_bg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  anchor ->
    gen_anchor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_x ->
    gen_pack_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_y ->
    gen_pack_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_xy ->
    gen_pack_xy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  align ->
    gen_align(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  font ->
    gen_font(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  justify ->
    gen_justify(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  padx ->
    gen_padx(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pady ->
    gen_pady(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  configure ->
    gen_configure(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  label ->
    gen_label(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_label:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   listbox -> 
case Opt of
  x ->
    gen_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  y ->
    gen_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  width ->
    gen_width(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  height ->
    gen_height(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  anchor ->
    gen_anchor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_x ->
    gen_pack_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_y ->
    gen_pack_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_xy ->
    gen_pack_xy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  configure ->
    gen_configure(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activebg ->
    gen_so_activebg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bc ->
    gen_so_bc(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bg ->
    gen_so_bg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  scrollbg ->
    gen_so_scrollbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  scrollfg ->
    gen_so_scrollfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  scrolls ->
    gen_so_scrolls(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  selectbg ->
    gen_so_selectbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  selectbw ->
    gen_so_selectbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  selectfg ->
    gen_so_selectfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_listbox:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   menu -> 
case Opt of
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  fg ->
    gen_fg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bg ->
    gen_bg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  default ->
    gen_default(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  configure ->
    gen_configure(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activebg ->
    gen_activebg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activefg ->
    gen_activefg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_menu:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   menubar -> 
case Opt of
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  default ->
    gen_default(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  configure ->
    gen_configure(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_menubar:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   menubutton -> 
case Opt of
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enable ->
    gen_enable(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  fg ->
    gen_fg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bg ->
    gen_bg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  align ->
    gen_align(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  font ->
    gen_font(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  justify ->
    gen_justify(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  padx ->
    gen_padx(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pady ->
    gen_pady(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  default ->
    gen_default(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  configure ->
    gen_configure(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  label ->
    gen_label(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activebg ->
    gen_activebg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  activefg ->
    gen_activefg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_menubutton:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   menuitem -> 
case Opt of
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  default ->
    gen_default(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_menuitem:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   oval -> 
case Opt of
  move ->
    gen_citem_move(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  coords ->
    gen_citem_coords(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_citem_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_citem_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_citem_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_citem_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_citem_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_citem_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_citem_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_citem_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_citem_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  fill ->
    gen_citem_fill(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_oval:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   polygon -> 
case Opt of
  move ->
    gen_citem_move(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  coords ->
    gen_citem_coords(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_citem_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_citem_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_citem_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_citem_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_citem_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_citem_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_citem_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_citem_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_citem_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  fill ->
    gen_citem_fill(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_polygon:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   scale -> 
case Opt of
  x ->
    gen_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  y ->
    gen_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  width ->
    gen_width(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  height ->
    gen_height(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enable ->
    gen_enable(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  fg ->
    gen_fg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bg ->
    gen_bg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  anchor ->
    gen_anchor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_x ->
    gen_pack_x(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_y ->
    gen_pack_y(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  pack_xy ->
    gen_pack_xy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  configure ->
    gen_configure(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_scale:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   text -> 
case Opt of
  move ->
    gen_citem_move(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  coords ->
    gen_citem_coords(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  lower ->
    gen_citem_lower(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  raise ->
    gen_citem_raise(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  setfocus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonpress ->
    gen_citem_buttonpress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  buttonrelease ->
    gen_citem_buttonrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_citem_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_citem_setfocus(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_citem_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_citem_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_citem_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  motion ->
    gen_citem_motion(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_text:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
   window -> 
case Opt of
  data ->
    gen_data(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  default ->
    gen_default(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  relief ->
    gen_relief(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  bw ->
    gen_bw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  destroy ->
    gen_destroy(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  enter ->
    gen_enter(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  leave ->
    gen_leave(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  focus ->
    gen_focus_ev(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keypress ->
    gen_keypress(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keyrelease ->
    gen_keyrelease(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  beep ->
    gen_beep(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  keep_opt ->
    gen_keep_opt(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  flush ->
    gen_flush(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbw ->
    gen_highlightbw(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightbg ->
    gen_highlightbg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  highlightfg ->
    gen_highlightfg(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  cursor ->
    gen_cursor(Val,Options,Gstkid,TkW,DB,ExtraArg,S,P,C);
  _ -> 
    handle_external_opt_call([Option|Options],Gstkid,TkW,DB,ExtraArg,                             gstk_window:option(Option,Gstkid,TkW,DB,ExtraArg),S,P,C)
  end;
    Q -> exit({internal_error,unknown_objtype,Q})
  end;
out_opts([],_Gstkid,_TkW,_DB,_ExtraArg,S,P,C) -> 
  {S,P,C}.
read_option(DB,Gstkid,TkW,Option,ExtraArg) ->
  Key = case Option of
    Atom when is_atom(Atom) -> Atom;
    Opt when is_tuple(Opt) -> element(1,Opt)
  end,
  case Gstkid#gstkid.objtype of
  rectangle -> 
case Key of
  coords -> 
gen_citem_coords(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_citem_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  fill -> 
gen_citem_fill(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_rectangle:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  line -> 
case Key of
  coords -> 
gen_citem_coords(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_citem_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_line:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  gridline -> 
case Key of
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_gridline:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  image -> 
case Key of
  coords -> 
gen_citem_coords(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_citem_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_image:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  button -> 
case Key of
  x -> 
gen_x(Option,Gstkid,TkW,DB,ExtraArg);
  y -> 
gen_y(Option,Gstkid,TkW,DB,ExtraArg);
  width -> 
gen_width(Option,Gstkid,TkW,DB,ExtraArg);
  height -> 
gen_height(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  enable -> 
gen_enable(Option,Gstkid,TkW,DB,ExtraArg);
  fg -> 
gen_fg(Option,Gstkid,TkW,DB,ExtraArg);
  bg -> 
gen_bg(Option,Gstkid,TkW,DB,ExtraArg);
  anchor -> 
gen_anchor(Option,Gstkid,TkW,DB,ExtraArg);
  pack_x -> 
gen_pack_x(Option,Gstkid,TkW,DB,ExtraArg);
  pack_y -> 
gen_pack_y(Option,Gstkid,TkW,DB,ExtraArg);
  align -> 
gen_align(Option,Gstkid,TkW,DB,ExtraArg);
  font -> 
gen_font(Option,Gstkid,TkW,DB,ExtraArg);
  justify -> 
gen_justify(Option,Gstkid,TkW,DB,ExtraArg);
  padx -> 
gen_padx(Option,Gstkid,TkW,DB,ExtraArg);
  pady -> 
gen_pady(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  label -> 
gen_label(Option,Gstkid,TkW,DB,ExtraArg);
  activebg -> 
gen_activebg(Option,Gstkid,TkW,DB,ExtraArg);
  activefg -> 
gen_activefg(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_button:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  canvas -> 
case Key of
  x -> 
gen_x(Option,Gstkid,TkW,DB,ExtraArg);
  y -> 
gen_y(Option,Gstkid,TkW,DB,ExtraArg);
  width -> 
gen_width(Option,Gstkid,TkW,DB,ExtraArg);
  height -> 
gen_height(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  anchor -> 
gen_anchor(Option,Gstkid,TkW,DB,ExtraArg);
  pack_x -> 
gen_pack_x(Option,Gstkid,TkW,DB,ExtraArg);
  pack_y -> 
gen_pack_y(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  activebg -> 
gen_so_activebg(Option,Gstkid,TkW,DB,ExtraArg);
  bc -> 
gen_so_bc(Option,Gstkid,TkW,DB,ExtraArg);
  bg -> 
gen_so_bg(Option,Gstkid,TkW,DB,ExtraArg);
  hscroll -> 
gen_so_hscroll(Option,Gstkid,TkW,DB,ExtraArg);
  scrollbg -> 
gen_so_scrollbg(Option,Gstkid,TkW,DB,ExtraArg);
  scrollfg -> 
gen_so_scrollfg(Option,Gstkid,TkW,DB,ExtraArg);
  selectbg -> 
gen_so_selectbg(Option,Gstkid,TkW,DB,ExtraArg);
  selectbw -> 
gen_so_selectbw(Option,Gstkid,TkW,DB,ExtraArg);
  selectfg -> 
gen_so_selectfg(Option,Gstkid,TkW,DB,ExtraArg);
  vscroll -> 
gen_so_vscroll(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_canvas:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  checkbutton -> 
case Key of
  x -> 
gen_x(Option,Gstkid,TkW,DB,ExtraArg);
  y -> 
gen_y(Option,Gstkid,TkW,DB,ExtraArg);
  width -> 
gen_width(Option,Gstkid,TkW,DB,ExtraArg);
  height -> 
gen_height(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  enable -> 
gen_enable(Option,Gstkid,TkW,DB,ExtraArg);
  fg -> 
gen_fg(Option,Gstkid,TkW,DB,ExtraArg);
  bg -> 
gen_bg(Option,Gstkid,TkW,DB,ExtraArg);
  anchor -> 
gen_anchor(Option,Gstkid,TkW,DB,ExtraArg);
  pack_x -> 
gen_pack_x(Option,Gstkid,TkW,DB,ExtraArg);
  pack_y -> 
gen_pack_y(Option,Gstkid,TkW,DB,ExtraArg);
  align -> 
gen_align(Option,Gstkid,TkW,DB,ExtraArg);
  font -> 
gen_font(Option,Gstkid,TkW,DB,ExtraArg);
  justify -> 
gen_justify(Option,Gstkid,TkW,DB,ExtraArg);
  padx -> 
gen_padx(Option,Gstkid,TkW,DB,ExtraArg);
  pady -> 
gen_pady(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  label -> 
gen_label(Option,Gstkid,TkW,DB,ExtraArg);
  activebg -> 
gen_activebg(Option,Gstkid,TkW,DB,ExtraArg);
  activefg -> 
gen_activefg(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_checkbutton:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  radiobutton -> 
case Key of
  x -> 
gen_x(Option,Gstkid,TkW,DB,ExtraArg);
  y -> 
gen_y(Option,Gstkid,TkW,DB,ExtraArg);
  width -> 
gen_width(Option,Gstkid,TkW,DB,ExtraArg);
  height -> 
gen_height(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  enable -> 
gen_enable(Option,Gstkid,TkW,DB,ExtraArg);
  fg -> 
gen_fg(Option,Gstkid,TkW,DB,ExtraArg);
  bg -> 
gen_bg(Option,Gstkid,TkW,DB,ExtraArg);
  anchor -> 
gen_anchor(Option,Gstkid,TkW,DB,ExtraArg);
  pack_x -> 
gen_pack_x(Option,Gstkid,TkW,DB,ExtraArg);
  pack_y -> 
gen_pack_y(Option,Gstkid,TkW,DB,ExtraArg);
  align -> 
gen_align(Option,Gstkid,TkW,DB,ExtraArg);
  font -> 
gen_font(Option,Gstkid,TkW,DB,ExtraArg);
  justify -> 
gen_justify(Option,Gstkid,TkW,DB,ExtraArg);
  padx -> 
gen_padx(Option,Gstkid,TkW,DB,ExtraArg);
  pady -> 
gen_pady(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  label -> 
gen_label(Option,Gstkid,TkW,DB,ExtraArg);
  activebg -> 
gen_activebg(Option,Gstkid,TkW,DB,ExtraArg);
  activefg -> 
gen_activefg(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_radiobutton:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  arc -> 
case Key of
  coords -> 
gen_citem_coords(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_citem_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  fill -> 
gen_citem_fill(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_arc:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  editor -> 
case Key of
  x -> 
gen_x(Option,Gstkid,TkW,DB,ExtraArg);
  y -> 
gen_y(Option,Gstkid,TkW,DB,ExtraArg);
  width -> 
gen_width(Option,Gstkid,TkW,DB,ExtraArg);
  height -> 
gen_height(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  anchor -> 
gen_anchor(Option,Gstkid,TkW,DB,ExtraArg);
  pack_x -> 
gen_pack_x(Option,Gstkid,TkW,DB,ExtraArg);
  pack_y -> 
gen_pack_y(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  activebg -> 
gen_so_activebg(Option,Gstkid,TkW,DB,ExtraArg);
  bc -> 
gen_so_bc(Option,Gstkid,TkW,DB,ExtraArg);
  bg -> 
gen_so_bg(Option,Gstkid,TkW,DB,ExtraArg);
  hscroll -> 
gen_so_hscroll(Option,Gstkid,TkW,DB,ExtraArg);
  scrollbg -> 
gen_so_scrollbg(Option,Gstkid,TkW,DB,ExtraArg);
  scrollfg -> 
gen_so_scrollfg(Option,Gstkid,TkW,DB,ExtraArg);
  selectbg -> 
gen_so_selectbg(Option,Gstkid,TkW,DB,ExtraArg);
  selectbw -> 
gen_so_selectbw(Option,Gstkid,TkW,DB,ExtraArg);
  selectfg -> 
gen_so_selectfg(Option,Gstkid,TkW,DB,ExtraArg);
  vscroll -> 
gen_so_vscroll(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_editor:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  entry -> 
case Key of
  x -> 
gen_x(Option,Gstkid,TkW,DB,ExtraArg);
  y -> 
gen_y(Option,Gstkid,TkW,DB,ExtraArg);
  width -> 
gen_width(Option,Gstkid,TkW,DB,ExtraArg);
  height -> 
gen_height(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  enable -> 
gen_enable(Option,Gstkid,TkW,DB,ExtraArg);
  fg -> 
gen_fg(Option,Gstkid,TkW,DB,ExtraArg);
  bg -> 
gen_bg(Option,Gstkid,TkW,DB,ExtraArg);
  anchor -> 
gen_anchor(Option,Gstkid,TkW,DB,ExtraArg);
  pack_x -> 
gen_pack_x(Option,Gstkid,TkW,DB,ExtraArg);
  pack_y -> 
gen_pack_y(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  selectbg -> 
gen_selectbg(Option,Gstkid,TkW,DB,ExtraArg);
  selectbw -> 
gen_selectbw(Option,Gstkid,TkW,DB,ExtraArg);
  selectfg -> 
gen_selectfg(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_entry:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  frame -> 
case Key of
  x -> 
gen_x(Option,Gstkid,TkW,DB,ExtraArg);
  y -> 
gen_y(Option,Gstkid,TkW,DB,ExtraArg);
  width -> 
gen_width(Option,Gstkid,TkW,DB,ExtraArg);
  height -> 
gen_height(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  anchor -> 
gen_anchor(Option,Gstkid,TkW,DB,ExtraArg);
  pack_x -> 
gen_pack_x(Option,Gstkid,TkW,DB,ExtraArg);
  pack_y -> 
gen_pack_y(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_frame:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  grid -> 
case Key of
  x -> 
gen_x(Option,Gstkid,TkW,DB,ExtraArg);
  y -> 
gen_y(Option,Gstkid,TkW,DB,ExtraArg);
  width -> 
gen_width(Option,Gstkid,TkW,DB,ExtraArg);
  height -> 
gen_height(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  anchor -> 
gen_anchor(Option,Gstkid,TkW,DB,ExtraArg);
  pack_x -> 
gen_pack_x(Option,Gstkid,TkW,DB,ExtraArg);
  pack_y -> 
gen_pack_y(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_grid:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  gs -> 
case Key of
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_gs:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  label -> 
case Key of
  x -> 
gen_x(Option,Gstkid,TkW,DB,ExtraArg);
  y -> 
gen_y(Option,Gstkid,TkW,DB,ExtraArg);
  width -> 
gen_width(Option,Gstkid,TkW,DB,ExtraArg);
  height -> 
gen_height(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  fg -> 
gen_fg(Option,Gstkid,TkW,DB,ExtraArg);
  bg -> 
gen_bg(Option,Gstkid,TkW,DB,ExtraArg);
  anchor -> 
gen_anchor(Option,Gstkid,TkW,DB,ExtraArg);
  pack_x -> 
gen_pack_x(Option,Gstkid,TkW,DB,ExtraArg);
  pack_y -> 
gen_pack_y(Option,Gstkid,TkW,DB,ExtraArg);
  align -> 
gen_align(Option,Gstkid,TkW,DB,ExtraArg);
  font -> 
gen_font(Option,Gstkid,TkW,DB,ExtraArg);
  justify -> 
gen_justify(Option,Gstkid,TkW,DB,ExtraArg);
  padx -> 
gen_padx(Option,Gstkid,TkW,DB,ExtraArg);
  pady -> 
gen_pady(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  label -> 
gen_label(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_label:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  listbox -> 
case Key of
  x -> 
gen_x(Option,Gstkid,TkW,DB,ExtraArg);
  y -> 
gen_y(Option,Gstkid,TkW,DB,ExtraArg);
  width -> 
gen_width(Option,Gstkid,TkW,DB,ExtraArg);
  height -> 
gen_height(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  anchor -> 
gen_anchor(Option,Gstkid,TkW,DB,ExtraArg);
  pack_x -> 
gen_pack_x(Option,Gstkid,TkW,DB,ExtraArg);
  pack_y -> 
gen_pack_y(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  activebg -> 
gen_so_activebg(Option,Gstkid,TkW,DB,ExtraArg);
  bc -> 
gen_so_bc(Option,Gstkid,TkW,DB,ExtraArg);
  bg -> 
gen_so_bg(Option,Gstkid,TkW,DB,ExtraArg);
  hscroll -> 
gen_so_hscroll(Option,Gstkid,TkW,DB,ExtraArg);
  scrollbg -> 
gen_so_scrollbg(Option,Gstkid,TkW,DB,ExtraArg);
  scrollfg -> 
gen_so_scrollfg(Option,Gstkid,TkW,DB,ExtraArg);
  selectbg -> 
gen_so_selectbg(Option,Gstkid,TkW,DB,ExtraArg);
  selectbw -> 
gen_so_selectbw(Option,Gstkid,TkW,DB,ExtraArg);
  selectfg -> 
gen_so_selectfg(Option,Gstkid,TkW,DB,ExtraArg);
  vscroll -> 
gen_so_vscroll(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_listbox:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  menu -> 
case Key of
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  fg -> 
gen_fg(Option,Gstkid,TkW,DB,ExtraArg);
  bg -> 
gen_bg(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  activebg -> 
gen_activebg(Option,Gstkid,TkW,DB,ExtraArg);
  activefg -> 
gen_activefg(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_menu:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  menubar -> 
case Key of
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_menubar:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  menubutton -> 
case Key of
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  enable -> 
gen_enable(Option,Gstkid,TkW,DB,ExtraArg);
  fg -> 
gen_fg(Option,Gstkid,TkW,DB,ExtraArg);
  bg -> 
gen_bg(Option,Gstkid,TkW,DB,ExtraArg);
  align -> 
gen_align(Option,Gstkid,TkW,DB,ExtraArg);
  font -> 
gen_font(Option,Gstkid,TkW,DB,ExtraArg);
  justify -> 
gen_justify(Option,Gstkid,TkW,DB,ExtraArg);
  padx -> 
gen_padx(Option,Gstkid,TkW,DB,ExtraArg);
  pady -> 
gen_pady(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  label -> 
gen_label(Option,Gstkid,TkW,DB,ExtraArg);
  activebg -> 
gen_activebg(Option,Gstkid,TkW,DB,ExtraArg);
  activefg -> 
gen_activefg(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_menubutton:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  menuitem -> 
case Key of
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_menuitem:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  oval -> 
case Key of
  coords -> 
gen_citem_coords(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_citem_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  fill -> 
gen_citem_fill(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_oval:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  polygon -> 
case Key of
  coords -> 
gen_citem_coords(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_citem_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  fill -> 
gen_citem_fill(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_polygon:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  scale -> 
case Key of
  x -> 
gen_x(Option,Gstkid,TkW,DB,ExtraArg);
  y -> 
gen_y(Option,Gstkid,TkW,DB,ExtraArg);
  width -> 
gen_width(Option,Gstkid,TkW,DB,ExtraArg);
  height -> 
gen_height(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  enable -> 
gen_enable(Option,Gstkid,TkW,DB,ExtraArg);
  fg -> 
gen_fg(Option,Gstkid,TkW,DB,ExtraArg);
  bg -> 
gen_bg(Option,Gstkid,TkW,DB,ExtraArg);
  anchor -> 
gen_anchor(Option,Gstkid,TkW,DB,ExtraArg);
  pack_x -> 
gen_pack_x(Option,Gstkid,TkW,DB,ExtraArg);
  pack_y -> 
gen_pack_y(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_scale:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  text -> 
case Key of
  coords -> 
gen_citem_coords(Option,Gstkid,TkW,DB,ExtraArg);
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  setfocus -> 
gen_citem_setfocus(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  configure -> 
gen_configure(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_text:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
  window -> 
case Key of
  data -> 
gen_data(Option,Gstkid,TkW,DB,ExtraArg);
  relief -> 
gen_relief(Option,Gstkid,TkW,DB,ExtraArg);
  bw -> 
gen_bw(Option,Gstkid,TkW,DB,ExtraArg);
  destroy -> 
gen_destroy(Option,Gstkid,TkW,DB,ExtraArg);
  enter -> 
gen_enter(Option,Gstkid,TkW,DB,ExtraArg);
  leave -> 
gen_leave(Option,Gstkid,TkW,DB,ExtraArg);
  focus -> 
gen_focus_ev(Option,Gstkid,TkW,DB,ExtraArg);
  keypress -> 
gen_keypress(Option,Gstkid,TkW,DB,ExtraArg);
  keyrelease -> 
gen_keyrelease(Option,Gstkid,TkW,DB,ExtraArg);
  buttonpress -> 
gen_buttonpress(Option,Gstkid,TkW,DB,ExtraArg);
  buttonrelease -> 
gen_buttonrelease(Option,Gstkid,TkW,DB,ExtraArg);
  motion -> 
gen_motion(Option,Gstkid,TkW,DB,ExtraArg);
  font_wh -> 
gen_font_wh(Option,Gstkid,TkW,DB,ExtraArg);
  choose_font -> 
gen_choose_font(Option,Gstkid,TkW,DB,ExtraArg);
  children -> 
gen_children(Option,Gstkid,TkW,DB,ExtraArg);
  id -> 
gen_id(Option,Gstkid,TkW,DB,ExtraArg);
  parent -> 
gen_parent(Option,Gstkid,TkW,DB,ExtraArg);
  type -> 
gen_type(Option,Gstkid,TkW,DB,ExtraArg);
  flush -> 
gen_flush(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbw -> 
gen_highlightbw(Option,Gstkid,TkW,DB,ExtraArg);
  highlightbg -> 
gen_highlightbg(Option,Gstkid,TkW,DB,ExtraArg);
  highlightfg -> 
gen_highlightfg(Option,Gstkid,TkW,DB,ExtraArg);
  cursor -> 
gen_cursor(Option,Gstkid,TkW,DB,ExtraArg);
  _ -> 
handle_external_read(gstk_window:read_option(Option,Gstkid,TkW,DB,ExtraArg))
  end;
    Q -> exit({internal_error,unknown_objtype,Q})
  end.
