source: tags/ms_r16q4/PROBE_DESIGN/SaiProbeVisualization.hxx

Last change on this file was 14838, checked in by westram, 8 years ago
  • no longer pseudo-hide gc-manager-object
    • aw_gc_managerAW_gc_manager
    • use pointers to AW_gc_manager instead of pointer-typedef
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.9 KB
Line 
1#ifndef SAIPROBEVISUALIZATION_HXX
2#define SAIPROBEVISUALIZATION_HXX
3
4#ifndef _GLIBCXX_CCTYPE
5#include <cctype>
6#endif
7#ifndef _GLIBCXX_VECTOR
8#include <vector>
9#endif
10#ifndef AWT_CANVAS_HXX
11#include <awt_canvas.hxx>
12#endif
13
14#include <string>
15
16#define sai_assert(cond) arb_assert(cond)
17
18#define AWAR_SPV_SAI_2_PROBE "sai_visualize/sai_2_probe"
19#define AWAR_SPV_DISP_SAI    "sai_visualize/disp_sai"
20#define AWAR_SPV_SAI_COLOR   "sai_visualize/probeSai/color_0"
21
22#define AWAR_SPV_DB_FIELD_NAME   "sai_visualize/db_field_name"
23#define AWAR_SPV_DB_FIELD_WIDTH  "sai_visualize/db_field_width"
24#define AWAR_SPV_ACI_COMMAND     "sai_visualize/aci_command"
25#define AWAR_SPV_SELECTED_PROBE  "sai_visualize/selected_probe"
26
27#define SAI_CLR_COUNT 10
28
29enum {
30    PROBE,
31    PROBE_PREFIX,
32    PROBE_SUFFIX
33};
34
35enum {
36    SAI_GC_HIGHLIGHT,  SAI_GC_HIGHLIGHT_FONT  = SAI_GC_HIGHLIGHT,
37    SAI_GC_FOREGROUND, SAI_GC_FOREGROUND_FONT = SAI_GC_FOREGROUND,
38    SAI_GC_PROBE,      SAI_GC_PROBE_FONT      = SAI_GC_PROBE,
39
40    SAI_GC_0,  SAI_GC_1,  SAI_GC_2,  SAI_GC_3,  SAI_GC_4,
41    SAI_GC_5,  SAI_GC_6,  SAI_GC_7,  SAI_GC_8,  SAI_GC_9,
42
43    SAI_GC_MAX
44};
45
46// global data for interaction with probe match result list:
47
48class saiProbeData : virtual Noncopyable { // Note: also used for ProbeCollection!
49    std::string probeTarget;
50    std::string headline;           // needed for ProbeMatchParser
51
52public:
53
54    std::vector<std::string> probeSpecies;
55    std::vector<std::string> probeSeq;
56
57    saiProbeData() : probeTarget("<notarget>"), headline() {}
58    ~saiProbeData() {
59        probeSpecies.clear();
60        probeSeq.clear();
61    }
62
63    const char *getProbeTarget() const {
64        // sai_assert(probeTarget.length() > 0); // always need a target
65        return probeTarget.c_str();
66    }
67    size_t getProbeTargetLen() const {
68        return probeTarget.length();
69    }
70    const char *getHeadline() const { return headline.c_str(); }
71
72    void setProbeTarget(const char *target) {
73        sai_assert(target);
74
75        unsigned int len = strlen(target);
76        char temp[len]; temp[len] = '\0';
77        for (unsigned int i = 0; i < len; i++) {
78            temp[i] = toupper(target[i]);  // converting the Bases to Upper case
79        }
80        probeTarget = temp;
81    }
82    void setHeadline(const char *hline) {
83        sai_assert(hline);
84        headline = hline;
85    }
86};
87
88struct SAI_graphic : public AWT_nonDB_graphic, virtual Noncopyable {
89    GBDATA     *gb_main;
90    AW_root    *aw_root;
91
92    SAI_graphic(AW_root *aw_root, GBDATA *gb_main);
93    ~SAI_graphic() OVERRIDE;
94
95    AW_gc_manager *init_devices(AW_window *, AW_device *, AWT_canvas *scr) OVERRIDE;
96
97    void show(AW_device *device) OVERRIDE;
98    void handle_command(AW_device *device, AWT_graphic_event& event) OVERRIDE;
99    void paint(AW_device *device);
100
101};
102
103AW_window *createSaiProbeMatchWindow(AW_root *awr, GBDATA *gb_main);
104void transferProbeData(saiProbeData *spd);
105
106#else
107#error SaiProbeVisualization.hxx included twice
108#endif
Note: See TracBrowser for help on using the repository browser.