'#include "crt/stdlib.bi"
#include "crt/stdio.bi"
#include "inc/iup.bi"
#include "inc/iupcontrols.bi"

sub _init_ constructor
  IupOpen(0,0)
  'IupControlsOpen()
end sub

sub _exit_ destructor
  IupClose()
end sub


dim shared as ubyte img_bits1(...) = {_
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1 _
,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1 _
,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1 _
,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1 _
,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1 _
,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1 _
,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1 _
,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1 _
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 _
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 _
,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 _
,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 _
,2,2,2,0,2,0,2,0,2,2,0,2,2,2,0,0,0,2,2,2,0,0,2,0,2,2,0,0,0,2,2,2 _
,2,2,2,0,2,0,0,2,0,0,2,0,2,0,2,2,2,0,2,0,2,2,0,0,2,0,2,2,2,0,2,2 _
,2,2,2,0,2,0,2,2,0,2,2,0,2,2,2,2,2,0,2,0,2,2,2,0,2,0,2,2,2,0,2,2 _
,2,2,2,0,2,0,2,2,0,2,2,0,2,2,0,0,0,0,2,0,2,2,2,0,2,0,0,0,0,0,2,2 _
,2,2,2,0,2,0,2,2,0,2,2,0,2,0,2,2,2,0,2,0,2,2,2,0,2,0,2,2,2,2,2,2 _
,2,2,2,0,2,0,2,2,0,2,2,0,2,0,2,2,2,0,2,0,2,2,0,0,2,0,2,2,2,0,2,2 _
,2,2,2,0,2,0,2,2,0,2,2,0,2,2,0,0,0,0,2,2,0,0,2,0,2,2,0,0,0,2,2,2 _
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2 _
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,0,2,2,2,2,2,2,2,2 _
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2 _
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 _
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 _
,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1 _
,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1 _
,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1 _
,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1 _
,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 _
,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 _
,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 _
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 _
}

dim shared as ubyte img_bits2(...) = { _
 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2 _
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2 _
,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2 _
,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2 _
,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2 _
,2,2,2,2,2,2,2,2,2,2,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2 _
,2,2,2,2,2,2,2,2,2,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2 _
,2,2,2,2,2,2,2,2,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2 _
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 _
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 _
,3,3,3,0,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 _
,3,3,3,0,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 _
,3,3,3,0,3,0,3,0,3,3,0,3,3,3,1,1,0,3,3,3,0,0,3,0,3,3,0,0,0,3,3,3 _
,3,3,3,0,3,0,0,3,0,0,3,0,3,0,1,1,3,0,3,0,3,3,0,0,3,0,3,3,3,0,3,3 _
,3,3,3,0,3,0,3,3,0,3,3,0,3,3,1,1,3,0,3,0,3,3,3,0,3,0,3,3,3,0,3,3 _
,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 _
,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 _
,3,3,3,0,3,0,3,3,0,3,3,0,3,0,1,1,3,0,3,0,3,3,0,0,3,0,3,3,3,0,3,3 _
,3,3,3,0,3,0,3,3,0,3,3,0,3,3,1,1,0,0,3,3,0,0,3,0,3,3,0,0,0,3,3,3 _
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3 _
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,0,3,3,3,0,3,3,3,3,3,3,3,3 _
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,0,0,0,3,3,3,3,3,3,3,3,3 _
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 _
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 _
,2,2,2,2,2,2,2,3,3,3,3,3,3,3,1,1,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2 _
,2,2,2,2,2,2,3,3,3,3,3,3,3,3,1,1,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2 _
,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2 _
,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2 _
,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 _
,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 _
,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 _
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 _
}

dim shared as integer cLine = 0

function getfocus_cb cdecl (ih as Ihandle ptr) as integer
  printf(!"%2d getfocus(%s#%s)\n", _
  cLine, _
  IupGetClassName(ih), _
  IupGetAttribute(ih, "CINDEX"))
  cLine+=1
  return IUP_DEFAULT
end function

function killfocus_cb cdecl (ih as Ihandle ptr) as integer
  printf(!"%2d killfocus(%s#%s)\n", _
    cLine, _
    IupGetClassName(ih), _
    IupGetAttribute(ih, "CINDEX"))
  cLine+=1
  return IUP_DEFAULT
end function

function action_cb cdecl (ih as Ihandle ptr) as integer
  printf(!"%2d action(%s#%s) Value=%s\n", _
    cLine, _
    IupGetClassName(ih), _
    IupGetAttribute(ih, "CINDEX"), _
    IupGetAttribute(ih, "VALUE"))
  cLine+=1
  return IUP_DEFAULT
end function

sub createImages()
  dim as Ihandle ptr img

  img = IupImage(32,32, @img_bits1(0))
  IupSetHandle ("img1", img) 
  IupSetAttribute (img, "0", "0 0 0") 
  IupSetAttribute (img, "1", "BGCOLOR")
  IupSetAttribute (img, "2", "255 0 0")

  img = IupImage(32,32, @img_bits2(0))
  IupSetHandle ("img2", img) 
  IupSetAttribute (img, "0", "0 0 0") 
  IupSetAttribute (img, "1", "0 255 0")
  IupSetAttribute (img, "2", "BGCOLOR")
  IupSetAttribute (img, "3", "255 0 0")
end sub

sub set_callbacks(ctrl as Ihandle ptr)  
  dim as Ihandle ptr child
  IupSetCallback(ctrl, "GETFOCUS_CB", @getfocus_cb)
  IupSetCallback(ctrl, "KILLFOCUS_CB", @killfocus_cb)
  if *IupGetClassName(ctrl)<>"canvas" then
   IupSetCallback(ctrl, "ACTION", @action_cb)
  end if
  child = IupGetNextChild(ctrl, NULL)
  while (child)
    set_callbacks(child)  
    child = IupGetNextChild(ctrl, child)
  wend
end sub

function  createDialog() as Ihandle ptr
  static as integer id = 0
  dim as Ihandle ptr _hbox_1, _cnv_1, _vbox_1, dlg, _
                     _frm_1, _frm_2, _frm_3, _frm_4, _frm_5, _
                     _list_1, _list_2, _list_3, _list_4, _text_1, _ml_1

  _frm_1 = IupFrame( _
    IupVbox( _
      IupSetAttributes(IupButton("Button Text", NULL), "CINDEX=1"), _
      IupSetAttributes(IupButton("", NULL), !"CINDEX=2, BGCOLOR=\"255 128 0\", RASTERSIZE=30x30"), _
      IupSetAttributes(IupButton("", NULL), "IMAGE=img1,CINDEX=3"), _
      IupSetAttributes(IupButton("", NULL), "IMAGE=img1,CINDEX=4, FLAT=YES"), _
      IupSetAttributes(IupButton("", NULL), "IMAGE=img1,IMPRESS=img2,CINDEX=5"), _
      NULL))
  IupSetAttribute(_frm_1,"TITLE","IupButton")

  _frm_2 = IupFrame( _
    IupVbox( _
      IupSetAttributes(IupLabel(!"Label Text\nLine 2\nLine 3"), "CINDEX=1"), _
      IupSetAttributes(IupLabel(""), "SEPARATOR=HORIZONTAL,CINDEX=2"), _
      IupSetAttributes(IupLabel(""), "IMAGE=img1,CINDEX=3"), _
      NULL))
  IupSetAttribute(_frm_2,"TITLE","IupLabel")

  _frm_3 = IupFrame( _
    IupVbox( _
      IupSetAttributes(IupToggle("Toggle Text", NULL), "VALUE=ON,CINDEX=1"), _
      IupSetAttributes(IupToggle("3State Text", NULL), "VALUE=NOTDEF,CINDEX=2,3STATE=YES"), _
      IupSetAttributes(IupToggle("", NULL), "IMAGE=img1,IMPRESS=img2,CINDEX=3"), _
      IupSetAttributes( _
        IupFrame(IupRadio( _
                   IupVbox( _
                     IupSetAttributes(IupToggle("Toggle Text", NULL), "CINDEX=4"), _
                     IupSetAttributes(IupToggle("Toggle Text", NULL), "CINDEX=5"), _
                     NULL))), _
                       "TITLE=IupRadio"), _
      NULL))
  IupSetAttribute(_frm_3,"TITLE","IupToggle")

  _text_1 = IupText( NULL)
  IupSetAttribute(_text_1,"VALUE","IupText Text")
' IupSetAttribute(_text_1,"SIZE","80x")
  IupSetAttribute(_text_1,"CINDEX","1")

  _ml_1 = IupMultiLine( NULL)
  IupSetAttribute(_ml_1,"VALUE",!"IupMultiline Text\nSecond Line\nThird Line")
'  IupSetAttribute(_ml_1,"SIZE","50x30")
'  IupSetAttribute(_ml_1,"EXPAND","YES")
'  IupSetAttribute(_ml_1,"SIZE","80x60")
  IupSetAttribute(_ml_1,"CINDEX","1")

  _frm_4 = IupFrame(IupVbox(_text_1, _ml_1, NULL))
  IupSetAttribute(_frm_4,"TITLE","IupText/IupMultiline")

  _list_1 = IupList( NULL)
  IupSetAttribute(_list_1,"EXPAND","YES")
  IupSetAttribute(_list_1, "SIZE", "50x40")
  IupSetAttribute(_list_1,"VALUE","1")
  IupSetAttribute(_list_1,"MULTIPLE","YES")  
  IupSetAttribute(_list_1,"1","Item 1 Text")
  IupSetAttribute(_list_1,"2","Item 2 Text")
  IupSetAttribute(_list_1,"3","Item 3 Text Big Item")
  IupSetAttribute(_list_1,"4","Item 4 Text")
  IupSetAttribute(_list_1,"5","Item 5 Text")
  IupSetAttribute(_list_1,"6","Item 6 Text")
  IupSetAttribute(_list_1,"CINDEX","1")        

  _list_2 = IupList( NULL)
  IupSetAttribute(_list_2,"DROPDOWN","YES")
  IupSetAttribute(_list_2,"EXPAND","YES")
  IupSetAttribute(_list_2, "VISIBLE_ITEMS", "3")
' IupSetAttribute(_list_2, "SIZE", "50x")
  IupSetAttribute(_list_2,"VALUE","2")
  IupSetAttribute(_list_2,"1","Item 1 Text")
  IupSetAttribute(_list_2,"2","Item 2 Text Big Item")
  IupSetAttribute(_list_2,"3","Item 3 Text")
  IupSetAttribute(_list_2,"4","Item 4 Text")
  IupSetAttribute(_list_2,"5","Item 5 Text")
  IupSetAttribute(_list_2,"6","Item 6 Text")
  IupSetAttribute(_list_2,"CINDEX","2")

  _list_3 = IupList( NULL)
  IupSetAttribute(_list_3,"EDITBOX","YES")
  IupSetAttribute(_list_3,"EXPAND","YES")
' IupSetAttribute(_list_3, "SIZE", "50x40")
  IupSetAttribute(_list_3,"VALUE","Test Value")
  IupSetAttribute(_list_3,"1","Item 1 Text")
  IupSetAttribute(_list_3,"2","Item 2 Text Big Item")
  IupSetAttribute(_list_3,"3","Item 3 Text")
  IupSetAttribute(_list_3,"4","Item 4 Text")
  IupSetAttribute(_list_3,"5","Item 5 Text")
  IupSetAttribute(_list_3,"6","Item 6 Text")
  IupSetAttribute(_list_3,"CINDEX","3")

  _list_4 = IupList(NULL)
  IupSetAttribute(_list_4,"EDITBOX","YES")
  IupSetAttribute(_list_4,"DROPDOWN","YES")
  IupSetAttribute(_list_4,"EXPAND","YES")
  IupSetAttribute(_list_4,"VISIBLE_ITEMS", "3")
' IupSetAttribute(_list_4, "SIZE", "50x10")
  IupSetAttribute(_list_4,"VALUE","Test Value")
  IupSetAttribute(_list_4,"1","Item 1 Text")
  IupSetAttribute(_list_4,"2","Item 2 Text Big Item")
  IupSetAttribute(_list_4,"3","Item 3 Text")
  IupSetAttribute(_list_4,"4","Item 4 Text")
  IupSetAttribute(_list_4,"5","Item 5 Text")
  IupSetAttribute(_list_4,"6","Item 6 Text")
  IupSetAttribute(_list_4,"CINDEX","2")

  _frm_5 =  IupFrame(IupVbox(_list_1, _list_2, _list_3, _list_4, NULL))
  IupSetAttribute(_frm_5,"TITLE","IupList")

  _hbox_1 = IupHbox(_frm_1, _frm_2, _frm_3, _frm_4, _frm_5, NULL)

  _cnv_1 = IupCanvas(NULL)
  IupSetAttribute(_cnv_1,"BGCOLOR","128 255 32")

  _vbox_1 = IupVbox( _
    _hbox_1, _
    _cnv_1, _
    IupFill(),_
    NULL)
  'IupSetAttribute(_vbox_1,"MARGIN","5x5")
  'IupSetAttribute(_vbox_1,"ALIGNMENT","ARIGHT")
  'IupSetAttribute(_vbox_1,"GAP","5")            

  set_callbacks(_vbox_1)  

  dlg = IupDialog(_vbox_1)
  IupSetfAttribute(dlg,"TITLE","MDI Child (%d)", id)
  id+=1

  return dlg
end function

function mdi_tilehoriz_cb cdecl (ih as Ihandle ptr) as integer
  IupSetAttribute(IupGetDialog(ih), "MDIARRANGE", "TILEHORIZONTAL")
  return IUP_DEFAULT
end function

function mdi_tilevert_cb cdecl (ih as Ihandle ptr) as integer
  IupSetAttribute(IupGetDialog(ih), "MDIARRANGE", "TILEVERTICAL")
  return IUP_DEFAULT
end function

function mdi_cascade_cb cdecl (ih as Ihandle ptr) as integer
  IupSetAttribute(IupGetDialog(ih), "MDIARRANGE", "CASCADE")
  return IUP_DEFAULT
end function

function mdi_icon_cb cdecl (ih as Ihandle ptr) as integer
  IupSetAttribute(IupGetDialog(ih), "MDIARRANGE", "ICON")
  return IUP_DEFAULT
end function

function mdi_next_cb cdecl (ih as Ihandle ptr) as integer
  IupSetAttribute(IupGetDialog(ih), "MDIACTIVATE", "NEXT")
  return IUP_DEFAULT
end function

function mdi_previous_cb cdecl (ih as Ihandle ptr) as integer
  IupSetAttribute(IupGetDialog(ih), "MDIACTIVATE", "PREVIOUS")
  return IUP_DEFAULT
end function

function mdi_closeall_cb cdecl (ih as Ihandle ptr) as integer
  IupSetAttribute(IupGetDialog(ih), "MDICLOSEALL", NULL)
  return IUP_DEFAULT
end function

function mdi_activate_cb cdecl (ih as Ihandle ptr) as integer
  printf(!"%2d mdi_activate(%s)\n", cLine, IupGetName(ih))
  cLine+=1
  return IUP_DEFAULT
end function

function mdi_new_cb cdecl (ih as Ihandle ptr) as integer
  dim as Ihandle ptr dlg = createDialog()
  IupSetAttribute(dlg,"MDICHILD","YES")
  IupSetAttribute(dlg,"PARENTDIALOG","mdiFrame")
  IupSetCallback(dlg,"MDIACTIVATE_CB",@mdi_activate_cb)
  IupShow(dlg)
  return IUP_DEFAULT
end function

sub createMenu() 
  dim as Ihandle ptr winmenu = IupMenu( _
    IupItem("Tile Horizontal", "mdi_tilehoriz"), _
    IupItem("Tile Vertical",   "mdi_tilevert"), _
    IupItem("Cascade",         "mdi_cascade"), _
    IupItem("Icon Arrange",    "mdi_icon"), _ 
    IupItem("Close All",       "mdi_closeall"), _
    IupSeparator(), _
    IupItem("Next",            "mdi_next"), _
    IupItem("Previous",        "mdi_previous"), _
  NULL)
  dim as Ihandle ptr mnu = IupMenu( _
    IupSubmenu("MDI", _
      IupMenu( _
        IupItem("New", "mdi_new"), _ 
      NULL) _
    ), _
   IupSubmenu("Window", winmenu), _
  NULL)
  
  IupSetHandle("mnu",mnu)
  IupSetHandle("mdiMenu",winmenu)

  IupSetFunction("mdi_new",       @mdi_new_cb)
  IupSetFunction("mdi_tilehoriz", @mdi_tilehoriz_cb)
  IupSetFunction("mdi_tilevert",  @mdi_tilevert_cb)
  IupSetFunction("mdi_cascade",   @mdi_cascade_cb)
  IupSetFunction("mdi_icon",      @mdi_icon_cb)
  IupSetFunction("mdi_next",      @mdi_next_cb)
  IupSetFunction("mdi_previous",  @mdi_previous_cb)
  IupSetFunction("mdi_closeall",  @mdi_closeall_cb)
end sub


function createFrame() as Ihandle ptr
  dim as Ihandle ptr cnv = IupCanvas(NULL)
  IupSetAttribute(cnv,"MDICLIENT","YES")
  IupSetAttribute(cnv,"MDIMENU","mdiMenu")

  dim as Ihandle ptr dlg = IupDialog(cnv)
  IupSetAttribute(dlg,"TITLE","MDI Frame")
  IupSetAttribute(dlg,"MDIFRAME","YES")
  IupSetAttribute(dlg,"RASTERSIZE","800x600")
  IupSetHandle("mdiFrame", dlg)

  return dlg
end function

'
' main
'
createImages()
createMenu()

dim as Ihandle ptr dlg = createFrame()
'IupSetAttribute(dlg,"RASTERSIZE","1024x768")
IupSetAttribute(dlg,"MENU","mnu")
IupShowXY(dlg,IUP_CENTER,IUP_CENTER)

IupMainLoop()
  
