summaryrefslogtreecommitdiff
blob: 33c5edb4ea140ec8424b03aaa6e2b85add201d3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
--- trunk/amsn/utils/TkCximage/src/TkCximage.cpp	2008/10/03 21:20:28	10549
+++ trunk/amsn/utils/TkCximage/src/TkCximage.cpp	2008/12/28 21:50:08	10818
@@ -26,6 +26,65 @@
 char currenttime[30];
 FILE * logfile;
 
+#define AVAILABLE_FORMATS 6
+Tk_PhotoImageFormat cximageFormats[] = {
+  {
+    "cximage",
+    (Tk_ImageFileMatchProc *) ChanMatch,	
+    (Tk_ImageStringMatchProc *) ObjMatch,	
+    (Tk_ImageFileReadProc *) ChanRead,	
+    (Tk_ImageStringReadProc *) ObjRead,	
+    (Tk_ImageFileWriteProc *) ChanWrite,	
+    (Tk_ImageStringWriteProc *) StringWrite
+  },
+  {
+    "cxgif",
+    (Tk_ImageFileMatchProc *) ChanMatch,	
+    (Tk_ImageStringMatchProc *) ObjMatch,	
+    (Tk_ImageFileReadProc *) ChanRead,	
+    (Tk_ImageStringReadProc *) ObjRead,	
+    (Tk_ImageFileWriteProc *) ChanWrite,	
+    (Tk_ImageStringWriteProc *) StringWrite
+  },
+  {
+    "cxpng",
+    (Tk_ImageFileMatchProc *) ChanMatch,	
+    (Tk_ImageStringMatchProc *) ObjMatch,	
+    (Tk_ImageFileReadProc *) ChanRead,	
+    (Tk_ImageStringReadProc *) ObjRead,	
+    (Tk_ImageFileWriteProc *) ChanWrite,	
+    (Tk_ImageStringWriteProc *) StringWrite
+  },
+  {
+    "cxjpg",
+    (Tk_ImageFileMatchProc *) ChanMatch,	
+    (Tk_ImageStringMatchProc *) ObjMatch,	
+    (Tk_ImageFileReadProc *) ChanRead,	
+    (Tk_ImageStringReadProc *) ObjRead,	
+    (Tk_ImageFileWriteProc *) ChanWrite,	
+    (Tk_ImageStringWriteProc *) StringWrite
+  },
+  {
+    "cxtga",
+    (Tk_ImageFileMatchProc *) ChanMatch,	
+    (Tk_ImageStringMatchProc *) ObjMatch,	
+    (Tk_ImageFileReadProc *) ChanRead,	
+    (Tk_ImageStringReadProc *) ObjRead,	
+    (Tk_ImageFileWriteProc *) ChanWrite,	
+    (Tk_ImageStringWriteProc *) StringWrite
+  },
+  {
+    "cxbmp",
+    (Tk_ImageFileMatchProc *) ChanMatch,	
+    (Tk_ImageStringMatchProc *) ObjMatch,	
+    (Tk_ImageFileReadProc *) ChanRead,	
+    (Tk_ImageStringReadProc *) ObjRead,	
+    (Tk_ImageFileWriteProc *) ChanWrite,	
+    (Tk_ImageStringWriteProc *) StringWrite
+  }
+};
+  
+  
 int RGB2BGR(Tk_PhotoImageBlock *data, BYTE * pixelPtr) {
   int i;
   int size = data->height * data->width * data->pixelSize;
@@ -267,10 +326,6 @@
   INITLOGS(); //
   LOG("---------------------------------"); //
 
-
-  int AvailableFromats = 6;
-  const char *KnownFormats[] = {"cximage", "cxgif", "cxpng", "cxjpg", "cxtga", "cxbmp"};
-
   //Check Tcl version is 8.3 or higher
   if (Tcl_InitStubs(interp, TCL_VERSION, 1) == NULL) {
     return TCL_ERROR;
@@ -285,15 +340,6 @@
 
   LOG("Tk stub initialized"); //
 
-  Tk_PhotoImageFormat cximageFormats = {
-    NULL,
-    (Tk_ImageFileMatchProc *) ChanMatch,	
-    (Tk_ImageStringMatchProc *) ObjMatch,	
-    (Tk_ImageFileReadProc *) ChanRead,	
-    (Tk_ImageStringReadProc *) ObjRead,	
-    (Tk_ImageFileWriteProc *) ChanWrite,	
-    (Tk_ImageStringWriteProc *) StringWrite
-  };
 	
   LOG("Creating commands"); //
 
@@ -323,14 +369,9 @@
 #endif
 
   LOG("Adding format : "); //
-  for (i = 0; i < AvailableFromats; i++) {
-    delete cximageFormats.name;
-    cximageFormats.name = new char[strlen(KnownFormats[i]) + 1];
-    strcpy(cximageFormats.name, KnownFormats[i]);
-    Tk_CreatePhotoImageFormat(&cximageFormats);
-    APPENDLOG(cximageFormats.name); //
-    delete cximageFormats.name;
-    cximageFormats.name = NULL;
+  for (i = 0; i < AVAILABLE_FORMATS; i++) {
+    Tk_CreatePhotoImageFormat(&cximageFormats[i]);
+    APPENDLOG(cximageFormats[i].name); //
   }
 
   // end of Initialisation