Subversion Repositories Kolibri OS

Rev

Rev 9587 | Rev 9766 | Go to most recent revision | 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.  
  47. typedef struct{
  48.     unsigned int type;
  49.     char* procinfo;
  50.     char* com_area_name;
  51.     unsigned int com_area;
  52.     char* start_path;
  53.     void (*draw_window)(void);
  54.     unsigned int status;
  55.     unsigned short x_size;
  56.     unsigned short x_start;
  57.     unsigned short y_size;
  58.     unsigned short y_start;
  59.     unsigned int color_type;
  60.     unsigned int color;
  61. }color_dialog __attribute__ ((__packed__));
  62.  
  63. void fake_on_redraw(void) {}
  64.  
  65. open_dialog* kolibri_new_open_dialog(unsigned int mode, unsigned short tlx, unsigned short tly, unsigned short x_size, unsigned short y_size)
  66. {
  67.     open_dialog *new_opendialog = (open_dialog *)malloc(sizeof(open_dialog));
  68.     od_filter *new_od_filter = (od_filter *)malloc(sizeof(od_filter));
  69.     char *plugin_path = (char *)calloc(4096, sizeof(char));
  70.         char *openfile_path = (char *)calloc(4096, sizeof(char));
  71.         char *proc_info = (char *)calloc(1024, sizeof(char));
  72.         char *filename_area = (char *)calloc(256, sizeof(char));
  73.  
  74.         new_od_filter -> size = 0;
  75.         new_od_filter -> end = 0;
  76.  
  77.         new_opendialog -> mode = mode;
  78.         new_opendialog -> procinfo = proc_info;
  79.         new_opendialog -> com_area_name = sz_com_area_name;
  80.         new_opendialog -> com_area = 0;
  81.         new_opendialog -> opendir_path = plugin_path;
  82.         new_opendialog -> dir_default_path = sz_dir_default_path;
  83.         new_opendialog -> start_path = sz_start_path;
  84.         new_opendialog -> draw_window = &fake_on_redraw;
  85.         new_opendialog -> status = 0;
  86.         new_opendialog -> openfile_path = openfile_path;
  87.         new_opendialog -> filename_area = filename_area;
  88.         new_opendialog -> filter_area = new_od_filter;
  89.         new_opendialog -> x_size = x_size;
  90.         new_opendialog -> x_start = tlx;
  91.         new_opendialog -> y_size = y_size;
  92.         new_opendialog -> y_start = tly;
  93.         return new_opendialog;
  94. }
  95.  
  96. void cd_fake_on_redraw(void) {}
  97.  
  98. color_dialog* kolibri_new_color_dialog(unsigned int type, unsigned short tlx, unsigned short tly, unsigned short x_size, unsigned short y_size)
  99. {
  100.     color_dialog *new_colordialog = (color_dialog *)malloc(sizeof(color_dialog));
  101.     char *proc_info = (char *)calloc(1024, sizeof(char));
  102.  
  103.         new_colordialog -> type = type;
  104.         new_colordialog -> procinfo = proc_info;
  105.         new_colordialog -> com_area_name = cd_com_area_name;
  106.         new_colordialog -> com_area = 0;
  107.         new_colordialog -> start_path = cd_start_path;
  108.         new_colordialog -> draw_window = &cd_fake_on_redraw;
  109.         new_colordialog -> status = 0;
  110.         new_colordialog -> x_size = x_size;
  111.         new_colordialog -> x_start = tlx;
  112.         new_colordialog -> y_size = y_size;
  113.         new_colordialog -> y_start = tly;
  114.         new_colordialog -> color_type = 0;
  115.         new_colordialog -> color = 0;
  116.         return new_colordialog;
  117. }
  118.  
  119. void kolibri_dialog_init();
  120.  
  121. extern void __stdcall (*OpenDialog_init)(open_dialog *);
  122. extern void __stdcall (*OpenDialog_start)(open_dialog *);
  123.  
  124. extern void __stdcall (*ColorDialog_init)(color_dialog *);
  125. extern void __stdcall (*ColorDialog_start)(color_dialog *);
  126.  
  127. #endif
  128.