Subversion Repositories Kolibri OS

Rev

Rev 9811 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #ifndef KOLIBRI_DIALOG_H
  2. #define KOLIBRI_DIALOG_H
  3.  
  4. #include <stdlib.h>
  5.  
  6. #define NOT_SUCCESS 0
  7. #define SUCCESS     1
  8.  
  9. char sz_com_area_name[] = "FFFFFFFF_open_dialog";
  10. char sz_dir_default_path[] = "/sys";
  11. char sz_start_path[] = "/sys/File managers/opendial";
  12.  
  13. char cd_com_area_name[] = "FFFFFFFF_color_dialog";
  14. char cd_start_path[] = "/sys/colrdial";
  15.  
  16. enum open_dialog_mode {
  17.     OPEN,
  18.     SAVE,
  19.     SELECT
  20. };
  21.  
  22. typedef struct {
  23.     unsigned int size;
  24.     unsigned char end;
  25. } od_filter __attribute__((__packed__));
  26.  
  27. typedef struct {
  28.     unsigned int mode;
  29.     char* procinfo;
  30.     char* com_area_name;
  31.     unsigned int com_area;
  32.     char* opendir_path;
  33.     char* dir_default_path;
  34.     char* start_path;
  35.     void (*draw_window)();
  36.     unsigned int status;
  37.     char* openfile_path;
  38.     char* filename_area;
  39.     od_filter* filter_area;
  40.     unsigned short x_size;
  41.     unsigned short x_start;
  42.     unsigned short y_size;
  43.     unsigned short y_start;
  44. } open_dialog __attribute__((__packed__));
  45.  
  46. typedef struct {
  47.     unsigned int type;
  48.     char* procinfo;
  49.     char* com_area_name;
  50.     unsigned int com_area;
  51.     char* start_path;
  52.     void (*draw_window)(void);
  53.     unsigned int status;
  54.     unsigned short x_size;
  55.     unsigned short x_start;
  56.     unsigned short y_size;
  57.     unsigned short y_start;
  58.     unsigned int color_type;
  59.     unsigned int color;
  60. } color_dialog __attribute__((__packed__));
  61.  
  62. void fake_on_redraw(void) { }
  63.  
  64. open_dialog* kolibri_new_open_dialog(unsigned int mode, unsigned short tlx, unsigned short tly, unsigned short x_size, unsigned short y_size)
  65. {
  66.     open_dialog* new_opendialog = (open_dialog*)malloc(sizeof(open_dialog));
  67.     od_filter* new_od_filter = (od_filter*)malloc(sizeof(od_filter));
  68.     char* plugin_path = (char*)calloc(4096, sizeof(char));
  69.     char* openfile_path = (char*)calloc(4096, sizeof(char));
  70.     char* proc_info = (char*)calloc(1024, sizeof(char));
  71.     char* filename_area = (char*)calloc(256, sizeof(char));
  72.  
  73.     new_od_filter->size = 0;
  74.     new_od_filter->end = 0;
  75.  
  76.     new_opendialog->mode = mode;
  77.     new_opendialog->procinfo = proc_info;
  78.     new_opendialog->com_area_name = sz_com_area_name;
  79.     new_opendialog->com_area = 0;
  80.     new_opendialog->opendir_path = plugin_path;
  81.     new_opendialog->dir_default_path = sz_dir_default_path;
  82.     new_opendialog->start_path = sz_start_path;
  83.     new_opendialog->draw_window = &fake_on_redraw;
  84.     new_opendialog->status = 0;
  85.     new_opendialog->openfile_path = openfile_path;
  86.     new_opendialog->filename_area = filename_area;
  87.     new_opendialog->filter_area = new_od_filter;
  88.     new_opendialog->x_size = x_size;
  89.     new_opendialog->x_start = tlx;
  90.     new_opendialog->y_size = y_size;
  91.     new_opendialog->y_start = tly;
  92.     return new_opendialog;
  93. }
  94.  
  95. void cd_fake_on_redraw(void) { }
  96.  
  97. color_dialog* kolibri_new_color_dialog(unsigned int type, unsigned short tlx, unsigned short tly, unsigned short x_size, unsigned short y_size)
  98. {
  99.     color_dialog* new_colordialog = (color_dialog*)malloc(sizeof(color_dialog));
  100.     char* proc_info = (char*)calloc(1024, sizeof(char));
  101.  
  102.     new_colordialog->type = type;
  103.     new_colordialog->procinfo = proc_info;
  104.     new_colordialog->com_area_name = cd_com_area_name;
  105.     new_colordialog->com_area = 0;
  106.     new_colordialog->start_path = cd_start_path;
  107.     new_colordialog->draw_window = &cd_fake_on_redraw;
  108.     new_colordialog->status = 0;
  109.     new_colordialog->x_size = x_size;
  110.     new_colordialog->x_start = tlx;
  111.     new_colordialog->y_size = y_size;
  112.     new_colordialog->y_start = tly;
  113.     new_colordialog->color_type = 0;
  114.     new_colordialog->color = 0;
  115.     return new_colordialog;
  116. }
  117.  
  118. DLLAPI void __stdcall OpenDialog_init(open_dialog*);
  119. DLLAPI void __stdcall OpenDialog_start(open_dialog*);
  120.  
  121. DLLAPI void __stdcall ColorDialog_init(color_dialog*);
  122. DLLAPI void __stdcall ColorDialog_start(color_dialog*);
  123.  
  124. #endif
  125.