#include <stdio.h>
#include <mem.h>
#include <malloc.h>
#include "..\types.h"
#include "..\memman.h"
#include "..\devices.h"
#include "..\event.h"
#include "..\bmouse.h"
#include "..\bgraph.h"
#include "..\gui.h"
#include "..\basicobj.h"
#define WINCOLOR RGB555(24,24,24)
#define LABELCOLOR RGB555(0,0,15)
word *icones;
word icone_color[7]={0x2108,0x7fff,0x000f,0x4210,0x6f7b};

void close_test()
  {
  close_window(waktual);
  }

void logo(void)
  {
  CTL3D ctl;
  word *p;

  ctl.light=0x7fff;
  ctl.shadow=0x4210;
  ctl.bsize=2;
  ctl.ctldef=0;
  draw_border(120,90,0x18f,0x6a,&ctl);
  p=(word *)load_file("..\\konvert\\mapedit.hi");
  put_picture(120,90,p);
  free(p);
  showview(0,0,0,0);
  }

void *wait_ms_key(EVENT_MSG *msg)
  {
  MS_EVENT *ms;
  if (msg->msg==E_INIT) return &wait_ms_key;
  if (msg->msg==E_MOUSE)
     {
     ms=get_mouse(msg);
     if (ms->event_type & 4) terminate();
     }
  return NULL;
  }


void wait_mouse(void)
  {
  send_message(E_ADD,E_MOUSE,wait_ms_key);
  escape();
  send_message(E_DONE,E_MOUSE,wait_ms_key);
  }


void init(void)
  {
        default_font=load_file("d:\\tp\\vga\\boldcz.fon");
    icones=load_file("d:\\tp\\vga\\ikones.fon");
    if (initmode32())
     {
     word *p;

     p=load_file("..\\xlat256.pal");
     if (initmode256(p))
        initmode_lo(p);
     }
    curcolor=0x6318;memcpy(charcolors,flat_color(0x0000),sizeof(charcolors));
    init_events(100);
    curfont=default_font;
    register_ms_cursor(load_file("..\\konvert\\sipka.HI"));
    init_mysky();
    send_message(E_ADD,E_STATUS_LINE,status_line,16);
    send_message(E_STATUS_LINE,E_ADD,E_IDLE,show_time);
    send_message(E_STATUS_LINE,E_ADD,E_IDLE,status_mem_info);
    send_message(E_STATUS_LINE,E_ADD,E_IDLE,mouse_xy);
    ukaz_mysku();
    redraw_desktop();logo();wait_mouse();
    install_gui();
  }
/*
 w=create_window(100,100,400,200,0x6318,&x);
  id=desktop_add_window(w);
  define(10,20,50,30,0,sample,"Test");
  property(&x,NULL,flat_color(0x7000),0xffff);
  define(10,20,70,30,3,button,"Tlacitko");
  property(NULL,NULL,flat_color(0x000f),0x01c0);on_change(close_test);
  w=create_window(5,5,200,200,0x6318,&x);
  id=desktop_add_window(w);
  define(50,50,70,30,3,button,"Tlacitko");
  property(NULL,NULL,flat_color(0x7fff),0x000f);on_change(close_test);
  w=create_window(300,150,300,200,0x6318,&x);
  id=desktop_add_window(w);
  define(50,50,70,30,3,button,"Tlacitko");
  property(NULL,NULL,flat_color(0x7fff),0x000f);on_change(close_test);
 */

void def_window(word xs,word ys,char *name)
  {
  word x=0,y=0;
  WINDOW *p;
  CTL3D ctl;

  if (waktual!=NULL)
     {
     x=waktual->x;
     y=waktual->y;
     }

  highlight(&ctl,WINCOLOR);
  ctl.bsize=2;ctl.ctldef=0;
  x+=20;y+=20;
  if (x+xs>MAX_X-2) x=MAX_X-2-xs;
  if (y+ys>MAX_Y-2) y=MAX_Y-2-ys;
     p=create_window(x,y,xs,ys,WINCOLOR,&ctl);
     desktop_add_window(p);
  define(0,2,2,xs-25,14,0,win_label,name);
     ctl.bsize=1;ctl.ctldef=1;
     property(&ctl,default_font,flat_color(0x7fe0),LABELCOLOR);
   define(1,xs-20,1,19,16,0,button,"\x1f");
     property(NULL,icones,&icone_color,WINCOLOR);on_change(close_test);

  }

void Simple_window(void);

void open_next(void)
  {
  def_window(300,200,"Dal¨ˇ okno");
  Simple_window();
  redraw_window();
  }

void Simple_window(void)
  {
  CTL3D ctl;
  highlight(&ctl,WINCOLOR);
  ctl.bsize=2;ctl.ctldef=0;

  define(10,30,30,80,20,0,button,"Nov‚ okno");
     property(NULL,default_font,flat_color(0000),WINCOLOR);
     on_change(open_next);
  define(20,120,30,80,20,0,button,"Konec");
     property(NULL,default_font,flat_color(0000),WINCOLOR);
     on_change(terminate);
  define(30,60,60,90,12,0,check_box,"Check box");
     property(NULL,default_font,flat_color(0),WINCOLOR);c_default(0);
  define(40,60,80,4*15,4*15,0,radio_butts,4,"Test 1","Test 2","Test 3","Test 4");
     property(NULL,default_font,flat_color(0),WINCOLOR);c_default(1);
  define(50,170,80,80,20,0,toggle_button,"Toggle");c_default(1);
     property(NULL,default_font,flat_color(0),WINCOLOR);
  define(60,20,25,180,10,3,input_line,255);
   property(&ctl,default_font,flat_color(0),WINCOLOR);set_default("Vstupnˇ linka");


  }


void main()
  {
  init();
  def_window(300,200,"Prvnˇ okno");
  Simple_window();
  redraw_desktop();
  escape();
//  deinstall_mouse_handler();
  closemode();
  }




