Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Saturday, October 17, 2026

Diff for tucniak/cuchar/share/cuchar.h between version 1.3 and 1.4

version 1.3, 2005/12/02 17:15:05 version 1.4, 2005/12/08 21:13:08
Line 25 
Line 25 
   
 #define CC_MAXLONG 0x7FFFFFFF  #define CC_MAXLONG 0x7FFFFFFF
   
 #define CC_OFFSET_C 32  #define CC_OFFSET_CHAR 32
   
 /* Keyboard Keys constants definition {{{ **********************************  /* Keyboard Keys constants definition {{{ **********************************
  *      -every catched keyboard event is transformed into CC_K constant   *      -every catched keyboard event is transformed into CC_K constant
  *  -library then handles unified constants independent from UI environment   *  -library then handles unified constants independent from UI environment
  ***************************************************************************/   ***************************************************************************/
 #define CC_OFFSET_K 256  #define CC_OFFSET_KEY 256
 #define CC_K_LEFT CC_OFFSET_K + 0  #define CC_KEY_LEFT CC_OFFSET_KEY + 0
 #define CC_K_RIGHT CC_OFFSET_K + 1  #define CC_KEY_RIGHT CC_OFFSET_KEY + 1
 #define CC_K_UP CC_OFFSET_K + 2  #define CC_KEY_UP CC_OFFSET_KEY + 2
 #define CC_K_DOWN CC_OFFSET_K + 3  #define CC_KEY_DOWN CC_OFFSET_KEY + 3
 #define CC_K_HOME CC_OFFSET_K + 4  #define CC_KEY_HOME CC_OFFSET_KEY + 4
 #define CC_K_END CC_OFFSET_K + 5  #define CC_KEY_END CC_OFFSET_KEY + 5
 #define CC_K_PGUP CC_OFFSET_K + 6  #define CC_KEY_PGUP CC_OFFSET_KEY + 6
 #define CC_K_PGDOWN CC_OFFSET_K + 7  #define CC_KEY_PGDOWN CC_OFFSET_KEY + 7
 #define CC_K_CENTER CC_OFFSET_K + 8  #define CC_KEY_CENTER CC_OFFSET_KEY + 8
 #define CC_K_ESC CC_OFFSET_K + 9  #define CC_KEY_ESC CC_OFFSET_KEY + 9
 #define CC_K_ENTER CC_OFFSET_K + 10  #define CC_KEY_ENTER CC_OFFSET_KEY + 10
 #define CC_K_DEL CC_OFFSET_K + 11  #define CC_KEY_DEL CC_OFFSET_KEY + 11
 #define CC_K_INS CC_OFFSET_K + 12  #define CC_KEY_INS CC_OFFSET_KEY + 12
 #define CC_K_TAB CC_OFFSET_K + 13  #define CC_KEY_TAB CC_OFFSET_KEY + 13
 #define CC_K_BACK CC_OFFSET_K + 14  #define CC_KEY_BACK CC_OFFSET_KEY + 14
 #define CC_K_PAUSE CC_OFFSET_K + 15  #define CC_KEY_PAUSE CC_OFFSET_KEY + 15
 #define CC_K_POPUP CC_OFFSET_K + 16  #define CC_KEY_POPUP CC_OFFSET_KEY + 16
 #define CC_K_F1 CC_OFFSET_K + 17  #define CC_KEY_F1 CC_OFFSET_KEY + 17
 #define CC_K_F2 CC_OFFSET_K + 18  #define CC_KEY_F2 CC_OFFSET_KEY + 18
 #define CC_K_F3 CC_OFFSET_K + 19  #define CC_KEY_F3 CC_OFFSET_KEY + 19
 #define CC_K_F4 CC_OFFSET_K + 20  #define CC_KEY_F4 CC_OFFSET_KEY + 20
 #define CC_K_F5 CC_OFFSET_K + 21  #define CC_KEY_F5 CC_OFFSET_KEY + 21
 #define CC_K_F6 CC_OFFSET_K + 22  #define CC_KEY_F6 CC_OFFSET_KEY + 22
 #define CC_K_F7 CC_OFFSET_K + 23  #define CC_KEY_F7 CC_OFFSET_KEY + 23
 #define CC_K_F8 CC_OFFSET_K + 24  #define CC_KEY_F8 CC_OFFSET_KEY + 24
 #define CC_K_F9 CC_OFFSET_K + 25  #define CC_KEY_F9 CC_OFFSET_KEY + 25
 #define CC_K_F10 CC_OFFSET_K + 26  #define CC_KEY_F10 CC_OFFSET_KEY + 26
 #define CC_K_F11 CC_OFFSET_K + 27  #define CC_KEY_F11 CC_OFFSET_KEY + 27
 #define CC_K_F12 CC_OFFSET_K + 28  #define CC_KEY_F12 CC_OFFSET_KEY + 28
 /* }}} */  /* }}} */
 /* Mouse Events constants definition {{{ ************************************  /* Mouse Events constants definition {{{ ************************************
  *  -the same as by CC_K   *  -the same as by CC_K
  *  -CC_OFFSET_K is used to not mix CC_K and CC_M constants,   *  -CC_OFFSET_KEY is used to not mix CC_K and CC_M constants,
  *  what makes possible to handle all constants (Events) together   *  what makes possible to handle all constants (Events) together
  ***************************************************************************/   ***************************************************************************/
 #define CC_OFFSET_M CC_OFFSET_K + 29  #define CC_OFFSET_MOUSE CC_OFFSET_KEY + 29
 #define CC_M_MOUSEMOVE CC_OFFSET_M + 0  #define CC_MOUSE_MOVE CC_OFFSET_MOUSE + 0
 #define CC_M_LBUTTONDOWN CC_OFFSET_M + 1  #define CC_MOUSE_L_DOWN CC_OFFSET_MOUSE + 1
 #define CC_M_LBUTTONUP CC_OFFSET_M + 2  #define CC_MOUSE_L_UP CC_OFFSET_MOUSE + 2
 #define CC_M_LBUTTONDBLCLK CC_OFFSET_M + 3  #define CC_MOUSE_L_DBLCLK CC_OFFSET_MOUSE + 3
 #define CC_M_RBUTTONDOWN CC_OFFSET_M + 4  #define CC_MOUSE_R_DOWN CC_OFFSET_MOUSE + 4
 #define CC_M_RBUTTONUP CC_OFFSET_M + 5  #define CC_MOUSE_R_UP CC_OFFSET_MOUSE + 5
 #define CC_M_RBUTTONDBLCLK CC_OFFSET_M + 6  #define CC_MOUSE_R_DBLCLK CC_OFFSET_MOUSE + 6
 /* }}} */  /* }}} */
   
 #define CC_OFFSET_X CC_OFFSET_M + 7  #define CC_OFFSET_END CC_OFFSET_MOUSE + 7
   
 #define CC_D_SHIFT 0x2000  #define CC_MOD_SHIFT 0x2000
 #define CC_D_ALT 0x8000  #define CC_MOD_ALT 0x8000
 #define CC_D_CTRL 0x4000  #define CC_MOD_CTRL 0x4000
   
 #define CC_MASK_KEY 0x1FFF  #define CC_MASK_KEY 0x1FFF
 #define CC_MASK_MOD 0xE000  #define CC_MASK_MOD 0xE000
Line 155 
Line 155 
 #define CC_MB_NO 0x00000004  #define CC_MB_NO 0x00000004
 #define CC_MB_CANCEL 0x00000008  #define CC_MB_CANCEL 0x00000008
   
 #define C_DEFAULT -1  #define CC_C_DEFAULT -1
 #define C_BLACK 0  #define CC_C_BLACK 0
 #define C_RED 1  #define CC_C_RED 1
 #define C_GREEN 2  #define CC_C_GREEN 2
 #define C_YELLOW 3  #define CC_C_YELLOW 3
 #define C_BLUE 4  #define CC_C_BLUE 4
 #define C_MAGENTA 5  #define CC_C_MAGENTA 5
 #define C_CYAN 6  #define CC_C_CYAN 6
 #define C_WHITE 7  #define CC_C_WHITE 7
 #define C_LBLACK 8  #define CC_C_LBLACK 8
 #define C_LRED 9  #define CC_C_LRED 9
 #define C_LGREEN 10  #define CC_C_LGREEN 10
 #define C_LYELLOW 11  #define CC_C_LYELLOW 11
 #define C_LBLUE 12  #define CC_C_LBLUE 12
 #define C_LMAGENTA 13  #define CC_C_LMAGENTA 13
 #define C_LCYAN 14  #define CC_C_LCYAN 14
 #define C_LWHITE 15  #define CC_C_LWHITE 15
   
 #define CC_TP_TEXT 0  #define CC_TP_TEXT 0
 #define CC_TP_EDIT 1  #define CC_TP_EDIT 1
Line 184 
Line 184 
 #define CC_TP_MENU 8  #define CC_TP_MENU 8
 #define CC_TP_DIALOG 9  #define CC_TP_DIALOG 9
   
 #ifndef __WIN  #ifndef __Cc_Win
   typedef void WIN;    typedef void Cc_Win;
   #define __WIN    #define __Cc_Win
 #endif  #endif
   
 typedef struct _CMENU{  typedef struct _Cc_Menu_I{
   long id;    long id;
   bool checked;    bool checked;
   char *text;    char *text;
   unsigned short shortcut;    unsigned short shortcut;
   WIN *submenu;    Cc_Win *submenu;
 }CMENU;  }Cc_Menu_I;
   
 typedef struct _PTEXT{  typedef struct _Cc_Text_P{
   char type;    char type;
   char *text;    char *text;
   long cback,    long cback,
        ctext;         ctext;
 }PTEXT;  }Cc_Text_P;
   
 typedef struct _PEDIT{  typedef struct _Cc_Edit_P{
   char type;    char type;
   char style;   // CC_ED_xxx    char style;   // CC_ED_xxx
   long cback,    long cback,
        cbmask,         cbmask,
        cfmask,         cfmask,
        ctext;         ctext;
   void (*change)();   // void change(WIN*)    void (*change)();   // void change(Cc_Win*)
 }PEDIT;  }Cc_Edit_P;
   
 typedef struct _PBUTTON{  typedef struct _Cc_Button_P{
   char type;    char type;
   char *text;    char *text;
   char style;   // CC_BT_xxx    char style;   // CC_BT_xxx
Line 224  typedef struct _PBUTTON{
Line 224  typedef struct _PBUTTON{
        cutext[3],         cutext[3],
        cfocus[3];         cfocus[3];
   bool hasfocus;    bool hasfocus;
   void (*push)();   // void push(WIN*)    void (*push)();   // void push(Cc_Win*)
 }PBUTTON;  }Cc_Button_P;
   
 typedef struct _PSCROLL{  typedef struct _Cc_Scroll_P{
   char type;    char type;
   long pos,    long pos,
        minpos,         minpos,
Line 240  typedef struct _PSCROLL{
Line 240  typedef struct _PSCROLL{
        carrowup,         carrowup,
        carrowdown;         carrowdown;
   bool vert;    bool vert;
   void (*change)();   // void change(WIN*)    void (*change)();   // void change(Cc_Win*)
 }PSCROLL;  }Cc_Scroll_P;
   
 typedef struct _PCOMBO{  typedef struct _Cc_Combo_P{
   char type;    char type;
   long activeline,    long activeline,
        cback,         cback,
        cbutback[2],         cbutback[2],
        cbutfront[2];         cbutfront[2];
   void (*change)();   // void change(WIN*)    void (*change)();   // void change(Cc_Win*)
   long maxvisitems;    long maxvisitems;
   long lstvy;    long lstvy;
   long lstcback,    long lstcback,
Line 268  typedef struct _PCOMBO{
Line 268  typedef struct _PCOMBO{
   char edistyle;    char edistyle;
   long edicbmask,    long edicbmask,
        edicfmask;         edicfmask;
 }PCOMBO;  }Cc_Combo_P;
   
 typedef struct _PLIST{  typedef struct _Cc_List_P{
   char type;    char type;
   long activeline,    long activeline,
        cback,         cback,
Line 283  typedef struct _PLIST{
Line 283  typedef struct _PLIST{
        cactivetext;         cactivetext;
   char combotyp;   // CC_LI_LIST-normal list, CC_LI_COMBO-list in combo, CC_LI_TABLE-table    char combotyp;   // CC_LI_LIST-normal list, CC_LI_COMBO-list in combo, CC_LI_TABLE-table
   GList *lines;    GList *lines;
   void (*change)();   // void change(WIN*)    void (*change)();   // void change(Cc_Win*)
   void (*dblclk)();   // void dblclk(WIN*)    void (*dblclk)();   // void dblclk(Cc_Win*)
   long scrcback,    long scrcback,
        scrcmark,         scrcmark,
        scrcbar,         scrcbar,
        scrcarrowup,         scrcarrowup,
        scrcarrowdown;         scrcarrowdown;
 }PLIST;  }Cc_List_P;
   
 typedef struct _PSTATUS{  typedef struct _Cc_Status_P{
   char type;    char type;
   long pos,    long pos,
        maxpos;         maxpos;
Line 303  typedef struct _PSTATUS{
Line 303  typedef struct _PSTATUS{
   bool vert,    bool vert,
        vtext;         vtext;
   char *text;    char *text;
 }PSTATUS;  }Cc_Status_P;
   
 typedef struct _PPAINT{  typedef struct _Cc_Paint_P{
   char type;    char type;
   char style;   // CC_PA_xxx    char style;   // CC_PA_xxx
   long cback,    long cback,
        color;         color;
 }PPAINT;  }Cc_Paint_P;
   
 typedef struct _PMENU{  typedef struct _Cc_Menu_P{
   char type;    char type;
   long cback,    long cback,
        cborder,         cborder,
Line 322  typedef struct _PMENU{
Line 322  typedef struct _PMENU{
        cactivetext,         cactivetext,
        cactiveutext;         cactiveutext;
   GList *lines;    GList *lines;
   void (*change)();   // void change(WIN*)    void (*change)();   // void change(Cc_Win*)
   void (*select)();   // void change(WIN*,long i)    void (*select)();   // void change(Cc_Win*,long i)
   bool vert;    bool vert;
 }PMENU;  }Cc_Menu_P;
   
 typedef struct _PDIALOG{  typedef struct _Cc_Dialog_P{
   char type;    char type;
   char *caption;    char *caption;
   char style;    char style;
Line 336  typedef struct _PDIALOG{
Line 336  typedef struct _PDIALOG{
        cbinactive,         cbinactive,
        cbuttext[3];         cbuttext[3];
   bool modal;    bool modal;
   WIN *menu;    Cc_Win *menu;
   void (*resize)();   // void resize(WIN*)    void (*resize)();   // void resize(Cc_Win*)
   void (*sizeok)();   // bool sizeok(WIN *,long *x,long *y,long *vx,long *vy)    void (*sizeok)();   // bool sizeok(Cc_Win *,long *x,long *y,long *vx,long *vy)
   void (*close)();   // void close(WIN*)    void (*close)();   // void close(Cc_Win*)
 }PDIALOG;  }Cc_Dialog_P;
   
 typedef union _PUNION{  typedef union _Cc_Union_P{
   char type;    char type;
   PTEXT text;    Cc_Text_P text;
   PEDIT edit;    Cc_Edit_P edit;
   PBUTTON button;    Cc_Button_P button;
   PSCROLL scroll;    Cc_Scroll_P scroll;
   PCOMBO combo;    Cc_Combo_P combo;
   PLIST list;    Cc_List_P list;
   PSTATUS status;    Cc_Status_P status;
   PPAINT paint;    Cc_Paint_P paint;
   PMENU menu;    Cc_Menu_P menu;
   PDIALOG dialog;    Cc_Dialog_P dialog;
 }PUNION;  }Cc_Union_P;
   
 typedef struct _PTIMER{  typedef struct _Cc_Timer_P{
   WIN *win;    Cc_Win *win;
   long period;    long period;
   long prior;    long prior;
   void (*timer)();   // void timer(TIMER*)    void (*timer)();   // void timer(Cc_Timer*)
 }PTIMER;  }Cc_Timer_P;
   
 #ifndef __TIMER  #ifndef __Cc_Timer
   typedef void TIMER;    typedef void Cc_Timer;
   #define __TIMER    #define __Cc_Timer
 #endif  #endif
   
 // Exported functions  // Exported functions
 bool file_open_dialog(WIN *parent,char *caption,char *filename,char *mask);  bool cc_file_open_dialog(Cc_Win *parent,char *caption,char *filename,
 long color_dialog(WIN *parent,char *caption,long color);                           char *mask);
 long message_box(WIN *parent,char *caption,char *text,long style); // style=CC_MB_xxx  long cc_color_dialog(Cc_Win *parent,char *caption,long color);
 void edit_copy(WIN *edit);  Cc_Win *cc_message_box(Cc_Win *parent,void (*action)(Cc_Win *sender,long i),
 void edit_paste(WIN *edit);                         bool modal,char *caption,char *text,
 void edit_delete(WIN *edit);                         long style);   // style=CC_MB_xxx
 void edit_cut(WIN *edit);  void cc_edit_copy(Cc_Win *edit);
 void edit_select(WIN *edit,long sta,long end);  void cc_edit_paste(Cc_Win *edit);
 void edit_get_selection(WIN *edit,long *sta,long *end);  void cc_edit_delete(Cc_Win *edit);
 void set_clipboard(char *text);  void cc_edit_cut(Cc_Win *edit);
 char *get_clipboard();  void cc_edit_select(Cc_Win *edit,long sta,long end);
 void track_popup_menu(WIN *menu,long x,long y);  void cc_edit_cc_get_selection(Cc_Win *edit,long *sta,long *end);
 WIN *create_menu(WIN *parent,PMENU *menu,  void cc_set_clipboard(char *text);
                  bool (*acel)(WIN *win,long x,long y,unsigned short key));  char *cc_get_clipboard();
 WIN *create_submenu(WIN *menu);  void cc_track_popup_menu(Cc_Win *menu,long x,long y);
 void add_menu_item(WIN *menu,CMENU *cmenu);  Cc_Win *cc_create_menu(Cc_Win *parent,Cc_Menu_P *menu,
 void ins_menu_item(WIN *menu,long pos,CMENU *cmenu);                         bool (*acel)(Cc_Win *win,long x,long y,
 void set_menu_item(WIN *menu,long pos,CMENU *cmenu);                         unsigned short key));
 void get_menu_item(WIN *menu,long pos,CMENU *cmenu);  Cc_Win *cc_create_submenu(Cc_Win *menu);
 void del_menu_item(WIN *menu,long pos);  void cc_add_menu_item(Cc_Win *menu,Cc_Menu_I *cmenu);
 void set_api_run(bool run);  void cc_ins_menu_item(Cc_Win *menu,long pos,Cc_Menu_I *cmenu);
 bool is_api_run();  void cc_set_menu_item(Cc_Win *menu,long pos,Cc_Menu_I *cmenu);
 void set_capture(WIN *win);  void cc_get_menu_item(Cc_Win *menu,long pos,Cc_Menu_I *cmenu);
 WIN *get_capture();  void cc_del_menu_item(Cc_Win *menu,long pos);
 bool set_focus(WIN *win);  void cc_set_api_run(bool run);
 WIN *get_focus();  bool cc_is_api_run();
 void show_win(WIN *win,bool visible);  void cc_set_capture(Cc_Win *win);
 long get_tick();  Cc_Win *cc_get_capture();
 void client_to_screen(WIN *p,long *x,long *y);  bool cc_set_focus(Cc_Win *win);
 void screen_to_client(WIN *p,long *x,long *y);  Cc_Win *cc_get_focus();
 bool get_menu_pos(WIN *win,long id,WIN **submenu,long *pos);  void cc_show_win(Cc_Win *win,bool visible);
 void set_user(WIN *win,void *user);  void cc_get_mouse_pos(long *x,long *y);
 void *get_user(WIN *win);  void cc_sleep(long milisec);
 void set_checked(WIN *win,long pos,bool status);  long cc_get_tick();
 bool get_checked(WIN *win,long pos);  void cc_client_to_screen(Cc_Win *p,long *x,long *y);
 void set_text(WIN *win,char *text);  void cc_screen_to_client(Cc_Win *p,long *x,long *y);
 char *get_text(WIN *win);  bool cc_get_menu_pos(Cc_Win *win,long id,Cc_Win **submenu,long *pos);
 void set_pos(WIN *win,long pos);  void cc_set_user(Cc_Win *win,void *user);
 long get_pos(WIN *win);  void *cc_get_user(Cc_Win *win);
 void set_list(WIN *win,GList *list);  void cc_set_checked(Cc_Win *win,long pos,bool status);
 GList *get_list(WIN *win);  bool cc_get_checked(Cc_Win *win,long pos);
 void set_hl_downtext(WIN *text);  void cc_set_text(Cc_Win *win,char *text);
 WIN *get_hl_downtext();  char *cc_get_text(Cc_Win *win);
 void set_menu(WIN *win,WIN *menu);  void cc_set_pos(Cc_Win *win,long pos);
 WIN *get_menu(WIN *win);  long cc_get_pos(Cc_Win *win);
 void set_acel(WIN *win,bool (*acel)(WIN *win,long x,long y,unsigned short key));  void cc_set_list(Cc_Win *win,GList *list);
 void *get_acel(WIN *win);  GList *cc_get_list(Cc_Win *win);
 void set_resize_proc(WIN *win,void (*resize)(WIN *win));  void cc_set_hl_downtext(Cc_Win *text);
 void *get_resize_proc(WIN *win);  Cc_Win *cc_get_hl_downtext();
 void set_parent(WIN *win,WIN *parent);  void cc_set_menu(Cc_Win *win,Cc_Win *menu);
 WIN *get_parent(WIN *win);  Cc_Win *cc_get_menu(Cc_Win *win);
 long create_thread(void *(*proc)());  void cc_set_acel(Cc_Win *win,bool (*acel)(Cc_Win *win,long x,long y,
 TIMER *set_timer(WIN *win,long msec,char prior,void (*timer)(TIMER*));                   unsigned short key));
 void del_timer_for_win(WIN *win);  void *cc_get_acel(Cc_Win *win);
 void del_timer(TIMER *timer);  void cc_set_resize_proc(Cc_Win *win,void (*resize)(Cc_Win *win));
 long get_timer_clock(TIMER *timer);  void *cc_get_resize_proc(Cc_Win *win);
 void set_timer_params(TIMER *timer,PTIMER *params);  void cc_set_parent(Cc_Win *win,Cc_Win *parent);
 void get_timer_params(TIMER *timer,PTIMER *params);  Cc_Win *cc_get_parent(Cc_Win *win);
 bool is_timer_run(TIMER *timer);  long cc_create_thread(void *(*proc)());
 void get_client_size(WIN *win,long *x,long *y,long *vx,long *vy);  Cc_Timer *cc_set_timer(Cc_Win *win,long msec,char prior,void (*timer)(Cc_Timer*));
 bool send_message(WIN *win,long x,long y,unsigned short key);  void cc_del_timer_for_win(Cc_Win *win);
 void delete_win(WIN *win);  void cc_del_timer(Cc_Timer *timer);
 char get_win_type(WIN *win);  long cc_get_timer_clock(Cc_Timer *timer);
 bool move_win(WIN *win,long x,long y,long vx,long vy,long state);  void cc_set_timer_params(Cc_Timer *timer,Cc_Timer_P *params);
 WIN *create_win(WIN *parent,long x,long y,long vx,long vy,  void cc_get_timer_params(Cc_Timer *timer,Cc_Timer_P *params);
                 PUNION *extra,long style,bool (*acel)(WIN *win,long x,long y,unsigned short key));  bool cc_is_timer_run(Cc_Timer *timer);
 void set_win_params(WIN *win,PUNION *params);  void cc_get_client_size(Cc_Win *win,long *x,long *y,long *vx,long *vy);
 void get_win_params(WIN *win,PUNION *params);  bool cc_send_message(Cc_Win *win,long x,long y,unsigned short key);
 void message_pump();  void cc_delete_win(Cc_Win *win);
   char cc_get_win_type(Cc_Win *win);
 // Imported functions  bool cc_move_win(Cc_Win *win,long x,long y,long vx,long vy,long state);
 int main_api(int argc,char *argv[]);  Cc_Win *cc_create_win(Cc_Win *parent,long x,long y,long vx,long vy,
 void init_api();                        Cc_Union_P *extra,long style,bool (*acel)(Cc_Win *win,
 void done_api();                        long x,long y,unsigned short key));
 int end_api();  void cc_set_win_params(Cc_Win *win,Cc_Union_P *params);
   void cc_get_win_params(Cc_Win *win,Cc_Union_P *params);
   bool cc_message_pump();
   void cc_init(int argc,char *argv[]);
   void cc_done();

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top