86function parse_rc($rc, $winvar=
'$mainwin', $parent=
null, $type=
"AppWindow", $caption=
null,
87 $x=WBC_CENTER, $y=WBC_CENTER, $width=WBC_CENTER, $height=WBC_CENTER, $style=0, $lparam=0,
90 global $_winclass, $_usergeom, $path_res;
94 $_usergeom = array($x, $y, $width, $height);
99 $rc = preg_replace(
"/^\s*;.*$/m",
"", $rc);
100 $rc = preg_replace(
"/^\s*(.*)$/m",
"\\1", $rc);
105 $def = preg_replace(
'/^((?!#define).)*$/m',
"\\2", $rc);
109 $def = preg_replace(
"/\n+/m",
"\n", $def);
113 $def = preg_replace(
"/#define\s+(\w+)\s+\"(.*)\"/",
"if(!defined(\"\\1\")) define(\"\\1\", \"\\2\");", $def);
117 $def = preg_replace(
"/#define\s+(\w+)\s+'(.+)'/",
"if(!defined(\"\\1\")) define(\"\\1\", \"\\2\");", $def);
121 $def = preg_replace(
"/#define\s+(\w+)\s+(\S+)/",
"if(!defined(\"\\1\")) define(\"\\1\", \\2);", $def);
122 $def =
"// Control identifiers\n\n" . preg_replace(
"/(\r\n|\r|\n)+/sm",
"\n", $def);
126 $rc = preg_replace(
"/^\s*#define(.*)$/m",
"", $rc);
132 $tok =
"\s*((?:[\"'][\S \t]*[\"'])|(?:[\S^,'\"]+))\s*";
133 $rc =
"// Create window\n\n" . preg_replace_callback(
"/^$tok\s+DIALOGEX$tok,$tok,$tok,$tok\s+CAPTION$tok\s+FONT$tok,$tok\s+STYLE$tok\s+EXSTYLE$tok/m",
"_scale_dialog", $rc);
137 $rc = preg_replace_callback(
"/^\s*CONTROL\s+$tok,$tok,$tok,$tok,$tok,$tok,$tok,$tok,$tok/m",
"_scale_controls", $rc);
141 $rc = preg_replace(
"/^\s*BEGIN/m",
"\n// Insert controls\n", $rc);
142 $rc = preg_replace(
"/^\s*END/m",
"\n// End controls", $rc);
146 $rc = str_replace(
"%WINVAR%", $winvar, $rc);
147 $rc = str_replace(
"%PARENT%", $parent? $parent :
"NULL", $rc);
148 $rc = str_replace(
"%STYLE%", $style, $rc);
149 $rc = str_replace(
"%LPARAM%", $lparam, $rc);
158 global $_winclass, $_usergeom, $_tabN;
160 if($_winclass ==
"TabControl") {
163 $code =
"wbtemp_create_item(%PARENT%, ". $c[6] .
");\n";
168 $_addy = 4 + 42 + 17 + 4;
170 switch(is_string($_winclass) ? strtolower($_winclass) : $_winclass) {
173 $_winclass = AppWindow;
175 $_addy = 3 + 18 + 22 + 18 + 3;
177 case "resizablewindow":
178 $_winclass = ResizableWindow;
180 $_addy = 4 + 42 + 17 + 4;
183 $_winclass = ModalDialog;
185 $_addy = 4 + 42 + 17 + 4;
187 case "modelessdialog":
188 $_winclass = ModelessDialog;
191 $_winclass = ToolDialog;
195 if(!(($_usergeom[0] == WBC_CENTER && $_usergeom[1] == WBC_CENTER &&
196 $_usergeom[2] == WBC_CENTER && $_usergeom[3] == WBC_CENTER))) {
198 $code =
"%WINVAR% = wb_create_window(" .
202 $_usergeom[0] .
", " .
203 $_usergeom[1] .
", " .
204 $_usergeom[2] .
", " .
205 $_usergeom[3] .
", " .
211 if(is_array($_usergeom)) {
212 if(count($_usergeom) == 2) {
213 $_usergeom[2] = $_usergeom[0];
214 $_usergeom[3] = $_usergeom[1];
215 $_usergeom[0] = WBC_CENTER;
216 $_usergeom[1] = WBC_CENTER;
218 } elseif(is_null($_usergeom)) {
219 $_usergeom[0] = WBC_DEFAULTPOS;
220 $_usergeom[1] = WBC_DEFAULTPOS;
221 $_usergeom[2] = WBC_DEFAULTPOS;
222 $_usergeom[3] = WBC_DEFAULTPOS;
225 $code =
"%WINVAR% = wb_create_window(" .
parse_rc($rc, $winvar=' $mainwin', $parent=null, $type="AppWindow", $caption=null, $x=WBC_CENTER, $y=WBC_CENTER, $width=WBC_CENTER, $height=WBC_CENTER, $style=0, $lparam=0, $respath=PATH_RES)