home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / dreamscape / source / Dreamscape / Headers / objects / h / task < prev   
Encoding:
Text File  |  1996-09-07  |  3.5 KB  |  107 lines

  1.  
  2. /* objects.h.task
  3.  *
  4.  * Dreamscape - C++ class library for RISC OS
  5.  * Copyright (c) 1996 Mark Seaborn <mseaborn@argonet.co.uk>
  6.  *
  7.  * This library is free software; you can redistribute it and/or
  8.  * modify it under the terms of the GNU Library General Public
  9.  * License as published by the Free Software Foundation; either
  10.  * version 2 of the License, or (at your option) any later version.
  11.  * See the Dreamscape documentation for more information.
  12.  */
  13.  
  14. #ifndef dreamscape_task_H
  15. #define dreamscape_task_H
  16.  
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20.  
  21. extern struct toolbox_block dscape_task_ids_;
  22. extern struct messagetrans_control_block dscape_task_messages_;
  23. extern struct osspriteop_area *dscape_task_sprites_;
  24. extern struct wimp_t_ *dscape_task_handle_;
  25. extern const char *dscape_task_directory_;
  26.  
  27. void dscape_task_poll(void);
  28. void dscape_task_poll_forever(void);
  29. void dscape_task_ensure(void);
  30. void dscape_task_quit(void);
  31.  
  32. #define dscape_task_get_toolbox_block() &dscape_task_ids_
  33. #define dscape_task_get_messagetrans_control_block() &dscape_task_messages_
  34. #define dscape_task_get_sprites() dscape_task_sprites_
  35. #define dscape_task_get_handle() ((struct wimp_t_ *) dscape_task_handle_)
  36. #define dscape_task_get_directory() dscape_task_directory_
  37.  
  38. int dscape_task_msgcpy4(const char *token, const char *a0, const char *a1,
  39.     const char *a2, const char *a3, char *buffer, int size);
  40. #define dscape_task_msgcpy3(token, a0, a1, a2, buffer, size) \
  41.     dscape_task_msgcpy4(token, a0, a1, a2, 0, buffer, size)
  42. #define dscape_task_msgcpy2(token, a0, a1, buffer, size) \
  43.     dscape_task_msgcpy4(token, a0, a1, 0, 0, buffer, size)
  44. #define dscape_task_msgcpy1(token, a0, buffer, size) \
  45.     dscape_task_msgcpy4(token, a0, 0, 0, 0, buffer, size)
  46. #define dscape_task_msgcpy(token, buffer, size) \
  47.     dscape_task_msgcpy4(token, 0, 0, 0, 0, buffer, size)
  48.  
  49. const char *dscape_task_msg4(const char *token, const char *a0,
  50.     const char *a1, const char *a2, const char *a3);
  51. #define dscape_task_msg3(token, a0, a1, a2) \
  52.     dscape_task_msg4(token, a0, a1, a2, 0)
  53. #define dscape_task_msg2(token, a0, a1) dscape_task_msg4(token, a0, a1, 0, 0)
  54. #define dscape_task_msg1(token, a0) dscape_task_msg4(token, a0, 0, 0, 0)
  55. #define dscape_task_msg(token) dscape_task_msg4(token, 0, 0, 0, 0)
  56.  
  57. void dscape_task_report_error(const char *error);
  58.  
  59. #define TaskDirectory(d) const char *dscape_task_directory_ = d
  60.  
  61. #ifdef __cplusplus
  62. }
  63.  
  64. #include "stringt.h"
  65.  
  66. #include "command.h"
  67. #include "tboxevent.h"
  68.  
  69. typedef struct wimp_t_ *wimp_t;
  70. struct toolbox_block;
  71. struct messagetrans_control_block;
  72. struct osspriteop_area;
  73.  
  74. class Task {
  75.   static Task task;
  76. public:
  77.   Task();
  78.  
  79.   static void poll() { dscape_task_poll(); }
  80.   static void poll_forever() { dscape_task_poll_forever(); }
  81.   static void ensure() { dscape_task_ensure(); }
  82.   static void quit() { dscape_task_quit(); }
  83.  
  84.   static const toolbox_block *get_toolbox_block()
  85.     { return dscape_task_get_toolbox_block(); }
  86.   static const messagetrans_control_block *get_messagetrans_control_block()
  87.     { return dscape_task_get_messagetrans_control_block(); }
  88.   static const osspriteop_area *get_sprites()
  89.     { return dscape_task_get_sprites(); }
  90.   static wimp_t get_handle() { return dscape_task_get_handle(); }
  91.   static const char *get_directory() { return dscape_task_get_directory(); }
  92.  
  93.   static String msg(const char *message, const char *a0 = 0,
  94.     const char *a1 = 0, const char *a2 = 0, const char *a3 = 0);
  95.   static void report_error(const char *error)
  96.     { dscape_task_report_error(error); }
  97. };
  98.  
  99. extern class QuitCommand: public Command {
  100. public:
  101.   void execute();
  102. } quit_command;
  103.  
  104. #endif
  105.  
  106. #endif
  107.